[PATCH] D101990: [AArch64][SVE] Improve SVE codegen for fixed length BITCAST

Bradley Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 6 05:58:57 PDT 2021


bsmith created this revision.
bsmith added reviewers: paulwalker-arm, peterwaller-arm, joechrisellis, david-arm.
Herald added subscribers: ecnelises, steven.zhang, psnobl, hiraditya, kristof.beyls, tschuett.
Herald added a reviewer: efriedma.
bsmith requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Expanding a fixed length operation involves wrapping the operation in an
insert/extract subvector pair, as such, when this is done to bitcast we
end up with an extract_subvector of a bitcast. DAGCombine tries to
convert this into a bitcast of an extract_subvector which restores the
initial fixed length bitcast, causing an infinite loop of legalization.

As part of this patch, we must make sure the above DAGCombine does not
trigger after legalization if the created bitcast would not be legal.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D101990

Files:
  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/lib/Target/AArch64/AArch64ISelLowering.h
  llvm/test/CodeGen/AArch64/sve-fixed-length-bitcast.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101990.343378.patch
Type: text/x-patch
Size: 13899 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210506/6a658796/attachment.bin>


More information about the llvm-commits mailing list