llvm-project
a0cbcd03 - Reland [AArch64][CostModel] Consider some nxv1 operations as legal (#214471) (#228371)

Commit
4 days ago
Reland [AArch64][CostModel] Consider some nxv1 operations as legal (#214471) (#228371) This is allowing some operations on vscale x 1 types, namely: - load/store - masked load/store - arithmetic instructions like add/sub/mul For those, there is already codegen coverage. See e.g. - llvm/test/CodeGen/AArch64/sve-int-arith.ll - llvm/test/CodeGen/AArch64/sve-load-store-legalisation.ll - llvm/test/CodeGen/AArch64/sve-masked-gather.ll - llvm/test/CodeGen/AArch64/sve-masked-scatter.ll These types are relevant for enabling REVEC in LoopVectorizer. For AArch64, the main target there is turning NEON vector sizes into SVE vector size, i.e. using VF = "vscale x 1". For loops with mixed vector and scalar types, we'll want to allow vectorising scalar types with such a VF. The original PR #214471 got reverted due to a failure in llvm-test-suite. The codegen issue was fixed in #226939 and llvm-test-suite passes locally now.
Author
Parents
Loading