--- Comment #38 from ubizjak at gmail dot com 2008-04-21 08:21 ---
*** Bug 32301 has been marked as a duplicate of this bug. ***
--
ubizjak at gmail dot com changed:
What|Removed |Added
--
--- Comment #37 from michaelni at gmx dot at 2008-03-22 02:39 ---
Subject: Re: compiled trivial vector intrinsic code is
inefficient
On Fri, Mar 21, 2008 at 10:34:00AM -, ubizjak at gmail dot com wrote:
>
>
> --- Comment #36 from ubizjak at gmail dot com 2008-03-21 1
--- Comment #36 from ubizjak at gmail dot com 2008-03-21 10:33 ---
(In reply to comment #35)
> Also ffmpeg uses almost entirely asm() instead of intrinsics so this alone is
> not so much a problem for ffmpeg than it is for others who followed the
> recommandition of "intrinsics are bett
--- Comment #35 from michaelni at gmx dot at 2008-03-20 17:18 ---
Subject: Re: compiled trivial vector intrinsic code is
inefficient
On Thu, Mar 20, 2008 at 09:49:22AM -, ubizjak at gmail dot com wrote:
>
>
> --- Comment #34 from ubizjak at gmail dot com 2008-03-20 0
--- Comment #34 from ubizjak at gmail dot com 2008-03-20 09:49 ---
(In reply to comment #33)
> Anyway iam glad ffmpeg compiles fine under icc.
Me to. Now you will troll in their support lists.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552
--- Comment #33 from michaelni at gmx dot at 2008-03-20 01:37 ---
Subject: Re: compiled trivial vector intrinsic code is
inefficient
On Wed, Mar 19, 2008 at 11:39:18PM -, uros at gcc dot gnu dot org wrote:
>
>
> --- Comment #26 from uros at gcc dot gnu dot org 2008-0
--- Comment #32 from astrange at ithinksw dot com 2008-03-20 00:39 ---
This is missed on trees:
mmxdw dw;
mmxw w;
void test2(){
w= __builtin_ia32_paddw(w,w); w= (mmxdw)w;
}
void test3(){
mmxw w2= __builtin_ia32_paddw(w,w); dw= (mmxdw)w2;
}
test2 ()
{
vector short int
--- Comment #31 from pinskia at gmail dot com 2008-03-20 00:23 ---
Subject: Re: compiled trivial vector intrinsic code is inefficient
See pr 33790.
Sent from my iPhone
On Mar 19, 2008, at 17:04, "ubizjak at gmail dot com" <[EMAIL PROTECTED]
> wrote:
>
>
> --- Comment #30 from
See pr 33790.
Sent from my iPhone
On Mar 19, 2008, at 17:04, "ubizjak at gmail dot com" <[EMAIL PROTECTED]
> wrote:
--- Comment #30 from ubizjak at gmail dot com 2008-03-20 00:04
---
(In reply to comment #28)
(In reply to comment #27)
The store is not useless. Reload from "_w"
--- Comment #30 from ubizjak at gmail dot com 2008-03-20 00:04 ---
(In reply to comment #28)
> (In reply to comment #27)
> > The store is not useless. Reload from "_w" is how gcc handles double stores
> > nowadays and is not mmx specific. It looks that some pass forgot to check
> > wher
--- Comment #29 from ubizjak at gmail dot com 2008-03-20 00:01 ---
Now we generate:
-m32 -mmmx -msse2:
test:
subl$20, %esp
movlw, %eax
movlw+4, %edx
movl%ebx, 12(%esp)
movl%esi, 16(%esp)
movl%eax, (%esp)
mo
--- Comment #28 from pinskia at gcc dot gnu dot org 2008-03-19 23:49
---
(In reply to comment #27)
> The store is not useless. Reload from "_w" is how gcc handles double stores
> nowadays and is not mmx specific. It looks that some pass forgot to check
> where
> the value came from.
D
--- Comment #27 from ubizjak at gmail dot com 2008-03-19 23:46 ---
(In reply to comment #25)
> Actually the first generates-
> subl$12, %esp
> movq_w, %mm0
> paddw %mm0, %mm0
> movq%mm0, _w
> movq_w, %mm0
> movq%mm0, _
--- Comment #26 from uros at gcc dot gnu dot org 2008-03-19 23:39 ---
Subject: Bug 14552
Author: uros
Date: Wed Mar 19 23:38:35 2008
New Revision: 133354
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133354
Log:
PR target/14552
* config/i386/mmx.md (*mov_interna
--- Comment #25 from astrange at ithinksw dot com 2008-03-19 19:39 ---
Actually the first generates-
subl$12, %esp
movq_w, %mm0
paddw %mm0, %mm0
movq%mm0, _w
movq_w, %mm0
movq%mm0, _dw
addl$12, %esp
--- Comment #24 from astrange at ithinksw dot com 2008-03-19 19:21 ---
For
typedef short mmxw __attribute__ ((mode(V4HI)));
typedef int mmxdw __attribute__ ((mode(V2SI)));
mmxdw dw;
mmxw w;
void test(){
w+=w;
dw= (mmxdw)w;
}
void test2(){
w= __builtin_ia32_paddw(w,w
--- Comment #23 from ubizjak at gmail dot com 2008-03-19 10:45 ---
As said in PR 19161:
The LCM infrastructure doesn't support mode switching in the way that would be
usable for emms. Additionally, there are MANY problems expected when sharing
x87 and MMX registers (i.e. handling of uni
--- Comment #22 from ubizjak at gmail dot com 2008-03-08 07:29 ---
*** Bug 25277 has been marked as a duplicate of this bug. ***
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552
--- Comment #21 from pluto at agmk dot net 2005-12-01 00:52 ---
I'm wondering is it possible to implement tranformations
of vector arithmetics into vector builtins?
e.g.
#include
__v8qi foo(const __v8qi x, const __v8qi y) { return x + y; }
__v8qi bar(const __v8qi x, const __v8qi y) {
--- Comment #20 from pluto at agmk dot net 2005-11-21 18:38 ---
(In reply to comment #19)
> (In reply to comment #18)
> > can we classify this as a code size regression?
>
> No because 3.3.x was also wrong in the sense it did not emit an emms.
ok.
gcc 4.1.0/20051113 with x87/mmx mode
--- Comment #19 from pinskia at gcc dot gnu dot org 2005-11-21 15:09
---
(In reply to comment #18)
> can we classify this as a code size regression?
No because 3.3.x was also wrong in the sense it did not emit an emms.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552
--- Comment #18 from pluto at agmk dot net 2005-11-21 15:05 ---
gcc-3.3.6 produces better code:
test: movqw, %mm1
psllw $1, %mm1
movq%mm1, w
movqw, %mm1
movq%mm1, dw
ret
.comm dw,8,8
.comm w,8,8
can we cl
--- Comment #17 from pcarlini at suse dot de 2005-11-21 11:34 ---
Sorry.
--
pcarlini at suse dot de changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot
--
pcarlini at suse dot de changed:
What|Removed |Added
AssignedTo|uros at kss-loka dot si |unassigned at gcc dot gnu
||do
24 matches
Mail list logo