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 +} _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits