https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112369
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Keywords|needs-reduction |ice-on-valid-code Status|UNCONFIRMED |NEW Last reconfirmed| |2023-11-03 --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced C (and C++) code: ``` struct GdkRGBA2 { double a[4]; }; struct GdkRGBA3 { float a[4]; }; struct GdkRGBA3 f(struct GdkRGBA2 *color) { struct GdkRGBA3 t1; for(int i = 0; i < 4; i++) t1.a[i] = color->a[i]; struct GdkRGBA3 t2; for(int i = 0; i < 4; i++) { float tmp = t1.a[i]; if (__builtin_isnan(tmp)) t2.a[i] = tmp; } return t2; } ``` It is related to unord folding with convert on a vector type.