https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110487
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Keywords| |wrong-code Last reconfirmed| |2023-06-29 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Applying pattern match.pd:4705, gimple-match-10.cc:15878 gimple_simplified to _38 = (<signed-boolean:32>) _16; _66 = -_38; Global Exported: _66 = [irange] <signed-boolean:32> [-1, 0] Folded into: _66 = -_38; /* a ? -1 : 0 -> -a. No need to check the TYPE_PRECISION not being 1 here as the powerof2cst case above will handle that case correctly. */ (if (INTEGRAL_TYPE_P (type) && integer_all_onesp (@1)) (negate (convert (convert:boolean_type_node @0)))))) I guess is mine ....