SKIP: FAILED

void set_scalar_float4x3(inout float4x3 mat, int col, int row, float val) {
  switch (col) {
    case 0:
      mat[0] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[0];
      break;
    case 1:
      mat[1] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[1];
      break;
    case 2:
      mat[2] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[2];
      break;
    case 3:
      mat[3] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[3];
      break;
  }
}

struct tint_padded_array_element {
  float el;
};

cbuffer cbuffer_x_6 : register(b1, space0) {
  uint4 x_6[3];
};
cbuffer cbuffer_x_8 : register(b0, space0) {
  uint4 x_8[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);

void main_1() {
  float4x3 m43 = float4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
  tint_padded_array_element sums[3] = (tint_padded_array_element[3])0;
  int i = 0;
  int a = 0;
  int x_67_phi = 0;
  const float x_44 = asfloat(x_6[1].x);
  const float3 x_48 = float3(0.0f, 0.0f, 0.0f);
  m43 = float4x3(float3(x_44, 0.0f, 0.0f), float3(0.0f, x_44, 0.0f), float3(0.0f, 0.0f, x_44), float3(0.0f, 0.0f, 0.0f));
  const uint scalar_offset = ((16u * uint(0))) / 4;
  const int x_51 = asint(x_8[scalar_offset / 4][scalar_offset % 4]);
  const uint scalar_offset_1 = ((16u * uint(0))) / 4;
  const int x_53 = asint(x_8[scalar_offset_1 / 4][scalar_offset_1 % 4]);
  const uint scalar_offset_2 = ((16u * uint(0))) / 4;
  const float x_55 = asfloat(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
  set_scalar_float4x3(m43, x_53, x_51, x_55);
  const uint scalar_offset_3 = ((16u * uint(0))) / 4;
  const float x_58 = asfloat(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
  const uint scalar_offset_4 = ((16u * uint(0))) / 4;
  const float x_60 = asfloat(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
  const uint scalar_offset_5 = ((16u * uint(0))) / 4;
  const float x_62 = asfloat(x_6[scalar_offset_5 / 4][scalar_offset_5 % 4]);
  const tint_padded_array_element tint_symbol_3[3] = {{x_58}, {x_60}, {x_62}};
  sums = tint_symbol_3;
  const uint scalar_offset_6 = ((16u * uint(0))) / 4;
  const int x_65 = asint(x_8[scalar_offset_6 / 4][scalar_offset_6 % 4]);
  i = x_65;
  x_67_phi = x_65;
  [loop] while (true) {
    const int x_67 = x_67_phi;
    const int x_73 = asint(x_8[3].x);
    if ((x_67 < x_73)) {
    } else {
      break;
    }
    const uint scalar_offset_7 = ((16u * uint(0))) / 4;
    const int x_77 = asint(x_8[scalar_offset_7 / 4][scalar_offset_7 % 4]);
    const uint scalar_offset_8 = ((16u * uint(0))) / 4;
    const int x_79 = asint(x_8[scalar_offset_8 / 4][scalar_offset_8 % 4]);
    const float x_81 = m43[x_67][x_79];
    const float x_83 = sums[x_77].el;
    sums[x_77].el = (x_83 + x_81);
    {
      const int x_68 = (x_67 + 1);
      i = x_68;
      x_67_phi = x_68;
    }
  }
  const int x_87 = asint(x_8[1].x);
  if ((x_87 == 1)) {
    a = 4;
    const int x_92 = asint(x_8[2].x);
    const uint scalar_offset_9 = ((16u * uint(0))) / 4;
    const int x_94 = asint(x_8[scalar_offset_9 / 4][scalar_offset_9 % 4]);
    const float x_96 = m43[4][x_94];
    const float x_98 = sums[x_92].el;
    sums[x_92].el = (x_98 + x_96);
  }
  const int x_102 = asint(x_8[1].x);
  const float x_104 = sums[x_102].el;
  const uint scalar_offset_10 = ((16u * uint(0))) / 4;
  const int x_106 = asint(x_8[scalar_offset_10 / 4][scalar_offset_10 % 4]);
  const float x_108 = sums[x_106].el;
  const float x_111 = asfloat(x_6[2].x);
  if (((x_104 + x_108) == x_111)) {
    const uint scalar_offset_11 = ((16u * uint(0))) / 4;
    const int x_117 = asint(x_8[scalar_offset_11 / 4][scalar_offset_11 % 4]);
    const int x_120 = asint(x_8[1].x);
    const int x_123 = asint(x_8[1].x);
    const uint scalar_offset_12 = ((16u * uint(0))) / 4;
    const int x_126 = asint(x_8[scalar_offset_12 / 4][scalar_offset_12 % 4]);
    x_GLF_color = float4(float(x_117), float(x_120), float(x_123), float(x_126));
  } else {
    const int x_130 = asint(x_8[1].x);
    const float x_131 = float(x_130);
    x_GLF_color = float4(x_131, x_131, x_131, x_131);
  }
  return;
}

struct main_out {
  float4 x_GLF_color_1;
};
struct tint_symbol {
  float4 x_GLF_color_1 : SV_Target0;
};

main_out main_inner() {
  main_1();
  const main_out tint_symbol_4 = {x_GLF_color};
  return tint_symbol_4;
}

tint_symbol main() {
  const main_out inner_result = main_inner();
  tint_symbol wrapper_result = (tint_symbol)0;
  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
  return wrapper_result;
}
C:\src\tint\test\Shader@0x00000111C3C21900(84,24-29): error X3504: array index out of bounds