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 test_int_b() -> bool { 10 { 11 var ok: bool = true; 12 var x: vec4<i32> = vec4<i32>(6, 6, 7, 8); 13 ok = ok && all(x == vec4<i32>(6, 6, 7, 8)); 14 x = vec4<i32>(7, 9, 9, 9); 15 ok = ok && all(x == vec4<i32>(7, 9, 9, 9)); 16 x = vec4<i32>(9, 9, 10, 10); 17 ok = ok && all(x == vec4<i32>(9, 9, 10, 10)); 18 x = vec4<i32>((vec3<i32>(6)), x.w); 19 ok = ok && all(x == vec4<i32>(6, 6, 6, 10)); 20 x = vec4<i32>((vec2<i32>(3)), x.zw); 21 ok = ok && all(x == vec4<i32>(3, 3, 6, 10)); 22 x = vec4<i32>(6); 23 ok = ok && all(x == vec4<i32>(6)); 24 x = vec4<i32>(6, 6, 7, 8); 25 ok = ok && all(x == vec4<i32>(6, 6, 7, 8)); 26 x = vec4<i32>(-7, -9, -9, -9); 27 ok = ok && all(x == vec4<i32>(-7, -9, -9, -9)); 28 x = vec4<i32>(9, 9, 10, 10); 29 ok = ok && all(x == vec4<i32>(9, 9, 10, 10)); 30 x = vec4<i32>((vec3<i32>(6)), x.w); 31 ok = ok && all(x == vec4<i32>(6, 6, 6, 10)); 32 x = vec4<i32>((vec2<i32>(8)), x.zw); 33 ok = ok && all(x == vec4<i32>(8, 8, 6, 10)); 34 x = vec4<i32>(200, 100, 50, 25); 35 ok = ok && all(x == vec4<i32>(200, 100, 50, 25)); 36 x = vec4<i32>(6); 37 ok = ok && all(x == vec4<i32>(6)); 38 let unknown: i32 = i32(_globalUniforms.unknownInput); 39 x = vec4<i32>(unknown); 40 ok = ok && all(x == vec4<i32>(unknown)); 41 x = vec4<i32>(0); 42 ok = ok && all(x == vec4<i32>(0)); 43 x = vec4<i32>(0) / unknown; 44 ok = ok && all(x == vec4<i32>(0)); 45 x = vec4<i32>(unknown); 46 ok = ok && all(x == vec4<i32>(unknown)); 47 x = vec4<i32>(unknown); 48 ok = ok && all(x == vec4<i32>(unknown)); 49 x = vec4<i32>(unknown); 50 ok = ok && all(x == vec4<i32>(unknown)); 51 x = vec4<i32>(unknown); 52 ok = ok && all(x == vec4<i32>(unknown)); 53 x = vec4<i32>(unknown); 54 ok = ok && all(x == vec4<i32>(unknown)); 55 x = vec4<i32>(unknown); 56 ok = ok && all(x == vec4<i32>(unknown)); 57 x = vec4<i32>(0); 58 ok = ok && all(x == vec4<i32>(0)); 59 x = 0 / vec4<i32>(unknown); 60 ok = ok && all(x == vec4<i32>(0)); 61 x = vec4<i32>(unknown); 62 ok = ok && all(x == vec4<i32>(unknown)); 63 x = vec4<i32>(unknown); 64 ok = ok && all(x == vec4<i32>(unknown)); 65 x = vec4<i32>(0); 66 ok = ok && all(x == vec4<i32>(0)); 67 x = vec4<i32>(unknown); 68 ok = ok && all(x == vec4<i32>(unknown)); 69 x = vec4<i32>(unknown); 70 ok = ok && all(x == vec4<i32>(unknown)); 71 x = vec4<i32>(unknown); 72 x = x + 1; 73 x = x - 1; 74 ok = ok && all(x == vec4<i32>(unknown)); 75 x = vec4<i32>(unknown); 76 x = x + 1; 77 x = x - 1; 78 ok = ok && all(x == vec4<i32>(unknown)); 79 return ok; 80 } 81} 82fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 83 { 84 var _0_ok: bool = true; 85 var _1_x: vec4<f32> = vec4<f32>(6.0, 6.0, 7.0, 8.0); 86 _0_ok = _0_ok && all(_1_x == vec4<f32>(6.0, 6.0, 7.0, 8.0)); 87 _1_x = vec4<f32>(7.0, 9.0, 9.0, 9.0); 88 _0_ok = _0_ok && all(_1_x == vec4<f32>(7.0, 9.0, 9.0, 9.0)); 89 _1_x = vec4<f32>(9.0, 9.0, 10.0, 10.0); 90 _0_ok = _0_ok && all(_1_x == vec4<f32>(9.0, 9.0, 10.0, 10.0)); 91 _1_x = vec4<f32>((vec3<f32>(6.0)), _1_x.w); 92 _0_ok = _0_ok && all(_1_x == vec4<f32>(6.0, 6.0, 6.0, 10.0)); 93 _1_x = vec4<f32>((vec2<f32>(3.0)), _1_x.zw); 94 _0_ok = _0_ok && all(_1_x == vec4<f32>(3.0, 3.0, 6.0, 10.0)); 95 _1_x = vec4<f32>(6.0); 96 _0_ok = _0_ok && all(_1_x == vec4<f32>(6.0)); 97 _1_x = vec4<f32>(6.0, 6.0, 7.0, 8.0); 98 _0_ok = _0_ok && all(_1_x == vec4<f32>(6.0, 6.0, 7.0, 8.0)); 99 _1_x = vec4<f32>(-7.0, -9.0, -9.0, -9.0); 100 _0_ok = _0_ok && all(_1_x == vec4<f32>(-7.0, -9.0, -9.0, -9.0)); 101 _1_x = vec4<f32>(9.0, 9.0, 10.0, 10.0); 102 _0_ok = _0_ok && all(_1_x == vec4<f32>(9.0, 9.0, 10.0, 10.0)); 103 _1_x = vec4<f32>((vec3<f32>(6.0)), _1_x.w); 104 _0_ok = _0_ok && all(_1_x == vec4<f32>(6.0, 6.0, 6.0, 10.0)); 105 _1_x = vec4<f32>((vec2<f32>(8.0)), _1_x.zw); 106 _0_ok = _0_ok && all(_1_x == vec4<f32>(8.0, 8.0, 6.0, 10.0)); 107 _1_x = vec4<f32>(2.0, 1.0, 0.5, 0.25); 108 _0_ok = _0_ok && all(_1_x == vec4<f32>(2.0, 1.0, 0.5, 0.25)); 109 _1_x = vec4<f32>(6.0); 110 _0_ok = _0_ok && all(_1_x == vec4<f32>(6.0)); 111 let _2_unknown: f32 = _globalUniforms.unknownInput; 112 _1_x = vec4<f32>(_2_unknown); 113 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 114 _1_x = vec4<f32>(0.0); 115 _0_ok = _0_ok && all(_1_x == vec4<f32>(0.0)); 116 _1_x = vec4<f32>(0.0) / _2_unknown; 117 _0_ok = _0_ok && all(_1_x == vec4<f32>(0.0)); 118 _1_x = vec4<f32>(_2_unknown); 119 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 120 _1_x = vec4<f32>(_2_unknown); 121 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 122 _1_x = vec4<f32>(_2_unknown); 123 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 124 _1_x = vec4<f32>(_2_unknown); 125 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 126 _1_x = vec4<f32>(_2_unknown); 127 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 128 _1_x = vec4<f32>(_2_unknown); 129 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 130 _1_x = vec4<f32>(0.0); 131 _0_ok = _0_ok && all(_1_x == vec4<f32>(0.0)); 132 _1_x = 0.0 / vec4<f32>(_2_unknown); 133 _0_ok = _0_ok && all(_1_x == vec4<f32>(0.0)); 134 _1_x = vec4<f32>(_2_unknown); 135 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 136 _1_x = vec4<f32>(_2_unknown); 137 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 138 _1_x = vec4<f32>(0.0); 139 _0_ok = _0_ok && all(_1_x == vec4<f32>(0.0)); 140 _1_x = vec4<f32>(_2_unknown); 141 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 142 _1_x = vec4<f32>(_2_unknown); 143 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 144 _1_x = vec4<f32>(_2_unknown); 145 _1_x = _1_x + 1.0; 146 _1_x = _1_x - 1.0; 147 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 148 _1_x = vec4<f32>(_2_unknown); 149 _1_x = _1_x + 1.0; 150 _1_x = _1_x - 1.0; 151 _0_ok = _0_ok && all(_1_x == vec4<f32>(_2_unknown)); 152 var _skTemp0: vec4<f32>; 153 var _skTemp1: bool; 154 if _0_ok { 155 let _skTemp2 = test_int_b(); 156 _skTemp1 = _skTemp2; 157 } else { 158 _skTemp1 = false; 159 } 160 if _skTemp1 { 161 _skTemp0 = _globalUniforms.colorGreen; 162 } else { 163 _skTemp0 = _globalUniforms.colorRed; 164 } 165 return _skTemp0; 166 } 167} 168@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 169 return _skslMain(_coords); 170} 171