vect.md (vec_extractv2sf_1): Fix cut-and-paste error; the shift is always required.
authorRichard Henderson <rth@redhat.com>
Sun, 19 Jun 2005 16:36:46 +0000 (09:36 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 19 Jun 2005 16:36:46 +0000 (09:36 -0700)
        * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
        the shift is always required.

From-SVN: r101186

gcc/ChangeLog
gcc/config/ia64/vect.md

index 460489b8645dfaa3361558f0a54e73b18c8c3791..678b0c52a5f01b75a7f298baa7150af46a065413 100644 (file)
@@ -1,3 +1,8 @@
+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.
index c9dcf080e58af841c11144551189b59d3235ecf8..c2f8a1a7cac72ac03a6f16b224ddaddf6427ccde 100644 (file)
 })
 
 (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))]
   "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;
 })