https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113652

Kewen Lin <linkw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-01-30

--- Comment #13 from Kewen Lin <linkw at gcc dot gnu.org> ---
One more finding: without an explicit cpu type but -mvsx, gcc passes -mpower7
to assembler already, but if there is an explicitly specified cpu type, it
won't do that. I think the reason why it doesn't always make it is that only
the last cpu type wins and the passing can override some higher cpu type
unexpectedly.

The fixing candidates seems to be:

diff --git a/libgcc/config/rs6000/t-float128 b/libgcc/config/rs6000/t-float128
index b09b5664af0..47b06d3c30d 100644
--- a/libgcc/config/rs6000/t-float128
+++ b/libgcc/config/rs6000/t-float128
@@ -74,7 +74,7 @@ fp128_includes         = $(srcdir)/soft-fp/double.h \
                           $(srcdir)/soft-fp/soft-fp.h

 # Build the emulator without ISA 3.0 hardware support.
-FP128_CFLAGS_SW          = -Wno-type-limits -mvsx -mfloat128 \
+FP128_CFLAGS_SW          = -Wno-type-limits -mvsx -mfloat128 -mcpu=power7 \
                            -mno-float128-hardware -mno-gnu-attribute \
                            -I$(srcdir)/soft-fp \
                            -I$(srcdir)/config/rs6000 \

Or

diff --git a/libgcc/config/rs6000/t-float128 b/libgcc/config/rs6000/t-float128
index b09b5664af0..bf4a5e6aaf0 100644
--- a/libgcc/config/rs6000/t-float128
+++ b/libgcc/config/rs6000/t-float128
@@ -74,7 +74,7 @@ fp128_includes         = $(srcdir)/soft-fp/double.h \
                           $(srcdir)/soft-fp/soft-fp.h

 # Build the emulator without ISA 3.0 hardware support.
-FP128_CFLAGS_SW          = -Wno-type-limits -mvsx -mfloat128 \
+FP128_CFLAGS_SW          = -Wno-type-limits -mvsx -mfloat128 -Wa,-many \
                            -mno-float128-hardware -mno-gnu-attribute \
                            -I$(srcdir)/soft-fp \
                            -I$(srcdir)/config/rs6000 \

As gcc considers -mvsx to imply -mcpu=power7 (appending onto the current
specified cpu type if there is one) while assembler doesn't consider like that.

Reply via email to