llvm-project/libclc/amdgpu/lib/shared/vload_half_helpers.ll
Jan Vesely 285d2fb85c Implement vload_half{,n} and vload(half)
v2: add vload(half) as well
    make helpers amdgpu specific (NVPTX uses different private AS numbering)
    use clang builtin on clang >= 6

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <tstellar@redhat.com>
llvm-svn: 312839
2017-09-08 23:59:00 +00:00

24 lines
845 B
LLVM

define float @__clc_vload_half_float_helper__private(half addrspace(0)* nocapture %ptr) nounwind alwaysinline {
%data = load half, half addrspace(0)* %ptr
%res = fpext half %data to float
ret float %res
}
define float @__clc_vload_half_float_helper__global(half addrspace(1)* nocapture %ptr) nounwind alwaysinline {
%data = load half, half addrspace(1)* %ptr
%res = fpext half %data to float
ret float %res
}
define float @__clc_vload_half_float_helper__local(half addrspace(3)* nocapture %ptr) nounwind alwaysinline {
%data = load half, half addrspace(3)* %ptr
%res = fpext half %data to float
ret float %res
}
define float @__clc_vload_half_float_helper__constant(half addrspace(2)* nocapture %ptr) nounwind alwaysinline {
%data = load half, half addrspace(2)* %ptr
%res = fpext half %data to float
ret float %res
}