For predictable semantics propagate the mode from operands referred by 
the FP substitution to the `const_double_zero' expressions used with the 
associated condition code calculation.  Use an iterator to make copies 
of the FP substitution across the FP modes supported as the substitution 
now has to match the mode of the operands.

        gcc/
        * config/pdp11/pdp11.md (subst_f<cc>): Add mode to operands and 
        `const_double_zero'.
---
 gcc/config/vax/vax.md |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

gcc-vax-const-double-zero-mode.diff
Index: gcc/gcc/config/vax/vax.md
===================================================================
--- gcc.orig/gcc/config/vax/vax.md
+++ gcc/gcc/config/vax/vax.md
@@ -79,13 +79,13 @@
        (match_dup 1))])
 
 (define_subst "subst_f<cc>"
-  [(set (match_operand 0 "")
-       (match_operand 1 ""))
+  [(set (match_operand:VAXfp 0 "")
+       (match_operand:VAXfp 1 ""))
    (clobber (reg:CC VAX_PSL_REGNUM))]
   ""
   [(set (reg:VAXccnz VAX_PSL_REGNUM)
        (compare:VAXccnz (match_dup 1)
-                        (const_double_zero)))
+                        (const_double_zero:VAXfp)))
    (set (match_dup 0)
        (match_dup 1))])
 

Reply via email to