[gcc r12-3622] rs6000: Move __builtin_mffsl to the [always] stanza
William Schmidt
wschmidt@gcc.gnu.org
Fri Sep 17 14:43:03 GMT 2021
https://gcc.gnu.org/g:0a60524de103288347dd193937059e4e77c64079
commit r12-3622-g0a60524de103288347dd193937059e4e77c64079
Author: Bill Schmidt <wschmidt@linux.ibm.com>
Date: Tue Aug 31 15:13:01 2021 -0500
rs6000: Move __builtin_mffsl to the [always] stanza
I over-restricted use of __builtin_mffsl, since I was unaware that it
automatically uses mffs when mffsl is not available. Paul Clarke pointed
this out in discussion of his SSE 4.1 compatibility patches.
2021-08-31 Bill Schmidt <wschmidt@linux.ibm.com>
gcc/
* config/rs6000/rs6000-builtin-new.def (__builtin_mffsl): Move from
[power9] to [always].
Diff:
---
gcc/config/rs6000/rs6000-builtin-new.def | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-new.def
index 6a28d5189f8..a8c6b9e988f 100644
--- a/gcc/config/rs6000/rs6000-builtin-new.def
+++ b/gcc/config/rs6000/rs6000-builtin-new.def
@@ -208,6 +208,12 @@
double __builtin_mffs ();
MFFS rs6000_mffs {}
+; Although the mffsl instruction is only available on POWER9 and later
+; processors, this builtin automatically falls back to mffs on older
+; platforms. Thus it appears here in the [always] stanza.
+ double __builtin_mffsl ();
+ MFFSL rs6000_mffsl {}
+
; This thing really assumes long double == __ibm128, and I'm told it has
; been used as such within libgcc. Given that __builtin_pack_ibm128
; exists for the same purpose, this should really not be used at all.
@@ -2784,9 +2790,6 @@
signed long long __builtin_darn_raw ();
DARN_RAW darn_raw {}
- double __builtin_mffsl ();
- MFFSL rs6000_mffsl {}
-
const signed int __builtin_dtstsfi_eq_dd (const int<6>, _Decimal64);
TSTSFI_EQ_DD dfptstsfi_eq_dd {}
More information about the Gcc-cvs
mailing list