diff options
Diffstat (limited to 'llvm/test/Transforms/InstCombine/bit-checks.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/bit-checks.ll | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/bit-checks.ll b/llvm/test/Transforms/InstCombine/bit-checks.ll index 43cd6dd..936c02c 100644 --- a/llvm/test/Transforms/InstCombine/bit-checks.ll +++ b/llvm/test/Transforms/InstCombine/bit-checks.ll @@ -1335,6 +1335,22 @@ define i1 @no_masks_with_logical_or(i32 %a, i32 %b, i32 noundef %c) { ret i1 %or2 } +define i1 @no_masks_with_logical_or_commuted(i32 %a, i32 %b, i32 noundef %c) { +; CHECK-LABEL: @no_masks_with_logical_or_commuted( +; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i32 [[B:%.*]], 63 +; CHECK-NEXT: [[C:%.*]] = or i32 [[C1:%.*]], [[A:%.*]] +; CHECK-NEXT: [[CMP3:%.*]] = icmp ne i32 [[C]], 0 +; CHECK-NEXT: [[OR2:%.*]] = select i1 [[CMP3]], i1 true, i1 [[CMP2]] +; CHECK-NEXT: ret i1 [[OR2]] +; + %cmp1 = icmp ne i32 %a, 0 + %cmp2 = icmp ne i32 %b, 63 + %or1 = select i1 %cmp1, i1 true, i1 %cmp2 + %cmp3 = icmp ne i32 %c, 0 + %or2 = or i1 %cmp3, %or1 + ret i1 %or2 +} + define i1 @no_masks_with_logical_or2(i32 %a, i32 %b, i32 noundef %c) { ; CHECK-LABEL: @no_masks_with_logical_or2( ; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i32 [[B:%.*]], 63 |