David Neto 1444a2e117 spirv-reader: fix mapping of OpLogicalOr, OpLogicalAnd
These work on scalar and vector of bool, and map to ast::BinaryOp::kOr
and kAnd.

Bug: tint:1043
Change-Id: I009edf8e43c21cb75ccfdcde1106ec177d2fe50e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59561
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: David Neto <dneto@google.com>
2021-07-26 17:34:58 +00:00

45 lines
1.2 KiB
WebGPU Shading Language

type Arr = [[stride(16)]] array<i32, 2>;
[[block]]
struct buf0 {
x_GLF_uniform_int_values : Arr;
};
[[group(0), binding(0)]] var<uniform> x_6 : buf0;
var<private> x_GLF_color : vec4<f32>;
fn main_1() {
var m : mat2x2<f32>;
let x_29 : i32 = x_6.x_GLF_uniform_int_values[0];
let x_30 : f32 = f32(x_29);
m = transpose(transpose(mat2x2<f32>(vec2<f32>(x_30, 0.0), vec2<f32>(0.0, x_30))));
let x_36 : mat2x2<f32> = m;
let x_38 : i32 = x_6.x_GLF_uniform_int_values[0];
let x_39 : f32 = f32(x_38);
let x_42 : mat2x2<f32> = mat2x2<f32>(vec2<f32>(x_39, 0.0), vec2<f32>(0.0, x_39));
if ((all((x_36[0u] == x_42[0u])) & all((x_36[1u] == x_42[1u])))) {
let x_56 : i32 = x_6.x_GLF_uniform_int_values[0];
let x_59 : i32 = x_6.x_GLF_uniform_int_values[1];
let x_62 : i32 = x_6.x_GLF_uniform_int_values[1];
let x_65 : i32 = x_6.x_GLF_uniform_int_values[0];
x_GLF_color = vec4<f32>(f32(x_56), f32(x_59), f32(x_62), f32(x_65));
} else {
let x_69 : i32 = x_6.x_GLF_uniform_int_values[1];
let x_70 : f32 = f32(x_69);
x_GLF_color = vec4<f32>(x_70, x_70, x_70, x_70);
}
return;
}
struct main_out {
[[location(0)]]
x_GLF_color_1 : vec4<f32>;
};
[[stage(fragment)]]
fn main() -> main_out {
main_1();
return main_out(x_GLF_color);
}