summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll
diff options
context:
space:
mode:
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>2018-03-05 19:27:16 +0000
committerNemanja Ivanovic <nemanja.i.ibm@gmail.com>2018-03-05 19:27:16 +0000
commit6cc31ca81446b3fc61e02e2c231436978746decd (patch)
tree0b0f5df8546c7ed7475b83d4b1e28ade79af0cb5 /llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll
parent77ae82b84a451f1a3af878da1a4efb5fb0a043b6 (diff)
downloadbcm5719-llvm-6cc31ca81446b3fc61e02e2c231436978746decd.tar.gz
bcm5719-llvm-6cc31ca81446b3fc61e02e2c231436978746decd.zip
[PowerPC] Do not emit record-form rotates when record-form andi suffices
Up until Power9, the performance profile for rlwinm., rldicl. and andi. looked more or less equivalent. However with Power9, the rotates are still 2-way cracked whereas the and-immediate is not. This patch just ensures that we don't emit record-form rotates when an andi. is adequate. As first pointed out by Carrot in https://bugs.llvm.org/show_bug.cgi?id=30833 (this patch is a fix for that PR). Differential Revision: https://reviews.llvm.org/D43977 llvm-svn: 326736
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll b/llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll
index 282a31b1e27..ccc76e232b6 100644
--- a/llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll
+++ b/llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll
@@ -6,7 +6,7 @@ target triple = "powerpc64le-unknown-linux-gnu"
define i8 @test1(i32 %a) {
entry:
; CHECK-NOT: rlwinm {{{[0-9]+}}}, {{[0-9]+}}, 0, 24, 27
-; CHECK: rlwinm. [[REG:[0-9]+]], {{[0-9]+}}, 0, 24, 27
+; CHECK: andi. [[REG:[0-9]+]], {{[0-9]+}}, 240
; CHECK-NOT: cmplwi [[REG]], 0
; CHECK: beq 0
%0 = and i32 %a, 240
OpenPOWER on IntegriCloud