[llvm] [InstCombine] Remove unnecessary one-use-check (PR #66419)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 14 12:17:16 PDT 2023


================
@@ -79,52 +75,3 @@ define <3 x i1> @or_xor_xor_normal_vector(<3 x i1> %a, <3 x i1> %b) {
   %or = or <3 x i1> %xor1, %xor2
   ret <3 x i1> %or
 }
-
-define i3 @or_xor_xor_normal_multiple_uses_and(i3 %a, i3 %b) {
-; CHECK-LABEL: @or_xor_xor_normal_multiple_uses_and(
-; CHECK-NEXT:    [[AND:%.*]] = and i3 [[A:%.*]], [[B:%.*]]
-; CHECK-NEXT:    call void @use.i3(i3 [[AND]])
-; CHECK-NEXT:    [[OR:%.*]] = xor i3 [[A]], [[B]]
-; CHECK-NEXT:    ret i3 [[OR]]
-;
-  %and = and i3 %a, %b
-  call void @use.i3(i3 %and)
-  %xor1 = xor i3 %b, %and
-  %xor2 = xor i3 %a, %and
-  %or = or i3 %xor1, %xor2
-  ret i3 %or
-}
-
-define i32 @or_xor_xor_negative_multiple_uses_xor1(i32 %a, i32 %b) {
-; CHECK-LABEL: @or_xor_xor_negative_multiple_uses_xor1(
-; CHECK-NEXT:    [[AND:%.*]] = and i32 [[A:%.*]], [[B:%.*]]
-; CHECK-NEXT:    [[XOR1:%.*]] = xor i32 [[AND]], [[B]]
-; CHECK-NEXT:    call void @use.i32(i32 [[XOR1]])
-; CHECK-NEXT:    [[XOR2:%.*]] = xor i32 [[AND]], [[A]]
-; CHECK-NEXT:    [[OR:%.*]] = or i32 [[XOR1]], [[XOR2]]
-; CHECK-NEXT:    ret i32 [[OR]]
-;
-  %and = and i32 %a, %b
-  %xor1 = xor i32 %and, %b
-  call void @use.i32(i32 %xor1)
-  %xor2 = xor i32 %and, %a
-  %or = or i32 %xor1, %xor2
-  ret i32 %or
-}
-
-define i5 @or_xor_xor_negative_multiple_uses_xor2(i5 %a, i5 %b) {
-; CHECK-LABEL: @or_xor_xor_negative_multiple_uses_xor2(
-; CHECK-NEXT:    [[AND:%.*]] = and i5 [[A:%.*]], [[B:%.*]]
-; CHECK-NEXT:    [[XOR1:%.*]] = xor i5 [[AND]], [[B]]
-; CHECK-NEXT:    [[XOR2:%.*]] = xor i5 [[AND]], [[A]]
-; CHECK-NEXT:    call void @use.i5(i5 [[XOR2]])
-; CHECK-NEXT:    [[OR:%.*]] = or i5 [[XOR1]], [[XOR2]]
-; CHECK-NEXT:    ret i5 [[OR]]
-;
-  %and = and i5 %a, %b
-  %xor1 = xor i5 %and, %b
-  %xor2 = xor i5 %and, %a
-  call void @use.i5(i5 %xor2)
-  %or = or i5 %xor1, %xor2
-  ret i5 %or
-}
----------------
nikic wrote:

Please keep the multi-use tests, just update the check lines.

https://github.com/llvm/llvm-project/pull/66419


More information about the llvm-commits mailing list