#include <mmintrin.h> void foo (__m64 *p) { __m64 m;
m = p[0]; m = _mm_srli_pi16(m, 2); m = _mm_slli_pi16(m, 8); p[0] = m; _mm_empty(); } ICEs with both -O2 -m32 and -O2 -m64, in GCC 4.0.2, 4.1rc1 as well as trunk. -- Summary: ICE on vector shift RTL simplification Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org GCC target triplet: i386-linux, x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26379