summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2013-07-23 01:47:58 +0000
committerTom Stellard <thomas.stellard@amd.com>2013-07-23 01:47:58 +0000
commit5864284d71ed89a4280e5171c389ad83fe183db7 (patch)
tree7f79c4037d9dab256fd5990b9a3b41de8c969a16 /lib
parent2bb20fd2bf37d9a608a89b7253881a59686ed2e4 (diff)
downloadllvm-5864284d71ed89a4280e5171c389ad83fe183db7.tar.gz
llvm-5864284d71ed89a4280e5171c389ad83fe183db7.tar.bz2
llvm-5864284d71ed89a4280e5171c389ad83fe183db7.tar.xz
R600: Use correct LoadExtType when lowering kernel arguments
Reviewed-by: Vincent Lejeune <vljn at ovi.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186915 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/R600/R600ISelLowering.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Target/R600/R600ISelLowering.cpp b/lib/Target/R600/R600ISelLowering.cpp
index 08f0c19ed8..ac4a81c9ac 100644
--- a/lib/Target/R600/R600ISelLowering.cpp
+++ b/lib/Target/R600/R600ISelLowering.cpp
@@ -1229,9 +1229,17 @@ SDValue R600TargetLowering::LowerFormalArguments(
} else {
ArgVT = VT;
}
+
+ ISD::LoadExtType LoadType = ISD::EXTLOAD;
+ if (Ins[i].Flags.isZExt()) {
+ LoadType = ISD::ZEXTLOAD;
+ } else if (Ins[i].Flags.isSExt()) {
+ LoadType = ISD::SEXTLOAD;
+ }
+
PointerType *PtrTy = PointerType::get(VT.getTypeForEVT(*DAG.getContext()),
AMDGPUAS::PARAM_I_ADDRESS);
- SDValue Arg = DAG.getExtLoad(ISD::ZEXTLOAD, DL, VT, DAG.getRoot(),
+ SDValue Arg = DAG.getExtLoad(LoadType, DL, VT, DAG.getRoot(),
DAG.getConstant(ParamOffsetBytes, MVT::i32),
MachinePointerInfo(UndefValue::get(PtrTy)),
ArgVT, false, false, ArgBytes);