[Libclc-dev] [PATCH] Add vstore_half helpers for ptx
Jeroen Ketema via Libclc-dev
libclc-dev at lists.llvm.org
Tue Oct 3 11:26:49 PDT 2017
Index: ptx/lib/SOURCES_4.0
===================================================================
--- ptx/lib/SOURCES_4.0 (nonexistent)
+++ ptx/lib/SOURCES_4.0 (working copy)
@@ -0,0 +1 @@
+shared/vstore_half_helpers.ll
Index: ptx/lib/SOURCES_5.0
===================================================================
--- ptx/lib/SOURCES_5.0 (nonexistent)
+++ ptx/lib/SOURCES_5.0 (working copy)
@@ -0,0 +1 @@
+shared/vstore_half_helpers.ll
Index: ptx/lib/shared/vstore_half_helpers.ll
===================================================================
--- ptx/lib/shared/vstore_half_helpers.ll (nonexistent)
+++ ptx/lib/shared/vstore_half_helpers.ll (working copy)
@@ -0,0 +1,35 @@
+define void @__clc_vstore_half_float_helper__private(float %data, half addrspace(0)* nocapture %ptr) nounwind alwaysinline {
+ %res = fptrunc float %data to half
+ store half %res, half addrspace(0)* %ptr
+ ret void
+}
+
+define void @__clc_vstore_half_float_helper__global(float %data, half addrspace(1)* nocapture %ptr) nounwind alwaysinline {
+ %res = fptrunc float %data to half
+ store half %res, half addrspace(1)* %ptr
+ ret void
+}
+
+define void @__clc_vstore_half_float_helper__local(float %data, half addrspace(3)* nocapture %ptr) nounwind alwaysinline {
+ %res = fptrunc float %data to half
+ store half %res, half addrspace(3)* %ptr
+ ret void
+}
+
+define void @__clc_vstore_half_double_helper__private(double %data, half addrspace(0)* nocapture %ptr) nounwind alwaysinline {
+ %res = fptrunc double %data to half
+ store half %res, half addrspace(0)* %ptr
+ ret void
+}
+
+define void @__clc_vstore_half_double_helper__global(double %data, half addrspace(1)* nocapture %ptr) nounwind alwaysinline {
+ %res = fptrunc double %data to half
+ store half %res, half addrspace(1)* %ptr
+ ret void
+}
+
+define void @__clc_vstore_half_double_helper__local(double %data, half addrspace(3)* nocapture %ptr) nounwind alwaysinline {
+ %res = fptrunc double %data to half
+ store half %res, half addrspace(3)* %ptr
+ ret void
+}
More information about the Libclc-dev
mailing list