xref: /aosp_15_r20/external/skia/tests/sksl/shared/LogicalAndShortCircuit.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct FSOut {
4  @location(0) sk_FragColor: vec4<f32>,
5};
6struct _GlobalUniforms {
7  colorGreen: vec4<f32>,
8  colorRed: vec4<f32>,
9};
10@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
11fn TrueFalse_b() -> bool {
12  {
13    const x: i32 = 1;
14    var y: i32 = 1;
15    var _skTemp0: bool;
16    if x == 1 {
17      y = y + 1;
18      _skTemp0 = (y == 3);
19    } else {
20      _skTemp0 = false;
21    }
22    if _skTemp0 {
23      {
24        return false;
25      }
26    } else {
27      {
28        return (x == 1) && (y == 2);
29      }
30    }
31  }
32  return bool();
33}
34fn FalseTrue_b() -> bool {
35  {
36    const x: i32 = 1;
37    var y: i32 = 1;
38    var _skTemp1: bool;
39    if x == 2 {
40      y = y + 1;
41      _skTemp1 = (y == 2);
42    } else {
43      _skTemp1 = false;
44    }
45    if _skTemp1 {
46      {
47        return false;
48      }
49    } else {
50      {
51        return (x == 1) && (y == 1);
52      }
53    }
54  }
55  return bool();
56}
57fn FalseFalse_b() -> bool {
58  {
59    const x: i32 = 1;
60    var y: i32 = 1;
61    var _skTemp2: bool;
62    if x == 2 {
63      y = y + 1;
64      _skTemp2 = (y == 3);
65    } else {
66      _skTemp2 = false;
67    }
68    if _skTemp2 {
69      {
70        return false;
71      }
72    } else {
73      {
74        return (x == 1) && (y == 1);
75      }
76    }
77  }
78  return bool();
79}
80fn _skslMain(_skParam0: vec2<f32>) -> vec4<f32> {
81  {
82    var _0_TrueTrue: bool;
83    var _2_y: i32 = 1;
84    _2_y = _2_y + 1;
85    if _2_y == 2 {
86      {
87        _0_TrueTrue = (_2_y == 2);
88      }
89    } else {
90      {
91        _0_TrueTrue = false;
92      }
93    }
94    var _skTemp3: vec4<f32>;
95    var _skTemp4: bool;
96    var _skTemp5: bool;
97    var _skTemp6: bool;
98    if _0_TrueTrue {
99      let _skTemp7 = TrueFalse_b();
100      _skTemp6 = _skTemp7;
101    } else {
102      _skTemp6 = false;
103    }
104    if _skTemp6 {
105      let _skTemp8 = FalseTrue_b();
106      _skTemp5 = _skTemp8;
107    } else {
108      _skTemp5 = false;
109    }
110    if _skTemp5 {
111      let _skTemp9 = FalseFalse_b();
112      _skTemp4 = _skTemp9;
113    } else {
114      _skTemp4 = false;
115    }
116    if _skTemp4 {
117      _skTemp3 = _globalUniforms.colorGreen;
118    } else {
119      _skTemp3 = _globalUniforms.colorRed;
120    }
121    return _skTemp3;
122  }
123}
124@fragment fn main() -> FSOut {
125  var _stageOut: FSOut;
126  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
127  return _stageOut;
128}
129