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 void @llvm.r600.rat.store.typed(<4 x i32> %color, <4 x i32> %coord, i32 %rat_id) 123d349ea9SJan Vesely 133d349ea9SJan Veselydefine void @__clc_write_imageui_2d( 143d349ea9SJan Vesely %opencl.image2d_t addrspace(1)* nocapture %img, 153d349ea9SJan Vesely <2 x i32> %coord, <4 x i32> %color) #0 { 163d349ea9SJan Vesely 173d349ea9SJan Vesely ; Coordinate int2 -> int4. 183d349ea9SJan Vesely %e0 = extractelement <2 x i32> %coord, i32 0 193d349ea9SJan Vesely %e1 = extractelement <2 x i32> %coord, i32 1 203d349ea9SJan Vesely %coord.0 = insertelement <4 x i32> undef, i32 %e0, i32 0 213d349ea9SJan Vesely %coord.1 = insertelement <4 x i32> %coord.0, i32 %e1, i32 1 223d349ea9SJan Vesely %coord.2 = insertelement <4 x i32> %coord.1, i32 0, i32 2 233d349ea9SJan Vesely %coord.3 = insertelement <4 x i32> %coord.2, i32 0, i32 3 243d349ea9SJan Vesely 253d349ea9SJan Vesely ; Get RAT ID. 263d349ea9SJan Vesely %img_id = call i32 @llvm.OpenCL.image.get.resource.id.2d( 273d349ea9SJan Vesely %opencl.image2d_t addrspace(1)* %img) 283d349ea9SJan Vesely %rat_id = add i32 %img_id, 1 293d349ea9SJan Vesely 303d349ea9SJan Vesely ; Call store intrinsic. 313d349ea9SJan Vesely call void @llvm.r600.rat.store.typed(<4 x i32> %color, <4 x i32> %coord.3, i32 %rat_id) 323d349ea9SJan Vesely ret void 333d349ea9SJan Vesely} 343d349ea9SJan Vesely 353d349ea9SJan Veselydefine void @__clc_write_imagei_2d( 363d349ea9SJan Vesely %opencl.image2d_t addrspace(1)* nocapture %img, 373d349ea9SJan Vesely <2 x i32> %coord, <4 x i32> %color) #0 { 383d349ea9SJan Vesely call void @__clc_write_imageui_2d( 393d349ea9SJan Vesely %opencl.image2d_t addrspace(1)* nocapture %img, 403d349ea9SJan Vesely <2 x i32> %coord, <4 x i32> %color) 413d349ea9SJan Vesely ret void 423d349ea9SJan Vesely} 433d349ea9SJan Vesely 443d349ea9SJan Veselydefine void @__clc_write_imagef_2d( 453d349ea9SJan Vesely %opencl.image2d_t addrspace(1)* nocapture %img, 463d349ea9SJan Vesely <2 x i32> %coord, <4 x float> %color) #0 { 473d349ea9SJan Vesely %color.i32 = bitcast <4 x float> %color to <4 x i32> 483d349ea9SJan Vesely call void @__clc_write_imageui_2d( 493d349ea9SJan Vesely %opencl.image2d_t addrspace(1)* nocapture %img, 503d349ea9SJan Vesely <2 x i32> %coord, <4 x i32> %color.i32) 513d349ea9SJan Vesely ret void 523d349ea9SJan Vesely} 533d349ea9SJan Vesely 543d349ea9SJan Veselyattributes #0 = { alwaysinline } 55