on 2024/4/29 15:20, Alexandre Oliva wrote: > On Apr 28, 2024, "Kewen.Lin" <li...@linux.ibm.com> wrote: > >> OK, from this perspective IMHO it seems more clear to adopt xfail >> with effective target long_double_64bit? > > That's effective target is quite broken, alas. I doubt it's used > anywhere: it calls an undefined proc, and its memcmp call seems to have > the size cut&pasto-ed from the 128-bit functions. (a patchlet that > fixes these most glaring issues is below) > > Furthermore, it doesn't really work. Since it adds -mlong-double-64 for > the effective target test, it overrides the default, so it sort of > always passes, even on a 128-bit long double target. But since the test > itself doesn't add that option, any xfails on long_double_64bit would be > flagged as XPASS. > > There's no effective target test for 64-bit long double that doesn't > override the default, so we'd have to add one. Alas, the natural name > for it is the one that's taken with overriding behavior, and the current > option-overriding tests, that need to be used along with the > corresponding add-options in testcases, might benefit from a renaming to > make them fit the already-established (?) naming standards. Yuck. >
Oops, it's really out of my expectation, I just noticed that no test cases are using this effective target and the commit r12-3151-g4c5d76a655b9ab contributing this even doesn't adopt it. Thanks for catching this and sorry that I didn't check it before suggesting it, I think we can aggressively drop this effective target instead to avoid any possible confusion. CC Mike for this. How about the generic one "longdouble64"? I did a grep and found it has one use, I'd expect it can work here. :) gcc/testsuite//gcc.target/powerpc/pr99708.c:/* { dg-xfail-run-if "unsupported type __ibm128 with long-double-64" { longdouble64 } } */ BR, Kewen > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index 182d80129de9b..603da25c97d67 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -2961,12 +2961,12 @@ proc check_effective_target_long_double_64bit { } { > /* eliminate removing volatile cast warning. */ > a2 = a; > b2 = b; > - if (memcmp (&a2, &b2, 16) != 0) > + if (memcmp (&a2, &b2, 8) != 0) > return 1; > sprintf (buffer, "%lg", b); > return strcmp (buffer, "3") != 0; > } > - } [add_options_for_ppc_long_double_override_64bit ""]] > + } [add_options_for_long_double_64bit ""]] > } > > # Return the appropriate options to specify that long double uses the IEEE > >