Use CHECK-LABEL to make this test more strict.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 3 Dec 2013 21:12:36 +0000 (21:12 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 3 Dec 2013 21:12:36 +0000 (21:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196321 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/win32_sret.ll

index 002cac88245a293ca0e3db604a8883e42da73833..527355f85e620af4e663ba67a660dc5f9b54a188 100644 (file)
 
 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