13c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup trivial "Trivial expressions" 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case float 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 5.0; } 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const float a = 5.0; 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case int 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output int out0 = 5; } 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const int a = 5; 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case bool 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output bool out0 = true; } 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const bool a = true; 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case cast 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const float a = float(int(bool(true))); 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # trivial 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup operators "Operators" 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case math_float 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 2.19; } 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const float a = 6.0/3.5 + 1.8*2.6 - 4.2; 773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case math_vec 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 15.0; } 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const vec3 a = (vec4(1.0, 2.0, 3.0, 4.0).zyx * vec3(1.0, 1.5, 3.0).xyz).xzy + (vec2(5.0)/vec2(2.5)).xxy; 923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a.x + a.y + a.z; 933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case math_int 993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output int out0 = 7; } 1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp int; 1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const int a = 5-1 + 2*3 - 9/3; 1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case math_ivec 1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output int out0 = 21; } 1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp int; 1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const ivec3 a = ivec2(5-1, 4).xxy + ivec4(1*3, 9/3, 1+2, 8/4).xyz; 1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a.x + a.y + a.z; 1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case math_mat 1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 8.0; } 1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const mat3 a = mat3(3.0) * mat3(4.0); 1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const mat4 b = mat4(a[1][1])*2.0; 1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const mat2 c = mat2(b[0][0]) / 3.0; 1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = c[0][0]+c[1][0]; 1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case logical 1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output bool out0 = true; } 1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp int; 1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const bool a = (!false || false) && (true ^^ false); 1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case compare 1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output bool out0 = true; } 1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp int; 1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const bool a = (false == false) && (true != false) && (1 < 2) && (3 <= 3) && ((1 > 1) != (1 >= 1)); 1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case selection 1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 5.3; } 1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const float a = false ? 0.0 : (true ? 5.3 : 1.0); 1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # operators 1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup complex_types "Arrays, structs & nested calls" 1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case struct 1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 260.922; } 1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry struct S 2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry vec4 a; 2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int b; 2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry }; 2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const S s = S(vec4(1.5), 123); 2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = length(s.a.xy)*float(s.b); 2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_struct 2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 965.9; } 2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry struct S 2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry vec4 v; 2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int i; 2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry }; 2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry struct T 2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry S s; 2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry bool b; 2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry int i; 2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry }; 2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry struct U 2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry S s; 2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry T t; 2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry }; 2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const S s = S(vec4(1.5), 123); 2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const T t = T(s, false, 3); 2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const U u = U(s, t); 2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const U v = U(S(vec4(1.3), 4), T(S(vec4(2.0), 5), true, 6)); 2463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(u.s.i*v.t.i + v.t.s.i)*v.s.v.x; // float(123*6 + 5)*1.3 2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case array 2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values 2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry input float in0 = [ 0.0 | 1.0]; 2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry output float out0 = [0.0 | 1.0]; 2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry float a[int(max(-1.0, 2.0))]; 2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry a[0] = -1.0; 2663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry a[1] = in0; 2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a[int(min(1.0, 2.0))]; 2683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 2693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_builtin_funcs 2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 3.05; } 2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision highp float; 2773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 2783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const float a = sqrt( atan(sin(1.5)/cos(1.5)) /*1.5*/ * log2(exp2(log(exp(6.2) + 0.1)) + 0.1) /*~6.2*/); 2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = a; 2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # complex_types 289