1*c8dee2aaSAndroid Build Coastguard Worker#version 300 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Worker/*#pragma settings DebugTrace*/ 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed; 6*c8dee2aaSAndroid Build Coastguard Workeruniform float2x2 testMatrix2x2; 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 xy) { 9*c8dee2aaSAndroid Build Coastguard Worker bool ok = true; 10*c8dee2aaSAndroid Build Coastguard Worker int a = int(testMatrix2x2[0][0]), b = int(testMatrix2x2[0][1]); 11*c8dee2aaSAndroid Build Coastguard Worker float c = (testMatrix2x2[1][0]), d = (testMatrix2x2[1][1]); 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker int a_and_b = a & b; 14*c8dee2aaSAndroid Build Coastguard Worker int b_and_a = b & a; 15*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_and_b == b_and_a); 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker int a_or_b = a | b; 18*c8dee2aaSAndroid Build Coastguard Worker int b_or_a = b | a; 19*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_or_b == b_or_a); 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker int a_xor_b = a ^ b; 22*c8dee2aaSAndroid Build Coastguard Worker int b_xor_a = b ^ a; 23*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_xor_b == b_xor_a); 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker bool a_eq_b = a == b; 26*c8dee2aaSAndroid Build Coastguard Worker bool b_eq_a = b == a; 27*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_eq_b == b_eq_a); 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Worker bool a_neq_b = a != b; 30*c8dee2aaSAndroid Build Coastguard Worker bool b_neq_a = b != a; 31*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_neq_b == b_neq_a); 32*c8dee2aaSAndroid Build Coastguard Worker 33*c8dee2aaSAndroid Build Coastguard Worker int a_add_b = a + b; 34*c8dee2aaSAndroid Build Coastguard Worker int b_add_a = b + a; 35*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_add_b == b_add_a); 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Worker float c_add_d = c + d; 38*c8dee2aaSAndroid Build Coastguard Worker float d_add_c = d + c; 39*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (c_add_d == d_add_c); 40*c8dee2aaSAndroid Build Coastguard Worker 41*c8dee2aaSAndroid Build Coastguard Worker int a_mul_b = a * b; 42*c8dee2aaSAndroid Build Coastguard Worker int b_mul_a = b * a; 43*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (a_mul_b == b_mul_a); 44*c8dee2aaSAndroid Build Coastguard Worker 45*c8dee2aaSAndroid Build Coastguard Worker float c_mul_d = c * d; 46*c8dee2aaSAndroid Build Coastguard Worker float d_mul_c = d * c; 47*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (c_mul_d == d_mul_c); 48*c8dee2aaSAndroid Build Coastguard Worker 49*c8dee2aaSAndroid Build Coastguard Worker return ok ? colorGreen : colorRed; 50*c8dee2aaSAndroid Build Coastguard Worker} 51