Compiling the following functions with gcc-4.{1,2,3} results in an ICE. gcc-3.4.4 does not ICE:
#include <emmintrin.h> static inline __m128i my_asm(__m128i a, __m128i b) { __m128i result; asm("pshufb\t%1,%0" : "=x"(result) : "X"(b), "0"(a)); return result; } __m128i foo(__m128i src) { return my_asm(src, _mm_set1_epi32(1)); } If the inline asm is called directly (not through an inline function) or if the "X" constraint changes to "mx" everything works fine. -- Summary: Regression: ICE when using inline asm constraint "X" Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: scovich at gmail dot com GCC target triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32711