https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115143
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2024-05-18 Status|UNCONFIRMED |ASSIGNED --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Looks to be maybe mine. Before phiopt we start out with: if (f.7_6 != 0) goto <bb 9>; [INV] else goto <bb 10>; [INV] <bb 9> : # iftmp.10_12 = PHI <h_22(D)(8)> _25 = MIN_EXPR <f.7_6, iftmp.10_12>; iftmp.6_26 = (short int) _25; <bb 10> : # iftmp.6_10 = PHI <iftmp.6_26(9), 0(8)> And then we move the cast outside of the if condition: ``` PHI iftmp.6_10 changed to factor operation out from COND_EXPR. New stmt with OPERATION that defines iftmp.6_10. Applying pattern match.pd:7193, generic-match-6.cc:1904 Applying pattern match.pd:4062, gimple-match-7.cc:15093 Removing basic block 9 ;; basic block 9, loop depth 0 ;; pred: 8 # iftmp.10_12 = PHI <h_22(D)(8)> ;; succ: 10 ``` the bug is in minmax part of phiopt and I think it was caused by my r14-4279-g68fa82e2d8f868 . Anyways removing minmax is on my plan but I have not gotten to the patches yet.