Use CHECK-LABEL to make this test more strict.

llvm-svn: 196321
This commit is contained in:
Rafael Espindola 2013-12-03 21:12:36 +00:00
parent 2ec3db36f5
commit f4d34153f5
1 changed files with 20 additions and 14 deletions

View File

@ -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