#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 s = scale+1.0; gl_Position = position*func()*s*s; } /* Expected output: vertex layout(location=0) in vec4 position; layout(location=1) in float scale; void main() { float s = scale+1.0; float s_1 = scale*2.0; gl_Position = position*s_1*s_1*s*s; } */