[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