half fn(half v) {
    // Add an un-inlinable construct to ensure that fn() remains a standalone function.
    switch (int(v)) {
        case 1:  return 2;
        default: return 3;
    }
}

layout(set=0) uniform half3 colRGB;

void main() {
    half v = half(sqrt(1));

    sk_FragColor = half4(v).rgba;
    sk_FragColor = half4(v).rgb0.abgr;
    sk_FragColor = half4(v).rgba.00ra;
    sk_FragColor = half4(v).rgba.rrra.00ra.11ab;
    sk_FragColor = half4(v).abga.gb11;
    sk_FragColor = half4(v).abgr.abgr;
    sk_FragColor = half4(half4(v).rrrr.bb, 1, 1);
    sk_FragColor = half4(half4(v).ba.grgr);

    // The swizzle will not be optimized away to avoid eliminating fn().
    sk_FragColor = half3(fn(v), 123, 456).yyzz;
    sk_FragColor = half3(fn(v), half2(123, 456)).yyzz;

    // The swizzle will be optimized away because fn() can be reordered.
    sk_FragColor = half3(fn(v), 123, 456).yzzx;
    sk_FragColor = half3(fn(v), half2(123, 456)).yzzx;

    // The swizzle will not be optimized away to avoid duplicating fn().
    sk_FragColor = half3(fn(v), 123, 456).yxxz;
    sk_FragColor = half3(fn(v), half2(123, 456)).yxxz;

    // Swizzled constants.
    sk_FragColor = half4(1, 2, 3, 4).xxyz;

    // Swizzled uniforms mixed with constants.
    sk_FragColor = half4(1, colRGB).yzwx;
    sk_FragColor = half4(1, colRGB).yxzw;

    sk_FragColor.rgba = sk_FragColor;
    sk_FragColor.abgr = sk_FragColor;
    sk_FragColor.rgba.ra = sk_FragColor.gb;
    sk_FragColor.abgr.gba = sk_FragColor.aa1;
}
