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 e5ab487c49dd69e61a76327158b6fbe78279d940..49d3eab8a20ad5cc9c10632ca27ac3292d072c72 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))])