#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 _main_size = scale+1.0; float _func_scale = size*2.0; float s = _func_scale*_func_scale+1.0; gl_Position = position*_main_size*_main_size*s*s; } */