               OpCapability GenericPointer
               OpCapability Linkage
               OpCapability Addresses
               OpCapability Kernel
               OpCapability Int8
               OpCapability Int16
               OpCapability Int64
               OpCapability Float16
               OpCapability Float64
         %51 = OpExtInstImport "OpenCL.std"
               OpMemoryModel Physical64 OpenCL
               OpEntryPoint Kernel %1 "bfi"
               OpDecorate %44 LinkageAttributes "__zluda_ptx_impl__bfi_b32" Import
       %void = OpTypeVoid
       %uint = OpTypeInt 32 0
         %54 = OpTypeFunction %uint %uint %uint %uint %uint
      %ulong = OpTypeInt 64 0
         %56 = OpTypeFunction %void %ulong %ulong
%_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint
    %ulong_4 = OpConstant %ulong 4
      %uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
    %ulong_8 = OpConstant %ulong 8
   %ulong_12 = OpConstant %ulong 12
         %44 = OpFunction %uint None %54
         %46 = OpFunctionParameter %uint
         %47 = OpFunctionParameter %uint
         %48 = OpFunctionParameter %uint
         %49 = OpFunctionParameter %uint
               OpFunctionEnd
          %1 = OpFunction %void None %56
         %10 = OpFunctionParameter %ulong
         %11 = OpFunctionParameter %ulong
         %43 = 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_uint Function
          %9 = OpVariable %_ptr_Function_uint Function
               OpStore %2 %10
               OpStore %3 %11
         %12 = OpLoad %ulong %2 Aligned 8
               OpStore %4 %12
         %13 = OpLoad %ulong %3 Aligned 8
               OpStore %5 %13
         %15 = OpLoad %ulong %4
         %35 = OpConvertUToPtr %_ptr_Generic_uint %15
         %14 = OpLoad %uint %35 Aligned 4
               OpStore %6 %14
         %17 = OpLoad %ulong %4
         %36 = OpConvertUToPtr %_ptr_Generic_uint %17
         %62 = OpBitcast %_ptr_Generic_uchar %36
         %63 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %62 %ulong_4
         %30 = OpBitcast %_ptr_Generic_uint %63
         %16 = OpLoad %uint %30 Aligned 4
               OpStore %7 %16
         %19 = OpLoad %ulong %4
         %37 = OpConvertUToPtr %_ptr_Generic_uint %19
         %64 = OpBitcast %_ptr_Generic_uchar %37
         %65 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %64 %ulong_8
         %32 = OpBitcast %_ptr_Generic_uint %65
         %18 = OpLoad %uint %32 Aligned 4
               OpStore %8 %18
         %21 = OpLoad %ulong %4
         %38 = OpConvertUToPtr %_ptr_Generic_uint %21
         %66 = OpBitcast %_ptr_Generic_uchar %38
         %67 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %66 %ulong_12
         %34 = OpBitcast %_ptr_Generic_uint %67
         %20 = OpLoad %uint %34 Aligned 4
               OpStore %9 %20
         %23 = OpLoad %uint %6
         %24 = OpLoad %uint %7
         %25 = OpLoad %uint %8
         %26 = OpLoad %uint %9
         %40 = OpCopyObject %uint %23
         %41 = OpCopyObject %uint %24
         %39 = OpFunctionCall %uint %44 %40 %41 %25 %26
         %22 = OpCopyObject %uint %39
               OpStore %6 %22
         %27 = OpLoad %ulong %5
         %28 = OpLoad %uint %6
         %42 = OpConvertUToPtr %_ptr_Generic_uint %27
               OpStore %42 %28 Aligned 4
               OpReturn
               OpFunctionEnd
