Add test for commutative operations in SkVM.
SkVM should be able to optimize away these equivalent expressions:
(intA & intB) <-> (intB & intA)
(intA ^ intB) <-> (intB ^ intA)
(intA | intB) <-> (intB | intA)
(intA + intB) <-> (intB + intA)
(intA * intB) <-> (intB * intA)
(intA == intB) <-> (intB == intA)
(intA != intB) <-> (intB != intA)
These should be guaranteed by IEEE754 as well:
(floatA + floatB) <-> (floatB + floatA)
(floatA * floatB) <-> (floatB * floatA)
I've added a test to demonstrate existing behavior, which leaves these
optimizations on the table.
Change-Id: I01ce1d6f1cfadb3d77db405a83752c9dd52c99bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/473238
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
4 files changed