xref: /aosp_15_r20/external/skia/tests/sksl/folding/TernaryFolding.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct _GlobalUniforms {
4  colorRed: vec4<f32>,
5  colorGreen: vec4<f32>,
6};
7@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
8fn do_side_effect_bb(x: ptr<function, bool>) -> bool {
9  {
10    (*x) = true;
11    return false;
12  }
13}
14fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
15  {
16    const ok: bool = true;
17    let green: vec4<f32> = _globalUniforms.colorGreen;
18    let red: vec4<f32> = _globalUniforms.colorRed;
19    var param: bool = false;
20    var _skTemp0: bool;
21    let _skTemp1 = do_side_effect_bb(&_skTemp0);
22    param = _skTemp0;
23    let call: bool = true;
24    return select(red, green, vec4<bool>((ok && param) && call));
25  }
26}
27@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
28  return _skslMain(_coords);
29}
30