R600/SI: Completely Disable TypeRewriter on compute
authorTom Stellard <thomas.stellard@amd.com>
Thu, 13 Feb 2014 23:34:12 +0000 (23:34 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 13 Feb 2014 23:34:12 +0000 (23:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201369 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/SITypeRewriter.cpp
test/CodeGen/R600/bitcast.ll

index b01a44387c9413ff2a33e3a53ef360f5ed5b2f04..7de7b1f02c86293f1774500fc17552efe6273669 100644 (file)
@@ -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;
 }
index bccc41638570b9f4140a7b81aaf27fba1a437132..5bfc0083667866295c15c60de7aa3fae60e8c94f 100644 (file)
@@ -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
+}