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