1; SPIR-V 2; Version: 1.0 3; Generator: Khronos SPIR-V Tools Assembler; 0 4; Bound: 25 5; Schema: 0 6 OpCapability Float64 7 OpCapability Addresses 8 OpCapability Linkage 9 OpCapability Kernel 10 %1 = OpExtInstImport "OpenCL.std" 11 OpMemoryModel Physical32 OpenCL 12 OpEntryPoint Kernel %2 "fmath_spv" %gl_GlobalInvocationID 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 %uint = OpTypeInt 32 0 24 %v3uint = OpTypeVector %uint 3 25%_ptr_Input_v3uint = OpTypePointer Input %v3uint 26 %void = OpTypeVoid 27 %double = OpTypeFloat 64 28 %v2double = OpTypeVector %double 2 29%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double 30 %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double 31%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input 32 %2 = OpFunction %void None %16 33 %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double 34 %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double 35 %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double 36 %entry = OpLabel 37 %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 38 %18 = OpCompositeExtract %uint %17 0 39 %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 40 %20 = OpLoad %v2double %19 Aligned 16 41 %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 42 %22 = OpLoad %v2double %21 Aligned 16 43 %23 = OpFSub %v2double %20 %22 44 %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 45 OpStore %24 %23 Aligned 16 46 OpReturn 47 OpFunctionEnd 48