| #include <dx/linalg.h> |
| using namespace dx::linalg; |
| using Matrix_left_f32_8x8 = Matrix<ComponentType::F32, 8, 8, MatrixUse::A, MatrixScope::Wave>; |
| using Matrix_right_f32_8x8 = Matrix<ComponentType::F32, 8, 8, MatrixUse::B, MatrixScope::Wave>; |
| struct S { |
| Matrix_left_f32_8x8 l; |
| Matrix_right_f32_8x8 r; |
| }; |
| |
| struct S_Nested { |
| S s; |
| }; |
| |
| |
| RWByteAddressBuffer buffer : register(u0); |
| [numthreads(64, 1, 1)] |
| void main() { |
| uint v = 0u; |
| buffer.GetDimensions(v); |
| bool v_1 = (((0u + (64u * 7u)) + 8u) <= (v / 4u)); |
| Matrix_left_f32_8x8::Splat(0.0f).Store(buffer, (0u + (select(v_1, 0u, 0u) * 4u)), (select(v_1, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| Matrix_left_f32_8x8 v_2 = Matrix_left_f32_8x8::Splat(0.0f); |
| Matrix_left_f32_8x8 v_3[4] = {v_2, v_2, v_2, v_2}; |
| Matrix_left_f32_8x8 v_4 = v_3[1u]; |
| uint v_5 = 0u; |
| buffer.GetDimensions(v_5); |
| bool v_6 = (((0u + (64u * 7u)) + 8u) <= (v_5 / 4u)); |
| v_4.Store(buffer, (0u + (select(v_6, 0u, 0u) * 4u)), (select(v_6, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| Matrix_left_f32_8x8 v_7 = Matrix_left_f32_8x8::Splat(0.0f); |
| Matrix_left_f32_8x8 v_8[4] = {v_7, v_7, v_7, v_7}; |
| Matrix_left_f32_8x8 v_9[4][4] = {v_8, v_8, v_8, v_8}; |
| Matrix_left_f32_8x8 v_10 = v_9[2u][3u]; |
| uint v_11 = 0u; |
| buffer.GetDimensions(v_11); |
| bool v_12 = (((0u + (64u * 7u)) + 8u) <= (v_11 / 4u)); |
| v_10.Store(buffer, (0u + (select(v_12, 0u, 0u) * 4u)), (select(v_12, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| S v_13 = {Matrix_left_f32_8x8::Splat(0.0f), Matrix_right_f32_8x8::Splat(0.0f)}; |
| Matrix_left_f32_8x8 v_14 = v_13.l; |
| uint v_15 = 0u; |
| buffer.GetDimensions(v_15); |
| bool v_16 = (((0u + (64u * 7u)) + 8u) <= (v_15 / 4u)); |
| v_14.Store(buffer, (0u + (select(v_16, 0u, 0u) * 4u)), (select(v_16, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| S v_17 = {Matrix_left_f32_8x8::Splat(0.0f), Matrix_right_f32_8x8::Splat(0.0f)}; |
| S_Nested v_18 = {v_17}; |
| Matrix_right_f32_8x8 v_19 = v_18.s.r; |
| uint v_20 = 0u; |
| buffer.GetDimensions(v_20); |
| bool v_21 = (((0u + (64u * 7u)) + 8u) <= (v_20 / 4u)); |
| v_19.Store(buffer, (0u + (select(v_21, 0u, 0u) * 4u)), (select(v_21, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| uint v_22 = 0u; |
| buffer.GetDimensions(v_22); |
| bool v_23 = (((0u + (64u * 7u)) + 8u) <= (v_22 / 4u)); |
| Matrix_left_f32_8x8::Splat(42.0f).Store(buffer, (0u + (select(v_23, 0u, 0u) * 4u)), (select(v_23, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| Matrix_left_f32_8x8 v_24[2] = {Matrix_left_f32_8x8::Splat(42.0f), Matrix_left_f32_8x8::Splat(100.0f)}; |
| Matrix_left_f32_8x8 v_25 = v_24[1u]; |
| uint v_26 = 0u; |
| buffer.GetDimensions(v_26); |
| bool v_27 = (((0u + (64u * 7u)) + 8u) <= (v_26 / 4u)); |
| v_25.Store(buffer, (0u + (select(v_27, 0u, 0u) * 4u)), (select(v_27, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| Matrix_left_f32_8x8 v_28[2] = {Matrix_left_f32_8x8::Splat(42.0f), Matrix_left_f32_8x8::Splat(100.0f)}; |
| Matrix_left_f32_8x8 v_29[2] = {Matrix_left_f32_8x8::Splat(-7.0f), Matrix_left_f32_8x8::Splat(-42.0f)}; |
| Matrix_left_f32_8x8 v_30[2][2] = {v_28, v_29}; |
| Matrix_left_f32_8x8 v_31 = v_30[1u][0u]; |
| uint v_32 = 0u; |
| buffer.GetDimensions(v_32); |
| bool v_33 = (((0u + (64u * 7u)) + 8u) <= (v_32 / 4u)); |
| v_31.Store(buffer, (0u + (select(v_33, 0u, 0u) * 4u)), (select(v_33, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| S v_34 = {Matrix_left_f32_8x8::Splat(42.0f), Matrix_right_f32_8x8::Splat(100.0f)}; |
| Matrix_left_f32_8x8 v_35 = v_34.l; |
| uint v_36 = 0u; |
| buffer.GetDimensions(v_36); |
| bool v_37 = (((0u + (64u * 7u)) + 8u) <= (v_36 / 4u)); |
| v_35.Store(buffer, (0u + (select(v_37, 0u, 0u) * 4u)), (select(v_37, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| S v_38 = {Matrix_left_f32_8x8::Splat(42.0f), Matrix_right_f32_8x8::Splat(100.0f)}; |
| S_Nested v_39 = {v_38}; |
| Matrix_right_f32_8x8 v_40 = v_39.s.r; |
| uint v_41 = 0u; |
| buffer.GetDimensions(v_41); |
| bool v_42 = (((0u + (64u * 7u)) + 8u) <= (v_41 / 4u)); |
| v_40.Store(buffer, (0u + (select(v_42, 0u, 0u) * 4u)), (select(v_42, 64u, 8u) * 4u), MatrixLayout::RowMajor); |
| } |
| |