[llvm] [InstCombine] Canonicalize `icmp eq/ne (A ^ C), B` to `icmp eq/ne (A ^ B), C` (PR #67273)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 25 12:27:52 PDT 2023
================
@@ -83,8 +83,8 @@ define i1 @cmpeq_xor_cst1_multiuse(i32 %a, i32 %b) {
define i1 @cmpeq_xor_cst1_commuted(i32 %a, i32 %b) {
; CHECK-LABEL: @cmpeq_xor_cst1_commuted(
-; CHECK-NEXT: [[C:%.*]] = xor i32 [[A:%.*]], 10
-; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[C]], [[B:%.*]]
----------------
nikic wrote:
Not actually commuted. You need "thwart complexity-based canonicalization".
https://github.com/llvm/llvm-project/pull/67273
More information about the llvm-commits
mailing list