https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106959
--- Comment #3 from Arseny Solokha <asolokha at gmx dot com> --- Here's a shorter testcase that AFAICT doesn't rely on UB: unsigned __int128 m; int n; __attribute__ ((simd)) void foo (int x) { x = n ? n : (short int) x; if (x) m /= 2; } gcc 13.0.0 20221016 snapshot ICEs on that w/ just -O2 -fpeel-loops (and, optionally, --param max-combine-insns=2, as before).