xref: /aosp_15_r20/external/skia/tests/sksl/shared/LogicalOrShortCircuit.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      _skTemp0 = true;
18    } else {
19      y = y + 1;
20      _skTemp0 = (y == 3);
21    }
22    if _skTemp0 {
23      {
24        return (x == 1) && (y == 1);
25      }
26    } else {
27      {
28        return false;
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      _skTemp1 = true;
41    } else {
42      y = y + 1;
43      _skTemp1 = (y == 2);
44    }
45    if _skTemp1 {
46      {
47        return (x == 1) && (y == 2);
48      }
49    } else {
50      {
51        return false;
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      _skTemp2 = true;
64    } else {
65      y = y + 1;
66      _skTemp2 = (y == 3);
67    }
68    if _skTemp2 {
69      {
70        return false;
71      }
72    } else {
73      {
74        return (x == 1) && (y == 2);
75      }
76    }
77  }
78  return bool();
79}
80fn _skslMain(_skParam0: vec2<f32>) -> vec4<f32> {
81  {
82    var _0_TrueTrue: bool;
83    const _2_y: i32 = 1;
84    {
85      _0_TrueTrue = (_2_y == 1);
86    }
87    var _skTemp3: vec4<f32>;
88    var _skTemp4: bool;
89    var _skTemp5: bool;
90    var _skTemp6: bool;
91    if _0_TrueTrue {
92      let _skTemp7 = TrueFalse_b();
93      _skTemp6 = _skTemp7;
94    } else {
95      _skTemp6 = false;
96    }
97    if _skTemp6 {
98      let _skTemp8 = FalseTrue_b();
99      _skTemp5 = _skTemp8;
100    } else {
101      _skTemp5 = false;
102    }
103    if _skTemp5 {
104      let _skTemp9 = FalseFalse_b();
105      _skTemp4 = _skTemp9;
106    } else {
107      _skTemp4 = false;
108    }
109    if _skTemp4 {
110      _skTemp3 = _globalUniforms.colorGreen;
111    } else {
112      _skTemp3 = _globalUniforms.colorRed;
113    }
114    return _skTemp3;
115  }
116}
117@fragment fn main() -> FSOut {
118  var _stageOut: FSOut;
119  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
120  return _stageOut;
121}
122