https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115631
Bug ID: 115631 Summary: [15 Regression] GCN: [-PASS:-]{+FAIL:+} c-c++-common/torture/builtin-arith-overflow-6.c -O2 execution test Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: testsuite-fail Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: tschwinge at gcc dot gnu.org CC: ams at gcc dot gnu.org, rsandifo at gcc dot gnu.org Target Milestone: --- Target: GCN With commit r15-1579-g792f97b44ffc5e6a967292b3747fd835e99396e7 "Add a late-combine pass [PR106594]", I see for GCN target testing (tested '-march=gfx908') regress for both C, C++: @@ -191300,7 +191300,7 @@ PASS: c-c++-common/torture/builtin-arith-overflow-6.c -O0 (test for excess er PASS: c-c++-common/torture/builtin-arith-overflow-6.c -O0 execution test UNSUPPORTED: c-c++-common/torture/builtin-arith-overflow-6.c -O1 PASS: c-c++-common/torture/builtin-arith-overflow-6.c -O2 (test for excess errors) [-PASS:-]{+FAIL:+} c-c++-common/torture/builtin-arith-overflow-6.c -O2 execution test UNSUPPORTED: c-c++-common/torture/builtin-arith-overflow-6.c -O3 -g UNSUPPORTED: c-c++-common/torture/builtin-arith-overflow-6.c -Os spawn -ignore SIGHUP [...]/build-gcc/gcc/gcn-run ./builtin-arith-overflow-6.exe GCN Kernel Aborted Kernel aborted FAIL: c-c++-common/torture/builtin-arith-overflow-6.c -O2 execution test With '-fno-late-combine-instructions', it's back to PASS. The diff between good ('-fno-late-combine-instructions') vs. bad ('-flate-combine-instructions') of 'builtin-arith-overflow-6.s' as well as '-fdump-rtl-all' is big, so I'm not able to directly pinpoint one specific issue. I however do observe a number of instances as follows (good vs. bad): [...] s_mov_b64 exec, -1 [...] - s_mov_b32 s12, 0 - v_writelane_b32 v0, s12, 0 s_mov_b64 exec, 1 + v_mov_b32 v0, 0 flat_store_dword v[18:19], v0 [...] Might that "move across 'exec'" be in error?