https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101024

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=95699

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
After https://gcc.gnu.org/pipermail/gcc-patches/2023-May/617758.html, these are
testcases that fail if we remove minmax_replacement :
FAIL: gcc.dg/tree-ssa/phi-opt-20.c scan-tree-dump-times phiopt1 "MAX_EXPR" 2
FAIL: gcc.dg/tree-ssa/phi-opt-20.c scan-tree-dump-times phiopt1 "MIN_EXPR" 2

phiopt match-simplify trying:
        num_2(D) != 0 ? num_2(D) : 1
        num_2(D) != 4294967295 ? num_2(D) : 4294967294
        num_2(D) != -2147483648 ? num_2(D) : -2147483647
        num_2(D) != 2147483647 ? num_2(D) : 2147483646

This should be reasonable to handle minmax_from_comparison and handle eq/ne for
the cases where that is called.


FAIL: gcc.dg/tree-ssa/pr95699.c scan-tree-dump optimized "MAX_EXPR
<[^>\n\r]*9223372036854775808[^>\n\r]*>"
FAIL: gcc.dg/tree-ssa/pr95699.c scan-tree-dump optimized "MIN_EXPR
<[^>\n\r]*9223372036854775808[^>\n\r]*>"

These are a bit more complex though:
  x.0_1 = (signed long) x_3(D);
        x.0_1 >= 0 ? 9223372036854775808 (0x8000000000000000) : x_3(D)


  x.1_1 = (signed long) x_3(D);
        x.1_1 < 0 ? 9223372036854775808 (0x8000000000000000) : x_3(D)

Reply via email to