result code = 0 standard error = { ir_global_var @_SV01s : Ptr<@ThreadGroup vector[64]>; ir_global_var @_SV05input : Ptr>>; ir_func @_S031GroupMemoryBarrierWithGroupSyncp0pV : () -> void; ir_global_var @_SV06output : Ptr>>; ir_func @_S04mainp3puuuV : (uint, uint, uint) -> void { block %1( param %2 : uint, param %3 : uint, param %4 : uint): let %5 : Ptr> = getElementPtr(@_SV01s, %3) let %6 : StructuredBuffer> = load(@_SV05input) let %7 : vector = bufferLoad(%6, %2) store(%5, %7) let %8 : @ConstExpr uint = construct(1) loop(%9, %10, %11, %8) block %9( param %12 : uint): let %13 : @ConstExpr uint = construct(64) let %14 : bool = cmpLT(%12, %13) ifElse(%14, %15, %10, %15) block %15: call(@_S031GroupMemoryBarrierWithGroupSyncp0pV) let %16 : Ptr> = getElementPtr(@_SV01s, %3) let %17 : vector = load(%16) let %18 : uint = sub(%3, %12) let %19 : Ptr> = getElementPtr(@_SV01s, %18) let %20 : vector = load(%19) let %21 : vector = add(%17, %20) store(%16, %21) unconditionalBranch(%11) block %11: let %22 : @ConstExpr uint = construct(1) let %23 : uint = shl(%12, %22) unconditionalBranch(%9, %23) block %10: call(@_S031GroupMemoryBarrierWithGroupSyncp0pV) let %24 : RWStructuredBuffer> = load(@_SV06output) let %25 : Ptr> = bufferElementRef(%24, %2) let %26 : Ptr> = getElementPtr(@_SV01s, 0) let %27 : vector = load(%26) store(%25, %27) return_void() } } standard output = { }