xref: /aosp_15_r20/external/skia/resources/sksl/intrinsics/Inversesqrt.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 inputVal, expected;
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    const half4 constVal = half4(1, 4, 16, 64);
6*c8dee2aaSAndroid Build Coastguard Worker    const half4 negativeVal = half4(-1, -4, -16, -64);  // should not optimize away
7*c8dee2aaSAndroid Build Coastguard Worker    return (inversesqrt(inputVal.x)       == expected.x     &&
8*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(inputVal.xy)      == expected.xy    &&
9*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(inputVal.xyz)     == expected.xyz   &&
10*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(inputVal.xyzw)    == expected.xyzw  &&
11*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(constVal.x)       == expected.x     &&
12*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(constVal.xy)      == expected.xy    &&
13*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(constVal.xyz)     == expected.xyz   &&
14*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(constVal.xyzw)    == expected.xyzw  &&
15*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(negativeVal.x)    == expected.x     &&
16*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(negativeVal.xy)   == expected.xy    &&
17*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(negativeVal.xyz)  == expected.xyz   &&
18*c8dee2aaSAndroid Build Coastguard Worker            inversesqrt(negativeVal.xyzw) == expected.xyzw) ? colorGreen : colorRed;
19*c8dee2aaSAndroid Build Coastguard Worker}
20