[Libclc-dev] [PATCH] Add vstore_half helpers for ptx

Jan Vesely via Libclc-dev libclc-dev at lists.llvm.org
Tue Oct 3 12:57:22 PDT 2017


On Tue, 2017-10-03 at 20:26 +0200, Jeroen Ketema via Libclc-dev wrote:
> 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)

you probably need SOURCES_3.9 as well.
or add a comment why it's not needed.

> @@ -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)

can you add datalayout, or would it prevent sharing the file between
ptx and ptx64?
I assume GENERIC == private and SHARED == local?

other than that
Reviewed-by: Jan Vesely <jan.vesely at rutgers.edu>

Jan

> @@ -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
> +}
> 
> _______________________________________________
> Libclc-dev mailing list
> Libclc-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev

-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/libclc-dev/attachments/20171003/48d70dac/attachment.sig>


More information about the Libclc-dev mailing list