Do you have a testcase please?
The master branch has been updated by Michael Meissner <meissner@gcc.gnu.org>: https://gcc.gnu.org/g:c67f312d20e15e5aa18c587693b4ab7e131596c1 commit r13-6763-gc67f312d20e15e5aa18c587693b4ab7e131596c1 Author: Michael Meissner <meissner@linux.ibm.com> Date: Mon Mar 20 14:48:06 2023 -0400 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.
The releases/gcc-12 branch has been updated by Michael Meissner <meissner@gcc.gnu.org>: https://gcc.gnu.org/g:908d9c7e6ed4be95d39b7b01056dda365f379947 commit r12-9394-g908d9c7e6ed4be95d39b7b01056dda365f379947 Author: Michael Meissner <meissner@linux.ibm.com> Date: Mon Apr 10 22:46:34 2023 -0400 Backport from master 2023-04-10 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. Backport from master, 3/20/2023. (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. Backport from master, 3/20/2023. * gcc.target/powerpc/divic3-2.c: Likewise. * gcc.target/powerpc/mulic3-1.c: Likewise. * gcc.target/powerpc/mulic3-2.c: Likewise.
The releases/gcc-11 branch has been updated by Michael Meissner <meissner@gcc.gnu.org>: https://gcc.gnu.org/g:5a15a78b919c43954fbfcc90f53f34d7e2700c97 commit r11-10618-g5a15a78b919c43954fbfcc90f53f34d7e2700c97 Author: Michael Meissner <meissner@linux.ibm.com> Date: Tue Apr 11 10:11:53 2023 -0400 Backport from master 2023-04-11 Michael Meissner <meissner@linux.ibm.com> gcc/ PR target/109067 * config/rs6000/rs6000.c (create_complex_muldiv): Delete. (init_float128_ieee): Delete code to switch complex multiply and divide for long double. Backport from master, 3/20/2023. (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. Backport from master, 3/20/2023. * gcc.target/powerpc/divic3-2.c: Likewise. * gcc.target/powerpc/mulic3-1.c: Likewise. * gcc.target/powerpc/mulic3-2.c: Likewise.
Trunk patched on March 20th, 2023. Gcc 12 patched on April 10th, 2023. Gcc 11 patched on April 11th, 2023.