diff options
author | Philip Reames <preames@rivosinc.com> | 2025-02-05 18:12:59 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-05 18:12:59 -0800 |
commit | fc10ad1a668675d50c81616486ea1065af53badb (patch) | |
tree | f53f1e3db59414e420c0d2bf2d4a33a9b1d7efa8 /llvm/lib/Bitcode | |
parent | e1c63bbde5e5c892c683c7243c9b6e465b0e13d5 (diff) | |
download | llvm-fc10ad1a668675d50c81616486ea1065af53badb.zip llvm-fc10ad1a668675d50c81616486ea1065af53badb.tar.gz llvm-fc10ad1a668675d50c81616486ea1065af53badb.tar.bz2 |
[RISCV] Make single source reverse legal in isShuffleMaskLegal (#125949)
This enables DAG combines to form this mask. Reverse is generally linear
in LMUL so this is reasonable, and results in better codegen for the 2
source variants.
For <= m1, the change is only slightly profitable if at all. We trade
some mask creation and an extract vrsub for a vslideup.vi. This is
likely roughly neutral. At >= m2, this is distinctly profitable as
generic DAG pushes the reverse into the two operands. We effectively
already did this for one operand, but the other was hitting a full
O(LMUL^2) shuffle. Moving that to be O(LMUL/2) operation is a big win.
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions