R600: Fix handling of vector kernel arguments
authorTom Stellard <thomas.stellard@amd.com>
Wed, 23 Oct 2013 00:44:32 +0000 (00:44 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 23 Oct 2013 00:44:32 +0000 (00:44 +0000)
commitf95b1621887e3409ceec2db47e1b44271d934735
tree8b2655eb7bf40d51eedf9649d0a929e1fc2c6cb1
parentd0716b064744598ba7df33b8b47de0375c450570
R600: Fix handling of vector kernel arguments

The SelectionDAGBuilder was promoting vector kernel arguments to legal
types, but this won't work for R600 and SI since kernel arguments are
stored in memory and can't be promoted.  In order to handle vector
arguments correctly we need to look at the original types from the LLVM IR
function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193215 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
lib/Target/R600/AMDGPUCallingConv.td
lib/Target/R600/AMDGPUISelLowering.cpp
lib/Target/R600/AMDGPUISelLowering.h
lib/Target/R600/AMDGPUTargetMachine.cpp
lib/Target/R600/R600ISelLowering.cpp
lib/Target/R600/SIISelLowering.cpp
lib/Target/R600/SIISelLowering.h
lib/Target/R600/SIInstructions.td
lib/Target/R600/SIRegisterInfo.td
test/CodeGen/R600/kernel-args.ll [new file with mode: 0644]
test/CodeGen/R600/or.ll
test/CodeGen/R600/short-args.ll [deleted file]
test/CodeGen/R600/store.ll
test/CodeGen/R600/trunc.ll