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