[COMMITTED] Copy range from op2 in foperator_equal::op1_range.

Message ID 20220823101812.878305-1-aldyh@redhat.com
State New, archived
Headers
Series [COMMITTED] Copy range from op2 in foperator_equal::op1_range. |

Commit Message

Aldy Hernandez Aug. 23, 2022, 10:18 a.m. UTC
  Like the integer version, when op1 == op2 is known to be true the
ranges are also equal.

gcc/ChangeLog:

	* range-op-float.cc (foperator_equal::op1_range): Set range to
	range of op2.
---
 gcc/range-op-float.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc
index 4fbd96a7479..ad2fae578d2 100644
--- a/gcc/range-op-float.cc
+++ b/gcc/range-op-float.cc
@@ -252,7 +252,8 @@  foperator_equal::op1_range (frange &r, tree type,
   switch (get_bool_state (r, lhs, type))
     {
     case BRS_TRUE:
-      r.set_varying (type);
+      // If it's true, the result is the same as OP2.
+      r = op2;
       // The TRUE side of op1 == op2 implies op1 is !NAN.
       r.set_nan (fp_prop::NO);
       break;