               OpCapability GenericPointer
               OpCapability Linkage
               OpCapability Addresses
               OpCapability Kernel
               OpCapability Int8
               OpCapability Int16
               OpCapability Int64
               OpCapability Float16
               OpCapability Float64
               OpCapability DenormFlushToZero
               OpExtension "SPV_KHR_float_controls"
               OpExtension "SPV_KHR_no_integer_wrap_decoration"
         %61 = OpExtInstImport "OpenCL.std"
               OpMemoryModel Physical64 OpenCL
               OpEntryPoint Kernel %27 "shared_unify_extern" %1 %2
               OpExecutionMode %27 ContractionOff
       %void = OpTypeVoid
       %uint = OpTypeInt 32 0
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
          %1 = OpVariable %_ptr_Workgroup_uint Workgroup
     %uint_4 = OpConstant %uint 4
%_arr_uint_uint_4 = OpTypeArray %uint %uint_4
%_ptr_Workgroup__arr_uint_uint_4 = OpTypePointer Workgroup %_arr_uint_uint_4
          %2 = OpVariable %_ptr_Workgroup__arr_uint_uint_4 Workgroup
      %ulong = OpTypeInt 64 0
   %uint_4_0 = OpConstant %uint 4
         %70 = OpTypeFunction %ulong %_ptr_Workgroup_uint %_ptr_Workgroup__arr_uint_uint_4
   %uint_4_1 = OpConstant %uint 4
%_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong
   %uint_4_2 = OpConstant %uint 4
         %75 = OpTypeFunction %ulong %ulong %_ptr_Workgroup_uint %_ptr_Workgroup__arr_uint_uint_4
   %uint_4_3 = OpConstant %uint 4
         %77 = OpTypeFunction %void %ulong %ulong
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
    %ulong_8 = OpConstant %ulong 8
      %uchar = OpTypeInt 8 0
%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar
%_ptr_Generic_ulong = OpTypePointer Generic %ulong
          %3 = OpFunction %ulong None %70
         %57 = OpFunctionParameter %_ptr_Workgroup_uint
         %58 = OpFunctionParameter %_ptr_Workgroup__arr_uint_uint_4
         %16 = OpLabel
          %4 = OpVariable %_ptr_Function_ulong Function
          %5 = OpVariable %_ptr_Function_ulong Function
          %6 = OpVariable %_ptr_Function_ulong Function
         %13 = OpBitcast %_ptr_Workgroup_ulong %58
          %7 = OpLoad %ulong %13 Aligned 8
               OpStore %5 %7
         %14 = OpBitcast %_ptr_Workgroup_ulong %57
          %8 = OpLoad %ulong %14 Aligned 8
               OpStore %6 %8
         %10 = OpLoad %ulong %6
         %11 = OpLoad %ulong %5
         %15 = OpIAdd %ulong %10 %11
          %9 = OpCopyObject %ulong %15
               OpStore %4 %9
         %12 = OpLoad %ulong %4
               OpReturnValue %12
               OpFunctionEnd
         %17 = OpFunction %ulong None %75
         %20 = OpFunctionParameter %ulong
         %59 = OpFunctionParameter %_ptr_Workgroup_uint
         %60 = OpFunctionParameter %_ptr_Workgroup__arr_uint_uint_4
         %26 = OpLabel
         %19 = OpVariable %_ptr_Function_ulong Function
         %18 = OpVariable %_ptr_Function_ulong Function
               OpStore %19 %20
         %21 = OpLoad %ulong %19
         %24 = OpBitcast %_ptr_Workgroup_ulong %59
         %25 = OpCopyObject %ulong %21
               OpStore %24 %25 Aligned 8
         %22 = OpFunctionCall %ulong %3 %59 %60
               OpStore %18 %22
         %23 = OpLoad %ulong %18
               OpReturnValue %23
               OpFunctionEnd
         %27 = OpFunction %void None %77
         %34 = OpFunctionParameter %ulong
         %35 = OpFunctionParameter %ulong
         %55 = OpLabel
         %28 = OpVariable %_ptr_Function_ulong Function
         %29 = OpVariable %_ptr_Function_ulong Function
         %30 = OpVariable %_ptr_Function_ulong Function
         %31 = OpVariable %_ptr_Function_ulong Function
         %32 = OpVariable %_ptr_Function_ulong Function
         %33 = OpVariable %_ptr_Function_ulong Function
               OpStore %28 %34
               OpStore %29 %35
         %36 = OpLoad %ulong %28 Aligned 8
               OpStore %30 %36
         %37 = OpLoad %ulong %29 Aligned 8
               OpStore %31 %37
         %39 = OpLoad %ulong %30
         %49 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %39
         %38 = OpLoad %ulong %49 Aligned 8
               OpStore %32 %38
         %41 = OpLoad %ulong %30
         %50 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %41
         %81 = OpBitcast %_ptr_CrossWorkgroup_uchar %50
         %82 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %81 %ulong_8
         %48 = OpBitcast %_ptr_CrossWorkgroup_ulong %82
         %40 = OpLoad %ulong %48 Aligned 8
               OpStore %33 %40
         %42 = OpLoad %ulong %33
         %51 = OpBitcast %_ptr_Workgroup_ulong %2
               OpStore %51 %42 Aligned 8
         %44 = OpLoad %ulong %32
         %53 = OpCopyObject %ulong %44
         %52 = OpFunctionCall %ulong %17 %53 %1 %2
         %43 = OpCopyObject %ulong %52
               OpStore %33 %43
         %45 = OpLoad %ulong %31
         %46 = OpLoad %ulong %33
         %54 = OpConvertUToPtr %_ptr_Generic_ulong %45
               OpStore %54 %46 Aligned 8
               OpReturn
               OpFunctionEnd
