236
|
1 // RUN: %clang_cc1 -ffreestanding -triple i386-unknown-unknown -fasm-blocks -O0 -emit-llvm -S %s -o - | FileCheck %s
|
|
2 // RUN: %clang_cc1 -ffreestanding -triple x86_64-unknown-unknown -fasm-blocks -O0 -emit-llvm -S %s -o - | FileCheck %s
|
150
|
3 // REQUIRES: x86-registered-target
|
|
4
|
236
|
5 #include <immintrin.h>
|
|
6
|
|
7 void f(void) {
|
150
|
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 }
|