https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126456
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2026-07-29
Ever confirmed|0 |1
Target Milestone|--- |14.5
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
```
/* These was part of minmax phiopt. */
/* Optimize (a CMP b) ? minmax<a, c> : minmax<b, c>
to minmax<min/max<a, b>, c> */
(for minmax (min max)
(for cmp (lt le gt ge ne)
(simplify
(cond (cmp:c @1 @3) (minmax:c @1 @4) (minmax:c @2 @4))
(with
{
tree_code code = minmax_from_comparison (cmp, @1, @2, @1, @3);
}
(if (code == MIN_EXPR)
(minmax (min @1 @2) @4)
(if (code == MAX_EXPR)
(minmax (max @1 @2) @4)))))))
```
//(a <= 6) ? (a < c ? a : c) : (5 < c ? 5 : c);
a <= 6 ? min(a,c): min(5,c)
min(c, a <= 6 ? a : 5)
Wait I see the problem, I switched around @2 and @3 arguments to
minmax_from_comparison . The arguments are `arg1 arg2(CMP) arg3 ? arg4 :
arg5`.`