https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117095
Bug ID: 117095 Summary: [13/14/15 Regression] Wrong code since r13-5103-g7c9f20fcfdc2d8 Product: gcc Version: unknown Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: stefansf at gcc dot gnu.org Target Milestone: --- Target: s390*-*-* short a, b; int c, e, main_r; long f, g; int *h = &c, *i; volatile __int128 j; char k, l; char m(char n, char o) { return n + o; } char p(char n, char o) { return o == 0 ? n : n / o; } short fn3(short n) { return n - a; } int main() { char *q = &l; int **s = &i; *s = &main_r; for (e = 0; e <= 5; e++) { for (g = 1; g <= 5; g++) { k = m(9, *i); **s = p(f > 1, (1 && j) ^ k); } } b = fn3(q == &l); *h = b; if (c != 1) __builtin_abort(); } If compiled using -march=z15 -O2 the program aborts and succeeds with -O{0,1}. Bisection stops at r13-5103-g7c9f20fcfdc2d8 which itself is probably not the culprit.