[PATCH] D91059: [LoopVectorizer] NFCI: Calculate register usage based on TLI.getTypeLegalizationCost.
Mikael Holmén via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 11 06:22:10 PST 2020
uabelho added a comment.
Hi,
I hit an assertion with this patch:
opt: ../lib/IR/Type.cpp:620: static llvm::FixedVectorType *llvm::FixedVectorType::get(llvm::Type *, unsigned int): Assertion `isValidElementType(ElementType) && "Element type of a VectorType must " "be an integer, floating point, or " "pointer type."' failed.
Reproduce with
opt -loop-vectorize -mtriple x86_64 -o /dev/null extractvalue-crash.ll
with the input
; RUN: opt -loop-vectorize -mtriple x86_64 -o /dev/null %s
%rec6 = type { i16 }
; Don't crash on trying to vectorize an extractvalue.
@b = global %rec6 zeroinitializer
define void @f1() {
%_tmp2 = icmp ne i16 0, 0
br i1 %_tmp2, label %bb1.preheader, label %bb3
bb1.preheader: ; preds = %0
%_tmp4 = load %rec6, %rec6* @b
br label %bb1
bb1: ; preds = %bb1.preheader, %bb1
%_tmp81 = phi i16 [ 0, %bb1.preheader ], [ %_tmp7, %bb1 ]
%_tmp4.fca.0.extract = extractvalue %rec6 %_tmp4, 0
%_tmp7 = sub i16 %_tmp81, 1
%_tmp9 = icmp ne i16 %_tmp7, 0
br i1 %_tmp9, label %bb1, label %bb3.loopexit
bb3.loopexit: ; preds = %bb1
%_tmp7.lcssa = phi i16 [ %_tmp7, %bb1 ]
br label %bb3
bb3: ; preds = %bb3.loopexit, %0
ret void
}
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91059/new/
https://reviews.llvm.org/D91059
More information about the llvm-commits
mailing list