SKIP: FAILED type Arr = [[stride(16)]] array; [[block]] struct buf0 { x_GLF_uniform_int_values : Arr; }; type Arr_1 = [[stride(16)]] array; [[block]] struct buf1 { x_GLF_uniform_float_values : Arr_1; }; [[group(0), binding(0)]] var x_6 : buf0; [[group(0), binding(1)]] var x_9 : buf1; var x_GLF_color : vec4; fn main_1() { var I : vec4; var N : vec4; var R : vec4; var ref : vec4; let x_40 : i32 = x_6.x_GLF_uniform_int_values[2]; let x_43 : i32 = x_6.x_GLF_uniform_int_values[3]; let x_46 : i32 = x_6.x_GLF_uniform_int_values[4]; I = bitcast>(vec4(bitcast(x_40), bitcast(x_43), bitcast(x_46), 92985u)); let x_51 : f32 = x_9.x_GLF_uniform_float_values[1]; N = vec4(x_51, x_51, x_51, x_51); let x_53 : vec4 = I; R = reflect(x_53, vec4(0.5, 0.5, 0.5, 0.5)); let x_55 : vec4 = I; let x_57 : f32 = x_9.x_GLF_uniform_float_values[2]; let x_58 : vec4 = N; let x_59 : vec4 = I; let x_62 : vec4 = N; ref = (x_55 - (x_62 * (x_57 * dot(x_58, x_59)))); let x_65 : vec4 = R; let x_66 : vec4 = ref; let x_69 : f32 = x_9.x_GLF_uniform_float_values[0]; if ((distance(x_65, x_66) < x_69)) { let x_75 : i32 = x_6.x_GLF_uniform_int_values[0]; let x_78 : i32 = x_6.x_GLF_uniform_int_values[1]; let x_81 : i32 = x_6.x_GLF_uniform_int_values[1]; let x_84 : i32 = x_6.x_GLF_uniform_int_values[0]; x_GLF_color = vec4(f32(x_75), f32(x_78), f32(x_81), f32(x_84)); } else { let x_88 : i32 = x_6.x_GLF_uniform_int_values[1]; let x_89 : f32 = f32(x_88); x_GLF_color = vec4(x_89, x_89, x_89, x_89); } return; } struct main_out { [[location(0)]] x_GLF_color_1 : vec4; }; [[stage(fragment)]] fn main() -> main_out { main_1(); return main_out(x_GLF_color); } Failed to generate: error: Unable to do bitcast to type __vec_4__f32