[Bug tree-optimization/95408] Failure to optimize bitwise and with negated conditional using the same operand to conditional with decremented operand

2023-09-16 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2023-08-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2023-05-12 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2021-04-25 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95408

Andrew Pinski  changed:

   What|Removed |Added

   Severity|normal  |enhancement