[llvm] [InstCombine] Fold `(icmp eq/ne (xor x, y), C1)` even if multiuse (PR #87275)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 1 12:11:38 PDT 2024
================
@@ -3698,7 +3698,8 @@ exit:
define i32 @src_select_xxory_eq0_xorxy_y(i32 %x, i32 %y) {
; CHECK-LABEL: @src_select_xxory_eq0_xorxy_y(
; CHECK-NEXT: [[XOR0:%.*]] = icmp eq i32 [[X:%.*]], [[Y:%.*]]
-; CHECK-NEXT: [[COND:%.*]] = select i1 [[XOR0]], i32 0, i32 [[Y]]
+; CHECK-NEXT: [[XOR:%.*]] = select i1 [[XOR0]], i32 [[X]], i32 0
+; CHECK-NEXT: [[COND:%.*]] = xor i32 [[XOR]], [[Y]]
----------------
goldsteinn wrote:
This should be cleaned up by: https://github.com/llvm/llvm-project/pull/73362
https://github.com/llvm/llvm-project/pull/87275
More information about the llvm-commits
mailing list