struct S {
  a : f32,
};

fn ret_bool() -> bool { return bool(); }
fn ret_i32() -> i32 { return i32(); }
fn ret_u32() -> u32 { return u32(); }
fn ret_f32() -> f32 { return f32(); }
fn ret_v2i32() -> vec2<i32> { return vec2<i32>(); }
fn ret_v3u32() -> vec3<u32> { return vec3<u32>(); }
fn ret_v4f32() -> vec4<f32> { return vec4<f32>(); }
fn ret_m2x3() -> mat2x3<f32> { return mat2x3<f32>(); }
fn ret_arr() -> array<f32, 4> { return array<f32, 4>(); }
fn ret_struct() -> S { return S(); }

@stage(compute) @workgroup_size(1)
fn main() {
}
