               OpCapability GenericPointer
               OpCapability Linkage
               OpCapability Addresses
               OpCapability Kernel
               OpCapability Int8
               OpCapability Int16
               OpCapability Int64
               OpCapability Float16
               OpCapability Float64
         %21 = OpExtInstImport "OpenCL.std"
               OpMemoryModel Physical64 OpenCL
               OpEntryPoint Kernel %1 "sin"
               OpExecutionMode %1 ContractionOff
       %void = OpTypeVoid
      %ulong = OpTypeInt 64 0
         %24 = OpTypeFunction %void %ulong %ulong
%_ptr_Function_ulong = OpTypePointer Function %ulong
      %float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float
          %1 = OpFunction %void None %24
          %7 = OpFunctionParameter %ulong
          %8 = OpFunctionParameter %ulong
         %19 = 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_float Function
               OpStore %2 %7
               OpStore %3 %8
          %9 = OpLoad %ulong %2 Aligned 8
               OpStore %4 %9
         %10 = OpLoad %ulong %3 Aligned 8
               OpStore %5 %10
         %12 = OpLoad %ulong %4
         %17 = OpConvertUToPtr %_ptr_Generic_float %12
         %11 = OpLoad %float %17 Aligned 4
               OpStore %6 %11
         %14 = OpLoad %float %6
         %13 = OpExtInst %float %21 sin %14
               OpStore %6 %13
         %15 = OpLoad %ulong %5
         %16 = OpLoad %float %6
         %18 = OpConvertUToPtr %_ptr_Generic_float %15
               OpStore %18 %16 Aligned 4
               OpReturn
               OpFunctionEnd
