[llvm] 416854d - [InstSimplify] Precommit new testcases; NFC

Dávid Bolvanský via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 16 10:12:16 PST 2021


Author: Dávid Bolvanský
Date: 2021-01-16T19:11:58+01:00
New Revision: 416854d0f7cda90def07e9b4aee14505f222b0b3

URL: https://github.com/llvm/llvm-project/commit/416854d0f7cda90def07e9b4aee14505f222b0b3
DIFF: https://github.com/llvm/llvm-project/commit/416854d0f7cda90def07e9b4aee14505f222b0b3.diff

LOG: [InstSimplify] Precommit new testcases; NFC

Added: 
    

Modified: 
    llvm/test/Transforms/InstSimplify/or.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstSimplify/or.ll b/llvm/test/Transforms/InstSimplify/or.ll
index 7e7361d12395..68d2af4a4041 100644
--- a/llvm/test/Transforms/InstSimplify/or.ll
+++ b/llvm/test/Transforms/InstSimplify/or.ll
@@ -395,3 +395,71 @@ define i32 @and_or_not_or4_use3(i32 %A, i32 %B) {
   %i5 = or i32 %i4, %i2
   ret i32 %i5
 }
+
+define i32 @and_or_not_or5(i32 %A, i32 %B) {
+; CHECK-LABEL: @and_or_not_or5(
+; CHECK-NEXT:    [[I:%.*]] = xor i32 [[A:%.*]], -1
+; CHECK-NEXT:    [[I2:%.*]] = and i32 [[B:%.*]], [[I]]
+; CHECK-NEXT:    [[I3:%.*]] = or i32 [[B]], [[A]]
+; CHECK-NEXT:    [[I4:%.*]] = xor i32 [[I3]], -1
+; CHECK-NEXT:    [[I5:%.*]] = or i32 [[I2]], [[I4]]
+; CHECK-NEXT:    ret i32 [[I5]]
+;
+  %i = xor i32 %A, -1
+  %i2 = and i32 %B, %i
+  %i3 = or i32 %B, %A
+  %i4 = xor i32 %i3, -1
+  %i5 = or i32 %i2, %i4
+  ret i32 %i5
+}
+
+define i32 @and_or_not_or6(i32 %A, i32 %B) {
+; CHECK-LABEL: @and_or_not_or6(
+; CHECK-NEXT:    [[I:%.*]] = xor i32 [[A:%.*]], -1
+; CHECK-NEXT:    [[I2:%.*]] = and i32 [[I]], [[B:%.*]]
+; CHECK-NEXT:    [[I3:%.*]] = or i32 [[B]], [[A]]
+; CHECK-NEXT:    [[I4:%.*]] = xor i32 [[I3]], -1
+; CHECK-NEXT:    [[I5:%.*]] = or i32 [[I4]], [[I2]]
+; CHECK-NEXT:    ret i32 [[I5]]
+;
+  %i = xor i32 %A, -1
+  %i2 = and i32 %i, %B
+  %i3 = or i32 %B, %A
+  %i4 = xor i32 %i3, -1
+  %i5 = or i32 %i4, %i2
+  ret i32 %i5
+}
+
+define i32 @and_or_not_or7(i32 %A, i32 %B) {
+; CHECK-LABEL: @and_or_not_or7(
+; CHECK-NEXT:    [[I:%.*]] = xor i32 [[A:%.*]], -1
+; CHECK-NEXT:    [[I2:%.*]] = and i32 [[B:%.*]], [[I]]
+; CHECK-NEXT:    [[I3:%.*]] = or i32 [[B]], [[A]]
+; CHECK-NEXT:    [[I4:%.*]] = xor i32 [[I3]], -1
+; CHECK-NEXT:    [[I5:%.*]] = or i32 [[I4]], [[I2]]
+; CHECK-NEXT:    ret i32 [[I5]]
+;
+  %i = xor i32 %A, -1
+  %i2 = and i32 %B, %i
+  %i3 = or i32 %B, %A
+  %i4 = xor i32 %i3, -1
+  %i5 = or i32 %i4, %i2
+  ret i32 %i5
+}
+
+define i32 @and_or_not_or8(i32 %A, i32 %B) {
+; CHECK-LABEL: @and_or_not_or8(
+; CHECK-NEXT:    [[I:%.*]] = xor i32 [[B:%.*]], -1
+; CHECK-NEXT:    [[I2:%.*]] = and i32 [[A:%.*]], [[I]]
+; CHECK-NEXT:    [[I3:%.*]] = or i32 [[B]], [[A]]
+; CHECK-NEXT:    [[I4:%.*]] = xor i32 [[I3]], -1
+; CHECK-NEXT:    [[I5:%.*]] = or i32 [[I4]], [[I2]]
+; CHECK-NEXT:    ret i32 [[I5]]
+;
+  %i = xor i32 %B, -1
+  %i2 = and i32 %A, %i
+  %i3 = or i32 %B, %A
+  %i4 = xor i32 %i3, -1
+  %i5 = or i32 %i4, %i2
+  ret i32 %i5
+}


        


More information about the llvm-commits mailing list