OSDN Git Service

(apply_distributive_law): Don't mess with float arith.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 24 Jan 1993 01:06:11 +0000 (01:06 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 24 Jan 1993 01:06:11 +0000 (01:06 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3317 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index b99b8e9..33bac48 100644 (file)
@@ -5526,6 +5526,12 @@ apply_distributive_law (x)
   rtx tem;
   enum rtx_code inner_code;
 
+  /* Distributivity is not true for floating point.
+     It can change the value.  So don't do it.
+     -- rms and moshier@world.std.com.  */
+  if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT)
+    return x;
+
   /* The outer operation can only be one of the following:  */
   if (code != IOR && code != AND && code != XOR
       && code != PLUS && code != MINUS)