On Fri, Mar 17, 2023 at 02:35:16PM -0500, Segher Boessenkool wrote: > Hi! > > On Thu, Mar 09, 2023 at 08:40:36PM -0500, Michael Meissner wrote: > > PR target/109067 > > * config/rs6000/rs6000.cc (create_complex_muldiv): Delete. > > (init_float128_ieee): Delete code to switch complex multiply and divide > > for long double. > > (complex_multiply_builtin_code): New helper function. > > (complex_divide_builtin_code): Likewise. > > (rs6000_mangle_decl_assembler_name): Add support for mangling the name > > of complex 128-bit multiply and divide built-in functions. > > > --- /dev/null > > +++ b/gcc/testsuite/gcc.target/powerpc/divic3-1.c > > +/* { dg-final { scan-assembler "__divtc3" } } */ > > /* { dg-final { scan-assembler {\m__divtc3\M} } } */ > > It might well be that we can use a sloppier regexp here, but why would > we do that? It is a good thing to use the \m and \M constraint escapes > pretty much always.
The last time I posted the patch, you said: | > +/* { dg-final { scan-assembler "bl __divtc3" } } */ | | This name depends on what object format and ABI is in use (some have an | extra leading underscore, or a dot, or whatever). So the patch was an attempt to match the other cases. > Similar for the other three testcases of course. > > This patch is okay for trunk, if you have tested it on all > configurations (powerpc-linux, powerpc64-linux, powerpc64le-linux with > and without default IEEE128 long double at least). Thank you! > > Does this need backports? I think we will need backports for GCC 12. The issue exists in GCC 11, but I don't think that GCC 11 can really work on systems with IEEE long double, since a lot of the stuff to really finish up the support was not in GCC 11. I think I tried dropping the patch into GCC 12, and it looks like something else may be needed. I will look into it. -- Michael Meissner, IBM PO Box 98, Ayer, Massachusetts, USA, 01432 email: meiss...@linux.ibm.com