R600/SI: Add support for f64 kernel arguments
authorTom Stellard <thomas.stellard@amd.com>
Fri, 12 Jul 2013 18:15:26 +0000 (18:15 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Fri, 12 Jul 2013 18:15:26 +0000 (18:15 +0000)
Patch by: Niels Ole Salscheider

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186182 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/AMDGPUCallingConv.td
test/CodeGen/R600/64bit-kernel-args.ll [new file with mode: 0644]

index 826932b3b848d0329af3ac3aa62c20262d1d0486..29a0326143befbe7852b591cb8432c76ab9d4d2a 100644 (file)
@@ -39,7 +39,7 @@ def CC_SI : CallingConv<[
 // Calling convention for SI compute kernels
 def CC_SI_Kernel : CallingConv<[
   CCIfType<[v4i32, v4f32], CCAssignToStack <16, 4>>,
-  CCIfType<[i64],          CCAssignToStack < 8, 4>>,
+  CCIfType<[i64, f64],     CCAssignToStack < 8, 4>>,
   CCIfType<[i32, f32],     CCAssignToStack < 4, 4>>,
   CCIfType<[i16],          CCAssignToStack < 2, 4>>,
   CCIfType<[i8],           CCAssignToStack < 1, 4>>
diff --git a/test/CodeGen/R600/64bit-kernel-args.ll b/test/CodeGen/R600/64bit-kernel-args.ll
new file mode 100644 (file)
index 0000000..2020e65
--- /dev/null
@@ -0,0 +1,9 @@
+; RUN: llc < %s -march=r600 -mcpu=tahiti | FileCheck %s
+
+; SI-CHECK: @f64_kernel_arg
+; SI-CHECK: BUFFER_STORE_DWORDX2
+define void @f64_kernel_arg(double addrspace(1)* %out, double  %in) {
+entry:
+  store double %in, double addrspace(1)* %out
+  ret void
+}