[all-commits] [llvm/llvm-project] a1121c: [SVE] Fix incorrect code generation for bitcasts o...
paulwalker-arm via All-commits
all-commits at lists.llvm.org
Wed Jun 8 02:31:43 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: a1121c31d8408e1ae859acf6946ddd28cbdd7a82
https://github.com/llvm/llvm-project/commit/a1121c31d8408e1ae859acf6946ddd28cbdd7a82
Author: Paul Walker <paul.walker at arm.com>
Date: 2022-06-08 (Wed, 08 Jun 2022)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-bitcast.ll
Log Message:
-----------
[SVE] Fix incorrect code generation for bitcasts of unpacked vector types.
Bitcasting between unpacked scalable vector types of different
element counts is not a NOP because the live elements are laid out
differently.
01234567
e.g. nxv2i32 = XX??XX??
nxv4f16 = X?X?X?X?
Differential Revision: https://reviews.llvm.org/D126957
Commit: d88354213cbbbbb55b4e2c00b86432fe7acb21c3
https://github.com/llvm/llvm-project/commit/d88354213cbbbbb55b4e2c00b86432fe7acb21c3
Author: Paul Walker <paul.walker at arm.com>
Date: 2022-06-08 (Wed, 08 Jun 2022)
Changed paths:
M llvm/include/llvm/Support/TypeSize.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/test/CodeGen/AArch64/sve-bitcast.ll
Log Message:
-----------
[SelectionDAG] Remove invalid TypeSize conversion from PromoteIntRes_BITCAST.
Extend the TypeWidenVector case of PromoteIntRes_BITCAST to work
with TypeSize directly rather than silently casting to unsigned.
To accomplish this I've extended TypeSize with an interface that
essentially allows TypeSize division when both operands have the
same number of dimensions.
There still exists combinations of scalable vector bitcasts that
cause compiler crashes. I call these out by adding "is missing"
entries to sve-bitcast.
Depends on D126957.
Fixes: #55114
Differential Revision: https://reviews.llvm.org/D127126
Compare: https://github.com/llvm/llvm-project/compare/471bfb701669...d88354213cbb
More information about the All-commits
mailing list