#pragma MSP stage(vertex) layout(location=0) in vec4 position; layout(location=1) in float scale; layout(location=2) in float size; float func() { float scale = size*2.0; return scale*scale; } void main() { float size = scale+1.0; float s = func()+1.0; gl_Position = position*size*size*s*s; } /* Expected output: vertex layout(location=0) in vec4 position; layout(location=1) in float scale; layout(location=2) in float size; void main() { float size_1 = scale+1.0; float scale_1 = size*2.0; float s = scale_1*scale_1+1.0; gl_Position = position*size_1*size_1*s*s; } */