<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61862>61862</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            A/F: `Instance.Lane.isFirstLane() && "cannot get lane > 0 for scalar"' after commit 498aa53
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dyung
      </td>
    </tr>
</table>

<pre>
    Several of our internal tests started to fail with an assertion failure recently and I bisected the failure back to commit 498aa53. Consider the following code:
```c
int a, c;
char *b;
void d() {
  char *e = d;
  for (; c; c++) {
    e[c] = b[0];
    b += a;
  }
}
```
If compiled with optimizations `clang -c -O2 repro.c` it hits an assertion failure:
```
clang: /home/dyung/src/upstream/llvm_clean_git/llvm/lib/Transforms/Vectorize/VPlan.cpp:226: llvm::Value* llvm::VPTransformState::get(llvm::VPValue*, const llvm::VPIteration&): Assertion `Instance.Lane.isFirstLane() && "cannot get lane > 0 for scalar"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang -c -O2 repro.c
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x000055913f4dbf0f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x3bdaf0f)
 #1 0x000055913f4d9c4c llvm::sys::CleanupOnSignal(unsigned long) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x3bd8c4c)
 #2 0x000055913f426f18 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f8a28303420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f8a27dd000b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x00007f8a27daf859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #6 0x00007f8a27daf729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #7 0x00007f8a27daf729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #8 0x00007f8a27dc0fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #9 0x0000559140bf30b7 llvm::VPTransformState::get(llvm::VPValue*, llvm::VPIteration const&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x52f20b7)
#10 0x0000559140b39c34 llvm::VPWidenPointerInductionRecipe::execute(llvm::VPTransformState&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x5238c34)
#11 0x0000559140bf4327 llvm::VPBasicBlock::execute(llvm::VPTransformState*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x52f3327)
#12 0x0000559140bef20a llvm::VPRegionBlock::execute(llvm::VPTransformState*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x52ee20a)
#13 0x0000559140bef78e llvm::VPlan::execute(llvm::VPTransformState*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x52ee78e)
#14 0x0000559140b324b1 llvm::LoopVectorizationPlanner::executePlan(llvm::ElementCount, unsigned int, llvm::VPlan&, llvm::InnerLoopVectorizer&, llvm::DominatorTree*, bool) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x52314b1)
#15 0x0000559140b34ae2 llvm::LoopVectorizePass::processLoop(llvm::Loop*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x5233ae2)
#16 0x0000559140b3736d llvm::LoopVectorizePass::runImpl(llvm::Function&, llvm::ScalarEvolution&, llvm::LoopInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::BlockFrequencyInfo*, llvm::TargetLibraryInfo*, llvm::DemandedBits&, llvm::AssumptionCache&, llvm::LoopAccessInfoManager&, llvm::OptimizationRemarkEmitter&, llvm::ProfileSummaryInfo*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x523636d)
#17 0x0000559140b38590 llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x5237590)
#18 0x0000559140760036 llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x4e5f036)
#19 0x000055913cde94fd llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x14e84fd)
#20 0x000055913ee7b270 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x357a270)
#21 0x000055913cdce806 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x14cd806)
#22 0x000055913ee78e6d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x3577e6d)
#23 0x000055913f74ef4d (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&) BackendUtil.cpp:0:0
#24 0x000055913f7520a9 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x3e510a9)
#25 0x0000559140702a2c clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x4e01a2c)
#26 0x0000559141851189 clang::ParseAST(clang::Sema&, bool, bool) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x5f50189)
#27 0x0000559140701368 clang::CodeGenAction::ExecuteAction() (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x4e00368)
#28 0x000055913ff64c29 clang::FrontendAction::Execute() (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x4663c29)
#29 0x000055913fee91f6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x45e81f6)
#30 0x0000559140048b37 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x4747b37)
#31 0x000055913ca4cdf6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x114bdf6)
#32 0x000055913ca48c1a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#33 0x000055913fd5151d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#34 0x000055913f427400 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x3b26400)
#35 0x000055913fd51ddf clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#36 0x000055913fd1961c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x441861c)
#37 0x000055913fd1a0bd clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x44190bd)
#38 0x000055913fd21d6d clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x4420d6d)
#39 0x000055913ca4b2a0 clang_main(int, char**, llvm::ToolContext const&) (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x114a2a0)
#40 0x000055913c9641c5 main (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x10631c5)
#41 0x00007f8a27db1083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#42 0x000055913ca4392e _start (/home/dyung/src/upstream/498aa534f472d28db893aa9a8627d0b46e17f312-linux/bin/clang+0x114292e)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 498aa534f472d28db893aa9a8627d0b46e17f312)
```
@preames this was your change, can you take a look?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW1tz2ziW_jX0CyoqEOD1wQ-yHG27K11xxZ7eRxUIHMrYkIAGABW7f_0WSEoiaDlxema0M9Vbpe5IuB1837ng4GJmrdwqgOsovYnS2yvWuSdtrsVLp7ZXlRYv1w-wB8MapGukO4OkcmAUa5AD6yyyjhkHAjmNaiYb9E26J8QUYtaCcVKrvrgzgAxwUK55QUwJdIcqaYH3PZ_g2KZi_Ksfiuu2lQ4lZcFYShdopZWVAszQWDeN_ibVFnEtIKLLCN9GeBllePjw4bdUDrGIrBCP6M1QxJ-YQRFZVseSvZYCiYgUESlRlI-lCB1aAoroLRLH9gjV2lcUEb3pB0Y8Ijf9J-iPEETpDY_S236AKkpvcJTeTsZBqEK-H71FbFIc5bcjnOOXA67h513t2dnJBsRAtt452co_mCfbIo-_YWqLPnD04TNBBnZGL3iUYSQdepLOntXOaxZHxvxYEV2iiKyfdAsRWfemEZG1NTwi625nnQHWRmTdNPt2wxtgarOVbizw_8gqIutHw5SttWltRNa_A3fayD_8eL_fN0wt-G4X0SUhmRfWd6TLiC5_Z00HEQmK7o9DPTjmYCjdgotIMW116NqbgFbWBWPcOTA9ZRHJIlJ6qcsjKVGG75R1THFYfGIKFtKupbHOfz_Yiu-WoYgQzpTSDm3BoYYpbzAfEe7NxHLWMBMREpG8JxrEYqD1_tPH5cNHZLvKmzlDVbf1mtLGeet_cm5n_UTJOiLrrXRPXbXgup1Q2uzbDzuj_we4J1pa24HntfctqXjTCeh9hRtmn3q3coZx8FzsepPgYC0IZHVnhmLfk1mruWTeK02nkOVG7tw45QfnfVN07e5oK3gR4fLe6K1hLWJm27WgnH2ntYy-ndRJTgQpRFWUlLGSFRnJBa6SDOK8pjH50EjVPUdkXUkVkfVZ4-5nE_vZRHQFuvYq2DFjwSDmECjhg1ctGxhaEt_y8-A2YEbPiwjFCD9jjHGaljGtE1HVuJ4YjX2xw5d7I5Xr-XgcSJ3YnWHfNvoAMvPESuUGgyn-xaxE5AY_00qwGtfepI-44hmukif8HK6V991u91k9yK1iTUSKTvWrg0CN9uNfEkXBEx6gICEKktVxgVbevr8A13swL8O0f2FKNGAiUozMB21WWjl4dmO8wf1_RxF0FJHXBSMFxTQhGG02BqzTBjbGjfiHiPZcZJssGTB82KpuqNi5JwNMLKxe4B5LnCQEB0iSqZhcCIxxhQyTFrzjVJ1shPf7Rlb8w8Mfd3_kN8efZEFjz_iooPVi4X-9WAE77_-dks9Dwb6fzcBuP_SCR3SZxhFdxqeZpOFMWF2kJWKV7pG-byZODGz0vXohhReSn4RkcyE5KX243Azz3ljY-sCx2fuA_V65UjmPv9FMtHbL2SA69RFgWZxk5-dkb1Sz8R03QrdMqn9MZJl7I6LJSWYRyuS4Ftk7DId7k8kG86e1yAKTKSfGn-CqprjK_8E18exqOKyUw5p4KWdPSU1wlR_x-oiFQ7y05DQJZvzfUoC61302eqdEx_3svwCXuxE8PAPvHMwImNF0YZy04DQJcMYzvSaUhHq9YVbym0bzrz8Da3lZ9VFKQvWREBbUBLMA1hfYSq3-zXEBEMwCXHSOKy8gwNUw9e-MJy8gwJPM3IwkVTzB80nr3SFV78ODx6fABBB7zFOYHxvw8XylO7_-rtAxiZDD7zlfQ5p0Kr3zIqai_WI-a3OrW6mY0-bRwCGgVVo3l3XnOKnigM90xmfCgLzBJ9wzO-ZdYzruawMih4LL2gilDEiAKZthymkmfozJdOqu3TUBnnWn-HHLNdXmQ79R-rjXTXe23su4U7V-VfHIzBbc0avOtpmZyqy2D0FrA3_vQPGXYYDlOSGfZGWYOd_iFlqmBIgb6ewrCUtru3bnca0Yf3o9Aw9uyb0B-LF_Y4ptzxj858ku_wu0zHz92ErnzrS8N9pvdR66tp3O95I2lNFMBDaUz2yoSEv8Lht6n_0sFWterLQH8ujqTCf68eLLfZ6WOOChCHjIM4xpNsEhwDHZjGpk1v6mBTTn0bwyoZC_mUWABbMHMfAE9s-x5z__-WpJIK0xzQK1TLNrygWUSS3-CWrp234P-59Vw_9r9y3txgkUSR0EHxIc6wDkFcmnwec3LboGHvVhzl5rS8F2TpvzjAwdfoqPscul2aBpzkgehCASh7bOocA_F4IO8Ffv5PCfZawnDt8y1f8cxcQJFwUOghAhMzMtIMiz3gom59TxV6GRpnkOYapBaHBMmCdQJ8LPhymtXlrdWaRYC3bXH9yW446llW5pLbRV8_ILNLvDDudLp6Z5173cQSP7K4DDvYjPIBn_CkosjyHdOjHUdEr-vYPNzoVkGfZts_tmpIPNgYpJJwE16xq3EdCAgx90HJeD7D1iH7VuPndu17m1HAzmPTJnvU4CSzQC_5uTzevjVK-KJFRFSjAr0YQ5T_s4yCAiJPZWsq3S1kluP6ptz3sPdNLkF2ACzAMww58-74YbsNMJVtB0pQX8F6gftBpy_R80-sTU9lyTyYbGGam2X6A-FyYPd1LfMaHpZtiZzso9fIF6pdz9TKn7esyVvXYeXqyDdkwQLm-Fl3N7SGPMysDtw513jgkj_AzFK61s1x78e7gq6LePTe_hf1NyZoTLh8fxyuDSaSqOGeEBxmAnHhdpHBeBP90zY2H58BgieICWjQY6nJBc_qSkTnFchPrKZ_qKaVaccdfRJYZwMZw3HbykuKw2MM2KAEERRLc6SzgJtLE23m6OXj2FcOHJZxnlJKQ_2PHUAGVcZyH9_RMDc7gGP6-Bt9Fe1ldSKOI6yKZoeIGAk6KiebD2DFBOOPeas9ewXvFw0aOUJE_yigZH6-FlLmcJF15zPN60TIZ53NIY9uLXILrqn7OMS9VyXCDCMrJCey3FZfHFcVKJmeLIDF_BY4YO2lrFj33omqB8aFnTDIcf_YHjObDzU0OtmzGoB_ddwsg9mLO5DA3TSpHGaSx6xibj1uPuZ2N60vvawdWPuTZnTVMx_nVTKz_Tk6ENskejW8Ur3bZMiXnUOKvc46Kt-5yEhdu1UypyPDs4dths-PNzHA8_KmYl90u69HPqWQwa-4KNM0w6e6ieDceaxjuR3zcf632Tyel8b10D532XiOQNayvBIpKfqCLF4b3Br7o6r49k9hogT_B0U3_uzv-Y0z-wGpqXgM7vq-6SDx9IluBgx07TuekJUaO_sul4ZSx2zLgF_q6NZCFxcZnF_E3i-kDPXi3VBzaDVWHW0Td4a6_wnabLICubYLvI0pLERRYH-SXNZ3wxXImf5etXXdm3yfpVV5-kdW_tml6F8qN97Jj0pjHeIL6X3-n2-P-K5RJXwQEFDfNGQWKRvcny7eR7kLGcSVXe0s4FWb5cYpQQLMKDH1rOEoeKMDxgOKRGB1x9eFq-vud7Iy24XDLECAtCfxIcXfMyS2KeovHN0mUmhTMa8zSYVBy-b6piXFC02TSy8msAM27zM6-quO0O79iGr31lP07_voomxP__JH6eINKSABoEX1BVpCSnpxTHV9JgTH9rMNgdqsdNUf-e3fvM8Ah4eLcNz9L1L9hRTBM_884C-rBHTiMLgORkRzIVg_ZgrNQKxfkCL7Dv-HPvhRfb08v6H1JwUnz4LjxK8M6zCRa5J2nRN2bRi-6Mdy617U8XOVO-CDn2FRBDjdZfI7q-EtdUlLRkV3AdZwUmKaZFfPV0XTJc1nWRppDHWcbSsixImiZpIkhKeVVeyWuCCcWUxriIKY4XjLOS5ZwmwKoqx2WUYGiZbBYe7UKb7VX_Lvo6i4uMXDWsgsb2f-ZAiIJvqK-MCInS2ytz3TNUdVsbJbiR1tnTKE66Bq49u-v-bfO_4HE4qx2Y2V89XHWmuf7zT8F71P8bAAD___TJ-p4">