[PATCH] D34515: [ARM] Materialise some boolean values to avoid a branch
Roger Ferrer Ibanez via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 21 08:24:08 PDT 2017
rogfer01 added inline comments.
================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:10015-10025
+ if (N->getOpcode() == ARMISD::SUBC) {
+ // (SUBC (ADDE 0, 0, C), 1) -> C
+ SDValue LHS = N->getOperand(0);
+ SDValue RHS = N->getOperand(1);
+ if (LHS->getOpcode() == ARMISD::ADDE &&
+ isNullConstant(LHS->getOperand(0)) &&
+ isNullConstant(LHS->getOperand(1)) && isOneConstant(RHS)) {
----------------
I think this may make the `ADDC` combiner above redundant as `ADDC x, -1` will usually become `SUBC x, 1`. I'll try to see if I can remove the `ADDC` one.
https://reviews.llvm.org/D34515
More information about the llvm-commits
mailing list