summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/thiscall-struct-return.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/thiscall-struct-return.ll')
-rw-r--r--test/CodeGen/X86/thiscall-struct-return.ll47
1 files changed, 0 insertions, 47 deletions
diff --git a/test/CodeGen/X86/thiscall-struct-return.ll b/test/CodeGen/X86/thiscall-struct-return.ll
deleted file mode 100644
index 0507cb8..0000000
--- a/test/CodeGen/X86/thiscall-struct-return.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llc < %s -mtriple=i386-PC-Win32 | FileCheck %s
-
-%class.C = type { i8 }
-%struct.S = type { i32 }
-%struct.M = type { i32, i32 }
-
-declare void @_ZN1CC1Ev(%class.C* %this) unnamed_addr nounwind align 2
-declare x86_thiscallcc void @_ZNK1C5SmallEv(%struct.S* noalias sret %agg.result, %class.C* %this) nounwind align 2
-declare x86_thiscallcc void @_ZNK1C6MediumEv(%struct.M* noalias sret %agg.result, %class.C* %this) nounwind align 2
-
-define void @testv() nounwind {
-; CHECK: testv:
-; CHECK: leal 16(%esp), %esi
-; CHECK-NEXT: movl %esi, (%esp)
-; CHECK-NEXT: calll _ZN1CC1Ev
-; CHECK: leal 8(%esp), %eax
-; CHECK-NEXT: movl %esi, %ecx
-; CHECK-NEXT: calll _ZNK1C5SmallEv
-entry:
- %c = alloca %class.C, align 1
- %tmp = alloca %struct.S, align 4
- call void @_ZN1CC1Ev(%class.C* %c)
- ; This call should put the return structure as a pointer
- ; into EAX instead of returning directly in EAX. The this
- ; pointer should go into ECX
- call x86_thiscallcc void @_ZNK1C5SmallEv(%struct.S* sret %tmp, %class.C* %c)
- ret void
-}
-
-define void @test2v() nounwind {
-; CHECK: test2v:
-; CHECK: leal 16(%esp), %esi
-; CHECK-NEXT: movl %esi, (%esp)
-; CHECK-NEXT: calll _ZN1CC1Ev
-; CHECK: leal 8(%esp), %eax
-; CHECK-NEXT: movl %esi, %ecx
-; CHECK-NEXT: calll _ZNK1C6MediumEv
-entry:
- %c = alloca %class.C, align 1
- %tmp = alloca %struct.M, align 4
- call void @_ZN1CC1Ev(%class.C* %c)
- ; This call should put the return structure as a pointer
- ; into EAX instead of returning directly in EAX/EDX. The this
- ; pointer should go into ECX
- call x86_thiscallcc void @_ZNK1C6MediumEv(%struct.M* sret %tmp, %class.C* %c)
- ret void
-}
OpenPOWER on IntegriCloud