summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-12-03 21:12:36 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-12-03 21:12:36 +0000
commitb972f33cdddc8222d4ed20cffb508e32cba9a6dc (patch)
treea332e0d0fe4d66ec5bbb9ad68fd4583f64612d14 /test
parent21a9fd247ef20f03f6ac8d61daa20d44e39c11b5 (diff)
downloadllvm-b972f33cdddc8222d4ed20cffb508e32cba9a6dc.tar.gz
llvm-b972f33cdddc8222d4ed20cffb508e32cba9a6dc.tar.bz2
llvm-b972f33cdddc8222d4ed20cffb508e32cba9a6dc.tar.xz
Use CHECK-LABEL to make this test more strict.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196321 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/win32_sret.ll34
1 files changed, 20 insertions, 14 deletions
diff --git a/test/CodeGen/X86/win32_sret.ll b/test/CodeGen/X86/win32_sret.ll
index 002cac8824..527355f85e 100644
--- a/test/CodeGen/X86/win32_sret.ll
+++ b/test/CodeGen/X86/win32_sret.ll
@@ -13,15 +13,15 @@
define void @sret1(i8* sret %x) nounwind {
entry:
-; WIN32: sret1
+; WIN32-LABEL: _sret1:
; WIN32: movb $42, (%eax)
; WIN32-NOT: popl %eax
; WIN32: {{ret$}}
-; MINGW_X86: sret1
+; MINGW_X86-LABEL: _sret1:
; MINGW_X86: ret $4
-; LINUX: sret1
+; LINUX-LABEL: sret1:
; LINUX: ret $4
store i8 42, i8* %x, align 4
@@ -30,15 +30,15 @@ entry:
define void @sret2(i8* sret %x, i8 %y) nounwind {
entry:
-; WIN32: sret2
+; WIN32-LABEL: _sret2:
; WIN32: movb {{.*}}, (%eax)
; WIN32-NOT: popl %eax
; WIN32: {{ret$}}
-; MINGW_X86: sret2
+; MINGW_X86-LABEL: _sret2:
; MINGW_X86: ret $4
-; LINUX: sret2
+; LINUX-LABEL: sret2:
; LINUX: ret $4
store i8 %y, i8* %x
@@ -47,16 +47,16 @@ entry:
define void @sret3(i8* sret %x, i8* %y) nounwind {
entry:
-; WIN32: sret3
+; WIN32-LABEL: _sret3:
; WIN32: movb $42, (%eax)
; WIN32-NOT: movb $13, (%eax)
; WIN32-NOT: popl %eax
; WIN32: {{ret$}}
-; MINGW_X86: sret3
+; MINGW_X86-LABEL: _sret3:
; MINGW_X86: ret $4
-; LINUX: sret3
+; LINUX-LABEL: sret3:
; LINUX: ret $4
store i8 42, i8* %x
@@ -69,15 +69,15 @@ entry:
define void @sret4(%struct.S4* noalias sret %agg.result) {
entry:
-; WIN32: sret4
+; WIN32-LABEL: _sret4:
; WIN32: movl $42, (%eax)
; WIN32-NOT: popl %eax
; WIN32: {{ret$}}
-; MINGW_X86: sret4
+; MINGW_X86-LABEL: _sret4:
; MINGW_X86: ret $4
-; LINUX: sret4
+; LINUX-LABEL: sret4:
; LINUX: ret $4
%x = getelementptr inbounds %struct.S4* %agg.result, i32 0, i32 0
@@ -96,7 +96,9 @@ entry:
%x = getelementptr inbounds %struct.S5* %agg.result, i32 0, i32 0
store i32 42, i32* %x, align 4
ret void
-; WIN32: {{^}}"?foo@C5@@QAE?AUS5@@XZ":
+; WIN32-LABEL: {{^}}"?foo@C5@@QAE?AUS5@@XZ":
+; MINGW_X86-LABEL: {{^}}"?foo@C5@@QAE?AUS5@@XZ":
+; LINUX-LABEL: {{^}}"?foo@C5@@QAE?AUS5@@XZ":
; The address of the return structure is passed as an implicit parameter.
; In the -O0 build, %eax is spilled at the beginning of the function, hence we
@@ -111,7 +113,10 @@ entry:
%c = alloca %class.C5, align 1
%s = alloca %struct.S5, align 4
call x86_thiscallcc void @"\01?foo@C5@@QAE?AUS5@@XZ"(%struct.S5* sret %s, %class.C5* %c)
-; WIN32: {{^}}_call_foo5:
+; WIN32-LABEL: {{^}}_call_foo5:
+; MINGW_X86-LABEL: {{^}}_call_foo5:
+; LINUX-LABEL: {{^}}call_foo5:
+
; Load the address of the result and put it onto stack
; (through %ecx in the -O0 build).
@@ -130,6 +135,7 @@ entry:
define void @test6_f(%struct.test6* %x) nounwind {
; WIN32-LABEL: _test6_f:
; MINGW_X86-LABEL: _test6_f:
+; LINUX-LABEL: test6_f:
; The %x argument is moved to %ecx. It will be the this pointer.
; WIN32: movl 8(%ebp), %ecx