xref: /llvm-project/libclc/r600/lib/image/get_image_attributes_impl.ll (revision 3889c36d3fcc9d1fc7b8426ab8dae05214bf9ba3)
1*3889c36dSJan Veselytarget datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
2*3889c36dSJan Vesely
33d349ea9SJan Vesely%opencl.image2d_t = type opaque
43d349ea9SJan Vesely%opencl.image3d_t = type opaque
53d349ea9SJan Vesely
63d349ea9SJan Veselydeclare i32 @llvm.OpenCL.image.get.resource.id.2d(
73d349ea9SJan Vesely  %opencl.image2d_t addrspace(1)*) nounwind readnone
83d349ea9SJan Veselydeclare i32 @llvm.OpenCL.image.get.resource.id.3d(
93d349ea9SJan Vesely  %opencl.image3d_t addrspace(1)*) nounwind readnone
103d349ea9SJan Vesely
113d349ea9SJan Veselydeclare [3 x i32] @llvm.OpenCL.image.get.size.2d(
123d349ea9SJan Vesely  %opencl.image2d_t addrspace(1)*) nounwind readnone
133d349ea9SJan Veselydeclare [3 x i32] @llvm.OpenCL.image.get.size.3d(
143d349ea9SJan Vesely  %opencl.image3d_t addrspace(1)*) nounwind readnone
153d349ea9SJan Vesely
163d349ea9SJan Veselydeclare [2 x i32] @llvm.OpenCL.image.get.format.2d(
173d349ea9SJan Vesely  %opencl.image2d_t addrspace(1)*) nounwind readnone
183d349ea9SJan Veselydeclare [2 x i32] @llvm.OpenCL.image.get.format.3d(
193d349ea9SJan Vesely  %opencl.image3d_t addrspace(1)*) nounwind readnone
203d349ea9SJan Vesely
213d349ea9SJan Veselydefine i32 @__clc_get_image_width_2d(
223d349ea9SJan Vesely                          %opencl.image2d_t addrspace(1)* nocapture %img) #0 {
233d349ea9SJan Vesely  %1 = tail call [3 x i32] @llvm.OpenCL.image.get.size.2d(
243d349ea9SJan Vesely    %opencl.image2d_t addrspace(1)* %img)
253d349ea9SJan Vesely  %2 = extractvalue [3 x i32] %1, 0
263d349ea9SJan Vesely  ret i32 %2
273d349ea9SJan Vesely}
283d349ea9SJan Veselydefine i32 @__clc_get_image_width_3d(
293d349ea9SJan Vesely                          %opencl.image3d_t addrspace(1)* nocapture %img) #0 {
303d349ea9SJan Vesely  %1 = tail call [3 x i32] @llvm.OpenCL.image.get.size.3d(
313d349ea9SJan Vesely    %opencl.image3d_t addrspace(1)* %img)
323d349ea9SJan Vesely  %2 = extractvalue [3 x i32] %1, 0
333d349ea9SJan Vesely  ret i32 %2
343d349ea9SJan Vesely}
353d349ea9SJan Vesely
363d349ea9SJan Veselydefine i32 @__clc_get_image_height_2d(
373d349ea9SJan Vesely                          %opencl.image2d_t addrspace(1)* nocapture %img) #0 {
383d349ea9SJan Vesely  %1 = tail call [3 x i32] @llvm.OpenCL.image.get.size.2d(
393d349ea9SJan Vesely    %opencl.image2d_t addrspace(1)* %img)
403d349ea9SJan Vesely  %2 = extractvalue [3 x i32] %1, 1
413d349ea9SJan Vesely  ret i32 %2
423d349ea9SJan Vesely}
433d349ea9SJan Veselydefine i32 @__clc_get_image_height_3d(
443d349ea9SJan Vesely                          %opencl.image3d_t addrspace(1)* nocapture %img) #0 {
453d349ea9SJan Vesely  %1 = tail call [3 x i32] @llvm.OpenCL.image.get.size.3d(
463d349ea9SJan Vesely    %opencl.image3d_t addrspace(1)* %img)
473d349ea9SJan Vesely  %2 = extractvalue [3 x i32] %1, 1
483d349ea9SJan Vesely  ret i32 %2
493d349ea9SJan Vesely}
503d349ea9SJan Vesely
513d349ea9SJan Veselydefine i32 @__clc_get_image_depth_3d(
523d349ea9SJan Vesely                          %opencl.image3d_t addrspace(1)* nocapture %img) #0 {
533d349ea9SJan Vesely  %1 = tail call [3 x i32] @llvm.OpenCL.image.get.size.3d(
543d349ea9SJan Vesely    %opencl.image3d_t addrspace(1)* %img)
553d349ea9SJan Vesely  %2 = extractvalue [3 x i32] %1, 2
563d349ea9SJan Vesely  ret i32 %2
573d349ea9SJan Vesely}
583d349ea9SJan Vesely
593d349ea9SJan Veselydefine i32 @__clc_get_image_channel_data_type_2d(
603d349ea9SJan Vesely                          %opencl.image2d_t addrspace(1)* nocapture %img) #0 {
613d349ea9SJan Vesely  %1 = tail call [2 x i32] @llvm.OpenCL.image.get.format.2d(
623d349ea9SJan Vesely    %opencl.image2d_t addrspace(1)* %img)
633d349ea9SJan Vesely  %2 = extractvalue [2 x i32] %1, 0
643d349ea9SJan Vesely  ret i32 %2
653d349ea9SJan Vesely}
663d349ea9SJan Veselydefine i32 @__clc_get_image_channel_data_type_3d(
673d349ea9SJan Vesely                          %opencl.image3d_t addrspace(1)* nocapture %img) #0 {
683d349ea9SJan Vesely  %1 = tail call [2 x i32] @llvm.OpenCL.image.get.format.3d(
693d349ea9SJan Vesely    %opencl.image3d_t addrspace(1)* %img)
703d349ea9SJan Vesely  %2 = extractvalue [2 x i32] %1, 0
713d349ea9SJan Vesely  ret i32 %2
723d349ea9SJan Vesely}
733d349ea9SJan Vesely
743d349ea9SJan Veselydefine i32 @__clc_get_image_channel_order_2d(
753d349ea9SJan Vesely                          %opencl.image2d_t addrspace(1)* nocapture %img) #0 {
763d349ea9SJan Vesely  %1 = tail call [2 x i32] @llvm.OpenCL.image.get.format.2d(
773d349ea9SJan Vesely    %opencl.image2d_t addrspace(1)* %img)
783d349ea9SJan Vesely  %2 = extractvalue [2 x i32] %1, 1
793d349ea9SJan Vesely  ret i32 %2
803d349ea9SJan Vesely}
813d349ea9SJan Veselydefine i32 @__clc_get_image_channel_order_3d(
823d349ea9SJan Vesely                          %opencl.image3d_t addrspace(1)* nocapture %img) #0 {
833d349ea9SJan Vesely  %1 = tail call [2 x i32] @llvm.OpenCL.image.get.format.3d(
843d349ea9SJan Vesely    %opencl.image3d_t addrspace(1)* %img)
853d349ea9SJan Vesely  %2 = extractvalue [2 x i32] %1, 1
863d349ea9SJan Vesely  ret i32 %2
873d349ea9SJan Vesely}
883d349ea9SJan Vesely
893d349ea9SJan Veselyattributes #0 = { nounwind readnone alwaysinline }
90