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)