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)?