OpCapability GenericPointer OpCapability Linkage OpCapability Addresses OpCapability Kernel OpCapability Int8 OpCapability Int16 OpCapability Int64 OpCapability Float16 OpCapability Float64 %38 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL OpEntryPoint Kernel %1 "atom_add" %4 OpDecorate %4 Alignment 4 %void = OpTypeVoid %uint = OpTypeInt 32 0 %uchar = OpTypeInt 8 0 %uint_1024 = OpConstant %uint 1024 %_arr_uchar_uint_1024 = OpTypeArray %uchar %uint_1024 %_ptr_Workgroup__arr_uchar_uint_1024 = OpTypePointer Workgroup %_arr_uchar_uint_1024 %4 = OpVariable %_ptr_Workgroup__arr_uchar_uint_1024 Workgroup %ulong = OpTypeInt 64 0 %46 = 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 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %uint_1 = OpConstant %uint 1 %uint_0 = OpConstant %uint 0 %ulong_4_0 = OpConstant %ulong 4 %1 = OpFunction %void None %46 %9 = OpFunctionParameter %ulong %10 = OpFunctionParameter %ulong %36 = OpLabel %2 = OpVariable %_ptr_Function_ulong Function %3 = OpVariable %_ptr_Function_ulong Function %5 = OpVariable %_ptr_Function_ulong Function %6 = OpVariable %_ptr_Function_ulong Function %7 = OpVariable %_ptr_Function_uint Function %8 = OpVariable %_ptr_Function_uint Function OpStore %2 %9 OpStore %3 %10 %11 = OpLoad %ulong %2 OpStore %5 %11 %12 = OpLoad %ulong %3 OpStore %6 %12 %14 = OpLoad %ulong %5 %29 = OpConvertUToPtr %_ptr_Generic_uint %14 %13 = OpLoad %uint %29 OpStore %7 %13 %16 = OpLoad %ulong %5 %26 = OpIAdd %ulong %16 %ulong_4 %30 = OpConvertUToPtr %_ptr_Generic_uint %26 %15 = OpLoad %uint %30 OpStore %8 %15 %17 = OpLoad %uint %7 %31 = OpBitcast %_ptr_Workgroup_uint %4 OpStore %31 %17 %19 = OpLoad %uint %8 %32 = OpBitcast %_ptr_Workgroup_uint %4 %18 = OpAtomicIAdd %uint %32 %uint_1 %uint_0 %19 OpStore %7 %18 %33 = OpBitcast %_ptr_Workgroup_uint %4 %20 = OpLoad %uint %33 OpStore %8 %20 %21 = OpLoad %ulong %6 %22 = OpLoad %uint %7 %34 = OpConvertUToPtr %_ptr_Generic_uint %21 OpStore %34 %22 %23 = OpLoad %ulong %6 %24 = OpLoad %uint %8 %28 = OpIAdd %ulong %23 %ulong_4_0 %35 = OpConvertUToPtr %_ptr_Generic_uint %28 OpStore %35 %24 OpReturn OpFunctionEnd