[llvm] 81733fd - [X86] Pre-commit the test-shrink.ll changes from D86578.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 30 12:25:32 PDT 2020
Author: Craig Topper
Date: 2020-08-30T12:25:18-07:00
New Revision: 81733fd2765792b3d9dac40847a7c3c1eed9a836
URL: https://github.com/llvm/llvm-project/commit/81733fd2765792b3d9dac40847a7c3c1eed9a836
DIFF: https://github.com/llvm/llvm-project/commit/81733fd2765792b3d9dac40847a7c3c1eed9a836.diff
LOG: [X86] Pre-commit the test-shrink.ll changes from D86578.
The conditions in these tests are guaranteed to always
go one direction. InstCombine would have folded them away.
Added:
Modified:
llvm/test/CodeGen/X86/test-shrink.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/X86/test-shrink.ll b/llvm/test/CodeGen/X86/test-shrink.ll
index 993b78c3f40e..5f7779fa1912 100644
--- a/llvm/test/CodeGen/X86/test-shrink.ll
+++ b/llvm/test/CodeGen/X86/test-shrink.ll
@@ -579,7 +579,7 @@ define void @and16_trunc_8_sign(i16 %x) nounwind {
; CHECK-LINUX64-LABEL: and16_trunc_8_sign:
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: testb $-128, %dil
-; CHECK-LINUX64-NEXT: jg .LBB13_2
+; CHECK-LINUX64-NEXT: js .LBB13_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -591,7 +591,7 @@ define void @and16_trunc_8_sign(i16 %x) nounwind {
; CHECK-WIN32-64: # %bb.0:
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: testb $-128, %cl
-; CHECK-WIN32-64-NEXT: jg .LBB13_2
+; CHECK-WIN32-64-NEXT: js .LBB13_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB13_2: # %no
@@ -601,14 +601,14 @@ define void @and16_trunc_8_sign(i16 %x) nounwind {
; CHECK-X86-LABEL: and16_trunc_8_sign:
; CHECK-X86: # %bb.0:
; CHECK-X86-NEXT: testb $-128, {{[0-9]+}}(%esp)
-; CHECK-X86-NEXT: jg .LBB13_2
+; CHECK-X86-NEXT: js .LBB13_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB13_2: # %no
; CHECK-X86-NEXT: retl
%t = and i16 %x, 128
%r = trunc i16 %t to i8
- %s = icmp sle i8 %r, 0
+ %s = icmp sge i8 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -622,7 +622,7 @@ define void @and32_trunc_8_sign(i32 %x) nounwind {
; CHECK-LINUX64-LABEL: and32_trunc_8_sign:
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: testb $-128, %dil
-; CHECK-LINUX64-NEXT: jg .LBB14_2
+; CHECK-LINUX64-NEXT: js .LBB14_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -634,7 +634,7 @@ define void @and32_trunc_8_sign(i32 %x) nounwind {
; CHECK-WIN32-64: # %bb.0:
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: testb $-128, %cl
-; CHECK-WIN32-64-NEXT: jg .LBB14_2
+; CHECK-WIN32-64-NEXT: js .LBB14_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB14_2: # %no
@@ -644,14 +644,14 @@ define void @and32_trunc_8_sign(i32 %x) nounwind {
; CHECK-X86-LABEL: and32_trunc_8_sign:
; CHECK-X86: # %bb.0:
; CHECK-X86-NEXT: testb $-128, {{[0-9]+}}(%esp)
-; CHECK-X86-NEXT: jg .LBB14_2
+; CHECK-X86-NEXT: js .LBB14_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB14_2: # %no
; CHECK-X86-NEXT: retl
%t = and i32 %x, 128
%r = trunc i32 %t to i8
- %s = icmp sle i8 %r, 0
+ %s = icmp sge i8 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -665,7 +665,7 @@ define void @and64_trunc_8_sign(i64 %x) nounwind {
; CHECK-LINUX64-LABEL: and64_trunc_8_sign:
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: testb $-128, %dil
-; CHECK-LINUX64-NEXT: jg .LBB15_2
+; CHECK-LINUX64-NEXT: js .LBB15_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -677,7 +677,7 @@ define void @and64_trunc_8_sign(i64 %x) nounwind {
; CHECK-WIN32-64: # %bb.0:
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: testb $-128, %cl
-; CHECK-WIN32-64-NEXT: jg .LBB15_2
+; CHECK-WIN32-64-NEXT: js .LBB15_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB15_2: # %no
@@ -687,14 +687,14 @@ define void @and64_trunc_8_sign(i64 %x) nounwind {
; CHECK-X86-LABEL: and64_trunc_8_sign:
; CHECK-X86: # %bb.0:
; CHECK-X86-NEXT: testb $-128, {{[0-9]+}}(%esp)
-; CHECK-X86-NEXT: jg .LBB15_2
+; CHECK-X86-NEXT: js .LBB15_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB15_2: # %no
; CHECK-X86-NEXT: retl
%t = and i64 %x, 128
%r = trunc i64 %t to i8
- %s = icmp sle i8 %r, 0
+ %s = icmp sge i8 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -709,7 +709,7 @@ define void @and32_trunc_16_sign(i32 %x) nounwind {
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: andl $32768, %edi # imm = 0x8000
; CHECK-LINUX64-NEXT: testw %di, %di
-; CHECK-LINUX64-NEXT: jg .LBB16_2
+; CHECK-LINUX64-NEXT: js .LBB16_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -722,7 +722,7 @@ define void @and32_trunc_16_sign(i32 %x) nounwind {
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: andl $32768, %ecx # imm = 0x8000
; CHECK-WIN32-64-NEXT: testw %cx, %cx
-; CHECK-WIN32-64-NEXT: jg .LBB16_2
+; CHECK-WIN32-64-NEXT: js .LBB16_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB16_2: # %no
@@ -734,14 +734,14 @@ define void @and32_trunc_16_sign(i32 %x) nounwind {
; CHECK-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
; CHECK-X86-NEXT: andl $32768, %eax # imm = 0x8000
; CHECK-X86-NEXT: testw %ax, %ax
-; CHECK-X86-NEXT: jg .LBB16_2
+; CHECK-X86-NEXT: js .LBB16_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB16_2: # %no
; CHECK-X86-NEXT: retl
%t = and i32 %x, 32768
%r = trunc i32 %t to i16
- %s = icmp sle i16 %r, 0
+ %s = icmp sge i16 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -755,7 +755,7 @@ define void @and32_trunc_16_sign_minsize(i32 %x) minsize nounwind {
; CHECK-LINUX64-LABEL: and32_trunc_16_sign_minsize:
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: testw $-32768, %di # imm = 0x8000
-; CHECK-LINUX64-NEXT: jg .LBB17_2
+; CHECK-LINUX64-NEXT: js .LBB17_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -767,7 +767,7 @@ define void @and32_trunc_16_sign_minsize(i32 %x) minsize nounwind {
; CHECK-WIN32-64: # %bb.0:
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: testw $-32768, %cx # imm = 0x8000
-; CHECK-WIN32-64-NEXT: jg .LBB17_2
+; CHECK-WIN32-64-NEXT: js .LBB17_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB17_2: # %no
@@ -778,14 +778,14 @@ define void @and32_trunc_16_sign_minsize(i32 %x) minsize nounwind {
; CHECK-X86: # %bb.0:
; CHECK-X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
; CHECK-X86-NEXT: testw $-32768, %ax # imm = 0x8000
-; CHECK-X86-NEXT: jg .LBB17_2
+; CHECK-X86-NEXT: js .LBB17_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB17_2: # %no
; CHECK-X86-NEXT: retl
%t = and i32 %x, 32768
%r = trunc i32 %t to i16
- %s = icmp sle i16 %r, 0
+ %s = icmp sge i16 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -800,7 +800,7 @@ define void @and64_trunc_16_sign(i64 %x) nounwind {
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: andl $32768, %edi # imm = 0x8000
; CHECK-LINUX64-NEXT: testw %di, %di
-; CHECK-LINUX64-NEXT: jg .LBB18_2
+; CHECK-LINUX64-NEXT: js .LBB18_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -813,7 +813,7 @@ define void @and64_trunc_16_sign(i64 %x) nounwind {
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: andl $32768, %ecx # imm = 0x8000
; CHECK-WIN32-64-NEXT: testw %cx, %cx
-; CHECK-WIN32-64-NEXT: jg .LBB18_2
+; CHECK-WIN32-64-NEXT: js .LBB18_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB18_2: # %no
@@ -825,14 +825,14 @@ define void @and64_trunc_16_sign(i64 %x) nounwind {
; CHECK-X86-NEXT: movl $32768, %eax # imm = 0x8000
; CHECK-X86-NEXT: andl {{[0-9]+}}(%esp), %eax
; CHECK-X86-NEXT: testw %ax, %ax
-; CHECK-X86-NEXT: jg .LBB18_2
+; CHECK-X86-NEXT: js .LBB18_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB18_2: # %no
; CHECK-X86-NEXT: retl
%t = and i64 %x, 32768
%r = trunc i64 %t to i16
- %s = icmp sle i16 %r, 0
+ %s = icmp sge i16 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -846,7 +846,7 @@ define void @and64_trunc_16_sign_minsize(i64 %x) minsize nounwind {
; CHECK-LINUX64-LABEL: and64_trunc_16_sign_minsize:
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: testw $-32768, %di # imm = 0x8000
-; CHECK-LINUX64-NEXT: jg .LBB19_2
+; CHECK-LINUX64-NEXT: js .LBB19_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -858,7 +858,7 @@ define void @and64_trunc_16_sign_minsize(i64 %x) minsize nounwind {
; CHECK-WIN32-64: # %bb.0:
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: testw $-32768, %cx # imm = 0x8000
-; CHECK-WIN32-64-NEXT: jg .LBB19_2
+; CHECK-WIN32-64-NEXT: js .LBB19_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB19_2: # %no
@@ -868,14 +868,14 @@ define void @and64_trunc_16_sign_minsize(i64 %x) minsize nounwind {
; CHECK-X86-LABEL: and64_trunc_16_sign_minsize:
; CHECK-X86: # %bb.0:
; CHECK-X86-NEXT: testw $-32768, {{[0-9]+}}(%esp) # imm = 0x8000
-; CHECK-X86-NEXT: jg .LBB19_2
+; CHECK-X86-NEXT: js .LBB19_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB19_2: # %no
; CHECK-X86-NEXT: retl
%t = and i64 %x, 32768
%r = trunc i64 %t to i16
- %s = icmp sle i16 %r, 0
+ %s = icmp sge i16 %r, 0
br i1 %s, label %yes, label %no
yes:
@@ -889,7 +889,7 @@ define void @and64_trunc_32_sign(i64 %x) nounwind {
; CHECK-LINUX64-LABEL: and64_trunc_32_sign:
; CHECK-LINUX64: # %bb.0:
; CHECK-LINUX64-NEXT: testl $-2147483648, %edi # imm = 0x80000000
-; CHECK-LINUX64-NEXT: jg .LBB20_2
+; CHECK-LINUX64-NEXT: js .LBB20_2
; CHECK-LINUX64-NEXT: # %bb.1: # %yes
; CHECK-LINUX64-NEXT: pushq %rax
; CHECK-LINUX64-NEXT: callq bar
@@ -901,7 +901,7 @@ define void @and64_trunc_32_sign(i64 %x) nounwind {
; CHECK-WIN32-64: # %bb.0:
; CHECK-WIN32-64-NEXT: subq $40, %rsp
; CHECK-WIN32-64-NEXT: testl $-2147483648, %ecx # imm = 0x80000000
-; CHECK-WIN32-64-NEXT: jg .LBB20_2
+; CHECK-WIN32-64-NEXT: js .LBB20_2
; CHECK-WIN32-64-NEXT: # %bb.1: # %yes
; CHECK-WIN32-64-NEXT: callq bar
; CHECK-WIN32-64-NEXT: .LBB20_2: # %no
@@ -911,14 +911,14 @@ define void @and64_trunc_32_sign(i64 %x) nounwind {
; CHECK-X86-LABEL: and64_trunc_32_sign:
; CHECK-X86: # %bb.0:
; CHECK-X86-NEXT: testl $-2147483648, {{[0-9]+}}(%esp) # imm = 0x80000000
-; CHECK-X86-NEXT: jg .LBB20_2
+; CHECK-X86-NEXT: js .LBB20_2
; CHECK-X86-NEXT: # %bb.1: # %yes
; CHECK-X86-NEXT: calll bar
; CHECK-X86-NEXT: .LBB20_2: # %no
; CHECK-X86-NEXT: retl
%t = and i64 %x, 2147483648
%r = trunc i64 %t to i32
- %s = icmp sle i32 %r, 0
+ %s = icmp sge i32 %r, 0
br i1 %s, label %yes, label %no
yes:
More information about the llvm-commits
mailing list