OpCapability GenericPointer OpCapability Linkage OpCapability Addresses OpCapability Kernel OpCapability Int8 OpCapability Int16 OpCapability Int64 OpCapability Float16 OpCapability Float64 %30 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL OpEntryPoint Kernel %1 "mul_wide" %void = OpTypeVoid %ulong = OpTypeInt 64 0 %33 = OpTypeFunction %void %ulong %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong %uint = OpTypeInt 32 0 %_ptr_Function_uint = OpTypePointer Function %uint %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint %ulong_4 = OpConstant %ulong 4 %_struct_38 = OpTypeStruct %uint %uint %v2uint = OpTypeVector %uint 2 %_ptr_Generic_ulong = OpTypePointer Generic %ulong %1 = OpFunction %void None %33 %9 = OpFunctionParameter %ulong %10 = OpFunctionParameter %ulong %28 = OpLabel %2 = OpVariable %_ptr_Function_ulong Function %3 = OpVariable %_ptr_Function_ulong Function %4 = OpVariable %_ptr_Function_ulong Function %5 = OpVariable %_ptr_Function_ulong Function %6 = OpVariable %_ptr_Function_uint Function %7 = OpVariable %_ptr_Function_uint Function %8 = OpVariable %_ptr_Function_ulong Function OpStore %2 %9 OpStore %3 %10 %11 = OpLoad %ulong %2 Aligned 8 OpStore %4 %11 %12 = OpLoad %ulong %3 Aligned 8 OpStore %5 %12 %14 = OpLoad %ulong %4 %24 = OpConvertUToPtr %_ptr_CrossWorkgroup_uint %14 %13 = OpLoad %uint %24 Aligned 4 OpStore %6 %13 %16 = OpLoad %ulong %4 %23 = OpIAdd %ulong %16 %ulong_4 %25 = OpConvertUToPtr %_ptr_CrossWorkgroup_uint %23 %15 = OpLoad %uint %25 Aligned 4 OpStore %7 %15 %18 = OpLoad %uint %6 %19 = OpLoad %uint %7 %39 = OpSMulExtended %_struct_38 %18 %19 %40 = OpCompositeExtract %uint %39 0 %41 = OpCompositeExtract %uint %39 1 %43 = OpCompositeConstruct %v2uint %40 %41 %17 = OpBitcast %ulong %43 OpStore %8 %17 %20 = OpLoad %ulong %5 %21 = OpLoad %ulong %8 %26 = OpConvertUToPtr %_ptr_Generic_ulong %20 %27 = OpCopyObject %ulong %21 OpStore %26 %27 Aligned 8 OpReturn OpFunctionEnd