diff options
author | Nemanja Ivanovic <nemanja.i.ibm@gmail.com> | 2016-09-23 13:25:31 +0000 |
---|---|---|
committer | Nemanja Ivanovic <nemanja.i.ibm@gmail.com> | 2016-09-23 13:25:31 +0000 |
commit | a04f9019ef9b5003accd57348ceb9fbe7af9f3a2 (patch) | |
tree | 3580d521670666786da14e3d22cec05d90be405a /test/CodeGen/PowerPC/ppc64-i128-abi.ll | |
parent | e2c1cbe138072e28c6b779bdbc2f19af7ba8d128 (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.ll | 18 |
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 |