diff options
author | Vladimir Marko <vmarko@google.com> | 2017-09-28 16:32:24 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2017-09-29 11:24:51 +0100 |
commit | 7033d49488c75321ff2e40b26447722ae069c726 (patch) | |
tree | b4474ffba397cbd05bd448e22595c44024a305ca /compiler/optimizing/loop_optimization_test.cc | |
parent | 6e7e0ddf1dda35570cd9ed23751d9306f7353d7f (diff) |
ART: Generalize "x >> (s & m)" simplification.
Extend the simplification from
x SHIFT (s & mask), mask contains relevant bits
where SHIFT is Shl/Shr/UShr/Ror to
x SHIFT (s | mask), mask does not contain relevant bits,
x SHIFT (s ^ mask), mask does not contain relevant bits,
x SHIFT (s + mask), mask does not contain relevant bits,
x SHIFT (s - mask), mask does not contain relevant bits,
x SHIFT ((type)s), s is non-64-bit integral type.
The simplification for the TypeConversion case is motivated
by the work to introduce Uint8 and convert '& 0xff' to
TypeConversion. This CL makes sure the old simplifications
shall still work. The simplifications for Or/Xor/Add/Sub
are added just because we can.
Test: Add tests to 548-checker-instruct-simplification.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 23964345
Change-Id: I71210cb63496fae607a457a627f115260669c2c9
Diffstat (limited to 'compiler/optimizing/loop_optimization_test.cc')
0 files changed, 0 insertions, 0 deletions