OSDN Git Service

rs6000: Implement vec_permv16qi.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Oct 2011 03:17:16 +0000 (03:17 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Oct 2011 03:17:16 +0000 (03:17 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179953 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/altivec.md

index 6a514e8..2f0dfe0 100644 (file)
@@ -1,3 +1,7 @@
+2011-10-13  Richard Henderson  <rth@redhat.com>
+
+       * config/rs6000/altivec.md (vec_permv16qi): New pattern.
+
 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode
 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode
index 9e7437e..84c5444 100644 (file)
   "vperm %0,%1,%2,%3"
   [(set_attr "type" "vecperm")])
 
   "vperm %0,%1,%2,%3"
   [(set_attr "type" "vecperm")])
 
+(define_expand "vec_permv16qi"
+  [(set (match_operand:V16QI 0 "register_operand" "")
+       (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "")
+                      (match_operand:V16QI 2 "register_operand" "")
+                      (match_operand:V16QI 3 "register_operand" "")]
+                     UNSPEC_VPERM))]
+  "TARGET_ALTIVEC"
+  "")
+
 (define_insn "altivec_vrfip"           ; ceil
   [(set (match_operand:V4SF 0 "register_operand" "=v")
         (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]
 (define_insn "altivec_vrfip"           ; ceil
   [(set (match_operand:V4SF 0 "register_operand" "=v")
         (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")]