diff options
author | Michael Meissner <meissner@linux.ibm.com> | 2023-03-20 14:48:06 -0400 |
---|---|---|
committer | Michael Meissner <meissner@linux.ibm.com> | 2023-03-20 14:48:06 -0400 |
commit | c67f312d20e15e5aa18c587693b4ab7e131596c1 (patch) | |
tree | 8249ecffa76f724bc6fb500d08a2cf5b44934d29 /gcc/value-range.h | |
parent | 4410a08b80cc40342eeaa5b6af824cd4352b218c (diff) | |
download | gcc-c67f312d20e15e5aa18c587693b4ab7e131596c1.zip gcc-c67f312d20e15e5aa18c587693b4ab7e131596c1.tar.gz gcc-c67f312d20e15e5aa18c587693b4ab7e131596c1.tar.bz2 |
Rework 128-bit complex multiply and divide.
This patch reworks how the complex multiply and divide built-in functions are
done. Previously GCC created built-in declarations for doing long double complex
multiply and divide when long double is IEEE 128-bit. However, it did not
support __ibm128 complex multiply and divide if long double is IEEE 128-bit.
This code does not create the built-in declaration with the changed name.
Instead, it uses the TARGET_MANGLE_DECL_ASSEMBLER_NAME hook to change the name
before it is written out to the assembler file like it now does for all of the
other long double built-in functions.
2023-03-20 Michael Meissner <meissner@linux.ibm.com>
gcc/
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.
gcc/testsuite/
PR target/109067
* gcc.target/powerpc/divic3-1.c: New test.
* gcc.target/powerpc/divic3-2.c: Likewise.
* gcc.target/powerpc/mulic3-1.c: Likewise.
* gcc.target/powerpc/mulic3-2.c: Likewise.
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions