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" %38 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL OpEntryPoint Kernel %1 "atom_add" %4 OpExecutionMode %1 ContractionOff 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_Generic_uchar = OpTypePointer Generic %uchar %_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 Aligned 8 OpStore %5 %11 %12 = OpLoad %ulong %3 Aligned 8 OpStore %6 %12 %14 = OpLoad %ulong %5 %29 = OpConvertUToPtr %_ptr_Generic_uint %14 %13 = OpLoad %uint %29 Aligned 4 OpStore %7 %13 %16 = OpLoad %ulong %5 %30 = OpConvertUToPtr %_ptr_Generic_uint %16 %51 = OpBitcast %_ptr_Generic_uchar %30 %52 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %51 %ulong_4 %26 = OpBitcast %_ptr_Generic_uint %52 %15 = OpLoad %uint %26 Aligned 4 OpStore %8 %15 %17 = OpLoad %uint %7 %31 = OpBitcast %_ptr_Workgroup_uint %4 OpStore %31 %17 Aligned 4 %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 Aligned 4 OpStore %8 %20 %21 = OpLoad %ulong %6 %22 = OpLoad %uint %7 %34 = OpConvertUToPtr %_ptr_Generic_uint %21 OpStore %34 %22 Aligned 4 %23 = OpLoad %ulong %6 %24 = OpLoad %uint %8 %35 = OpConvertUToPtr %_ptr_Generic_uint %23 %56 = OpBitcast %_ptr_Generic_uchar %35 %57 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %56 %ulong_4_0 %28 = OpBitcast %_ptr_Generic_uint %57 OpStore %28 %24 Aligned 4 OpReturn OpFunctionEnd