yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
1fef9b4ab
master
1result code = 0 2standard error = { 3 4ir_global_var @_SV01s : Ptr<@ThreadGroup vector<float,4>[64]>; 5 6ir_global_var @_SV05input : Ptr<StructuredBuffer<vector<float,4>>>; 7let %1 : int = integer_constant(1) 8let %2 : int = integer_constant(64) 9 10ir_func @_S031GroupMemoryBarrierWithGroupSyncp0pV : () -> void; 11 12ir_global_var @_SV06output : Ptr<RWStructuredBuffer<vector<float,4>>>; 13let %3 : int = integer_constant(0) 14 15ir_func @_S04mainp3puuuV : (uint, uint, uint) -> void 16{ 17block %4( 18 param %5 : uint, 19 param %6 : uint, 20 param %7 : uint): 21 let %8 : Ptr<vector<float,4>> = getElementPtr(@_SV01s, %6) 22 let %9 : StructuredBuffer<vector<float,4>> = load(@_SV05input) 23 let %10 : vector<float,4> = bufferLoad(%9, %5) 24 store(%8, %10) 25 let %11 : @ConstExpr uint = construct(1) 26 loop(%12, %13, %14, %11) 27 28block %12( 29 param %15 : uint): 30 let %16 : @ConstExpr uint = construct(64) 31 let %17 : bool = cmpLT(%15, %16) 32 ifElse(%17, %18, %13, %18) 33 34block %18: 35 call @_S031GroupMemoryBarrierWithGroupSyncp0pV() 36 let %19 : Ptr<vector<float,4>> = getElementPtr(@_SV01s, %6) 37 let %20 : vector<float,4> = load(%19) 38 let %21 : uint = sub(%6, %15) 39 let %22 : Ptr<vector<float,4>> = getElementPtr(@_SV01s, %21) 40 let %23 : vector<float,4> = load(%22) 41 let %24 : vector<float,4> = add(%20, %23) 42 store(%19, %24) 43 unconditionalBranch(%14) 44 45block %14: 46 let %25 : @ConstExpr uint = construct(1) 47 let %26 : uint = shl(%15, %25) 48 unconditionalBranch(%12, %26) 49 50block %13: 51 call @_S031GroupMemoryBarrierWithGroupSyncp0pV() 52 let %27 : RWStructuredBuffer<vector<float,4>> = load(@_SV06output) 53 let %28 : Ptr<vector<float,4>> = bufferElementRef(%27, %5) 54 let %29 : Ptr<vector<float,4>> = getElementPtr(@_SV01s, 0) 55 let %30 : vector<float,4> = load(%29) 56 store(%28, %30) 57 return_void() 58} 59 60} 61standard output = { 62}