<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140931>140931</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm::cast(From*) [with To = llvm::VPWidenPHIRecipe; From = llvm::VPRecipeBase]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ashermancinelli
</td>
</tr>
</table>
<pre>
```
> opt -passes=loop-vectorize -disable-output reduced.ll
opt: Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::VPWidenPHIRecipe; From = llvm::VPRecipeBase]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
1. Running pass "function(loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>)" on module "reduced.ll"
2. Running pass "loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>" on function "_QQmain"
#0 0x0000000001b14548 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) ()
#1 0x0000000001b117d4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007fa5c5e12990 __restore_rt (/usr/lib64/libpthread.so.0+0x12990)
#3 0x00007fa5c464e52f raise (/usr/lib64/libc.so.6+0x4e52f)
#4 0x00007fa5c4621e65 abort (/usr/lib64/libc.so.6+0x21e65)
#5 0x00007fa5c4621d39 _nl_load_domain.cold.0 (/usr/lib64/libc.so.6+0x21d39)
#6 0x00007fa5c4646e86 (/usr/lib64/libc.so.6+0x46e86)
#7 0x0000000003c10c03 (anonymous namespace)::VPPredicator::convertPhisToBlends(llvm::VPBasicBlock*) VPlanPredicator.cpp:0:0
#8 0x0000000003c17c77 llvm::VPlanTransforms::introduceMasksAndLinearize(llvm::VPlan&, bool) ()
#9 0x0000000003b5ee06 llvm::LoopVectorizationPlanner::tryToBuildVPlanWithVPRecipes(llvm::VFRange&, llvm::LoopVersioning*) ()
#10 0x0000000003b6171c llvm::LoopVectorizationPlanner::buildVPlansWithVPRecipes(llvm::ElementCount, llvm::ElementCount) ()
#11 0x0000000003b6203c llvm::LoopVectorizationPlanner::plan(llvm::ElementCount, unsigned int) ()
#12 0x0000000003b6b67f llvm::LoopVectorizePass::processLoop(llvm::Loop*) ()
#13 0x0000000003b6e270 llvm::LoopVectorizePass::runImpl(llvm::Function&) ()
#14 0x0000000003b6e8c3 llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) ()
#15 0x000000000361e18e llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilder.cpp:0:0
#16 0x0000000001de1ca0 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) ()
#17 0x0000000002e4a42e llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) NVPTXTargetMachine.cpp:0:0
#18 0x0000000001de21b3 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) ()
#19 0x0000000002e4a3ee llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) NVPTXTargetMachine.cpp:0:0
#20 0x0000000001ddfdd0 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) ()
#21 0x00000000034aa2ba llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) ()
#22 0x0000000001af580a optMain ()
#23 0x00007fa5c463a7e5 __libc_start_main (/usr/lib64/libc.so.6+0x3a7e5)
#24 0x0000000001ae8e6e _start ()
[1] 2235932 abort (core dumped) opt -passes=loop-vectorize -disable-output reduced.ll
```
```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define void @_QQmain() {
._crit_edge:
br label %.preheader.us
.preheader.us: ; preds = %._crit_edge206.us, %._crit_edge
%0 = phi i64 [ %3, %._crit_edge206.us ], [ 0, %._crit_edge ]
br label %._crit_edge206.us
._crit_edge206.us: ; preds = %.preheader.us
%1 = phi i32 [ 0, %.preheader.us ]
%2 = phi i64 [ 0, %.preheader.us ]
%3 = add i64 %0, 1
%exitcond225.not = icmp eq i64 %0, 1
br i1 %exitcond225.not, label %._crit_edge211, label %.preheader.us
._crit_edge211: ; preds = %._crit_edge206.us
ret void
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWFuT2jgW_jXqFxWULfnGAw-GTtdMbXqXSaiefaNk6xi0EZJXkjthf_2WZGiwoZNOJlM7tVQ32NK5fOemy2HWiq0CmKN0gdL7O9a5nTZzZndg9kzVQoGU4q7S_DBHWXT8i0pE32HdOjxpmbVgEb2XWreTZ6idNuI_gCdcWFZJmOjOtZ3DBnhXA59KiaJStw7REi-ZdUJtpztEyzQv_BCHWrpDC4gUrHMakRmW8nmPaIloWTPrECkejN4jUvo5lC4-C7fDa40Rvb8gfVr9Ljio1S-_foBatIDoAnu-K7J-esEsoPTeIyitBeOEVhhlkbAM0eVaI_oOkeKJyaCUZIhkGBESANHl-tDP-0lmtt0elMO6wULVet8yJyoJuLcqRoQgkuOGCQl8iqJy9f5d-fEdtl21Fw4zXHVbbKDVxmGn8c651nqs5AGRh61wu66a1t7-h2BF_zNpjf4X1A6RB2FtBxaRB8wU9whkxwG7HeDaMLvDFas_OcNq8Lo_OlZ_wrzbt15FVMZTHD4fOqWE2mIfXG9n06nauwSRYhhmRJdKT4RyYCSwZ5g02tTAJ1rJA6ILpc-ko6ngsRkiBGuF95p3ErymizQhBEUleQXRT4URMJxs9NI3v_22Z0L1EDAiNMLRl-j0ias4SZPiIo3swfYPKyOUC15dex97f70QGfZ5o60zwPYhg5ZYKNfnk8-co6Z4pCnOeYI_iq1i8hemuASDSBEYl9iKrVCN3rhQDUv8rAU_FkbPYad160Mbhf9eATkqyBuW1inEZDaL8GZjwDptYGNcj-ehs8Znl6iypP9t3c4A41OrpxEii-hLYD0jp5eCkyyBlDTYMGHhNYm1l5UFWYH6LCsZyiIxZClmlX4d3YWsQH2WlY5lcTrDGyU3UjO-4dpHelpryafRm4RzOjsLz0ZGZ1BkbzHX052l5JdBp3Uc1RH1UpjS6rDXncWK7cG2IaVmp6VrZYCLmjltjsujVs9g3Gon7FovJChuBwn4tFowK-qF1PWnY5o8rSRTZzk30qUYQcvrPB8soJKptWHKNtrsj1UglDPa1_Ejs59sqfh7oYCFQh3ikUwdS6HSWl7Vwmygu0oBouxC93ut26djXTNful6egqM3nDms9aITkgc9vwu3O632I7c8fGBqC0cgY_HGCu1XntOGc8LnSzUa4sviPK7fjK96gWZfx_ZOgt9MlrrrK_61mRGweASMRPTtwNoQla-A6FQ4M_Cr9curJiPVVZY3r6iGFbPHjGmNrsFaPztQ3Q9ce56OtADJo29rMZ36dd_KgYaHl60tu9KSjLUUNX2Tltc1XIawVEwerLCPTLGt9_7yBpPfn66RpQNkWQxxAReSOTgm5HFLYtY-ag7ytvwbKX9p0Q8B9n9_oic8sFDYMF6wvGuywQbKIa7ZZWoEd3xNzV_R4kHsB5sFgYQl5GfE_k9zzF_RoX9_Wq3_uWZmC-6R1Tuh4EYmFaNMInF1Wf6P4dC61ifp3oElZ-3LfjzG3jN8F_Ijy-1EmI0TgcL3JcIJ0PKNVv0A7Nfi-BN88ZYYkuHBnfOG87esBrc88z83-DL4ZLjFJ4yRil3INV2I3Eq0IIUanrs-OiPU9gM0tyJ_hXDg4eNFYzz7XlSGmcOvqtH9Bjum0lr-I_QBHoS8IeQPTb9iTmkMO_jRS5cGn8huK9T1ynSmt473Yy_3Xrr0dys8cOPFNtQH6NZ6p1u3cf5sG956K_4mFP8a1RMY0QgwJ7r-bPy9v6N8GZzLYtakRcSwbt0jE2pIObrHUZZDijcbf4HZWMeM2-xfeL56yQmcZ7nJEAEUkAHuJV4ASBcxSu_9lZ8Qms4oOV_7am0gNCuAe_P-QP9p0Mm6eHYhmzFnjkl20J0L7SJECEx8pGDSktyvLpSEL_8aD1_9U5aEr4l4eYhJgWgZk2LSFNHxSYWh7MSeJZOPniy0HI44nBGthBOGL0W2yZJJpz4p_VlNpFDdl8lWdT0LikoOjVCA-0xNopcmRuhLoXyBonK6qY1wG-Bb6Ds-GFcGS1aBxIik09bADpg_WHW2FzocoiVGdIFbA9wecaUXMkmUeSqyHI0HRYikUeBpdwKLLMEoXfhBek3fy8EovQ9z6QJH10Rh-sqCKzC9FVfDtMTf-FwbOvJOMCk-m0TJEOol-QtYRFJy5YVvstDAwjjvWUgaOOLTNHwRrtaKE5JOle6zVtT7FsO_bzBUBov4BltYk245Mo6HUzeyZEj9befe9O-N2GFswPWNrahE-f2oYO_4nPIZnbE7mMd5khdJTpLsbjdPkzyGqG5SiLO0hiIHUs0K2qRx0xQkI3diTiKSRimJ4zzKSTadzVhDsog2pKB5VCQoiWDPhJz6ZXqqzfYutFbncRLNaHwXvGFD25wQBZ9xmPW1mN7fmXnoylbd1qIkksI6exbjhJMw_3_uat91Rs5_vHN99PDznPw3AAD__zwPUoQ">