1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed; 2*c8dee2aaSAndroid Build Coastguard Workeruniform float2x2 testMatrix2x2; 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2) { 5*c8dee2aaSAndroid Build Coastguard Worker bool ok = true; 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker // Prefix ++ and -- (scalar int). 8*c8dee2aaSAndroid Build Coastguard Worker int i = 5; 9*c8dee2aaSAndroid Build Coastguard Worker ++i; 10*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (i == 6); 11*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (++i == 7); 12*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (--i == 6); 13*c8dee2aaSAndroid Build Coastguard Worker --i; 14*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (i == 5); 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker // Prefix ++ and -- (scalar float). 17*c8dee2aaSAndroid Build Coastguard Worker float f = 0.5; 18*c8dee2aaSAndroid Build Coastguard Worker ++f; 19*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (f == 1.5); 20*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (++f == 2.5); 21*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (--f == 1.5); 22*c8dee2aaSAndroid Build Coastguard Worker --f; 23*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (f == 0.5); 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker // Prefix ++ and -- (vector-component float). 26*c8dee2aaSAndroid Build Coastguard Worker float2 f2 = float2(0.5); 27*c8dee2aaSAndroid Build Coastguard Worker ++f2.x; 28*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (f2.x == 1.5); 29*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (++f2.x == 2.5); 30*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (--f2.x == 1.5); 31*c8dee2aaSAndroid Build Coastguard Worker --f2.x; 32*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (f2.x == 0.5); 33*c8dee2aaSAndroid Build Coastguard Worker 34*c8dee2aaSAndroid Build Coastguard Worker // Prefix ++ and -- (vector float). 35*c8dee2aaSAndroid Build Coastguard Worker ++f2; 36*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (f2 == float2(1.5)); 37*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (++f2 == float2(2.5)); 38*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (--f2 == float2(1.5)); 39*c8dee2aaSAndroid Build Coastguard Worker --f2; 40*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (f2 == float2(0.5)); 41*c8dee2aaSAndroid Build Coastguard Worker 42*c8dee2aaSAndroid Build Coastguard Worker // Prefix ++ and -- (vector int). 43*c8dee2aaSAndroid Build Coastguard Worker int4 i4 = int4(7, 8, 9, 10); 44*c8dee2aaSAndroid Build Coastguard Worker ++i4; 45*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (i4 == int4(8, 9, 10, 11)); 46*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (++i4 == int4(9, 10, 11, 12)); 47*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (--i4 == int4(8, 9, 10, 11)); 48*c8dee2aaSAndroid Build Coastguard Worker --i4; 49*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (i4 == int4(7, 8, 9, 10)); 50*c8dee2aaSAndroid Build Coastguard Worker 51*c8dee2aaSAndroid Build Coastguard Worker // Prefix ++ and -- (matrix). 52*c8dee2aaSAndroid Build Coastguard Worker float3x3 m3x3 = float3x3(1, 2, 3, 4, 5, 6, 7, 8, 9); 53*c8dee2aaSAndroid Build Coastguard Worker ++m3x3; 54*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (m3x3 == float3x3(2, 3, 4, 5, 6, 7, 8, 9, 10)); 55*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (++m3x3 == float3x3(3, 4, 5, 6, 7, 8, 9, 10, 11)); 56*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (--m3x3 == float3x3(2, 3, 4, 5, 6, 7, 8, 9, 10)); 57*c8dee2aaSAndroid Build Coastguard Worker --m3x3; 58*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (m3x3 == float3x3(1, 2, 3, 4, 5, 6, 7, 8, 9)); 59*c8dee2aaSAndroid Build Coastguard Worker 60*c8dee2aaSAndroid Build Coastguard Worker // Prefix '!' 61*c8dee2aaSAndroid Build Coastguard Worker ok = ok && !(colorGreen.r == 1.0); 62*c8dee2aaSAndroid Build Coastguard Worker 63*c8dee2aaSAndroid Build Coastguard Worker // Prefix '-' (scalar, vector, matrix float) 64*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (-1 == -colorGreen.g); 65*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (half4(0, -1, 0, -1) == -colorGreen); 66*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (float2x2(-1, -2, -3, -4) == -testMatrix2x2); 67*c8dee2aaSAndroid Build Coastguard Worker 68*c8dee2aaSAndroid Build Coastguard Worker // Prefix '-' (scalar, vector int) 69*c8dee2aaSAndroid Build Coastguard Worker int2 iv = int2(i, -i); // (5, -5) 70*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (-i == -5); 71*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (-iv == int2(-5, 5)); 72*c8dee2aaSAndroid Build Coastguard Worker 73*c8dee2aaSAndroid Build Coastguard Worker return ok ? colorGreen : colorRed; 74*c8dee2aaSAndroid Build Coastguard Worker} 75