[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