xref: /aosp_15_r20/external/skia/tests/sksl/folding/StructFieldNoFolding.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker
2*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed;
3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen;
4*c8dee2aaSAndroid Build Coastguard Workerstruct S {
5*c8dee2aaSAndroid Build Coastguard Worker    int a;
6*c8dee2aaSAndroid Build Coastguard Worker    int b;
7*c8dee2aaSAndroid Build Coastguard Worker    int c;
8*c8dee2aaSAndroid Build Coastguard Worker};
9*c8dee2aaSAndroid Build Coastguard Workerint numSideEffects = 0;
10*c8dee2aaSAndroid Build Coastguard Workerint side_effecting_ii(int value) {
11*c8dee2aaSAndroid Build Coastguard Worker    numSideEffects++;
12*c8dee2aaSAndroid Build Coastguard Worker    return value;
13*c8dee2aaSAndroid Build Coastguard Worker}
14*c8dee2aaSAndroid Build Coastguard Workervec4 main() {
15*c8dee2aaSAndroid Build Coastguard Worker    int _0_val1 = 2;
16*c8dee2aaSAndroid Build Coastguard Worker    int _1_val2 = 1;
17*c8dee2aaSAndroid Build Coastguard Worker    int _2_noFlatten0 = S(--_0_val1, side_effecting_ii(2), 3).a;
18*c8dee2aaSAndroid Build Coastguard Worker    int _3_noFlatten1 = S(side_effecting_ii(1), 2, 3).b;
19*c8dee2aaSAndroid Build Coastguard Worker    int _4_noFlatten2 = S(1, _1_val2 += 1, 3).c;
20*c8dee2aaSAndroid Build Coastguard Worker    return ((((_2_noFlatten0 == 1 && _3_noFlatten1 == 2) && _4_noFlatten2 == 3) && _0_val1 == 1) && _1_val2 == 2) && numSideEffects == 2 ? colorGreen : colorRed;
21*c8dee2aaSAndroid Build Coastguard Worker}
22