xref: /aosp_15_r20/external/skia/tests/sksl/folding/FloatFolding.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct _GlobalUniforms {
4  colorRed: vec4<f32>,
5  colorGreen: vec4<f32>,
6  unknownInput: f32,
7};
8@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
9fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
10  {
11    let _0_unknown: f32 = f32(_globalUniforms.unknownInput);
12    var _1_ok: bool = true;
13    var _2_x: f32 = 34.0;
14    _1_ok = _1_ok && (_2_x == 34.0);
15    _2_x = 30.0;
16    _1_ok = _1_ok && (_2_x == 30.0);
17    _2_x = 64.0;
18    _1_ok = _1_ok && (_2_x == 64.0);
19    _2_x = 16.0;
20    _1_ok = _1_ok && (_2_x == 16.0);
21    _2_x = 19.0;
22    _1_ok = _1_ok && (_2_x == 19.0);
23    _2_x = 1.0;
24    _1_ok = _1_ok && (_2_x == 1.0);
25    _2_x = -2.0;
26    _1_ok = _1_ok && (_2_x == -2.0);
27    _2_x = 3.0;
28    _1_ok = _1_ok && (_2_x == 3.0);
29    _2_x = -4.0;
30    _1_ok = _1_ok && (_2_x == -4.0);
31    _2_x = 5.0;
32    _1_ok = _1_ok && (_2_x == 5.0);
33    _2_x = -6.0;
34    _1_ok = _1_ok && (_2_x == -6.0);
35    _2_x = 7.0;
36    _1_ok = _1_ok && (_2_x == 7.0);
37    _2_x = -8.0;
38    _1_ok = _1_ok && (_2_x == -8.0);
39    _2_x = 9.0;
40    _1_ok = _1_ok && (_2_x == 9.0);
41    _2_x = -10.0;
42    _1_ok = _1_ok && (_2_x == -10.0);
43    _2_x = 11.0;
44    _1_ok = _1_ok && (_2_x == 11.0);
45    _2_x = -12.0;
46    _1_ok = _1_ok && (_2_x == -12.0);
47    _2_x = _0_unknown;
48    _1_ok = _1_ok && (_2_x == _0_unknown);
49    _2_x = _0_unknown;
50    _1_ok = _1_ok && (_2_x == _0_unknown);
51    _2_x = _0_unknown;
52    _1_ok = _1_ok && (_2_x == _0_unknown);
53    _2_x = 0.0;
54    _1_ok = _1_ok && (_2_x == 0.0);
55    _2_x = _0_unknown;
56    _1_ok = _1_ok && (_2_x == _0_unknown);
57    _2_x = _0_unknown;
58    _1_ok = _1_ok && (_2_x == _0_unknown);
59    _2_x = 0.0;
60    _1_ok = _1_ok && (_2_x == 0.0);
61    _2_x = _0_unknown;
62    _1_ok = _1_ok && (_2_x == _0_unknown);
63    _2_x = 0.0 / _0_unknown;
64    _1_ok = _1_ok && (_2_x == 0.0);
65    _2_x = _2_x + 1.0;
66    _1_ok = _1_ok && (_2_x == 1.0);
67    _1_ok = _1_ok && (_2_x == 1.0);
68    _2_x = _2_x - 2.0;
69    _1_ok = _1_ok && (_2_x == -1.0);
70    _1_ok = _1_ok && (_2_x == -1.0);
71    _1_ok = _1_ok && (_2_x == -1.0);
72    _2_x = _2_x * 2.0;
73    _1_ok = _1_ok && (_2_x == -2.0);
74    _1_ok = _1_ok && (_2_x == -2.0);
75    _2_x = _2_x * 0.5;
76    _1_ok = _1_ok && (_2_x == -1.0);
77    return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4<bool>(_1_ok));
78  }
79}
80@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
81  return _skslMain(_coords);
82}
83