diff options
Diffstat (limited to 'test/CodeGen/X86/ms-inline-asm.ll')
-rw-r--r-- | test/CodeGen/X86/ms-inline-asm.ll | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/test/CodeGen/X86/ms-inline-asm.ll b/test/CodeGen/X86/ms-inline-asm.ll index 24d28adda8..403da3f34e 100644 --- a/test/CodeGen/X86/ms-inline-asm.ll +++ b/test/CodeGen/X86/ms-inline-asm.ll @@ -61,3 +61,110 @@ entry: ; CHECK: .att_syntax ; CHECK: {{## InlineAsm End|#NO_APP}} } + +define void @t21() nounwind { +; CHECK: t21 +entry: + br label %foo + +foo: ; preds = %entry + call void asm sideeffect inteldialect "mov eax, [4*eax + 4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [4*eax + 4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [4*eax][4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [4*eax][4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi + eax]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi + eax] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi][eax]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi][eax] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi + 4*eax]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi + 4*eax] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi][4*eax]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi][4*eax] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi + eax + 4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi + eax + 4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi][eax + 4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi][eax + 4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi + eax][4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi + eax][4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi][eax][4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi][eax][4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi + 2*eax + 4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi + 2*eax + 4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi][2*eax + 4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi][2*eax + 4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi + 2*eax][4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi + 2*eax][4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + call void asm sideeffect inteldialect "mov eax, [esi][2*eax][4]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind +; CHECK: {{## InlineAsm Start|#APP}} +; CHECK: .intel_syntax +; CHECK: mov eax, [esi][2*eax][4] +; CHECK: .att_syntax +; CHECK: {{## InlineAsm End|#NO_APP}} + + ret void +} |