diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-12-09 16:44:58 +0000 |
---|---|---|
committer | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-12-09 16:44:58 +0000 |
commit | 4187962697234e06b13feca6c0996c08d73bab8b (patch) | |
tree | c37db3b60d2636d20d525a3b0a5a9e085891919b /llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll | |
parent | 10f6eb91a085a56de43e4f7eb685c8bff3a8ac6a (diff) | |
download | bcm5719-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.ll | 57 |
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 +} |