1cb93a386Sopenharmony_ci/*#pragma settings SkVMDebugTrace*/ 2cb93a386Sopenharmony_ci 3cb93a386Sopenharmony_ciuniform float u1[4]; 4cb93a386Sopenharmony_cifloat index_by_literal() { 5cb93a386Sopenharmony_ci return u1[0]; 6cb93a386Sopenharmony_ci} 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ciuniform float u2[4]; 9cb93a386Sopenharmony_cifloat index_by_loop() { 10cb93a386Sopenharmony_ci float sum = 0; 11cb93a386Sopenharmony_ci for (int i = 3; i >= 0; --i) { 12cb93a386Sopenharmony_ci sum += u2[i]; 13cb93a386Sopenharmony_ci } 14cb93a386Sopenharmony_ci return sum; 15cb93a386Sopenharmony_ci} 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ciuniform float u3[4]; 18cb93a386Sopenharmony_cifloat index_by_complex_loop() { 19cb93a386Sopenharmony_ci float prod = 1; 20cb93a386Sopenharmony_ci for (int i = 0; i < 4; ++i) { 21cb93a386Sopenharmony_ci prod *= u3[i < 2 ? 0 : i]; 22cb93a386Sopenharmony_ci } 23cb93a386Sopenharmony_ci return prod; 24cb93a386Sopenharmony_ci} 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ciuniform float u4[16]; 27cb93a386Sopenharmony_cifloat index_out_of_bounds_checked() { 28cb93a386Sopenharmony_ci float sum = 0; 29cb93a386Sopenharmony_ci for (float f = -2.3; f < 17.0; f += 3.7) { 30cb93a386Sopenharmony_ci if (f > 0 && f < 16) { 31cb93a386Sopenharmony_ci sum -= u4[int(f)]; 32cb93a386Sopenharmony_ci } 33cb93a386Sopenharmony_ci } 34cb93a386Sopenharmony_ci return sum; 35cb93a386Sopenharmony_ci} 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_cifloat4 main(float2 xy) { 38cb93a386Sopenharmony_ci return float4( 39cb93a386Sopenharmony_ci index_by_literal(), 40cb93a386Sopenharmony_ci index_by_loop(), 41cb93a386Sopenharmony_ci index_by_complex_loop(), 42cb93a386Sopenharmony_ci index_out_of_bounds_checked()); 43cb93a386Sopenharmony_ci} 44