struct S {
  float a;
};

static bool bool_var = false;
static int i32_var = 0;
static uint u32_var = 0u;
static float f32_var = 0.0f;
static int2 v2i32_var = int2(0, 0);
static uint3 v3u32_var = uint3(0u, 0u, 0u);
static float4 v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float2x3 m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);

struct tint_array_wrapper {
  float arr[4];
};

static tint_array_wrapper arr_var = {(float[4])0};
static S struct_var = (S)0;

[numthreads(1, 1, 1)]
void main() {
  bool_var = false;
  i32_var = 0;
  u32_var = 0u;
  f32_var = 0.0f;
  v2i32_var = int2(0, 0);
  v3u32_var = uint3(0u, 0u, 0u);
  v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
  m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
  const tint_array_wrapper tint_symbol = {(float[4])0};
  arr_var = tint_symbol;
  const S tint_symbol_1 = (S)0;
  struct_var = tint_symbol_1;
  return;
}
