[PATCH] D144284: [X86] Add transform for `(and/or (icmp eq/ne A,-1),(icmp eq/ne A,-1+C))`->`(and/or (icmp eq/ne (and ~A,-1+C),0))`
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 23 18:29:21 PST 2023
- Previous message: [PATCH] D144284: [X86] Add transform for `(and/or (icmp eq/ne A,-1),(icmp eq/ne A,-1+C))`->`(and/or (icmp eq/ne (and ~A,-1+C),0))`
- Next message: [PATCH] D144284: [X86] Add transform for `(and/or (icmp eq/ne A,-1),(icmp eq/ne A,-1+C))`->`(and/or (icmp eq/ne (and ~A,-1+C),0))`
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.
LGTM
================
Comment at: llvm/include/llvm/CodeGen/TargetLowering.h:292
+ ABS = 4,
};
----------------
You might want to add description comments for each enum
================
Comment at: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:5922
LHS0 == RHS0 && LHS1C && RHS1C && OpVT.isInteger() && LHS.hasOneUse() &&
RHS.hasOneUse()) {
const APInt &APLhs = LHS1C->getAPIntValue();
----------------
goldstein.w.n wrote:
> RKSimon wrote:
> > It should (eventually) be possible to support non-uniform constants via ISD::matchBinaryPredicate
> Is there a change here that would make that easier todo in the future? Or are you just referencing the misnamed tests?
Just referencing the misnamed tests - the change itself will be pretty easy
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144284/new/
https://reviews.llvm.org/D144284
- Previous message: [PATCH] D144284: [X86] Add transform for `(and/or (icmp eq/ne A,-1),(icmp eq/ne A,-1+C))`->`(and/or (icmp eq/ne (and ~A,-1+C),0))`
- Next message: [PATCH] D144284: [X86] Add transform for `(and/or (icmp eq/ne A,-1),(icmp eq/ne A,-1+C))`->`(and/or (icmp eq/ne (and ~A,-1+C),0))`
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the llvm-commits
mailing list