1*c8dee2aaSAndroid Build Coastguard Worker 2*c8dee2aaSAndroid Build Coastguard Workeruniform mat2 testMatrix2x2; 3*c8dee2aaSAndroid Build Coastguard Workeruniform mat3 testMatrix3x3; 4*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 testInputs; 5*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed; 6*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen; 7*c8dee2aaSAndroid Build Coastguard Workeruniform float unknownInput; 8*c8dee2aaSAndroid Build Coastguard Workerbool test_Xno_Xop_Xscalar_XX_Xmat2_Xb() { 9*c8dee2aaSAndroid Build Coastguard Worker mat2 m; 10*c8dee2aaSAndroid Build Coastguard Worker mat2 mm; 11*c8dee2aaSAndroid Build Coastguard Worker const mat2 z = mat2(0.0); 12*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix2x2; 13*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix2x2; 14*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix2x2) return false; 15*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix2x2) return false; 16*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix2x2) return false; 17*c8dee2aaSAndroid Build Coastguard Worker m = -m; 18*c8dee2aaSAndroid Build Coastguard Worker if (m != -testMatrix2x2) return false; 19*c8dee2aaSAndroid Build Coastguard Worker mm = mat2(0.0); 20*c8dee2aaSAndroid Build Coastguard Worker mm = mat2(0.0); 21*c8dee2aaSAndroid Build Coastguard Worker return mm == z; 22*c8dee2aaSAndroid Build Coastguard Worker} 23*c8dee2aaSAndroid Build Coastguard Workerbool test_Xno_Xop_Xscalar_XX_Xmat3_Xb() { 24*c8dee2aaSAndroid Build Coastguard Worker mat3 m; 25*c8dee2aaSAndroid Build Coastguard Worker mat3 mm; 26*c8dee2aaSAndroid Build Coastguard Worker const mat3 z = mat3(0.0); 27*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix3x3; 28*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix3x3; 29*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix3x3) return false; 30*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix3x3) return false; 31*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix3x3) return false; 32*c8dee2aaSAndroid Build Coastguard Worker m = -m; 33*c8dee2aaSAndroid Build Coastguard Worker if (m != -testMatrix3x3) return false; 34*c8dee2aaSAndroid Build Coastguard Worker mm = mat3(0.0); 35*c8dee2aaSAndroid Build Coastguard Worker mm = mat3(0.0); 36*c8dee2aaSAndroid Build Coastguard Worker return mm == z; 37*c8dee2aaSAndroid Build Coastguard Worker} 38*c8dee2aaSAndroid Build Coastguard Workerbool test_Xno_Xop_Xscalar_XX_Xmat4_Xb() { 39*c8dee2aaSAndroid Build Coastguard Worker mat4 testMatrix4x4 = mat4(testInputs, testInputs, testInputs, testInputs); 40*c8dee2aaSAndroid Build Coastguard Worker mat4 m; 41*c8dee2aaSAndroid Build Coastguard Worker mat4 mm; 42*c8dee2aaSAndroid Build Coastguard Worker const mat4 z = mat4(0.0); 43*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix4x4; 44*c8dee2aaSAndroid Build Coastguard Worker m = testMatrix4x4; 45*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix4x4) return false; 46*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix4x4) return false; 47*c8dee2aaSAndroid Build Coastguard Worker if (m != testMatrix4x4) return false; 48*c8dee2aaSAndroid Build Coastguard Worker m = -m; 49*c8dee2aaSAndroid Build Coastguard Worker if (m != -testMatrix4x4) return false; 50*c8dee2aaSAndroid Build Coastguard Worker mm = mat4(0.0); 51*c8dee2aaSAndroid Build Coastguard Worker mm = mat4(0.0); 52*c8dee2aaSAndroid Build Coastguard Worker return mm == z; 53*c8dee2aaSAndroid Build Coastguard Worker} 54*c8dee2aaSAndroid Build Coastguard Workerbool test_Xno_Xop_Xmat2_XX_Xscalar_Xb() { 55*c8dee2aaSAndroid Build Coastguard Worker mat2 m; 56*c8dee2aaSAndroid Build Coastguard Worker mat2 mm; 57*c8dee2aaSAndroid Build Coastguard Worker const mat2 z = mat2(0.0); 58*c8dee2aaSAndroid Build Coastguard Worker const mat2 s = mat2(vec4(1.0).xy, vec4(1.0).zw); 59*c8dee2aaSAndroid Build Coastguard Worker float scalar = testInputs.x; 60*c8dee2aaSAndroid Build Coastguard Worker m = mat2(scalar); 61*c8dee2aaSAndroid Build Coastguard Worker m = mat2(scalar); 62*c8dee2aaSAndroid Build Coastguard Worker if (m != mat2(scalar)) return false; 63*c8dee2aaSAndroid Build Coastguard Worker m = scalar / s; 64*c8dee2aaSAndroid Build Coastguard Worker if (m != mat2(scalar, scalar, scalar, scalar)) return false; 65*c8dee2aaSAndroid Build Coastguard Worker m = scalar + z; 66*c8dee2aaSAndroid Build Coastguard Worker m = z + scalar; 67*c8dee2aaSAndroid Build Coastguard Worker if (m != mat2(scalar, scalar, scalar, scalar)) return false; 68*c8dee2aaSAndroid Build Coastguard Worker m = scalar - z; 69*c8dee2aaSAndroid Build Coastguard Worker m = z - scalar; 70*c8dee2aaSAndroid Build Coastguard Worker if (m != -mat2(scalar, scalar, scalar, scalar)) return false; 71*c8dee2aaSAndroid Build Coastguard Worker mm = mat2(0.0); 72*c8dee2aaSAndroid Build Coastguard Worker mm = mat2(0.0); 73*c8dee2aaSAndroid Build Coastguard Worker return mm == z; 74*c8dee2aaSAndroid Build Coastguard Worker} 75*c8dee2aaSAndroid Build Coastguard Workerbool test_Xno_Xop_Xmat3_XX_Xscalar_Xb() { 76*c8dee2aaSAndroid Build Coastguard Worker mat3 m; 77*c8dee2aaSAndroid Build Coastguard Worker mat3 mm; 78*c8dee2aaSAndroid Build Coastguard Worker const mat3 z = mat3(0.0); 79*c8dee2aaSAndroid Build Coastguard Worker const mat3 s = mat3(vec3(1.0), vec3(1.0), vec3(1.0)); 80*c8dee2aaSAndroid Build Coastguard Worker float scalar = testInputs.x; 81*c8dee2aaSAndroid Build Coastguard Worker vec3 scalar3 = vec3(scalar); 82*c8dee2aaSAndroid Build Coastguard Worker m = mat3(scalar); 83*c8dee2aaSAndroid Build Coastguard Worker m = mat3(scalar); 84*c8dee2aaSAndroid Build Coastguard Worker if (m != mat3(scalar)) return false; 85*c8dee2aaSAndroid Build Coastguard Worker m = scalar / s; 86*c8dee2aaSAndroid Build Coastguard Worker if (m != mat3(scalar3, scalar3, scalar3)) return false; 87*c8dee2aaSAndroid Build Coastguard Worker m = scalar + z; 88*c8dee2aaSAndroid Build Coastguard Worker m = z + scalar; 89*c8dee2aaSAndroid Build Coastguard Worker if (m != mat3(scalar3, scalar3, scalar3)) return false; 90*c8dee2aaSAndroid Build Coastguard Worker m = scalar - z; 91*c8dee2aaSAndroid Build Coastguard Worker m = z - scalar; 92*c8dee2aaSAndroid Build Coastguard Worker if (m != -mat3(scalar3, scalar3, scalar3)) return false; 93*c8dee2aaSAndroid Build Coastguard Worker mm = mat3(0.0); 94*c8dee2aaSAndroid Build Coastguard Worker mm = mat3(0.0); 95*c8dee2aaSAndroid Build Coastguard Worker return mm == z; 96*c8dee2aaSAndroid Build Coastguard Worker} 97*c8dee2aaSAndroid Build Coastguard Workerbool test_Xno_Xop_Xmat4_XX_Xscalar_Xb() { 98*c8dee2aaSAndroid Build Coastguard Worker mat4 m; 99*c8dee2aaSAndroid Build Coastguard Worker mat4 mm; 100*c8dee2aaSAndroid Build Coastguard Worker const mat4 z = mat4(0.0); 101*c8dee2aaSAndroid Build Coastguard Worker const mat4 s = mat4(vec4(1.0), vec4(1.0), vec4(1.0), vec4(1.0)); 102*c8dee2aaSAndroid Build Coastguard Worker float scalar = testInputs.x; 103*c8dee2aaSAndroid Build Coastguard Worker vec4 scalar4 = vec4(scalar); 104*c8dee2aaSAndroid Build Coastguard Worker m = mat4(scalar); 105*c8dee2aaSAndroid Build Coastguard Worker m = mat4(scalar); 106*c8dee2aaSAndroid Build Coastguard Worker if (m != mat4(scalar)) return false; 107*c8dee2aaSAndroid Build Coastguard Worker m = scalar / s; 108*c8dee2aaSAndroid Build Coastguard Worker if (m != mat4(scalar4, scalar4, scalar4, scalar4)) return false; 109*c8dee2aaSAndroid Build Coastguard Worker m = scalar + z; 110*c8dee2aaSAndroid Build Coastguard Worker m = z + scalar; 111*c8dee2aaSAndroid Build Coastguard Worker if (m != mat4(scalar4, scalar4, scalar4, scalar4)) return false; 112*c8dee2aaSAndroid Build Coastguard Worker m = scalar - z; 113*c8dee2aaSAndroid Build Coastguard Worker m = z - scalar; 114*c8dee2aaSAndroid Build Coastguard Worker if (m != -mat4(scalar4, scalar4, scalar4, scalar4)) return false; 115*c8dee2aaSAndroid Build Coastguard Worker mm = mat4(0.0); 116*c8dee2aaSAndroid Build Coastguard Worker mm = mat4(0.0); 117*c8dee2aaSAndroid Build Coastguard Worker return mm == z; 118*c8dee2aaSAndroid Build Coastguard Worker} 119*c8dee2aaSAndroid Build Coastguard Workervec4 main() { 120*c8dee2aaSAndroid Build Coastguard Worker return ((((test_Xno_Xop_Xscalar_XX_Xmat2_Xb() && test_Xno_Xop_Xscalar_XX_Xmat3_Xb()) && test_Xno_Xop_Xscalar_XX_Xmat4_Xb()) && test_Xno_Xop_Xmat2_XX_Xscalar_Xb()) && test_Xno_Xop_Xmat3_XX_Xscalar_Xb()) && test_Xno_Xop_Xmat4_XX_Xscalar_Xb() ? colorGreen : colorRed; 121*c8dee2aaSAndroid Build Coastguard Worker} 122