               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"
         %35 = OpExtInstImport "OpenCL.std"
               OpMemoryModel Physical64 OpenCL
               OpEntryPoint Kernel %12 "extern_shared_call" %1
               OpExecutionMode %12 ContractionOff
               OpDecorate %1 Alignment 4
       %void = OpTypeVoid
       %uint = OpTypeInt 32 0
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
          %1 = OpVariable %_ptr_Workgroup_uint Workgroup
         %39 = OpTypeFunction %void %_ptr_Workgroup_uint
      %ulong = OpTypeInt 64 0
%_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong
    %ulong_2 = OpConstant %ulong 2
         %43 = OpTypeFunction %void %ulong %ulong
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
          %2 = OpFunction %void None %39
         %34 = OpFunctionParameter %_ptr_Workgroup_uint
         %11 = OpLabel
          %3 = OpVariable %_ptr_Function_ulong Function
          %9 = OpBitcast %_ptr_Workgroup_ulong %34
          %4 = OpLoad %ulong %9 Aligned 8
               OpStore %3 %4
          %6 = OpLoad %ulong %3
          %5 = OpIAdd %ulong %6 %ulong_2
               OpStore %3 %5
          %7 = OpLoad %ulong %3
         %10 = OpBitcast %_ptr_Workgroup_ulong %34
               OpStore %10 %7 Aligned 8
               OpReturn
               OpFunctionEnd
         %12 = OpFunction %void None %43
         %18 = OpFunctionParameter %ulong
         %19 = OpFunctionParameter %ulong
         %32 = OpLabel
         %13 = OpVariable %_ptr_Function_ulong Function
         %14 = OpVariable %_ptr_Function_ulong Function
         %15 = OpVariable %_ptr_Function_ulong Function
         %16 = OpVariable %_ptr_Function_ulong Function
         %17 = OpVariable %_ptr_Function_ulong Function
               OpStore %13 %18
               OpStore %14 %19
         %20 = OpLoad %ulong %13 Aligned 8
               OpStore %15 %20
         %21 = OpLoad %ulong %14 Aligned 8
               OpStore %16 %21
         %23 = OpLoad %ulong %15
         %28 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %23
         %22 = OpLoad %ulong %28 Aligned 8
               OpStore %17 %22
         %24 = OpLoad %ulong %17
         %29 = OpBitcast %_ptr_Workgroup_ulong %1
               OpStore %29 %24 Aligned 8
         %45 = OpFunctionCall %void %2 %1
         %30 = OpBitcast %_ptr_Workgroup_ulong %1
         %25 = OpLoad %ulong %30 Aligned 8
               OpStore %17 %25
         %26 = OpLoad %ulong %16
         %27 = OpLoad %ulong %17
         %31 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %26
               OpStore %31 %27 Aligned 8
               OpReturn
               OpFunctionEnd
