[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-08-01 Thread ubizjak at gmail dot com


--- Comment #7 from ubizjak at gmail dot com  2010-08-01 10:01 ---
(In reply to comment #6)
 -   (set_attr mode SF)])
 +   (set_attr mode SF,SF,*)])
 
 SI?

No, this belongs to movss insns from vec_setmode_0 pattern.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-08-01 Thread uros at gcc dot gnu dot org


--- Comment #8 from uros at gcc dot gnu dot org  2010-08-01 10:42 ---
Subject: Bug 45142

Author: uros
Date: Sun Aug  1 10:41:57 2010
New Revision: 162797

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162797
Log:
PR target/45142
* config/i386/sse.md (vec_setmode_0): Do not set mode attribute for
alternative 2.
(vec_setmoode_0 splitter): Use SSEMODE4S mode iterator to also
split V4SI operands.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-08-01 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2010-08-01 10:43 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-07-31 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2010-07-31 10:54 ---
Created an attachment (id=21363)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21363action=view)
Untested patch

 which only allows V4SF mode.  It probably should be macroized to use
 SSEMODE4S.

Yes, it should handle all modes of vec_setmode_0 insn. Attached patch fixes
this oversight and fixes the failure.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-07-31 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2010-07-31 11:02 ---
BTW: Even with the fix, the testcase fails with -O2 -mavx:

pr45142.c: In function ‘main’:
pr45142.c:6:5: error: invalid conversion in gimple call
vector(4) int

vector(16) char

# VUSE .MEM_38
i2.1_4 = __builtin_ia32_pshufb128 ({ 0, 3, 2, 1 }, mask.4);

pr45142.c:6:5: internal compiler error: verify_stmts failed


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-07-31 11:02:57
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-07-31 Thread rguenther at suse dot de


--- Comment #5 from rguenther at suse dot de  2010-07-31 11:17 ---
Subject: Re:  split for *vec_setmode_0_sse2 incomplete

On Sat, 31 Jul 2010, ubizjak at gmail dot com wrote:

 --- Comment #4 from ubizjak at gmail dot com  2010-07-31 11:02 ---
 BTW: Even with the fix, the testcase fails with -O2 -mavx:
 
 pr45142.c: In function ?main?:
 pr45142.c:6:5: error: invalid conversion in gimple call
 vector(4) int
 
 vector(16) char
 
 # VUSE .MEM_38
 i2.1_4 = __builtin_ia32_pshufb128 ({ 0, 3, 2, 1 }, mask.4);
 
 pr45142.c:6:5: internal compiler error: verify_stmts failed

Yes, that's a known issue with that version of the patch.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-07-31 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-07-31 12:06 ---
-   (set_attr mode SF)])
+   (set_attr mode SF,SF,*)])

SI?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-07-30 Thread rth at gcc dot gnu dot org


--- Comment #1 from rth at gcc dot gnu dot org  2010-07-30 14:17 ---
Test case?


-- 

rth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142



[Bug target/45142] split for *vec_setmode_0_sse2 incomplete

2010-07-30 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2010-07-30 14:24 ---
Created an attachment (id=21360)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21360action=view)
required patch

Together with attached patch (from the vector-enhancement GSoC project).

#define vector(elcount, type)  \
__attribute__((vector_size((elcount)*sizeof(type type

#define vidx(type, vec, idx) (*(((type *) (vec)) + idx))

int main (int argc, char **argv)
{
   vector (4, int) i0 = {argc, 1,2,3};
   vector(4,int) i2;
   vector (4, int) imask = {0,3,2,1};
   int a, b, c;

   if (argc  4)
   __builtin_abort ();

   i2 = __builtin_shuffle (imask, i0);

   b = 0;
   if (vidx (int,imask,b) == vidx (int, i2, b))
  __builtin_abort ();

   return 0;
}

ICEs at -O2 on x86_64.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45142