public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/18777] New: Redundant loop count insns in simple vectorized loop
@ 2004-12-02 8:47 uros at kss-loka dot si
2004-12-02 13:22 ` [Bug tree-optimization/18777] " pinskia at gcc dot gnu dot org
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: uros at kss-loka dot si @ 2004-12-02 8:47 UTC (permalink / raw)
To: gcc-bugs
The modifies testcase from PR18767 shows the problem where loop count variables
still remains in vectorized loop.
Compiling the modified testcase with 'g++ -O2 -march=pentium4 -ftree-vectorize'
following code is produced for the first loop:
...
leal -24(%ebp), %esi
leal -40(%ebp), %ebx
leal -56(%ebp), %ecx
xorl %eax, %eax
xorl %edx, %edx
.L2:
addl $1, %eax
movaps (%edx,%esi), %xmm0
mulps (%ebx,%edx), %xmm0
movaps %xmm0, (%edx,%ecx)
addl $16, %edx
cmpl $1, %eax
jne .L2
...
It looks that the compiler does not figure out that the conditional jump is
never taken.
However with 'g++ -O2 -march=pentium4 -ftree-vectorize -funroll-loops' generated
code is a lot better:
...
movaps -24(%ebp), %xmm0
mulps -40(%ebp), %xmm0
movaps %xmm0, -56(%ebp)
...
Uros.
--
Summary: Redundant loop count insns in simple vectorized loop
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: uros at kss-loka dot si
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18777
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/18777] Redundant loop count insns in simple vectorized loop
2004-12-02 8:47 [Bug tree-optimization/18777] New: Redundant loop count insns in simple vectorized loop uros at kss-loka dot si
@ 2004-12-02 13:22 ` pinskia at gcc dot gnu dot org
2004-12-02 13:31 ` pinskia at gcc dot gnu dot org
2005-06-12 3:19 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-02 13:22 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18777
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/18777] Redundant loop count insns in simple vectorized loop
2004-12-02 8:47 [Bug tree-optimization/18777] New: Redundant loop count insns in simple vectorized loop uros at kss-loka dot si
2004-12-02 13:22 ` [Bug tree-optimization/18777] " pinskia at gcc dot gnu dot org
@ 2004-12-02 13:31 ` pinskia at gcc dot gnu dot org
2005-06-12 3:19 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-02 13:31 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-02 13:31 -------
I think this is related to PR 18557.
--
What |Removed |Added
----------------------------------------------------------------------------
BugsThisDependsOn| |18557
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18777
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/18777] Redundant loop count insns in simple vectorized loop
2004-12-02 8:47 [Bug tree-optimization/18777] New: Redundant loop count insns in simple vectorized loop uros at kss-loka dot si
2004-12-02 13:22 ` [Bug tree-optimization/18777] " pinskia at gcc dot gnu dot org
2004-12-02 13:31 ` pinskia at gcc dot gnu dot org
@ 2005-06-12 3:19 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-12 3:19 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-12 03:19 -------
Fixed on the mainline:
_Z6foobarv:
.LFB2:
pushl %ebp
.LCFI0:
movl %esp, %ebp
.LCFI1:
subl $56, %esp
.LCFI2:
movaps -40(%ebp), %xmm0
mulps -24(%ebp), %xmm0
movaps %xmm0, -56(%ebp)
fldz
fadds -56(%ebp)
fadds -52(%ebp)
fadds -48(%ebp)
fadds -44(%ebp)
leave
ret
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.1.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18777
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-06-12 3:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-02 8:47 [Bug tree-optimization/18777] New: Redundant loop count insns in simple vectorized loop uros at kss-loka dot si
2004-12-02 13:22 ` [Bug tree-optimization/18777] " pinskia at gcc dot gnu dot org
2004-12-02 13:31 ` pinskia at gcc dot gnu dot org
2005-06-12 3:19 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).