summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/vec_constants.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/vec_constants.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/vec_constants.ll48
1 files changed, 48 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/vec_constants.ll b/llvm/test/CodeGen/PowerPC/vec_constants.ll
new file mode 100644
index 00000000000..9d51e3c6821
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/vec_constants.ll
@@ -0,0 +1,48 @@
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 | not grep CPI
+
+
+; Tests spltw(0x80000000) and spltw(0x7FFFFFFF).
+void %test1(<4 x int>* %P1, <4 x int>* %P2, <4 x float>* %P3) {
+ %tmp = load <4 x int>* %P1
+ %tmp4 = and <4 x int> %tmp, < int -2147483648, int -2147483648, int -2147483648, int -2147483648 >
+ store <4 x int> %tmp4, <4 x int>* %P1
+ %tmp7 = load <4 x int>* %P2
+ %tmp9 = and <4 x int> %tmp7, < int 2147483647, int 2147483647, int 2147483647, int 2147483647 >
+ store <4 x int> %tmp9, <4 x int>* %P2
+ %tmp = load <4 x float>* %P3
+ %tmp11 = cast <4 x float> %tmp to <4 x int>
+ %tmp12 = and <4 x int> %tmp11, < int 2147483647, int 2147483647, int 2147483647, int 2147483647 >
+ %tmp13 = cast <4 x int> %tmp12 to <4 x float>
+ store <4 x float> %tmp13, <4 x float>* %P3
+ ret void
+}
+
+<4 x int> %test_30() {
+ ret <4 x int> <int 30, int 30, int 30, int 30>
+}
+
+<4 x int> %test_29() {
+ ret <4 x int> <int 29, int 29, int 29, int 29>
+}
+
+<8 x short> %test_n30() {
+ ret <8 x short> <short -30, short -30, short -30, short -30,
+ short -30, short -30, short -30, short -30>
+}
+
+<16 x sbyte> %test_n104() {
+ ret <16 x sbyte> <sbyte -104, sbyte -104, sbyte -104, sbyte -104,
+ sbyte -104, sbyte -104, sbyte -104, sbyte -104,
+ sbyte -104, sbyte -104, sbyte -104, sbyte -104,
+ sbyte -104, sbyte -104, sbyte -104, sbyte -104>
+}
+
+<4 x int> %test_vsldoi() {
+ ret <4 x int> <int 512, int 512, int 512, int 512>
+}
+
+<4 x int> %test_rol() {
+ ret <4 x int> <int -11534337, int -11534337, int -11534337, int -11534337>
+}
+
OpenPOWER on IntegriCloud