summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-02-13 23:34:12 +0000
committerTom Stellard <thomas.stellard@amd.com>2014-02-13 23:34:12 +0000
commit130f271259bd9ddee7e6a1626a1bb11a6ffdd214 (patch)
tree9c5c2d5ab0ebfd6b68603e6ed4b1e82220d71d79
parent1a52c2b25a7877156a818c976ac5e6e4af08cee0 (diff)
downloadllvm-130f271259bd9ddee7e6a1626a1bb11a6ffdd214.tar.gz
llvm-130f271259bd9ddee7e6a1626a1bb11a6ffdd214.tar.bz2
llvm-130f271259bd9ddee7e6a1626a1bb11a6ffdd214.tar.xz
R600/SI: Completely Disable TypeRewriter on compute
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201369 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/R600/SITypeRewriter.cpp6
-rw-r--r--test/CodeGen/R600/bitcast.ll9
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/Target/R600/SITypeRewriter.cpp b/lib/Target/R600/SITypeRewriter.cpp
index b01a44387c..7de7b1f02c 100644
--- a/lib/Target/R600/SITypeRewriter.cpp
+++ b/lib/Target/R600/SITypeRewriter.cpp
@@ -69,11 +69,11 @@ bool SITypeRewriter::runOnFunction(Function &F) {
StringRef Str = A.getValueAsString();
Str.getAsInteger(0, ShaderType);
}
- if (ShaderType != ShaderType::COMPUTE) {
- visit(F);
- }
+ if (ShaderType == ShaderType::COMPUTE)
+ return false;
visit(F);
+ visit(F);
return false;
}
diff --git a/test/CodeGen/R600/bitcast.ll b/test/CodeGen/R600/bitcast.ll
index bccc416385..5bfc008366 100644
--- a/test/CodeGen/R600/bitcast.ll
+++ b/test/CodeGen/R600/bitcast.ll
@@ -19,3 +19,12 @@ declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float
attributes #0 = { "ShaderType"="0" }
+; CHECK-LABEL: @i8ptr_v16i8ptr
+; CHECK: S_ENDPGM
+define void @i8ptr_v16i8ptr(<16 x i8> addrspace(1)* %out, i8 addrspace(1)* %in) {
+entry:
+ %0 = bitcast i8 addrspace(1)* %in to <16 x i8> addrspace(1)*
+ %1 = load <16 x i8> addrspace(1)* %0
+ store <16 x i8> %1, <16 x i8> addrspace(1)* %out
+ ret void
+}