https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117189
Bug ID: 117189 Summary: [avr] DSE removing instruction that is not dead Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: gjl at gcc dot gnu.org Target Milestone: --- typedef int __attribute__((mode(SI))) __attribute__((vector_size (16))) vecint; typedef int __attribute__((mode(SI))) siint; vecint i = { 150, 100, 150, 200 }; vecint j = { 10, 13, 20, 30 }; vecint k; int main (void) { k = i / j; /* k = {15, 7, 7, 6} */ if (k[0] != 15 || k[1] != 7) __builtin_abort (); k = i & j; /* k = {2, 4, 20, 8} */ if (k[1] != 4) __builtin_abort (); return 0; } $ avr-gcc -mmcu=atmega128 -O1 -mlra is running into abort with current trunk. Target: avr Configured with: ../../source/gcc-master/configure --target=avr --disable-nls --with-dwarf2 --with-gnu-as --with-gnu-ld --disable-shared --enable-languages=c,c++ GNU C17 (GCC) version 15.0.0 20241016 (experimental) (avr) compiled by GNU C version 13.2.1 20231022, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP