Commit e364ab3a by Richard Henderson Committed by Richard Henderson

vect.md (vec_extractv2sf_1): Fix cut-and-paste error; the shift is always required.

        * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
        the shift is always required.

From-SVN: r101186
parent b4e3537b
2005-06-19 Richard Henderson <rth@redhat.com>
* config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
the shift is always required.
2005-06-19 Richard Henderson <rth@redhat.com>
* config/ia64/ia64-modes.def (V4SF): Add.
* config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
* config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
......
......@@ -1070,7 +1070,7 @@
})
(define_insn_and_split "*vec_extractv2sf_1"
[(set (match_operand:SF 0 "register_operand" "=rf")
[(set (match_operand:SF 0 "register_operand" "=r")
(unspec:SF [(match_operand:V2SF 1 "register_operand" "r")
(const_int 1)]
UNSPEC_VECT_EXTR))]
......@@ -1079,17 +1079,9 @@
"reload_completed"
[(const_int 0)]
{
if (FR_REGNO_P (REGNO (operands[0])))
{
operands[1] = gen_rtx_REG (SFmode, REGNO (operands[1]));
emit_move_insn (operands[0], operands[1]);
}
else
{
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
operands[1] = gen_rtx_REG (DImode, REGNO (operands[1]));
emit_insn (gen_lshrdi3 (operands[0], operands[1], GEN_INT (32)));
}
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
operands[1] = gen_rtx_REG (DImode, REGNO (operands[1]));
emit_insn (gen_lshrdi3 (operands[0], operands[1], GEN_INT (32)));
DONE;
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment