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