VAX: Use a mode with `const_double_zero' expressions
authorMaciej W. Rozycki <macro@linux-mips.org>
Fri, 8 Jan 2021 01:50:27 +0000 (01:50 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Sat, 9 Jan 2021 16:30:25 +0000 (16:30 +0000)
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/vax/vax.md (subst_f<cc>): Add mode to operands and
`const_double_zero'.

gcc/config/vax/vax.md

index e5ab487..49d3eab 100644 (file)
        (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))])