1*c8dee2aaSAndroid Build Coastguard Workeruniform float2x2 testMatrix2x2; // = {1, 2, 3, 4} 2*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed; 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) { 5*c8dee2aaSAndroid Build Coastguard Worker // We should not attempt to constant-fold `sqrt(negative values)`. This sqrt call should remain 6*c8dee2aaSAndroid Build Coastguard Worker // in the generated code as-is. 7*c8dee2aaSAndroid Build Coastguard Worker const float4 negativeVal = half4(-1, -4, -16, -64); 8*c8dee2aaSAndroid Build Coastguard Worker coords.xy = sqrt(negativeVal).xy; 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker float4 inputVal = float4(testMatrix2x2) + half4(0, 2, 6, 12); // = {1, 4, 9, 16} 11*c8dee2aaSAndroid Build Coastguard Worker const float4 constVal = float4(1, 4, 9, 16); 12*c8dee2aaSAndroid Build Coastguard Worker const float4 expected = float4(1, 2, 3, 4); 13*c8dee2aaSAndroid Build Coastguard Worker const float4 allowedDelta = float4(0.05); 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker return ( ( (abs(sqrt(inputVal.x) - expected.x) < allowedDelta.x)) && 16*c8dee2aaSAndroid Build Coastguard Worker all(lessThan(abs(sqrt(inputVal.xy) - expected.xy), allowedDelta.xy)) && 17*c8dee2aaSAndroid Build Coastguard Worker all(lessThan(abs(sqrt(inputVal.xyz) - expected.xyz), allowedDelta.xyz)) && 18*c8dee2aaSAndroid Build Coastguard Worker all(lessThan(abs(sqrt(inputVal.xyzw) - expected.xyzw), allowedDelta.xyzw)) && 19*c8dee2aaSAndroid Build Coastguard Worker ( (abs(sqrt(constVal.x) - expected.x) < allowedDelta.x)) && 20*c8dee2aaSAndroid Build Coastguard Worker all(lessThan(abs(sqrt(constVal.xy) - expected.xy), allowedDelta.xy)) && 21*c8dee2aaSAndroid Build Coastguard Worker all(lessThan(abs(sqrt(constVal.xyz) - expected.xyz), allowedDelta.xyz)) && 22*c8dee2aaSAndroid Build Coastguard Worker all(lessThan(abs(sqrt(constVal.xyzw) - expected.xyzw), allowedDelta.xyzw))) 23*c8dee2aaSAndroid Build Coastguard Worker ? colorGreen : colorRed; 24*c8dee2aaSAndroid Build Coastguard Worker} 25