aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2007-04-12 15:22:06 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2007-04-12 15:22:06 +0000
commit2d3649b23f90ddd51b968a00c8e8ab6ccf5bd93c (patch)
tree1fa4fc5d0495cc4b6a0798f887d4a9311b11032b
parent3fbee523e265acd74b1484b9ec4ff0f809807e06 (diff)
downloadgcc-2d3649b23f90ddd51b968a00c8e8ab6ccf5bd93c.zip
gcc-2d3649b23f90ddd51b968a00c8e8ab6ccf5bd93c.tar.gz
gcc-2d3649b23f90ddd51b968a00c8e8ab6ccf5bd93c.tar.bz2
bfin.md (movhi_low2high, [...]): Delete, merge functionality into...
* config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low): Delete, merge functionality into... (packv2hi): ... this pattern. From-SVN: r123749
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/bfin/bfin.md58
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 <jie.zhang@analog.com>
* 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)%!