summaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/ppc64-i128-abi.ll
diff options
context:
space:
mode:
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>2016-09-23 13:25:31 +0000
committerNemanja Ivanovic <nemanja.i.ibm@gmail.com>2016-09-23 13:25:31 +0000
commita04f9019ef9b5003accd57348ceb9fbe7af9f3a2 (patch)
tree3580d521670666786da14e3d22cec05d90be405a /test/CodeGen/PowerPC/ppc64-i128-abi.ll
parente2c1cbe138072e28c6b779bdbc2f19af7ba8d128 (diff)
[Power9] Exploit move and splat instructions for build_vector improvement
This patch corresponds to review: https://reviews.llvm.org/D21135 This patch exploits the following instructions: mtvsrws lxvwsx mtvsrdd mfvsrld In order to improve some build_vector and extractelement patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282246 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/PowerPC/ppc64-i128-abi.ll')
-rw-r--r--test/CodeGen/PowerPC/ppc64-i128-abi.ll18
1 files changed, 10 insertions, 8 deletions
diff --git a/test/CodeGen/PowerPC/ppc64-i128-abi.ll b/test/CodeGen/PowerPC/ppc64-i128-abi.ll
index 8d5a8cdf3a3..d81a1104c53 100644
--- a/test/CodeGen/PowerPC/ppc64-i128-abi.ll
+++ b/test/CodeGen/PowerPC/ppc64-i128-abi.ll
@@ -17,16 +17,16 @@
; RUN: -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-LE-NOVSX
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
-; RUN: -mcpu=pwr9 < %s | FileCheck %s -check-prefix=CHECK-P9 \
-; RUN: --implicit-check-not xxswapd
+; RUN: -mcpu=pwr9 -ppc-vsr-nums-as-vr < %s | FileCheck %s \
+; RUN: -check-prefix=CHECK-P9 --implicit-check-not xxswapd
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
; RUN: -mcpu=pwr9 -mattr=-vsx < %s | FileCheck %s -check-prefix=CHECK-NOVSX \
; RUN: --implicit-check-not xxswapd
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
-; RUN: -mcpu=pwr9 -mattr=-power9-vector < %s | FileCheck %s \
-; RUN: -check-prefix=CHECK-LE
+; RUN: -mcpu=pwr9 -mattr=-power9-vector -mattr=-direct-move < %s | \
+; RUN: FileCheck %s -check-prefix=CHECK-LE
@x = common global <1 x i128> zeroinitializer, align 16
@y = common global <1 x i128> zeroinitializer, align 16
@@ -55,8 +55,10 @@ define <1 x i128> @v1i128_increment_by_one(<1 x i128> %a) nounwind {
; CHECK-LE: blr
; CHECK-P9-LABEL: @v1i128_increment_by_one
-; CHECK-P9: lxvx
-; CHECK-P9: vadduqm 2, 2, 3
+; CHECK-P9-DAG: li [[R1:r[0-9]+]], 1
+; CHECK-P9-DAG: li [[R2:r[0-9]+]], 0
+; CHECK-P9: mtvsrdd [[V1:v[0-9]+]], [[R2]], [[R1]]
+; CHECK-P9: vadduqm v2, v2, [[V1]]
; CHECK-P9: blr
; CHECK-BE-LABEL: @v1i128_increment_by_one
@@ -232,8 +234,8 @@ define <1 x i128> @call_v1i128_increment_by_val() nounwind {
; CHECK-LE: blr
; CHECK-P9-LABEL: @call_v1i128_increment_by_val
-; CHECK-P9-DAG: lxvx 34
-; CHECK-P9-DAG: lxvx 35
+; CHECK-P9-DAG: lxvx v2
+; CHECK-P9-DAG: lxvx v3
; CHECK-P9: bl v1i128_increment_by_val
; CHECK-P9: blr