[llvm-commits] CVS: llvm/test/Regression/CodeGen/PowerPC/vec_shuffle.ll
Chris Lattner
lattner at cs.uiuc.edu
Thu Apr 6 12:21:15 PDT 2006
Changes in directory llvm/test/Regression/CodeGen/PowerPC:
vec_shuffle.ll updated: 1.1 -> 1.2
---
Log message:
test vperm promotion
---
Diffs of the changes: (+16 -0)
vec_shuffle.ll | 16 ++++++++++++++++
1 files changed, 16 insertions(+)
Index: llvm/test/Regression/CodeGen/PowerPC/vec_shuffle.ll
diff -u llvm/test/Regression/CodeGen/PowerPC/vec_shuffle.ll:1.1 llvm/test/Regression/CodeGen/PowerPC/vec_shuffle.ll:1.2
--- llvm/test/Regression/CodeGen/PowerPC/vec_shuffle.ll:1.1 Thu Apr 6 13:26:13 2006
+++ llvm/test/Regression/CodeGen/PowerPC/vec_shuffle.ll Thu Apr 6 14:21:02 2006
@@ -1,4 +1,5 @@
; RUN: llvm-as < %s | llc -march=ppc32 -mcpu=g5 | grep vsldoi | wc -l | grep 2
+; RUN: llvm-as < %s | opt -instcombine | llc -march=ppc32 -mcpu=g5 | not grep vperm
void %VSLDOI_xy(<8 x short>* %A, <8 x short>* %B) {
entry:
@@ -84,3 +85,18 @@
store <8 x short> %tmp33, <8 x short>* %A
ret void
}
+
+void %VPERM_promote(<8 x short>* %A, <8 x short>* %B) {
+entry:
+ %tmp = load <8 x short>* %A ; <<8 x short>> [#uses=1]
+ %tmp = cast <8 x short> %tmp to <4 x int> ; <<4 x int>> [#uses=1]
+ %tmp2 = load <8 x short>* %B ; <<8 x short>> [#uses=1]
+ %tmp2 = cast <8 x short> %tmp2 to <4 x int> ; <<4 x int>> [#uses=1]
+ %tmp3 = call <4 x int> %llvm.ppc.altivec.vperm( <4 x int> %tmp, <4 x int> %tmp2, <16 x sbyte> < sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14, sbyte 14 > ) ; <<4 x int>> [#uses=1]
+ %tmp3 = cast <4 x int> %tmp3 to <8 x short> ; <<8 x short>> [#uses=1]
+ store <8 x short> %tmp3, <8 x short>* %A
+ ret void
+}
+
+declare <4 x int> %llvm.ppc.altivec.vperm(<4 x int>, <4 x int>, <16 x sbyte>)
+
More information about the llvm-commits
mailing list