skia2/resources/sksl/folding/SelfAssignment.sksl
John Stiles 0ac6c15075 Reduce self-assignment expressions (x = x) into just x.
Change-Id: I44356aa781f208f4941dbeb617a30318e36c1081
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367062
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-02-10 20:00:05 +00:00

35 lines
535 B
Plaintext

uniform half4 colorRed, colorGreen;
struct S {
half i;
half j;
};
half4 main() {
// All of these assignments can be preserved.
half4 x = half4(3, 2, 1, 0);
x.xyz = x.zyx;
S s;
s.i = 2;
s.j = 2;
s.i = s.j;
s.j = s.i;
half a[2];
a[0] = 0;
a[1] = 1;
a[1] = a[0];
// All of these assignments should be eliminated.
x.ay = x.ay;
x.xyz = x.xyz;
x = x;
s.i = s.i;
s.j = s.j;
a[0] = a[0];
a[1] = a[1];
return half4(x.w, s.i / s.j, a[0], a[1]);
}