https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127587

            Bug ID: 127587
           Summary: [GCN, gfx906] FAIL:
                    gcc.dg/vect/vect-alias-check-ptr-info-2.c execution
                    test
           Product: gcc
           Version: 17.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, ptomsich at gcc dot gnu.org
  Target Milestone: ---
            Target: amdgcn

For '--target=amdgcn-amdhsa', '-march=gfx906' (but not 'gfx90a', 'gfx1100', for
example), the new PR127201 'gcc.dg/vect/vect-alias-check-ptr-info-2.c' test
case fails its execution test.

    PASS: gcc.dg/vect/vect-alias-check-ptr-info-2.c (test for excess errors)
    FAIL: gcc.dg/vect/vect-alias-check-ptr-info-2.c execution test

This is due to 'if (res != expect) abort ();'.

Instrumented per:

    @@ -48,3 +48,6 @@ main (void)
       if (res != expect)
    +    {
    +      __builtin_printf("res = %g (%lx)\nexpect = %g (%lx)\n", res, res,
expect, expect);
         abort ();
    +    }
       return 0;

..., I see:

    res = 268 (4070bffffe141414)
    expect = 268 (4070c00000000000)

Should the test case allow for some epsilon in the 'res' vs. 'expect'
comparison, or is the 'res' computation in 'f' meant to be exact?  Is the an
issue in the AMD GPU back end (at least for gfx906)?

Reply via email to