+#pragma MSP stage(vertex)
+layout(location=0) in vec4 position;
+layout(location=1) in float scale;
+vec2 func()
+{
+ float _return = scale*2.0;
+ return vec2(_return, _return);
+}
+void main()
+{
+ float _return = scale+1.0;
+ gl_Position = position*func().xxyy*_return*_return;
+}
+
+/* Expected output: vertex
+layout(location=0) in vec4 position;
+layout(location=1) in float scale;
+void main()
+{
+ float _return = scale+1.0;
+ float _func_return = scale*2.0;
+ gl_Position = position*vec2(_func_return, _func_return).xxyy*_return*_return;
+}
+*/