SKIP: FAILED void set_float4(inout float4 vec, int idx, float val) { vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec; } cbuffer cbuffer_x_6 : register(b1, space0) { uint4 x_6[4]; }; cbuffer cbuffer_x_10 : register(b0, space0) { uint4 x_10[1]; }; static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f); void main_1() { float4x4 m0 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); int c = 0; float4x4 m1 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); const int x_40 = asint(x_6[1].x); const float x_41 = float(x_40); m0 = float4x4(float4(x_41, 0.0f, 0.0f, 0.0f), float4(0.0f, x_41, 0.0f, 0.0f), float4(0.0f, 0.0f, x_41, 0.0f), float4(0.0f, 0.0f, 0.0f, x_41)); const int x_48 = asint(x_6[2].x); c = x_48; while (true) { const int x_53 = c; const uint scalar_offset = ((16u * uint(0))) / 4; const int x_55 = asint(x_6[scalar_offset / 4][scalar_offset % 4]); if ((x_53 < x_55)) { } else { break; } m1 = m0; const int x_59 = c; const int x_61 = asint(x_6[3].x); const int x_64 = asint(x_6[2].x); const uint scalar_offset_1 = ((16u * uint(0))) / 4; const float x_66 = asfloat(x_10[scalar_offset_1 / 4][scalar_offset_1 % 4]); set_float4(m1[(x_59 % x_61)], x_64, x_66); const int x_68 = c; const int x_70 = asint(x_6[3].x); const int x_73 = asint(x_6[2].x); const uint scalar_offset_2 = ((16u * uint(0))) / 4; const float x_75 = asfloat(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]); set_float4(m0[(x_68 % x_70)], x_73, x_75); { c = (c + 1); } } const float4x4 x_79 = m0; const int x_81 = asint(x_6[1].x); const int x_84 = asint(x_6[2].x); const int x_87 = asint(x_6[1].x); const int x_90 = asint(x_6[1].x); const int x_93 = asint(x_6[1].x); const int x_96 = asint(x_6[2].x); const int x_99 = asint(x_6[1].x); const int x_102 = asint(x_6[1].x); const int x_105 = asint(x_6[1].x); const int x_108 = asint(x_6[2].x); const int x_111 = asint(x_6[1].x); const int x_114 = asint(x_6[1].x); const int x_117 = asint(x_6[1].x); const int x_120 = asint(x_6[2].x); const int x_123 = asint(x_6[1].x); const int x_126 = asint(x_6[1].x); const float4x4 x_132 = float4x4(float4(float(x_81), float(x_84), float(x_87), float(x_90)), float4(float(x_93), float(x_96), float(x_99), float(x_102)), float4(float(x_105), float(x_108), float(x_111), float(x_114)), float4(float(x_117), float(x_120), float(x_123), float(x_126))); bool tint_tmp_2 = all((x_79[0u] == x_132[0u])); if (tint_tmp_2) { tint_tmp_2 = all((x_79[1u] == x_132[1u])); } bool tint_tmp_1 = (tint_tmp_2); if (tint_tmp_1) { tint_tmp_1 = all((x_79[2u] == x_132[2u])); } bool tint_tmp = (tint_tmp_1); if (tint_tmp) { tint_tmp = all((x_79[3u] == x_132[3u])); } if ((tint_tmp)) { const int x_156 = asint(x_6[2].x); const int x_159 = asint(x_6[1].x); const int x_162 = asint(x_6[1].x); const int x_165 = asint(x_6[2].x); x_GLF_color = float4(float(x_156), float(x_159), float(x_162), float(x_165)); } else { const int x_169 = asint(x_6[1].x); const float x_170 = float(x_169); x_GLF_color = float4(x_170, x_170, x_170, x_170); } return; } struct main_out { float4 x_GLF_color_1; }; struct tint_symbol { float4 x_GLF_color_1 : SV_Target0; }; tint_symbol main() { main_1(); const main_out tint_symbol_1 = {x_GLF_color}; const tint_symbol tint_symbol_4 = {tint_symbol_1.x_GLF_color_1}; return tint_symbol_4; } C:\src\tint\test\Shader@0x000002F8CC0810E0(36,20-30): warning X3556: integer modulus may be much slower, try using uints if possible. C:\src\tint\test\Shader@0x000002F8CC0810E0(36,16-32): error X3500: array reference cannot be used as an l-value; not natively addressable C:\src\tint\test\Shader@0x000002F8CC0810E0(22,3-14): error X3511: forced to unroll loop, but unrolling failed.