[gcc(refs/users/meissner/heads/work204-bugs)] Fix using fpmask with -ffinite-math-only.

Michael Meissner meissner@gcc.gnu.org
Thu May 15 04:02:38 GMT 2025


https://gcc.gnu.org/g:6f0e1de1dbf92a8471d2af05eb1e6d6dbd227871

commit 6f0e1de1dbf92a8471d2af05eb1e6d6dbd227871
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Thu May 15 00:02:17 2025 -0400

    Fix using fpmask with -ffinite-math-only.
    
    2025-05-14  Michael Meissner  <meissner@linux.ibm.com>
    
            * config/rs6000/predicates.md (invert_fpmask_comparison_operator): Add
            support for UNLT and UNLE instead of LT and LE.

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

diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index 63e0ae1c5f98..ba8df6a7979d 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -1473,7 +1473,9 @@
 ;; signalling NaN.  Don't allow the test to be inverted if NaNs are supported
 ;; and the comparison is an ordered comparison.
 (define_predicate "invert_fpmask_comparison_operator"
-  (match_code "ne,lt,le"))
+  (ior (match_code "ne")
+       (and (match_code "unlt,unle")
+	    (match_test "flag_finite_math_only"))))
 
 ;; Return 1 if OP is a comparison operation suitable for integer vector/scalar
 ;; comparisons that generate a -1/0 mask.


More information about the Gcc-cvs mailing list