Ben Shi
9e40a32620
[RISCV][test] Add new tests for add optimization in the zba extension
...
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D108188
2021-08-19 19:59:23 +08:00
Craig Topper
a2556bf44c
[RISCV] Improve check prefixes in B extension tests. NFC
...
-Add Z for the B extension subextensions.
-Don't mention I along with B or its sub extensions.
This is based on comments in D107817.
Differential Revision: https://reviews.llvm.org/D107992
2021-08-12 12:41:40 -07:00
Ben Shi
bb6fddb63c
Optimize mul in the zba extension with SH*ADD
...
This patch does the following optimization of mul with a constant.
(mul x, 11) -> (SH1ADD (SH2ADD x, x), x)
(mul x, 19) -> (SH1ADD (SH3ADD x, x), x)
(mul x, 13) -> (SH2ADD (SH1ADD x, x), x)
(mul x, 21) -> (SH2ADD (SH2ADD x, x), x)
(mul x, 37) -> (SH2ADD (SH3ADD x, x), x)
(mul x, 25) -> (SH3ADD (SH1ADD x, x), x)
(mul x, 41) -> (SH3ADD (SH2ADD x, x), x)
(mul x, 73) -> (SH3ADD (SH3ADD x, x), x)
(mul x, 27) -> (SH1ADD (SH3ADD x, x), (SH3ADD x, x))
(mul x, 45) -> (SH2ADD (SH3ADD x, x), (SH3ADD x, x))
(mul x, 81) -> (SH3ADD (SH3ADD x, x), (SH3ADD x, x))
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D107065
2021-07-30 08:36:28 +08:00
Ben Shi
811be79433
[RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD
...
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D107064
2021-07-30 08:36:28 +08:00
Ben Shi
264b8e2a20
[RISCV] Optimize mul in the zba extension with SH*ADD
...
This patch makes the following optimization, if the
immediate multiplier is not a simm12.
(mul x, (power_of_2 + 2)) => (SH1ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 4)) => (SH2ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 8)) => (SH3ADD x, (SLLI x, bits))
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106648
2021-07-29 09:46:41 +08:00
Ben Shi
2a2d83d916
[RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD
...
These test will show the following optimization by future patches.
(mul x, (power_of_2 + 2)) => (SH1ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 4)) => (SH2ADD x, (SLLI x, bits))
(mul x, (power_of_2 + 8)) => (SH3ADD x, (SLLI x, bits))
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106647
2021-07-29 09:46:41 +08:00
Ben Shi
9e5c5afc7e
[RISCV] Optimize multiplication in the zba extension with SH*ADD
...
This patch make the following optimization.
(mul x, 3 * power_of_2) -> (SLLI (SH1ADD x, x), bits)
(mul x, 5 * power_of_2) -> (SLLI (SH2ADD x, x), bits)
(mul x, 9 * power_of_2) -> (SLLI (SH3ADD x, x), bits)
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D105796
2021-07-22 10:28:41 +08:00
Ben Shi
d3738a09fb
[RISCV][test] Add tests for mul optimization in the zba extension with SH*ADD
...
These tests will show the following optimization by future patches.
(mul x, 11) -> (SH1ADD (SH2ADD x, x), x)
(mul x, 19) -> (SH1ADD (SH3ADD x, x), x)
(mul x, 13) -> (SH2ADD (SH1ADD x, x), x)
(mul x, 21) -> (SH2ADD (SH2ADD x, x), x)
(mul x, 37) -> (SH2ADD (SH3ADD x, x), x)
(mul x, 25) -> (SH3ADD (SH1ADD x, x), x)
(mul x, 41) -> (SH3ADD (SH2ADD x, x), x)
(mul x, 73) -> (SH3ADD (SH3ADD x, x), x)
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106031
2021-07-21 10:16:56 +08:00
Ben Shi
ed102ce20a
[RISCV][test] Add new tests for mul optimization in the zba extension with SH*ADD
...
This patch will show the following optimization by future patches.
(mul x imm) -> (SH1ADD x, (SLLI x, bits)) when imm = 2^n + 2.
(mul x imm) -> (SH2ADD x, (SLLI x, bits)) when imm = 2^n + 4.
(mul x imm) -> (SH3ADD x, (SLLI x, bits)) when imm = 2^n + 8.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D105614
2021-07-09 09:48:23 +08:00
Ben Shi
d934b72809
[RISCV] Optimize add-mul in the zba extension with SH*ADD
...
This patch does the following optimization.
Rx + Ry * 18 => (SH1ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 20 => (SH2ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 24 => (SH3ADD (SH1ADD Rx, Rx), Ry)
Rx + Ry * 36 => (SH2ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 40 => (SH3ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 72 => (SH3ADD (SH3ADD Rx, Rx), Ry)
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D104588
2021-06-19 14:33:27 +08:00
Ben Shi
31190738c0
[RISCV][test] Add new tests for add-mul optimization in the zba extension with SH*ADD
...
These tests will show the following optimization by future patches.
Rx + Ry * 18 => (SH1ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 20 => (SH2ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 24 => (SH3ADD (SH1ADD Rx, Rx), Ry)
Rx + Ry * 36 => (SH2ADD (SH3ADD Rx, Rx), Ry)
Rx + Ry * 40 => (SH3ADD (SH2ADD Rx, Rx), Ry)
Rx + Ry * 72 => (SH3ADD (SH3ADD Rx, Rx), Ry)
Rx * (3 << C) => (SLLI (SH1ADD Rx, Rx), C)
Rx * (5 << C) => (SLLI (SH2ADD Rx, Rx), C)
Rx * (9 << C) => (SLLI (SH3ADD Rx, Rx), C)
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D104507
2021-06-19 14:31:01 +08:00
Ben Shi
0799057181
[RISCV][test] Add new tests of SH*ADD in the zba extension
...
These tests will show the following optimization by future patches.
Rx + Ry * 6 => (SH1ADD (SH2ADD Rx, Ry), Ry)
Rx + Ry * 10 => (SH1ADD (SH3ADD Rx, Ry), Ry)
Rx + Ry * 12 => (SH2ADD (SH3ADD Rx, Ry), Ry)
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D104210
2021-06-17 07:02:33 +08:00
Craig Topper
728cd5dde7
[RISCV] Rename Zb* extension tests to use lower case 'Z' in file names.
...
As discussed in D99009
2021-03-22 19:17:04 -07:00