1; SPIR-V 2; Version: 1.0 3; Generator: Khronos SPIR-V Tools Assembler; 0 4; Bound: 24 5; Schema: 0 6 OpCapability Addresses 7 OpCapability Linkage 8 OpCapability Kernel 9 %1 = OpExtInstImport "OpenCL.std" 10 OpMemoryModel Physical32 OpenCL 11 OpEntryPoint Kernel %2 "fmath_spv" 12 OpName %res "res" 13 OpName %lhs "lhs" 14 OpName %rhs "rhs" 15 OpName %entry "entry" 16 OpDecorate %7 FuncParamAttr NoCapture 17 %7 = OpDecorationGroup 18 OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId 19 OpDecorate %gl_GlobalInvocationID Constant 20 OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import 21 OpGroupDecorate %7 %res %lhs %rhs 22 %uint = OpTypeInt 32 0 23 %v3uint = OpTypeVector %uint 3 24%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint 25 %void = OpTypeVoid 26 %float = OpTypeFloat 32 27%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float 28 %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float 29%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant 30 %2 = OpFunction %void None %15 31 %res = OpFunctionParameter %_ptr_CrossWorkgroup_float 32 %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float 33 %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float 34 %entry = OpLabel 35 %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 36 %17 = OpCompositeExtract %uint %16 0 37 %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 38 %19 = OpLoad %float %18 Aligned 4 39 %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 40 %21 = OpLoad %float %20 Aligned 4 41 %22 = OpFSub %float %19 %21 42 %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 43 OpStore %23 %22 Aligned 4 44 OpReturn 45 OpFunctionEnd 46