1617a3babSopenharmony_cistruct S {
2617a3babSopenharmony_ci    float4 pos     : SV_Position;
3617a3babSopenharmony_ci    float2 clip0   : SV_ClipDistance0;  // clip0 and clip1 form an array of float[4] externally.
4617a3babSopenharmony_ci    float2 clip1   : SV_ClipDistance1;
5617a3babSopenharmony_ci};
6617a3babSopenharmony_ci
7617a3babSopenharmony_ci[maxvertexcount(3)]
8617a3babSopenharmony_civoid main(triangle in float4 pos[3] : SV_Position, 
9617a3babSopenharmony_ci          triangle in uint VertexID[3] : VertexID,
10617a3babSopenharmony_ci          inout LineStream<S> OutputStream,
11617a3babSopenharmony_ci          triangle in float2 clip0[3] : SV_ClipDistance0,  // test input arrayed semantic vars
12617a3babSopenharmony_ci          triangle in float2 clip1[3] : SV_ClipDistance1)
13617a3babSopenharmony_ci{
14617a3babSopenharmony_ci    S s;
15617a3babSopenharmony_ci
16617a3babSopenharmony_ci    s.pos = pos[0];
17617a3babSopenharmony_ci    s.clip0 = clip0[0];
18617a3babSopenharmony_ci    s.clip1 = clip1[0];
19617a3babSopenharmony_ci
20617a3babSopenharmony_ci    OutputStream.Append(s);
21617a3babSopenharmony_ci}
22