[ms-inline asm] Split the parsing of IR asm strings into GCC and MS variants.
[oota-llvm.git] / test / CodeGen / X86 / ms-inline-asm.ll
1 ; RUN: llc < %s -march=x86 | FileCheck %s
2
3 define i32 @t1() nounwind {
4 entry:
5   %0 = tail call i32 asm sideeffect inteldialect "mov eax, $1\0A\09mov $0, eax", "=r,r,~{eax},~{dirflag},~{fpsr},~{flags}"(i32 1) nounwind
6   ret i32 %0
7 ; CHECK: t1
8 ; CHECK: {{## InlineAsm Start|#APP}}
9 ; CHECK: .intel_syntax
10 ; CHECK: mov eax, ecx
11 ; CHECK: mov ecx, eax
12 ; CHECK: .att_syntax
13 ; CHECK: {{## InlineAsm End|#NO_APP}}
14 }
15
16 define void @t2() nounwind {
17 entry:
18   call void asm sideeffect inteldialect "mov eax, $$1", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
19   ret void
20 ; CHECK: t2
21 ; CHECK: {{## InlineAsm Start|#APP}}
22 ; CHECK: .intel_syntax
23 ; CHECK: mov eax, 1
24 ; CHECK: .att_syntax
25 ; CHECK: {{## InlineAsm End|#NO_APP}}
26 }