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