xref: /llvm-project/clang/test/CodeGen/inline-asm-output-variant.c (revision 4a9da96dc68d878893399210888a03117b39b802)
1*4a9da96dSFangrui Song // REQUIRES: x86-registered-target
2*4a9da96dSFangrui Song /// AT&T input
3*4a9da96dSFangrui Song // RUN: %clang_cc1 -triple x86_64 -S --output-asm-variant=0 %s -o - | FileCheck --check-prefix=ATT %s
4*4a9da96dSFangrui Song // RUN: %clang_cc1 -triple x86_64 -S --output-asm-variant=1 %s -o - | FileCheck --check-prefix=INTEL %s
5*4a9da96dSFangrui Song 
6*4a9da96dSFangrui Song /// Intel input
7*4a9da96dSFangrui Song // RUN: %clang_cc1 -triple x86_64 -S -D INTEL -mllvm -x86-asm-syntax=intel -inline-asm=intel %s -o - | FileCheck --check-prefix=INTEL %s
8*4a9da96dSFangrui Song // RUN: %clang_cc1 -triple x86_64 -S -D INTEL -mllvm -x86-asm-syntax=intel -inline-asm=intel --output-asm-variant=1 %s -o - | FileCheck --check-prefix=INTEL %s
9*4a9da96dSFangrui Song 
10*4a9da96dSFangrui Song // ATT: movl $1, %eax
11*4a9da96dSFangrui Song // ATT: movl $2, %eax
12*4a9da96dSFangrui Song 
13*4a9da96dSFangrui Song // INTEL: mov eax, 1
14*4a9da96dSFangrui Song // INTEL: mov eax, 2
15*4a9da96dSFangrui Song 
16*4a9da96dSFangrui Song #ifdef INTEL
17*4a9da96dSFangrui Song asm("mov eax, 1");
18*4a9da96dSFangrui Song void foo() {
19*4a9da96dSFangrui Song   asm("mov eax, 2");
20*4a9da96dSFangrui Song }
21*4a9da96dSFangrui Song #else
22*4a9da96dSFangrui Song asm("mov $1, %eax");
23*4a9da96dSFangrui Song void foo() {
24*4a9da96dSFangrui Song   asm("mov $2, %eax");
25*4a9da96dSFangrui Song }
26*4a9da96dSFangrui Song #endif
27