https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106692
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Started with r238754 but removing that match.pd doesn't help, so the problem is elsewhere. We optimize away zz1_1(D) != 0: __attribute__((fn spec (". w "))) void shape_cray (real(kind=4) & restrict zz1) { integer(kind=8) ptrzz; - integer(kind=8) _2; + integer(kind=8) _3; <bb 2> : - _2 = (integer(kind=8)) zz1_1(D); - if (zz1_1(D) != 0) - goto <bb 3>; [INV] - else - goto <bb 4>; [INV] - - <bb 3> : + _3 = (integer(kind=8)) zz1_1(D); _gfortran_abort (); - <bb 4> : - return; - }