struct S { float2 value; };

void testIn(in float2 a, in float2 b, in float2 c)             { a = float2(1); }
void testOut(out float2 a, out float2 b, out float2 c)         { a = float2(1); }
void testInout(inout float2 a, inout float2 b, inout float2 c) { a = float2(1); }

void testSIn(in S a, in S b, in S c)             { a.value = float2(1); }
void testSOut(out S a, out S b, out S c)         { a.value = float2(1); }
void testSInout(inout S a, inout S b, inout S c) { a.value = float2(1); }

void func(float2 p) {
    testIn(p, p, p);
    testOut(p, p, p);
    testInout(p, p, p);

    S s;
    testSIn(s, s, s);
    testSOut(s, s, s);
    testSInout(s, s, s);
}

/*%%*
function 'testOut' never assigns a value to out parameter 'b'
function 'testOut' never assigns a value to out parameter 'c'
function 'testSOut' never assigns a value to out parameter 'b'
function 'testSOut' never assigns a value to out parameter 'c'
*%%*/
