[all-commits] [llvm/llvm-project] 527cd0: [RISCV] Teach vsetvli insertion to use vsetvl x0, ...
Craig Topper via All-commits
all-commits at lists.llvm.org
Thu May 27 10:15:08 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 527cd013144d3fb3b578640721530fa2d2da4da9
https://github.com/llvm/llvm-project/commit/527cd013144d3fb3b578640721530fa2d2da4da9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2021-05-27 (Thu, 27 May 2021)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/test/CodeGen/RISCV/rvv/extload-truncstore.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extload-truncstore.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-conv.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-shuffles.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp2i.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-i2fp.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-i1.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-buildvec.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect.ll
M llvm/test/CodeGen/RISCV/rvv/interleave-crash.ll
M llvm/test/CodeGen/RISCV/rvv/legalize-scalable-vectortype.ll
M llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/named-vector-shuffle-reverse.ll
M llvm/test/CodeGen/RISCV/rvv/saddo-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/setcc-fp-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/setcc-fp-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vaadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vaaddu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vand-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vasub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vasubu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vdiv-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vdivu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vfcopysign-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfpext-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfptoi-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfptrunc-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vitofp-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vlseg-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vlseg-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vlsseg-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vlsseg-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmacc-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmax-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmaxu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfeq-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfeq-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmfge-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfge-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmfgt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfgt-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmfle-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfle-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmflt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmflt-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmfne-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmfne-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmin-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vminu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmseq-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmseq-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsge-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsge-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgeu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgeu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgt-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgtu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsgtu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsle-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsle-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsleu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsleu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmslt-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmslt-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsltu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsltu-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmsne-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmsne-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vmul-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmulh-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmulhsu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vmulhu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnmsac-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vnmsub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vrem-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vremu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vrsub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsadd-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsaddu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.mir
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.mir
M llvm/test/CodeGen/RISCV/rvv/vsmul-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vssub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vssubu-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vsub-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vtruncs-sdnode-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/vtruncs-sdnode-rv64.ll
M llvm/test/CodeGen/RISCV/rvv/vxor-rv32.ll
M llvm/test/CodeGen/RISCV/rvv/zvlsseg-zero-vl.ll
Log Message:
-----------
[RISCV] Teach vsetvli insertion to use vsetvl x0, x0 form when we can tell that VLMAX and AVL haven't changed.
This can help avoid needing a virtual register for the vsetvl output
when the AVL is X0. For other register AVLs it can shorter the live
range of the AVL register if it isn't needed later.
There's probably no advantage when AVL is a 5 bit immediate that
can use vsetivli. But do it anyway for consistency.
Reviewed By: rogfer01
Differential Revision: https://reviews.llvm.org/D103215
More information about the All-commits
mailing list