| struct strided_arr { |
| float el; |
| }; |
| |
| struct strided_arr_1 { |
| strided_arr el[3][2]; |
| }; |
| |
| |
| RWByteAddressBuffer s : register(u0); |
| void v(uint offset, strided_arr obj) { |
| s.Store((offset + 0u), asuint(obj.el)); |
| } |
| |
| void v_1(uint offset, strided_arr obj[2]) { |
| { |
| uint v_2 = 0u; |
| v_2 = 0u; |
| while(true) { |
| uint v_3 = v_2; |
| if ((v_3 >= 2u)) { |
| break; |
| } |
| strided_arr v_4 = obj[v_3]; |
| v((offset + (v_3 * 8u)), v_4); |
| { |
| v_2 = (v_3 + 1u); |
| } |
| continue; |
| } |
| } |
| } |
| |
| void v_5(uint offset, strided_arr obj[3][2]) { |
| { |
| uint v_6 = 0u; |
| v_6 = 0u; |
| while(true) { |
| uint v_7 = v_6; |
| if ((v_7 >= 3u)) { |
| break; |
| } |
| strided_arr v_8[2] = obj[v_7]; |
| v_1((offset + (v_7 * 16u)), v_8); |
| { |
| v_6 = (v_7 + 1u); |
| } |
| continue; |
| } |
| } |
| } |
| |
| void v_9(uint offset, strided_arr_1 obj) { |
| strided_arr v_10[3][2] = obj.el; |
| v_5((offset + 0u), v_10); |
| } |
| |
| void v_11(uint offset, strided_arr_1 obj[4]) { |
| { |
| uint v_12 = 0u; |
| v_12 = 0u; |
| while(true) { |
| uint v_13 = v_12; |
| if ((v_13 >= 4u)) { |
| break; |
| } |
| strided_arr_1 v_14 = obj[v_13]; |
| v_9((offset + (v_13 * 128u)), v_14); |
| { |
| v_12 = (v_13 + 1u); |
| } |
| continue; |
| } |
| } |
| } |
| |
| strided_arr v_15(uint offset) { |
| strided_arr v_16 = {asfloat(s.Load((offset + 0u)))}; |
| return v_16; |
| } |
| |
| typedef strided_arr ary_ret[2]; |
| ary_ret v_17(uint offset) { |
| strided_arr a[2] = (strided_arr[2])0; |
| { |
| uint v_18 = 0u; |
| v_18 = 0u; |
| while(true) { |
| uint v_19 = v_18; |
| if ((v_19 >= 2u)) { |
| break; |
| } |
| strided_arr v_20 = v_15((offset + (v_19 * 8u))); |
| a[v_19] = v_20; |
| { |
| v_18 = (v_19 + 1u); |
| } |
| continue; |
| } |
| } |
| strided_arr v_21[2] = a; |
| return v_21; |
| } |
| |
| typedef strided_arr ary_ret_1[3][2]; |
| ary_ret_1 v_22(uint offset) { |
| strided_arr a[3][2] = (strided_arr[3][2])0; |
| { |
| uint v_23 = 0u; |
| v_23 = 0u; |
| while(true) { |
| uint v_24 = v_23; |
| if ((v_24 >= 3u)) { |
| break; |
| } |
| strided_arr v_25[2] = v_17((offset + (v_24 * 16u))); |
| a[v_24] = v_25; |
| { |
| v_23 = (v_24 + 1u); |
| } |
| continue; |
| } |
| } |
| strided_arr v_26[3][2] = a; |
| return v_26; |
| } |
| |
| strided_arr_1 v_27(uint offset) { |
| strided_arr v_28[3][2] = v_22((offset + 0u)); |
| strided_arr_1 v_29 = {v_28}; |
| return v_29; |
| } |
| |
| typedef strided_arr_1 ary_ret_2[4]; |
| ary_ret_2 v_30(uint offset) { |
| strided_arr_1 a[4] = (strided_arr_1[4])0; |
| { |
| uint v_31 = 0u; |
| v_31 = 0u; |
| while(true) { |
| uint v_32 = v_31; |
| if ((v_32 >= 4u)) { |
| break; |
| } |
| strided_arr_1 v_33 = v_27((offset + (v_32 * 128u))); |
| a[v_32] = v_33; |
| { |
| v_31 = (v_32 + 1u); |
| } |
| continue; |
| } |
| } |
| strided_arr_1 v_34[4] = a; |
| return v_34; |
| } |
| |
| void f_1() { |
| strided_arr_1 x_19[4] = v_30(0u); |
| strided_arr x_24[3][2] = v_22(384u); |
| strided_arr x_28[2] = v_17(416u); |
| float x_32 = asfloat(s.Load(424u)); |
| strided_arr_1 v_35[4] = (strided_arr_1[4])0; |
| v_11(0u, v_35); |
| s.Store(424u, asuint(5.0f)); |
| } |
| |
| [numthreads(1, 1, 1)] |
| void f() { |
| f_1(); |
| } |
| |