aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-10-13 20:17:16 -0700
committerRichard Henderson <rth@gcc.gnu.org>2011-10-13 20:17:16 -0700
commitcba86444149dde6b3b24e6febf6369c322b41bae (patch)
tree8293ca90014d6b7209f7b778a4a849a39e452cdb /gcc
parent6fa642dfdd2773b615d521814d392b42b21823ec (diff)
downloadgcc-cba86444149dde6b3b24e6febf6369c322b41bae.zip
gcc-cba86444149dde6b3b24e6febf6369c322b41bae.tar.gz
gcc-cba86444149dde6b3b24e6febf6369c322b41bae.tar.bz2
rs6000: Implement vec_permv16qi.
From-SVN: r179953
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/rs6000/altivec.md9
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6a514e8..2f0dfe0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index 9e7437e..84c5444 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -1357,6 +1357,15 @@
"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")]