From 4462e6acd5318e4b1554f26b2f1093edbb0f5c22 Mon Sep 17 00:00:00 2001 From: bernds Date: Thu, 12 Apr 2007 15:22:06 +0000 Subject: [PATCH] * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low): Delete, merge functionality into... (packv2hi): ... this pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123749 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/config/bfin/bfin.md | 58 ++++++++----------------------------------------- 2 files changed, 13 insertions(+), 49 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef344f0..f6116d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -22,6 +22,10 @@ * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit inline sequences when not optimizing for size. + * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low, + movhi_high2low): Delete, merge functionality into... + (packv2hi): ... this pattern. + 2007-02-11 Jie Zhang * config/bfin/bfin.opt (msim): New option. (mcpu=): New option. diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md index ed0da5a..e7c41e2 100644 --- a/gcc/config/bfin/bfin.md +++ b/gcc/config/bfin/bfin.md @@ -2734,50 +2734,6 @@ ;; First, all sorts of move variants -(define_insn "movhi_low2high" - [(set (match_operand:V2HI 0 "register_operand" "=d") - (vec_concat:V2HI - (vec_select:HI (match_operand:V2HI 1 "register_operand" "0") - (parallel [(const_int 0)])) - (vec_select:HI (match_operand:V2HI 2 "register_operand" "d") - (parallel [(const_int 0)]))))] - "" - "%d0 = %h2 << 0%!" - [(set_attr "type" "dsp32")]) - -(define_insn "movhi_high2high" - [(set (match_operand:V2HI 0 "register_operand" "=d") - (vec_concat:V2HI - (vec_select:HI (match_operand:V2HI 1 "register_operand" "0") - (parallel [(const_int 0)])) - (vec_select:HI (match_operand:V2HI 2 "register_operand" "d") - (parallel [(const_int 1)]))))] - "" - "%d0 = %d2 << 0%!" - [(set_attr "type" "dsp32")]) - -(define_insn "movhi_low2low" - [(set (match_operand:V2HI 0 "register_operand" "=d") - (vec_concat:V2HI - (vec_select:HI (match_operand:V2HI 2 "register_operand" "d") - (parallel [(const_int 0)])) - (vec_select:HI (match_operand:V2HI 1 "register_operand" "0") - (parallel [(const_int 1)]))))] - "" - "%h0 = %h2 << 0%!" - [(set_attr "type" "dsp32")]) - -(define_insn "movhi_high2low" - [(set (match_operand:V2HI 0 "register_operand" "=d") - (vec_concat:V2HI - (vec_select:HI (match_operand:V2HI 2 "register_operand" "d") - (parallel [(const_int 1)])) - (vec_select:HI (match_operand:V2HI 1 "register_operand" "0") - (parallel [(const_int 1)]))))] - "" - "%h0 = %d2 << 0%!" - [(set_attr "type" "dsp32")]) - (define_insn "movhiv2hi_low" [(set (match_operand:V2HI 0 "register_operand" "=d") (vec_concat:V2HI @@ -2825,15 +2781,19 @@ ; Useful on its own, and as a combiner bridge for the multiply and ; mac patterns. (define_insn "packv2hi" - [(set (match_operand:V2HI 0 "register_operand" "=d,d,d,d") + [(set (match_operand:V2HI 0 "register_operand" "=d,d,d,d,d,d,d,d") (vec_concat:V2HI (vec_select:HI - (match_operand:V2HI 1 "register_operand" "d,d,d,d") - (parallel [(match_operand 3 "const01_operand" "P0,P1,P0,P1")])) + (match_operand:V2HI 1 "register_operand" "0,0,d,d,d,d,d,d") + (parallel [(match_operand 3 "const01_operand" "P0,P0,P0,P1,P0,P1,P0,P1")])) (vec_select:HI - (match_operand:V2HI 2 "register_operand" "d,d,d,d") - (parallel [(match_operand 4 "const01_operand" "P0,P0,P1,P1")]))))] + (match_operand:V2HI 2 "register_operand" "d,d,0,0,d,d,d,d") + (parallel [(match_operand 4 "const01_operand" "P0,P1,P1,P1,P0,P0,P1,P1")]))))] "" "@ + %d0 = %h2 << 0%! + %d0 = %d2 << 0%! + %h0 = %h1 << 0%! + %h0 = %d1 << 0%! %0 = PACK (%h2,%h1)%! %0 = PACK (%h2,%d1)%! %0 = PACK (%d2,%h1)%! -- 2.7.4