https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89229
--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> --- [hjl@gnu-4 i386]$ cat pr89229-2.c /* { dg-do compile } */ /* { dg-options "-O2 -march=skylake-avx512" } */ typedef __int128 __m128t __attribute__ ((__vector_size__ (16), __may_alias__)); __m128t foo (void) { register __int128 xmm16 __asm ("xmm16") = (__int128) -1; asm volatile ("" : "+v" (xmm16)); return (__m128t) xmm16; } /* { dg-final { scan-assembler-not "%zmm\[0-9\]+" } } */ [hjl@gnu-4 i386]$ gcc -O2 -march=skylake-avx512 -S pr89229-2.c -o /tmp/x.s [hjl@gnu-4 i386]$ cat /tmp/x.s .file "pr89229-2.c" .text .p2align 4,,15 .globl foo .type foo, @function foo: .LFB0: .cfi_startproc vpternlogd $0xFF, %zmm16, %zmm16, %zmm16 <<<<<<< Should be xmm16 vmovdqa64 %xmm16, %xmm0 ret .cfi_endproc .LFE0: .size foo, .-foo .ident "GCC: (GNU) 8.2.1 20190209 (Red Hat 8.2.1-8)" .section .note.GNU-stack,"",@progbits [hjl@gnu-4 i386]$