1617a3babSopenharmony_ci
2617a3babSopenharmony_ci// Test trivial case for structure splitting: the IN and OUT structs have ONLY an interstage IO.
3617a3babSopenharmony_ci// This should fall back to flattening, and not produce any empty structures.
4617a3babSopenharmony_ci
5617a3babSopenharmony_cistruct VS_INPUT
6617a3babSopenharmony_ci{
7617a3babSopenharmony_ci    float4 Pos_in : SV_Position;
8617a3babSopenharmony_ci};
9617a3babSopenharmony_ci
10617a3babSopenharmony_cistruct VS_OUTPUT
11617a3babSopenharmony_ci{
12617a3babSopenharmony_ci    float4 Pos : SV_Position;
13617a3babSopenharmony_ci};
14617a3babSopenharmony_ci
15617a3babSopenharmony_ciVS_OUTPUT main(VS_INPUT vsin, float4 Pos_loose : SV_Position)
16617a3babSopenharmony_ci{
17617a3babSopenharmony_ci    VS_OUTPUT vsout;
18617a3babSopenharmony_ci
19617a3babSopenharmony_ci    vsout.Pos = vsin.Pos_in + Pos_loose;
20617a3babSopenharmony_ci
21617a3babSopenharmony_ci    return vsout;
22617a3babSopenharmony_ci}
23