[gcc(refs/users/meissner/heads/work068)] Limit XXSPLTIDP for integer constants to 0x80000000.

Michael Meissner meissner@gcc.gnu.org
Tue Sep 14 17:04:35 GMT 2021


https://gcc.gnu.org/g:6284a86c207cba2f5b819cdecc8ad2bf63f10e5c

commit 6284a86c207cba2f5b819cdecc8ad2bf63f10e5c
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Sep 14 13:04:14 2021 -0400

    Limit XXSPLTIDP for integer constants to 0x80000000.
    
    2021-09-14  Michael Meissner  <meissner@linux.ibm.com>
    
    gcc/
    
            * config/rs6000/predicates.md (easy_fp_constant_float_to_v2df):
            Limit XXSPLTIDP for integer constants to 0x80000000.

Diff:
---
 gcc/config/rs6000/predicates.md | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index 635a08ec8d6..edd64eab1e6 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -666,10 +666,16 @@
       HOST_WIDE_INT df_value = INTVAL (element);
       long df_words[2];
 
+#if 0
       /* Stay away from NaNs and denormal values.  */
       int exponent = (df_value >> 52) & 0x7ff;
       if (exponent == 0 || exponent == 0x7ff)
 	return false;
+#else
+      /* For now, only handle -0.0.  */
+      if (df_value != 0x80000000)
+	return false;
+#endif
 
       df_words[0] = (df_value >> 32) & 0xffffffff;
       df_words[1] = df_value & 0xffffffff;


More information about the Gcc-cvs mailing list