summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-12-09 16:44:58 +0000
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-12-09 16:44:58 +0000
commit4187962697234e06b13feca6c0996c08d73bab8b (patch)
treec37db3b60d2636d20d525a3b0a5a9e085891919b /llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll
parent10f6eb91a085a56de43e4f7eb685c8bff3a8ac6a (diff)
downloadbcm5719-llvm-4187962697234e06b13feca6c0996c08d73bab8b.tar.gz
bcm5719-llvm-4187962697234e06b13feca6c0996c08d73bab8b.zip
Add test cases that were inadvertently omitted from r223783 and r223788
llvm-svn: 223789
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll57
1 files changed, 57 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll b/llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll
new file mode 100644
index 00000000000..c765ed259ad
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll
@@ -0,0 +1,57 @@
+; Note: This test is disabled until VSX is enabled for LE, as otherwise
+; we don't get the correct code gen.
+; RUN: llc -mcpu=pwr8 -mtriple=powerpc64-unknown-linux-gnu < %s
+; FIXME: Remove this and all above lines when VSX is enabled for LE.
+
+; R;UN: llc -mcpu=pwr8 -mattr=+vsx -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s
+
+define <2 x double> @testi0(<2 x double>* %p1, double* %p2) {
+ %v = load <2 x double>* %p1
+ %s = load double* %p2
+ %r = insertelement <2 x double> %v, double %s, i32 0
+ ret <2 x double> %r
+
+; CHECK-LABEL: testi0
+; CHECK: lxvd2x 0, 0, 3
+; CHECK: lxsdx 34, 0, 4
+; CHECK: xxpermdi 0, 0, 0, 2
+; CHECK: xxpermdi 1, 34, 34, 0
+; CHECK: xxpermdi 34, 0, 1, 1
+}
+
+define <2 x double> @testi1(<2 x double>* %p1, double* %p2) {
+ %v = load <2 x double>* %p1
+ %s = load double* %p2
+ %r = insertelement <2 x double> %v, double %s, i32 1
+ ret <2 x double> %r
+
+; CHECK-LABEL: testi1
+; CHECK: lxvd2x 0, 0, 3
+; CHECK: lxsdx 34, 0, 4
+; CHECK: xxpermdi 0, 0, 0, 2
+; CHECK: xxpermdi 1, 34, 34, 0
+; CHECK: xxpermdi 34, 1, 0, 3
+}
+
+define double @teste0(<2 x double>* %p1) {
+ %v = load <2 x double>* %p1
+ %r = extractelement <2 x double> %v, i32 0
+ ret double %r
+
+; FIXME: Swap optimization will collapse this into lxvd2x 1, 0, 3.
+
+; CHECK-LABEL: teste0
+; CHECK: lxvd2x 0, 0, 3
+; CHECK: xxpermdi 0, 0, 0, 2
+; CHECK: xxpermdi 1, 0, 0, 2
+}
+
+define double @teste1(<2 x double>* %p1) {
+ %v = load <2 x double>* %p1
+ %r = extractelement <2 x double> %v, i32 1
+ ret double %r
+
+; CHECK-LABEL: teste1
+; CHECK: lxvd2x 0, 0, 3
+; CHECK: xxpermdi 1, 0, 0, 2
+}
OpenPOWER on IntegriCloud