blob: 18a2e8a66879ab60e091899f67660d64734f26cb [file] [log] [blame]
Chad Rosier48a05b92012-08-08 21:15:52 +00001// RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -O0 -fms-extensions -fenable-experimental-ms-inline-asm -w -emit-llvm -o - | FileCheck %s
Chad Rosierb64f3102012-08-08 20:37:31 +00002
3void t1() {
4// CHECK: @t1
Chad Rosier74896e02012-08-10 00:00:34 +00005// CHECK: call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
Chad Rosierb64f3102012-08-08 20:37:31 +00006// CHECK: ret void
7 __asm {}
8}
Chad Rosier265f5382012-08-13 20:32:07 +00009
10void t2() {
11// CHECK: @t2
Chad Rosier21ef7112012-08-14 19:22:06 +000012// CHECK: call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
13// CHECK: call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
14// CHECK: call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
Chad Rosier265f5382012-08-13 20:32:07 +000015// CHECK: ret void
16 __asm nop
17 __asm nop
18 __asm nop
19}
20
21void t3() {
22// CHECK: @t3
Chad Rosier21ef7112012-08-14 19:22:06 +000023// CHECK: call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
24// CHECK: call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
25// CHECK: call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
Chad Rosier265f5382012-08-13 20:32:07 +000026// CHECK: ret void
27 __asm nop __asm nop __asm nop
28}
29
30void t4(void) {
31// CHECK: @t4
Chad Rosier21ef7112012-08-14 19:22:06 +000032// CHECK: call void asm sideeffect "mov ebx, eax", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
33// CHECK: call void asm sideeffect "mov ecx, ebx", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
Chad Rosier265f5382012-08-13 20:32:07 +000034// CHECK: ret void
35 __asm mov ebx, eax
36 __asm mov ecx, ebx
37}
38
39void t5(void) {
40// CHECK: @t5
Chad Rosier21ef7112012-08-14 19:22:06 +000041// CHECK: call void asm sideeffect "mov ebx, eax", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
42// CHECK: call void asm sideeffect "mov ecx, ebx", "~{dirflag},~{fpsr},~{flags}"() nounwind ia_nsdialect
Chad Rosier265f5382012-08-13 20:32:07 +000043// CHECK: ret void
44 __asm mov ebx, eax __asm mov ecx, ebx
45}