1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorRed; 2*c8dee2aaSAndroid Build Coastguard Workeruniform half2x2 testMatrix2x2; 3*c8dee2aaSAndroid Build Coastguard Workeruniform half testArray[5]; 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard Workerconst int zero = 0; 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Workerconst half[5] globalArray = half[5](1, 1, 1, 1, 1); 8*c8dee2aaSAndroid Build Coastguard Workerconst half2 globalVector = half2(1, 1); 9*c8dee2aaSAndroid Build Coastguard Workerconst half2x2 globalMatrix = half2x2(1, 1, 1, 1); 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2) { 12*c8dee2aaSAndroid Build Coastguard Worker const half[5] localArray = half[5](0, 1, 2, 3, 4); 13*c8dee2aaSAndroid Build Coastguard Worker const half2 localVector = half2(1, 1); 14*c8dee2aaSAndroid Build Coastguard Worker const half2x2 localMatrix = half2x2(0, 1, 2, 3); 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker // The comparisons against uniforms prevent the constant folding from eliminating the constant 17*c8dee2aaSAndroid Build Coastguard Worker // composite variables entirely. We expect all of the variables to propagate to the codegen 18*c8dee2aaSAndroid Build Coastguard Worker // backends, though the backend itself is allowed to eliminate variables. 19*c8dee2aaSAndroid Build Coastguard Worker if (globalArray == testArray || 20*c8dee2aaSAndroid Build Coastguard Worker globalVector == colorRed.xy || 21*c8dee2aaSAndroid Build Coastguard Worker globalMatrix == testMatrix2x2 || 22*c8dee2aaSAndroid Build Coastguard Worker localArray == testArray || 23*c8dee2aaSAndroid Build Coastguard Worker localVector == colorRed.xy || 24*c8dee2aaSAndroid Build Coastguard Worker localMatrix == testMatrix2x2) { 25*c8dee2aaSAndroid Build Coastguard Worker return colorRed; 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker return half4(globalArray[zero] * localArray[zero], 29*c8dee2aaSAndroid Build Coastguard Worker globalVector[zero] * localVector[zero], 30*c8dee2aaSAndroid Build Coastguard Worker globalMatrix[zero] * localMatrix[zero]); 31*c8dee2aaSAndroid Build Coastguard Worker} 32