[Bug tree-optimization/95408] Failure to optimize bitwise and with negated conditional using the same operand to conditional with decremented operand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95408 Andrew Pinski changed: What|Removed |Added URL||https://gcc.gnu.org/piperma ||il/gcc-patches/2023-Septemb ||er/630651.html Keywords||patch --- Comment #3 from Andrew Pinski --- I was looking for this one when I wrote https://gcc.gnu.org/pipermail/gcc-patches/2023-September/630651.html .
[Bug tree-optimization/95408] Failure to optimize bitwise and with negated conditional using the same operand to conditional with decremented operand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95408 --- Comment #2 from Andrew Pinski --- In forwprop1 we have: _2 = x.0_1 <= 121210; _3 = (int) _2; _4 = _3 * x_5(D); _6 = _4 != 0; since _3 is zero_one_valued we could do instead: ``` (for cmp (ne eq ) bitop (bit_and bit_ior) (simplify (cmp (mult zero_one_valued_p@0 @1) integer_zerop@2) (bitop! (convert @0) (ne @1 @2 ``` And we should be able to get it earlier on. Still mine and I will look into the above.
[Bug tree-optimization/95408] Failure to optimize bitwise and with negated conditional using the same operand to conditional with decremented operand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95408 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Last reconfirmed||2023-05-13 Status|UNCONFIRMED |ASSIGNED --- Comment #1 from Andrew Pinski --- For unsigned x (to simplify things first). In forwardprop4 we have _1 = x_4(D) <= 121211; _3 = _1 ? x_4(D) : 0; _5 = _3 != 0; This could be done as: x_4(D) <= 121211 ? x_4(D) != 0 : 0 Which then would be: (x_4(D) <= 121211 & x_4(D) != 0) ((x_4(D) - 1) <= 121210) So I have a patch which does the second step into the 3rd expression (there is another bug or 2 about it). the 3rd expression into the final is already done. It is just the first that needs to happen to written up. Something like this for the first step. (for op (tcc_comparison) /* (c ? a : CST0) op CST1 --> c ? (a op CST1) : (CST0 op CST1) */ (simplify (op (cond:s @0 @1 CONSTANT_CLASS_P@2) CONSTANT_CLASS_P@3) (cond! @0 (op @1 @3) (op @2 @4))) So mine.
[Bug tree-optimization/95408] Failure to optimize bitwise and with negated conditional using the same operand to conditional with decremented operand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95408 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement