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?

Reply via email to