1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct _GlobalUniforms { 4 testMatrix2x2: mat2x2<f32>, 5 testMatrix3x3: mat3x3<f32>, 6 testInputs: vec4<f32>, 7 colorRed: vec4<f32>, 8 colorGreen: vec4<f32>, 9 unknownInput: f32, 10}; 11@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 12fn test_no_op_scalar_X_mat2_b() -> bool { 13 { 14 var m: mat2x2<f32>; 15 var mm: mat2x2<f32>; 16 const z: mat2x2<f32> = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 17 m = _globalUniforms.testMatrix2x2; 18 m = _globalUniforms.testMatrix2x2; 19 if (any(m[0] != _globalUniforms.testMatrix2x2[0]) || any(m[1] != _globalUniforms.testMatrix2x2[1])) { 20 return false; 21 } 22 if (any(m[0] != _globalUniforms.testMatrix2x2[0]) || any(m[1] != _globalUniforms.testMatrix2x2[1])) { 23 return false; 24 } 25 if (any(m[0] != _globalUniforms.testMatrix2x2[0]) || any(m[1] != _globalUniforms.testMatrix2x2[1])) { 26 return false; 27 } 28 m = (-1.0 * m); 29 let _skTemp0 = (-1.0 * _globalUniforms.testMatrix2x2); 30 if (any(m[0] != _skTemp0[0]) || any(m[1] != _skTemp0[1])) { 31 return false; 32 } 33 mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 34 mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 35 return (all(mm[0] == z[0]) && all(mm[1] == z[1])); 36 } 37} 38fn test_no_op_scalar_X_mat3_b() -> bool { 39 { 40 var m: mat3x3<f32>; 41 var mm: mat3x3<f32>; 42 const z: mat3x3<f32> = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 43 m = _globalUniforms.testMatrix3x3; 44 m = _globalUniforms.testMatrix3x3; 45 if (any(m[0] != _globalUniforms.testMatrix3x3[0]) || any(m[1] != _globalUniforms.testMatrix3x3[1]) || any(m[2] != _globalUniforms.testMatrix3x3[2])) { 46 return false; 47 } 48 if (any(m[0] != _globalUniforms.testMatrix3x3[0]) || any(m[1] != _globalUniforms.testMatrix3x3[1]) || any(m[2] != _globalUniforms.testMatrix3x3[2])) { 49 return false; 50 } 51 if (any(m[0] != _globalUniforms.testMatrix3x3[0]) || any(m[1] != _globalUniforms.testMatrix3x3[1]) || any(m[2] != _globalUniforms.testMatrix3x3[2])) { 52 return false; 53 } 54 m = (-1.0 * m); 55 let _skTemp1 = (-1.0 * _globalUniforms.testMatrix3x3); 56 if (any(m[0] != _skTemp1[0]) || any(m[1] != _skTemp1[1]) || any(m[2] != _skTemp1[2])) { 57 return false; 58 } 59 mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 60 mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 61 return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); 62 } 63} 64fn test_no_op_scalar_X_mat4_b() -> bool { 65 { 66 let testMatrix4x4: mat4x4<f32> = mat4x4<f32>(_globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3]); 67 var m: mat4x4<f32>; 68 var mm: mat4x4<f32>; 69 const z: mat4x4<f32> = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 70 m = testMatrix4x4; 71 m = testMatrix4x4; 72 if (any(m[0] != testMatrix4x4[0]) || any(m[1] != testMatrix4x4[1]) || any(m[2] != testMatrix4x4[2]) || any(m[3] != testMatrix4x4[3])) { 73 return false; 74 } 75 if (any(m[0] != testMatrix4x4[0]) || any(m[1] != testMatrix4x4[1]) || any(m[2] != testMatrix4x4[2]) || any(m[3] != testMatrix4x4[3])) { 76 return false; 77 } 78 if (any(m[0] != testMatrix4x4[0]) || any(m[1] != testMatrix4x4[1]) || any(m[2] != testMatrix4x4[2]) || any(m[3] != testMatrix4x4[3])) { 79 return false; 80 } 81 m = (-1.0 * m); 82 let _skTemp2 = (-1.0 * testMatrix4x4); 83 if (any(m[0] != _skTemp2[0]) || any(m[1] != _skTemp2[1]) || any(m[2] != _skTemp2[2]) || any(m[3] != _skTemp2[3])) { 84 return false; 85 } 86 mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 87 mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 88 return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); 89 } 90} 91fn test_no_op_mat2_X_scalar_b() -> bool { 92 { 93 var m: mat2x2<f32>; 94 var mm: mat2x2<f32>; 95 const z: mat2x2<f32> = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 96 const s: mat2x2<f32> = mat2x2<f32>(vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3]); 97 let scalar: f32 = _globalUniforms.testInputs.x; 98 m = mat2x2<f32>(scalar, 0.0, 0.0, scalar); 99 m = mat2x2<f32>(scalar, 0.0, 0.0, scalar); 100 let _skTemp3 = mat2x2<f32>(scalar, 0.0, 0.0, scalar); 101 if (any(m[0] != _skTemp3[0]) || any(m[1] != _skTemp3[1])) { 102 return false; 103 } 104 m = mat2x2<f32>(scalar / s[0], scalar / s[1]); 105 let _skTemp4 = mat2x2<f32>(scalar, scalar, scalar, scalar); 106 if (any(m[0] != _skTemp4[0]) || any(m[1] != _skTemp4[1])) { 107 return false; 108 } 109 m = mat2x2<f32>(scalar + z[0], scalar + z[1]); 110 m = mat2x2<f32>(z[0] + scalar, z[1] + scalar); 111 let _skTemp5 = mat2x2<f32>(scalar, scalar, scalar, scalar); 112 if (any(m[0] != _skTemp5[0]) || any(m[1] != _skTemp5[1])) { 113 return false; 114 } 115 m = mat2x2<f32>(scalar - z[0], scalar - z[1]); 116 m = mat2x2<f32>(z[0] - scalar, z[1] - scalar); 117 let _skTemp6 = (-1.0 * mat2x2<f32>(scalar, scalar, scalar, scalar)); 118 if (any(m[0] != _skTemp6[0]) || any(m[1] != _skTemp6[1])) { 119 return false; 120 } 121 mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 122 mm = mat2x2<f32>(0.0, 0.0, 0.0, 0.0); 123 return (all(mm[0] == z[0]) && all(mm[1] == z[1])); 124 } 125} 126fn test_no_op_mat3_X_scalar_b() -> bool { 127 { 128 var m: mat3x3<f32>; 129 var mm: mat3x3<f32>; 130 const z: mat3x3<f32> = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 131 const s: mat3x3<f32> = mat3x3<f32>(vec3<f32>(1.0)[0], vec3<f32>(1.0)[1], vec3<f32>(1.0)[2], vec3<f32>(1.0)[0], vec3<f32>(1.0)[1], vec3<f32>(1.0)[2], vec3<f32>(1.0)[0], vec3<f32>(1.0)[1], vec3<f32>(1.0)[2]); 132 let scalar: f32 = _globalUniforms.testInputs.x; 133 let scalar3: vec3<f32> = vec3<f32>(scalar); 134 m = mat3x3<f32>(scalar, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, scalar); 135 m = mat3x3<f32>(scalar, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, scalar); 136 let _skTemp7 = mat3x3<f32>(scalar, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, scalar); 137 if (any(m[0] != _skTemp7[0]) || any(m[1] != _skTemp7[1]) || any(m[2] != _skTemp7[2])) { 138 return false; 139 } 140 m = mat3x3<f32>(scalar / s[0], scalar / s[1], scalar / s[2]); 141 let _skTemp8 = mat3x3<f32>(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2]); 142 if (any(m[0] != _skTemp8[0]) || any(m[1] != _skTemp8[1]) || any(m[2] != _skTemp8[2])) { 143 return false; 144 } 145 m = mat3x3<f32>(scalar + z[0], scalar + z[1], scalar + z[2]); 146 m = mat3x3<f32>(z[0] + scalar, z[1] + scalar, z[2] + scalar); 147 let _skTemp9 = mat3x3<f32>(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2]); 148 if (any(m[0] != _skTemp9[0]) || any(m[1] != _skTemp9[1]) || any(m[2] != _skTemp9[2])) { 149 return false; 150 } 151 m = mat3x3<f32>(scalar - z[0], scalar - z[1], scalar - z[2]); 152 m = mat3x3<f32>(z[0] - scalar, z[1] - scalar, z[2] - scalar); 153 let _skTemp10 = (-1.0 * mat3x3<f32>(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2])); 154 if (any(m[0] != _skTemp10[0]) || any(m[1] != _skTemp10[1]) || any(m[2] != _skTemp10[2])) { 155 return false; 156 } 157 mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 158 mm = mat3x3<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 159 return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); 160 } 161} 162fn test_no_op_mat4_X_scalar_b() -> bool { 163 { 164 var m: mat4x4<f32>; 165 var mm: mat4x4<f32>; 166 const z: mat4x4<f32> = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 167 const s: mat4x4<f32> = mat4x4<f32>(vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3], vec4<f32>(1.0)[0], vec4<f32>(1.0)[1], vec4<f32>(1.0)[2], vec4<f32>(1.0)[3]); 168 let scalar: f32 = _globalUniforms.testInputs.x; 169 let scalar4: vec4<f32> = vec4<f32>(scalar); 170 m = mat4x4<f32>(scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar); 171 m = mat4x4<f32>(scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar); 172 let _skTemp11 = mat4x4<f32>(scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar); 173 if (any(m[0] != _skTemp11[0]) || any(m[1] != _skTemp11[1]) || any(m[2] != _skTemp11[2]) || any(m[3] != _skTemp11[3])) { 174 return false; 175 } 176 m = mat4x4<f32>(scalar / s[0], scalar / s[1], scalar / s[2], scalar / s[3]); 177 let _skTemp12 = mat4x4<f32>(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3]); 178 if (any(m[0] != _skTemp12[0]) || any(m[1] != _skTemp12[1]) || any(m[2] != _skTemp12[2]) || any(m[3] != _skTemp12[3])) { 179 return false; 180 } 181 m = mat4x4<f32>(scalar + z[0], scalar + z[1], scalar + z[2], scalar + z[3]); 182 m = mat4x4<f32>(z[0] + scalar, z[1] + scalar, z[2] + scalar, z[3] + scalar); 183 let _skTemp13 = mat4x4<f32>(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3]); 184 if (any(m[0] != _skTemp13[0]) || any(m[1] != _skTemp13[1]) || any(m[2] != _skTemp13[2]) || any(m[3] != _skTemp13[3])) { 185 return false; 186 } 187 m = mat4x4<f32>(scalar - z[0], scalar - z[1], scalar - z[2], scalar - z[3]); 188 m = mat4x4<f32>(z[0] - scalar, z[1] - scalar, z[2] - scalar, z[3] - scalar); 189 let _skTemp14 = (-1.0 * mat4x4<f32>(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3])); 190 if (any(m[0] != _skTemp14[0]) || any(m[1] != _skTemp14[1]) || any(m[2] != _skTemp14[2]) || any(m[3] != _skTemp14[3])) { 191 return false; 192 } 193 mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 194 mm = mat4x4<f32>(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 195 return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); 196 } 197} 198fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 199 { 200 var _skTemp15: vec4<f32>; 201 var _skTemp16: bool; 202 var _skTemp17: bool; 203 var _skTemp18: bool; 204 var _skTemp19: bool; 205 var _skTemp20: bool; 206 let _skTemp21 = test_no_op_scalar_X_mat2_b(); 207 if _skTemp21 { 208 let _skTemp22 = test_no_op_scalar_X_mat3_b(); 209 _skTemp20 = _skTemp22; 210 } else { 211 _skTemp20 = false; 212 } 213 if _skTemp20 { 214 let _skTemp23 = test_no_op_scalar_X_mat4_b(); 215 _skTemp19 = _skTemp23; 216 } else { 217 _skTemp19 = false; 218 } 219 if _skTemp19 { 220 let _skTemp24 = test_no_op_mat2_X_scalar_b(); 221 _skTemp18 = _skTemp24; 222 } else { 223 _skTemp18 = false; 224 } 225 if _skTemp18 { 226 let _skTemp25 = test_no_op_mat3_X_scalar_b(); 227 _skTemp17 = _skTemp25; 228 } else { 229 _skTemp17 = false; 230 } 231 if _skTemp17 { 232 let _skTemp26 = test_no_op_mat4_X_scalar_b(); 233 _skTemp16 = _skTemp26; 234 } else { 235 _skTemp16 = false; 236 } 237 if _skTemp16 { 238 _skTemp15 = _globalUniforms.colorGreen; 239 } else { 240 _skTemp15 = _globalUniforms.colorRed; 241 } 242 return _skTemp15; 243 } 244} 245@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 246 return _skslMain(_coords); 247} 248