From b972f33cdddc8222d4ed20cffb508e32cba9a6dc Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Tue, 3 Dec 2013 21:12:36 +0000 Subject: [PATCH] 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 --- test/CodeGen/X86/win32_sret.ll | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/test/CodeGen/X86/win32_sret.ll b/test/CodeGen/X86/win32_sret.ll index 002cac88245..527355f85e6 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 -- 2.34.1