[PATCH] D111165: [AArch64][SVE] Add fixed type lowering for EXTRACT_SUBVECTOR
Bradley Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 11 08:29:52 PDT 2021
bsmith added inline comments.
================
Comment at: llvm/test/CodeGen/AArch64/sve-fixed-length-extract-subvector.ll:61-67
+; VBITS_EQ_256-LABEL: extract_subvector_v64i8:
+; VBITS_EQ_256: // %bb.0:
+; VBITS_EQ_256-NEXT: ptrue p0.b, vl32
+; VBITS_EQ_256-NEXT: mov w8, #32
+; VBITS_EQ_256-NEXT: ld1b { z0.b }, p0/z, [x0, x8]
+; VBITS_EQ_256-NEXT: st1b { z0.b }, p0, [x1]
+; VBITS_EQ_256-NEXT: ret
----------------
paulwalker-arm wrote:
> There's a few tests like this that I suspect are not really exercising the extract_subvector logic. Within sve-fixed-length-subvector.ll you'll see I hit a similar issue along with how I worked round it. Essentially for all the tests you want to ensure the call to experimental.vector.extract is within it's own block.
I'm not actually sure there is anything we can do about this, putting this in it's own block doesn't help. The operand to extract_subvector is not a legal type, hence the legalizer is splitting the operand before we get to try and lower it (which is what we want), which ends up just discarding the extract_subvector.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111165/new/
https://reviews.llvm.org/D111165
More information about the llvm-commits
mailing list