summaryrefslogtreecommitdiff
path: root/test/MultiDexModifiedSecondary/README.txt
diff options
context:
space:
mode:
authorEvgeny Astigeevich <evgeny.astigeevich@linaro.org>2020-05-12 12:43:09 +0100
committerVladimir Marko <vmarko@google.com>2020-05-18 09:11:30 +0000
commit1439e573517bb9f0b115aef5d3bbd9090751ebd6 (patch)
treed6a1a4aed01719e988a8ac0fb81ed2843667d75f /test/MultiDexModifiedSecondary/README.txt
parent4be256069c494550037c81272ca4c27bd4a139df (diff)
ART: Optimize ADD/SUB+ADD_shift into ADDS/SUBS+CINC for HDiv/HRem
HDiv/HRem having a constant divisor are optimized by using multiplication of the dividend by a sort of reciprocal of the divisor. The multiplication result might need some corrections to be finalized. The last correction is to increment by 1, if the result is negative. Currently it is done with 'add result, temp_result, temp_result, lsr #31 or #63'. Such ADD usually has latency 2, e.g. on Cortex-A55. However if one of the corrections is ADD or SUB, the sign can be detected with ADDS/SUBS. They set the N flag if the result is negative. This allows to use CINC which has latency 1: adds temp_result, temp_result, dividend cinc out, temp_result, mi This CL implements this optimization. Test: test.py --host --optimizing --jit Test: test.py --target --optimizing --jit Change-Id: Ia6aac6771908e992c86e32fe1694a82bd1b7af0b
Diffstat (limited to 'test/MultiDexModifiedSecondary/README.txt')
0 files changed, 0 insertions, 0 deletions