From f6293442ba64f9225c4643438bb385eb0c34087a Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 13 Oct 2011 20:18:14 -0700 Subject: [PATCH] spu: Implement vec_permv16qi. From-SVN: r179954 --- gcc/ChangeLog | 2 ++ gcc/config/spu/spu.md | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f0dfe058be6..9e34eca79091 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -2,6 +2,8 @@ * config/rs6000/altivec.md (vec_permv16qi): New pattern. + * config/rs6000/spu.md (vec_permv16qi): New pattern. + 2011-10-13 Jakub Jelinek * config/i386/sse.md (vec_set): Change V_128 iterator mode diff --git a/gcc/config/spu/spu.md b/gcc/config/spu/spu.md index 676d54e8de0a..00cfaa4be55e 100644 --- a/gcc/config/spu/spu.md +++ b/gcc/config/spu/spu.md @@ -4395,6 +4395,18 @@ selb\t%0,%4,%0,%3" "shufb\t%0,%1,%2,%3" [(set_attr "type" "shuf")]) +(define_expand "vec_permv16qi" + [(set (match_operand:V16QI 0 "spu_reg_operand" "") + (unspec:V16QI + [(match_operand:V16QI 1 "spu_reg_operand" "") + (match_operand:V16QI 2 "spu_reg_operand" "") + (match_operand:V16QI 3 "spu_reg_operand" "")] + UNSPEC_SHUFB))] + "" + { + operands[3] = gen_lowpart (TImode, operands[3]); + }) + (define_insn "nop" [(unspec_volatile [(const_int 0)] UNSPECV_NOP)] "" -- 2.47.2