xref: /aosp_15_r20/external/skia/tests/sksl/folding/ArraySizeFolding.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 check_array_is_int_2_bi(x: array<i32, 2>) -> bool {
9  {
10    return true;
11  }
12}
13fn check_array_is_float_3_bf(x: array<f32, 3>) -> bool {
14  {
15    return true;
16  }
17}
18fn test_param_bff(a: array<f32, 3>, b: array<f32, 3>) -> bool {
19  {
20    var _skTemp0: bool;
21    if true {
22      let _skTemp1 = check_array_is_float_3_bf(b);
23      _skTemp0 = _skTemp1;
24    } else {
25      _skTemp0 = false;
26    }
27    return _skTemp0;
28  }
29}
30fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
31  {
32    var f: array<f32, 3>;
33    var g: array<f32, 3>;
34    var _3_b: array<i32, 2>;
35    var _4_c: array<i32, 2>;
36    var _5_d: array<i32, 2>;
37    var _6_e: array<i32, 2>;
38    var _7_f: array<i32, 2>;
39    var _skTemp2: vec4<f32>;
40    var _skTemp3: bool;
41    var _skTemp4: bool;
42    var _skTemp5: bool;
43    var _skTemp6: bool;
44    var _skTemp7: bool;
45    let _skTemp8 = check_array_is_int_2_bi(_3_b);
46    if _skTemp8 {
47      let _skTemp9 = check_array_is_int_2_bi(_4_c);
48      _skTemp7 = _skTemp9;
49    } else {
50      _skTemp7 = false;
51    }
52    if _skTemp7 {
53      let _skTemp10 = check_array_is_int_2_bi(_5_d);
54      _skTemp6 = _skTemp10;
55    } else {
56      _skTemp6 = false;
57    }
58    if _skTemp6 {
59      let _skTemp11 = check_array_is_int_2_bi(_6_e);
60      _skTemp5 = _skTemp11;
61    } else {
62      _skTemp5 = false;
63    }
64    if _skTemp5 {
65      let _skTemp12 = check_array_is_int_2_bi(_7_f);
66      _skTemp4 = _skTemp12;
67    } else {
68      _skTemp4 = false;
69    }
70    if _skTemp4 {
71      let _skTemp13 = test_param_bff(f, g);
72      _skTemp3 = _skTemp13;
73    } else {
74      _skTemp3 = false;
75    }
76    if _skTemp3 {
77      _skTemp2 = _globalUniforms.colorGreen;
78    } else {
79      _skTemp2 = _globalUniforms.colorRed;
80    }
81    return _skTemp2;
82  }
83}
84@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> {
85  return _skslMain(_coords);
86}
87