xref: /llvm-project/clang/test/CodeGen/inline-asm-mixed-style.c (revision 3c311b022283450acbdd6af22862e913649a5452)
1 // RUN: %clang_cc1 -ffreestanding -triple i386-unknown-unknown -fasm-blocks -O0 -S %s -o - | FileCheck %s
2 // RUN: %clang_cc1 -ffreestanding -triple x86_64-unknown-unknown -fasm-blocks -O0 -S %s -o - | FileCheck %s
3 // REQUIRES: x86-registered-target
4 
5 #include <immintrin.h>
6 
f(void)7 void f(void) {
8   __asm mov eax, ebx
9   __asm mov ebx, ecx
10   __asm__("movl %ecx, %edx");
11   // CHECK: movl    %ebx, %eax
12   // CHECK: movl    %ecx, %ebx
13   // CHECK: movl    %ecx, %edx
14 
15   __asm mov eax, ebx
16   __asm volatile ("movl %ecx, %edx");
17   // CHECK: movl    %ebx, %eax
18   // CHECK: movl    %ecx, %edx
19 
20   __asm volatile goto ("movl %ecx, %edx");
21   // CHECK: movl    %ecx, %edx
22 
23   __asm mov eax, ebx
24   __asm goto ("movl %ecx, %edx");
25   // CHECK: movl    %ebx, %eax
26   // CHECK: movl    %ecx, %edx
27 }
28