xref: /aosp_15_r20/external/skia/tests/sksl/shared/PrefixExpressionsES2.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  testMatrix2x2: mat2x2<f32>,
10};
11@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
12fn _skslMain(_skParam0: vec2<f32>) -> vec4<f32> {
13  {
14    var ok: bool = true;
15    var i: i32 = 5;
16    i = i + i32(1);
17    ok = ok && (i == 6);
18    var _skTemp0: bool;
19    if ok {
20      i = i + i32(1);
21      _skTemp0 = (i == 7);
22    } else {
23      _skTemp0 = false;
24    }
25    ok = _skTemp0;
26    var _skTemp1: bool;
27    if ok {
28      i = i - i32(1);
29      _skTemp1 = (i == 6);
30    } else {
31      _skTemp1 = false;
32    }
33    ok = _skTemp1;
34    i = i - i32(1);
35    ok = ok && (i == 5);
36    var f: f32 = 0.5;
37    f = f + f32(1);
38    ok = ok && (f == 1.5);
39    var _skTemp2: bool;
40    if ok {
41      f = f + f32(1);
42      _skTemp2 = (f == 2.5);
43    } else {
44      _skTemp2 = false;
45    }
46    ok = _skTemp2;
47    var _skTemp3: bool;
48    if ok {
49      f = f - f32(1);
50      _skTemp3 = (f == 1.5);
51    } else {
52      _skTemp3 = false;
53    }
54    ok = _skTemp3;
55    f = f - f32(1);
56    ok = ok && (f == 0.5);
57    var f2: vec2<f32> = vec2<f32>(0.5);
58    f2.x = f2.x + f32(1);
59    ok = ok && (f2.x == 1.5);
60    var _skTemp4: bool;
61    if ok {
62      f2.x = f2.x + f32(1);
63      _skTemp4 = (f2.x == 2.5);
64    } else {
65      _skTemp4 = false;
66    }
67    ok = _skTemp4;
68    var _skTemp5: bool;
69    if ok {
70      f2.x = f2.x - f32(1);
71      _skTemp5 = (f2.x == 1.5);
72    } else {
73      _skTemp5 = false;
74    }
75    ok = _skTemp5;
76    f2.x = f2.x - f32(1);
77    ok = ok && (f2.x == 0.5);
78    f2 = f2 + vec2<f32>(1, 1);
79    ok = ok && all(f2 == vec2<f32>(1.5));
80    var _skTemp6: bool;
81    if ok {
82      f2 = f2 + vec2<f32>(1, 1);
83      _skTemp6 = all(f2 == vec2<f32>(2.5));
84    } else {
85      _skTemp6 = false;
86    }
87    ok = _skTemp6;
88    var _skTemp7: bool;
89    if ok {
90      f2 = f2 - vec2<f32>(1, 1);
91      _skTemp7 = all(f2 == vec2<f32>(1.5));
92    } else {
93      _skTemp7 = false;
94    }
95    ok = _skTemp7;
96    f2 = f2 - vec2<f32>(1, 1);
97    ok = ok && all(f2 == vec2<f32>(0.5));
98    var i4: vec4<i32> = vec4<i32>(7, 8, 9, 10);
99    i4 = i4 + vec4<i32>(1, 1, 1, 1);
100    ok = ok && all(i4 == vec4<i32>(8, 9, 10, 11));
101    var _skTemp8: bool;
102    if ok {
103      i4 = i4 + vec4<i32>(1, 1, 1, 1);
104      _skTemp8 = all(i4 == vec4<i32>(9, 10, 11, 12));
105    } else {
106      _skTemp8 = false;
107    }
108    ok = _skTemp8;
109    var _skTemp9: bool;
110    if ok {
111      i4 = i4 - vec4<i32>(1, 1, 1, 1);
112      _skTemp9 = all(i4 == vec4<i32>(8, 9, 10, 11));
113    } else {
114      _skTemp9 = false;
115    }
116    ok = _skTemp9;
117    i4 = i4 - vec4<i32>(1, 1, 1, 1);
118    ok = ok && all(i4 == vec4<i32>(7, 8, 9, 10));
119    var m3x3: mat3x3<f32> = mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
120    m3x3 = m3x3 + mat3x3<f32>(1, 1, 1, 1, 1, 1, 1, 1, 1);
121    const _skTemp10 = mat3x3<f32>(2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0);
122    ok = ok && (all(m3x3[0] == _skTemp10[0]) && all(m3x3[1] == _skTemp10[1]) && all(m3x3[2] == _skTemp10[2]));
123    var _skTemp11: bool;
124    if ok {
125      m3x3 = m3x3 + mat3x3<f32>(1, 1, 1, 1, 1, 1, 1, 1, 1);
126      let _skTemp12 = m3x3;
127      const _skTemp13 = mat3x3<f32>(3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0);
128      _skTemp11 = (all(_skTemp12[0] == _skTemp13[0]) && all(_skTemp12[1] == _skTemp13[1]) && all(_skTemp12[2] == _skTemp13[2]));
129    } else {
130      _skTemp11 = false;
131    }
132    ok = _skTemp11;
133    var _skTemp14: bool;
134    if ok {
135      m3x3 = m3x3 - mat3x3<f32>(1, 1, 1, 1, 1, 1, 1, 1, 1);
136      let _skTemp15 = m3x3;
137      const _skTemp16 = mat3x3<f32>(2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0);
138      _skTemp14 = (all(_skTemp15[0] == _skTemp16[0]) && all(_skTemp15[1] == _skTemp16[1]) && all(_skTemp15[2] == _skTemp16[2]));
139    } else {
140      _skTemp14 = false;
141    }
142    ok = _skTemp14;
143    m3x3 = m3x3 - mat3x3<f32>(1, 1, 1, 1, 1, 1, 1, 1, 1);
144    const _skTemp17 = mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
145    ok = ok && (all(m3x3[0] == _skTemp17[0]) && all(m3x3[1] == _skTemp17[1]) && all(m3x3[2] == _skTemp17[2]));
146    ok = ok && (_globalUniforms.colorGreen.x != 1.0);
147    ok = ok && (-1.0 == (-_globalUniforms.colorGreen.y));
148    ok = ok && all(vec4<f32>(0.0, -1.0, 0.0, -1.0) == (-_globalUniforms.colorGreen));
149    const _skTemp18 = mat2x2<f32>(-1.0, -2.0, -3.0, -4.0);
150    let _skTemp19 = (-1.0 * _globalUniforms.testMatrix2x2);
151    ok = ok && (all(_skTemp18[0] == _skTemp19[0]) && all(_skTemp18[1] == _skTemp19[1]));
152    let iv: vec2<i32> = vec2<i32>(i, -i);
153    ok = ok && ((-i) == -5);
154    ok = ok && all((-iv) == vec2<i32>(-5, 5));
155    return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4<bool>(ok));
156  }
157}
158@fragment fn main() -> FSOut {
159  var _stageOut: FSOut;
160  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
161  return _stageOut;
162}
163