1; SPIR-V 2; Version: 1.0 3; Generator: Khronos SPIR-V Tools Assembler; 0 4; Bound: 25 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" %gl_GlobalInvocationID 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_Input_v3uint = OpTypePointer Input %v3uint 25 %void = OpTypeVoid 26 %float = OpTypeFloat 32 27 %v4float = OpTypeVector %float 4 28%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float 29 %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float 30%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input 31 %2 = OpFunction %void None %16 32 %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float 33 %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float 34 %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float 35 %entry = OpLabel 36 %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 37 %18 = OpCompositeExtract %uint %17 0 38 %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 39 %20 = OpLoad %v4float %19 Aligned 16 40 %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 41 %22 = OpLoad %v4float %21 Aligned 16 42 %23 = OpFSub %v4float %20 %22 43 %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 44 OpStore %24 %23 Aligned 16 45 OpReturn 46 OpFunctionEnd 47