OpCapability Addresses OpCapability Linkage OpCapability Kernel OpCapability Int64 OpMemoryModel Physical64 OpenCL OpEntryPoint Kernel %func "opaque" OpName %inptr "in" OpDecorate %global_id BuiltIn GlobalInvocationId OpDecorate %global_id Constant OpDecorate %inptr FuncParamAttr NoCapture OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import OpDecorate %opaque_store LinkageAttributes "opaque_store" Import %idx_t = OpTypeInt 64 0 %idx3_t = OpTypeVector %idx_t 3 %idx3_ptr_t = OpTypePointer UniformConstant %idx3_t %void_t = OpTypeVoid %float_t = OpTypeFloat 32 %shift_val = OpConstant %idx_t 32 %val = OpConstant %float_t 3.1415927 %global_id = OpVariable %idx3_ptr_t UniformConstant %opaque_t = OpTypeOpaque "opaque_t" %opaque_ptr_t = OpTypePointer CrossWorkgroup %opaque_t %func_t = OpTypeFunction %void_t %opaque_ptr_t %opaque_store_t = OpTypeFunction %void_t %opaque_ptr_t %idx_t %float_t %opaque_store = OpFunction %void_t None %opaque_store_t %opaque_store_in = OpFunctionParameter %opaque_ptr_t %opaque_store_idx = OpFunctionParameter %idx_t %opaque_store_val = OpFunctionParameter %float_t OpFunctionEnd %func = OpFunction %void_t None %func_t %inptr = OpFunctionParameter %opaque_ptr_t %entry = OpLabel %idx3 = OpLoad %idx3_t %global_id Aligned 0 %idx_tmp = OpCompositeExtract %idx_t %idx3 0 %idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val %idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val %return = OpFunctionCall %void_t %opaque_store %inptr %idx %val OpReturn OpFunctionEnd