This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}
- From: "marc.glisse at normalesup dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Mar 2012 20:57:16 +0000
- Subject: [Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}
- Auto-submitted: auto-generated
- References: <bug-52607-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607
--- Comment #22 from Marc Glisse <marc.glisse at normalesup dot org> 2012-03-27 20:57:16 UTC ---
(In reply to comment #20)
> Lastly for each routine it is desirable to think whether it might be useful for
> other vector modes (likely 32-byte only) for TARGET_AVX2.
I am not very familiar with the integer versions, so I tried:
#include <x86intrin.h>
__v32qi f(__v32qi x){
__v32qi
m={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
return __builtin_shuffle(x,m);
}
$ gcc r.c -S -O1 -mavx && cat r.s
r.c: In function 'f':
r.c:2:9: error: invalid position or size operand to BIT_FIELD_REF
BIT_FIELD_REF <x_2(D), 8, -128>
r.c:2:9: note: in statement
D.5992_24 = BIT_FIELD_REF <x_2(D), 8, -128>;
r.c:2:9: error: invalid position or size operand to BIT_FIELD_REF
BIT_FIELD_REF <x_2(D), 8, -120>
r.c:2:9: note: in statement
D.5993_25 = BIT_FIELD_REF <x_2(D), 8, -120>;
[...]
r.c:2:9: internal compiler error: verify_gimple failed
(with -mavx2 it works fine)