https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89229
--- Comment #15 from H.J. Lu <hjl.tools at gmail dot com> --- [hjl@gnu-4 gcc]$ cat /tmp/x.c /* { dg-do compile { target { ! ia32 } } } */ /* { dg-options "-O2 -march=skylake-avx512 -mprefer-vector-width=512" } */ extern double d; void foo1 (double x) { register double xmm16 __asm ("xmm16") = x; asm volatile ("" : "+v" (xmm16)); d = xmm16; } /* { dg-final { scan-assembler-not "%zmm\[0-9\]+" } } */ [hjl@gnu-4 gcc]$ gcc -S -O2 -march=skylake-avx512 /tmp/x.c -mprefer-vector-width=512 [hjl@gnu-4 gcc]$ cat x.s .file "x.c" .text .p2align 4,,15 .globl foo1 .type foo1, @function foo1: .LFB0: .cfi_startproc vmovapd %zmm0, %zmm16 vmovsd %xmm16, d(%rip) ret .cfi_endproc .LFE0: .size foo1, .-foo1 .ident "GCC: (GNU) 8.2.1 20190209 (Red Hat 8.2.1-8)" .section .note.GNU-stack,"",@progbits [hjl@gnu-4 gcc]$