https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84786
--- Comment #15 from Matthias Kretz <kretz at kde dot org> --- Here's an idea for a test case (https://godbolt.org/g/SjM2HE: it appears fixed on GCC 8): typedef unsigned short V __attribute__((vector_size (16))); V foo (V x, int y) { x <<= y; asm volatile (""::"x"(x):"xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"); return x >> y; }