summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Holewinski <jholewinski@nvidia.com>2013-11-11 19:28:16 +0000
committerJustin Holewinski <jholewinski@nvidia.com>2013-11-11 19:28:16 +0000
commit0df3ce333b90cb42ee190a80b310ba89ff4cbeb3 (patch)
tree71d4902496be51c495d18d5c74e865014d5cfb93
parent4c433cf673199528b601f664be3d4c121991a7e2 (diff)
downloadllvm-0df3ce333b90cb42ee190a80b310ba89ff4cbeb3.tar.gz
llvm-0df3ce333b90cb42ee190a80b310ba89ff4cbeb3.tar.bz2
llvm-0df3ce333b90cb42ee190a80b310ba89ff4cbeb3.tar.xz
[NVPTX] Fix logic error in loading vector parameters of more than 4 components
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194409 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/NVPTX/NVPTXISelLowering.cpp2
-rw-r--r--test/CodeGen/NVPTX/vec8.ll13
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/Target/NVPTX/NVPTXISelLowering.cpp b/lib/Target/NVPTX/NVPTXISelLowering.cpp
index 828242db88..55caaad65b 100644
--- a/lib/Target/NVPTX/NVPTXISelLowering.cpp
+++ b/lib/Target/NVPTX/NVPTXISelLowering.cpp
@@ -1595,7 +1595,7 @@ SDValue NVPTXTargetLowering::LowerFormalArguments(
}
Ofst += TD->getTypeAllocSize(VecVT.getTypeForEVT(F->getContext()));
}
- InsIdx += VecSize;
+ InsIdx += NumElts;
}
if (NumElts > 0)
diff --git a/test/CodeGen/NVPTX/vec8.ll b/test/CodeGen/NVPTX/vec8.ll
new file mode 100644
index 0000000000..03f5cfc6cb
--- /dev/null
+++ b/test/CodeGen/NVPTX/vec8.ll
@@ -0,0 +1,13 @@
+; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
+
+target triple = "nvptx-unknown-cuda"
+
+; CHECK: .visible .func foo
+define void @foo(<8 x i8> %a, i8* %b) {
+ %t0 = extractelement <8 x i8> %a, i32 0
+; CHECK-DAG: ld.param.v4.u8
+; CHECK-DAG: ld.param.u32
+ store i8 %t0, i8* %b
+ ret void
+}
+