aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/R600/trunc.ll
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2013-11-13 23:36:37 +0000
committerTom Stellard <thomas.stellard@amd.com>2013-11-13 23:36:37 +0000
commitb52bf6a3b31596a309f4b12884522e9b4a344654 (patch)
tree60294ecd3670543e55b24aca1a4507c391649203 /test/CodeGen/R600/trunc.ll
parenteef8b8c35c585d941fb14c66df3cebc46b33f776 (diff)
downloadexternal_llvm-b52bf6a3b31596a309f4b12884522e9b4a344654.zip
external_llvm-b52bf6a3b31596a309f4b12884522e9b4a344654.tar.gz
external_llvm-b52bf6a3b31596a309f4b12884522e9b4a344654.tar.bz2
R600/SI: Prefer SALU instructions for bit shift operations
All shift operations will be selected as SALU instructions and then if necessary lowered to VALU instructions in the SIFixSGPRCopies pass. This allows us to do more operations on the SALU which will improve performance and is also required for implementing private memory using indirect addressing, since the private memory pointers must stay in the scalar registers. This patch includes some fixes from Matt Arsenault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194625 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/R600/trunc.ll')
-rw-r--r--test/CodeGen/R600/trunc.ll3
1 files changed, 2 insertions, 1 deletions
diff --git a/test/CodeGen/R600/trunc.ll b/test/CodeGen/R600/trunc.ll
index 5ccccc8..0bd320a 100644
--- a/test/CodeGen/R600/trunc.ll
+++ b/test/CodeGen/R600/trunc.ll
@@ -19,7 +19,8 @@ define void @trunc_i64_to_i32_store(i32 addrspace(1)* %out, i64 %in) {
; SI-LABEL: @trunc_shl_i64:
; SI: S_LOAD_DWORDX2
; SI: S_LOAD_DWORDX2 [[SREG:s\[[0-9]+:[0-9]+\]]]
-; SI: V_LSHL_B64 v{{\[}}[[LO_VREG:[0-9]+]]:{{[0-9]+\]}}, [[SREG]], 2
+; SI: S_LSHL_B64 s{{\[}}[[LO_SREG:[0-9]+]]:{{[0-9]+\]}}, [[SREG]], 2
+; SI: MOV_B32_e32 v[[LO_VREG:[0-9]+]], s[[LO_SREG]]
; SI: BUFFER_STORE_DWORD v[[LO_VREG]],
define void @trunc_shl_i64(i32 addrspace(1)* %out, i64 %a) {
%b = shl i64 %a, 2