The GNU assembler (used in gcc) complains about the syntactic correctness of
the assembly code (at line 9) generated by clang (with the option -no-integrated-as).
We need to delete the white space in "{%k1} {z}" (at line 9) to make both GCC and LLVM happy.
iron@CSE:demo$ cat -n main.s
1 .text 2 .file "main.c" 3 .globl main # -- Begin function main 4 .p2align 4, 0x90 5 .type main,@function 6 main: # @main 7 .cfi_startproc 8 # %bb.0: # %entry 9 vmovdqu16 %zmm5 , %zmm5 {%k1} {z} 10 xorl %eax, %eax 11 retq 12 .Lfunc_end0: 13 .size main, .Lfunc_end0-main 14 .cfi_endproc 15 # -- End function 16 17 .ident "clang" 18 .section ".note.GNU-stack","",@progbits
iron@CSE:demo$ clang -c main.s -o main.o
iron@CSE:demo$ gcc -c main.s -o main.o
main.s: Assembler messages:
main.s:9: Error: unknown vector operation: ` {z}'
Fix the comment as well.