xref: /aosp_15_r20/external/skia/tests/sksl/shared/IntegerDivisionES3.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};
9@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
10fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
11  {
12    let zero: i32 = i32(_globalUniforms.colorGreen.x);
13    let one: i32 = i32(_globalUniforms.colorGreen.y);
14    {
15      var x: i32 = zero;
16      loop {
17        if x < 100 {
18          {
19            {
20              var y: i32 = one;
21              loop {
22                if y < 100 {
23                  {
24                    var _0_x: i32 = x;
25                    var _1_result: i32 = 0;
26                    loop {
27                      if _0_x >= y {
28                        {
29                          _1_result = _1_result + i32(1);
30                          _0_x = _0_x - y;
31                        }
32                      } else {
33                        break;
34                      }
35                    }
36                    if (x / y) != _1_result {
37                      {
38                        return vec4<f32>(1.0, f32(f32(x) * 0.003921569), f32(f32(y) * 0.003921569), 1.0);
39                      }
40                    }
41                  }
42                } else {
43                  break;
44                }
45                continuing {
46                  y = y + i32(1);
47                }
48              }
49            }
50          }
51        } else {
52          break;
53        }
54        continuing {
55          x = x + i32(1);
56        }
57      }
58    }
59    return _globalUniforms.colorGreen;
60  }
61}
62@fragment fn main() -> FSOut {
63  var _stageOut: FSOut;
64  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
65  return _stageOut;
66}
67