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))])