[all-commits] [llvm/llvm-project] b62e6f: [SelectionDAG] Handle promotion + widening in getC...
sdesmalen-arm via All-commits
all-commits at lists.llvm.org
Fri Oct 1 00:20:16 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: b62e6f19d71359f2c901c834764191355ad06420
https://github.com/llvm/llvm-project/commit/b62e6f19d71359f2c901c834764191355ad06420
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2021-10-01 (Fri, 01 Oct 2021)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
Log Message:
-----------
[SelectionDAG] Handle promotion + widening in getCopyToPartsVector
Some vectors require both widening and promotion for their legalization.
This case is not yet handled in getCopyToPartsVector and falls back
on scalarizing by default. BBecause scalable vectors can't easily be
scalarised, we need to implement this in two separate stages:
1. Widen the vector.
2. Promote the vector.
As part of this patch, PromoteIntRes_CONCAT_VECTORS also needed to be
made scalable aware. Instead of falling back on scalarizing the vector
(fixed-width only), each sub-part of the CONCAT vector is promoted,
and the operation is performed on the type with the widest element type,
finally truncating the result to the promoted result type.
Differential Revision: https://reviews.llvm.org/D110646
More information about the All-commits
mailing list