diff options
author | Sanjay Patel <spatel@rotateright.com> | 2017-08-22 16:21:45 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2017-08-22 16:21:45 +0000 |
commit | 40b8e3bfe5a0e8bc98a9a48964cdc44d0a4d0e98 (patch) | |
tree | 33cddaf2e81aab9c6d9fa4c56fd6bbe57372b302 | |
parent | 0343ef86728874d26ecbfe7f4b6dd24781001fcf (diff) | |
download | bcm5719-llvm-40b8e3bfe5a0e8bc98a9a48964cdc44d0a4d0e98.tar.gz bcm5719-llvm-40b8e3bfe5a0e8bc98a9a48964cdc44d0a4d0e98.zip |
[x86] simplify runs and auto-generate full checks
I've replaced the two OS-specific runs with a generic run because
there's no functional difference in the resulting output that
we're checking. Also, the script still doesn't work with a Win
target.
llvm-svn: 311463
-rw-r--r-- | llvm/test/CodeGen/X86/bool-zext.ll | 73 |
1 files changed, 40 insertions, 33 deletions
diff --git a/llvm/test/CodeGen/X86/bool-zext.ll b/llvm/test/CodeGen/X86/bool-zext.ll index 5cc758c06b5..b2680c570e0 100644 --- a/llvm/test/CodeGen/X86/bool-zext.ll +++ b/llvm/test/CodeGen/X86/bool-zext.ll @@ -1,56 +1,63 @@ -; RUN: llc < %s -mtriple=i686-unknown-linux-gnu | FileCheck %s -check-prefix=X86 -; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s -check-prefix=X64 -; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck %s -check-prefix=WIN64 +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s -check-prefix=X32 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s -check-prefix=X64 ; Check that the argument gets zero-extended before calling. -; X86-LABEL: bar1 -; X86: movzbl -; X86: calll -; X64-LABEL: bar1 -; X64: movzbl -; X64: jmp -; WIN64-LABEL: bar1 -; WIN64: movzbl -; WIN64: callq define void @bar1(i1 zeroext %v1) nounwind ssp { -entry: +; X32-LABEL: bar1: +; X32: # BB#0: +; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax +; X32-NEXT: pushl %eax +; X32-NEXT: calll foo1 +; X32-NEXT: addl $4, %esp +; X32-NEXT: retl +; +; X64-LABEL: bar1: +; X64: # BB#0: +; X64-NEXT: movzbl %dil, %edi +; X64-NEXT: xorl %eax, %eax +; X64-NEXT: jmp foo1 # TAILCALL %conv = zext i1 %v1 to i32 %call = tail call i32 (...) @foo1(i32 %conv) nounwind ret void } ; Check that on x86-64 the arguments are simply forwarded. -; X64-LABEL: bar2 -; X64-NOT: movzbl -; X64: jmp -; WIN64-LABEL: bar2 -; WIN64-NOT: movzbl -; WIN64: callq define void @bar2(i8 zeroext %v1) nounwind ssp { -entry: +; X32-LABEL: bar2: +; X32: # BB#0: +; X32-NEXT: movzbl {{[0-9]+}}(%esp), %eax +; X32-NEXT: pushl %eax +; X32-NEXT: calll foo1 +; X32-NEXT: addl $4, %esp +; X32-NEXT: retl +; +; X64-LABEL: bar2: +; X64: # BB#0: +; X64-NEXT: xorl %eax, %eax +; X64-NEXT: jmp foo1 # TAILCALL %conv = zext i8 %v1 to i32 %call = tail call i32 (...) @foo1(i32 %conv) nounwind ret void } ; Check that i1 return values are not zero-extended. -; X86-LABEL: bar3 -; X86: call -; X86-NEXT: {{add|pop}} -; X86-NEXT: ret -; X64-LABEL: bar3 -; X64: call -; X64-NEXT: {{add|pop}} -; X64-NEXT: ret -; WIN64-LABEL: bar3 -; WIN64: call -; WIN64-NEXT: {{add|pop}} -; WIN64-NEXT: ret define zeroext i1 @bar3() nounwind ssp { -entry: +; X32-LABEL: bar3: +; X32: # BB#0: +; X32-NEXT: calll foo2 +; X32-NEXT: retl +; +; X64-LABEL: bar3: +; X64: # BB#0: +; X64-NEXT: pushq %rax +; X64-NEXT: callq foo2 +; X64-NEXT: popq %rcx +; X64-NEXT: retq %call = call i1 @foo2() nounwind ret i1 %call } declare i32 @foo1(...) declare zeroext i1 @foo2() + |