]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ranger: Revert the workaround introduced in PR112788 [PR112993]
authorKewen Lin <linkw@linux.ibm.com>
Wed, 17 Jul 2024 05:17:42 +0000 (00:17 -0500)
committerKewen Lin <linkw@gcc.gnu.org>
Wed, 17 Jul 2024 05:17:42 +0000 (00:17 -0500)
This reverts commit r14-6478-gfda8e2f8292a90 "range:
Workaround different type precision between _Float128 and
long double [PR112788]" as the fixes for PR112993 make
all 128 bits scalar floating point have the same 128 bit
precision, this workaround isn't needed any more.

PR target/112993

gcc/ChangeLog:

* value-range.h (range_compatible_p): Remove the workaround on
different type precision between _Float128 and long double.

gcc/value-range.h

index 334ea1bc338cafb97e719f1a6b25a44bbaa7afae..03af758d152cbc86cd0aba5c2962b692e26e07ed 100644 (file)
@@ -1764,13 +1764,7 @@ range_compatible_p (tree type1, tree type2)
   // types_compatible_p requires conversion in both directions to be useless.
   // GIMPLE only requires a cast one way in order to be compatible.
   // Ranges really only need the sign and precision to be the same.
-  return TYPE_SIGN (type1) == TYPE_SIGN (type2)
-        && (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
-            // FIXME: As PR112788 shows, for now on rs6000 _Float128 has
-            // type precision 128 while long double has type precision 127
-            // but both have the same mode so their precision is actually
-            // the same, workaround it temporarily.
-            || (SCALAR_FLOAT_TYPE_P (type1)
-                && TYPE_MODE (type1) == TYPE_MODE (type2)));
+  return (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
+         && TYPE_SIGN (type1) == TYPE_SIGN (type2));
 }
 #endif // GCC_VALUE_RANGE_H