1 // REQUIRES: x86-registered-target
2 
3 // RUN:%clang_cc1 %s -ferror-limit 0 -triple=x86_64-pc -target-feature +avx512f -target-feature +avx2 -target-feature +avx512vl -S -o -  | FileCheck %s -check-prefix CHECK
4 
5 // This test is to check if the prefix in inline assembly is correctly
6 // preserved.
7 
check_inline_prefix(void)8 void check_inline_prefix(void) {
9   __asm__ (
10 // CHECK: vcvtps2pd %xmm0, %xmm1
11 // CHECK: {vex} vcvtps2pd %xmm0, %xmm1
12 // CHECK: {vex2} vcvtps2pd %xmm0, %xmm1
13 // CHECK: {vex3} vcvtps2pd %xmm0, %xmm1
14 // CHECK: {evex} vcvtps2pd %xmm0, %xmm1
15 // CHECK: movl $1, (%rax)
16 // CHECK: {disp8}  movl $1, (%rax)
17 // CHECK: {disp32} movl $1, (%rax)
18     "vcvtps2pd %xmm0, %xmm1\n\t"
19     "{vex} vcvtps2pd %xmm0, %xmm1\n\t"
20     "{vex2} vcvtps2pd %xmm0, %xmm1\n\t"
21     "{vex3} vcvtps2pd %xmm0, %xmm1\n\t"
22     "{evex} vcvtps2pd %xmm0, %xmm1\n\t"
23     "movl $1, (%rax)\n\t"
24     "{disp8} movl $1, (%rax)\n\t"
25     "{disp32} movl $1, (%rax)\n\t"
26   );
27 }
28