#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