Hi! The ICE on this testcase was fixed by r14-7141.
Tested on x86_64-linux -m32/-m64 with current trunk as well as older trunk which still ICEd, committed to trunk as obvious. 2024-01-15 Jakub Jelinek <ja...@redhat.com> PR rtl-optimization/113048 * gcc.target/i386/pr113048.c: New test. --- gcc/testsuite/gcc.target/i386/pr113048.c.jj 2024-01-15 17:25:50.186423929 +0100 +++ gcc/testsuite/gcc.target/i386/pr113048.c 2024-01-15 17:25:41.643539577 +0100 @@ -0,0 +1,26 @@ +/* PR rtl-optimization/113048 */ +/* { dg-do compile } */ +/* { dg-options "-O -march=cascadelake -fwrapv" } */ + +signed char a, b, c; +int d; +const char *e, *q; +short f; +int g; + +void +foo (int x, long long y, long long z) +{ + unsigned char h = x; + int i = __builtin_strncmp (q, e, 2); + h /= g; + unsigned long long j = (~z & (0xfb5856dd8a4d4702ULL & f) / 0) * h; /* { dg-warning "division by zero" } */ + b += __builtin_add_overflow_p (d, c, 0); + signed char k = y; + long l = -k & sizeof (0); + long long m = y + j + z + h + 3 + l; + int n = m + i; + short o = n + f; + signed char p = o + h + k; + a = p; +} Jakub