1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorRed, colorGreen; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerbool test() { 4*c8dee2aaSAndroid Build Coastguard Worker const float floatOne = 1; 5*c8dee2aaSAndroid Build Coastguard Worker const int intOne = 1; 6*c8dee2aaSAndroid Build Coastguard Worker const half4 half4One = half4(1); 7*c8dee2aaSAndroid Build Coastguard Worker const int4 int4One = int4(1); 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker bool ok = true; 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker // Typecasting a constant scalar variable should fold away. 12*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (int(floatOne) == intOne); 13*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (float(intOne) == floatOne); 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker // Typecasting a constant vector variable should fold away. 16*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (int4(half4One) == int4One); 17*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (half4(int4One) == half4One); 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Worker // More complex cases should also fold. 20*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (int4(half4One) == int4(intOne)); // cast(vector) == splat(scalar) 21*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (half4(int4One) == half4(half(floatOne))); // cast(vector) == splat(cast(scalar)) 22*c8dee2aaSAndroid Build Coastguard Worker ok = ok && (half4(intOne) == half4(float4(floatOne))); // splatcast(sclr) == cast(splat(sclr)) 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker return ok; 25*c8dee2aaSAndroid Build Coastguard Worker} 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) { 28*c8dee2aaSAndroid Build Coastguard Worker return test() ? colorGreen : colorRed; 29*c8dee2aaSAndroid Build Coastguard Worker} 30