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