R600: Use function inputs to represent data stored in gpr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194425 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vincent Lejeune
2013-11-11 22:10:24 +00:00
parent 6c7a7c6474
commit 70a7d5ddb4
29 changed files with 285 additions and 321 deletions

View File

@@ -1,20 +1,20 @@
;RUN: llc < %s -march=r600 -mcpu=cayman
;REQUIRES: asserts
define void @main() #0 {
define void @main(<4 x float> inreg %reg0, <4 x float> inreg %reg1, <4 x float> inreg %reg2, <4 x float> inreg %reg3) #0 {
main_body:
%0 = call float @llvm.R600.load.input(i32 4)
%1 = call float @llvm.R600.load.input(i32 5)
%2 = call float @llvm.R600.load.input(i32 6)
%3 = call float @llvm.R600.load.input(i32 7)
%4 = call float @llvm.R600.load.input(i32 8)
%5 = call float @llvm.R600.load.input(i32 9)
%6 = call float @llvm.R600.load.input(i32 10)
%7 = call float @llvm.R600.load.input(i32 11)
%8 = call float @llvm.R600.load.input(i32 12)
%9 = call float @llvm.R600.load.input(i32 13)
%10 = call float @llvm.R600.load.input(i32 14)
%11 = call float @llvm.R600.load.input(i32 15)
%0 = extractelement <4 x float> %reg1, i32 0
%1 = extractelement <4 x float> %reg1, i32 1
%2 = extractelement <4 x float> %reg1, i32 2
%3 = extractelement <4 x float> %reg1, i32 3
%4 = extractelement <4 x float> %reg2, i32 0
%5 = extractelement <4 x float> %reg2, i32 1
%6 = extractelement <4 x float> %reg2, i32 2
%7 = extractelement <4 x float> %reg2, i32 3
%8 = extractelement <4 x float> %reg3, i32 0
%9 = extractelement <4 x float> %reg3, i32 1
%10 = extractelement <4 x float> %reg3, i32 2
%11 = extractelement <4 x float> %reg3, i32 3
%12 = load <4 x float> addrspace(8)* null
%13 = extractelement <4 x float> %12, i32 0
%14 = fmul float %0, %13
@@ -95,9 +95,6 @@ main_body:
ret void
}
; Function Attrs: readnone
declare float @llvm.R600.load.input(i32) #1
; Function Attrs: readnone
declare float @llvm.AMDGPU.dp4(<4 x float>, <4 x float>) #1