#pragma MSP stage(vertex) layout(location=0) in vec4 position; layout(location=1) in float scale; float func() { float s = scale*2.0; return s*s; } void main() { float p = 1.0; for(float i=func(); i<10.0; i+=2.0) p += i; gl_Position = position*p; } /* Expected output: vertex layout(location=0) in vec4 position; layout(location=1) in float scale; void main() { float p = 1.0; float s = scale*2.0; for(float i=s*s; i<10.0; i+=2.0) p += i; gl_Position = position*p; } */