yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
31ab84a5
main
1#version 450 2 3#extension GL_EXT_control_flow_attributes : enable 4 5bool cond ; 6 7void f0 () { 8 [[loop ]]for (;;) { } 9} 10 11void f1 () { 12 [[dont_unroll ]]while (true) { } 13} 14 15void main () 16{ 17 [[unroll ]]for (int i = 0 ;i < 8 ;++ i ) { } 18f0 (); 19 [[dependency_infinite ]]do { }while (true); 20 [[dependency_length (1 + 3 )]]for (int i = 0 ;i < 8 ;++ i ) { } 21 [[flatten ]]if (cond ) { }else { } 22 [[branch ]]if (cond )cond = false; 23 [[dont_flatten ]]switch (3 ) { }// dropped 24 [[dont_flatten ]]switch (3 ) {case 3 :break ; } 25 26// warnings on all these 27 [[unroll (2 )]]for (int i = 0 ;i < 8 ;++ i ) { } 28 [[dont_unroll (-2 )]]while (true) { } 29 [[dependency_infinite (3 )]]do { }while (true); 30 [[dependency_length ]]for (int i = 0 ;i < 8 ;++ i ) { } 31 [[flatten (3 )]]if (cond ) { }else { } 32 [[branch (5.2 )]]if (cond )cond = false; 33 [[dont_flatten (3 + 7 )]]switch (3 ) {case 3 :break ; } 34 35// other valid uses 36 [[unroll ,dont_unroll ,dependency_length (2 ) ]]while (cond ) { } 37 [ [dont_flatten ,branch ] ]switch (3 ) {case 3 :break ; } 38 [ 39// attribute 40 [ 41// here 42flatten 43 ] 44 ]if (cond ) { }else { } 45 [[dependency_length (2 ),dependency_infinite ]]while (cond ) { } 46}