https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118696
Bug ID: 118696 Summary: [15 Regression] qemu miscompilation on s390x Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- static inline __int128 foo (unsigned long long x, unsigned long long y) { return (unsigned __int128) y << 64 | x; } __attribute__((noipa)) __int128 bar (__int128 x, __int128 y) { return x < y ? x : y; } int main () { __int128 a = foo (0x10000, 0); if (bar (foo (0, 1), a) != a) __builtin_abort (); } is miscompiled with -O0 -march=z13 or -O2 -march=z13 (but not e.g. -march=z10). It is bar aka MIN_EXPR that is miscompiled, r15-7041 still works ok, r15-7054 fails. Bisecting now.