xref: /aosp_15_r20/external/skia/tests/sksl/folding/Negation.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct _GlobalUniforms {
4  colorGreen: vec4<f32>,
5  colorRed: vec4<f32>,
6};
7@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
8fn test_ivec_b() -> bool {
9  {
10    const one: i32 = 1;
11    const two: i32 = 2;
12    var ok: bool = true;
13    ok = ok && all((-vec2<i32>(-one, one + one)) == (-vec2<i32>(one - two, 2)));
14    return ok;
15  }
16}
17fn test_mat_b() -> bool {
18  {
19    const ok: bool = true;
20    return ok;
21  }
22}
23fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
24  {
25    const _4_ok: bool = true;
26    var _skTemp0: vec4<f32>;
27    var _skTemp1: bool;
28    var _skTemp2: bool;
29    if _4_ok {
30      let _skTemp3 = test_ivec_b();
31      _skTemp2 = _skTemp3;
32    } else {
33      _skTemp2 = false;
34    }
35    if _skTemp2 {
36      let _skTemp4 = test_mat_b();
37      _skTemp1 = _skTemp4;
38    } else {
39      _skTemp1 = false;
40    }
41    if _skTemp1 {
42      _skTemp0 = _globalUniforms.colorGreen;
43    } else {
44      _skTemp0 = _globalUniforms.colorRed;
45    }
46    return _skTemp0;
47  }
48}
49@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
50  return _skslMain(_coords);
51}
52