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

    <tr>
        <th>Summary</th>
        <td>
            [LoopVectorize] Assertion `!isUniformAfterVectorization(PredInst, VF) && Instruction marked uniform-after-vectorization will be predicated` failed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:RISC-V,
            vectorization,
            crash-on-valid
      </td>
    </tr>

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

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

<pre>
    Reduced test case: https://godbolt.org/z/KrPf9WscT
```
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"

define i32 @func_115() #0 {
for.body.peel.next:
  br label %for.body104.preheader

for.body104.preheader: ; preds = %for.body104.preheader, %for.body.peel.next
  %storemerge13 = phi i16 [ -15, %for.body.peel.next ], [ %inc298, %for.body104.preheader ]
 %inc298 = add i16 %storemerge13, 1
  %extract.t = trunc i16 %storemerge13 to i8
  %rem1.i = srem i8 1, %extract.t
  %tobool99.not = icmp eq i8 %rem1.i, 0
  br i1 %tobool99.not, label %common.ret, label %for.body104.preheader

common.ret: ; preds = %for.body104.preheader
  ret i32 0
}

attributes #0 = { "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,+v,+zicsr,+zifencei,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zaamo,-experimental-zabha,-experimental-zalasr,-experimental-zalrsc,-experimental-zcmop,-experimental-zfbfmin,-experimental-zicfilp,-experimental-zicfiss,-experimental-zimop,-experimental-ztso,-experimental-zvfbfmin,-experimental-zvfbfwma,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smepmp,-ssaia,-ssccptr,-sscofpmf,-sscounterenw,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-za128rs,-za64rs,-zacas,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmp,-zcmt,-zdinx,-zfa,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zihintntl,-zihintpause,-zihpm,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-zmmul,-zvbb,-zvbc,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl4096b,-zvl512b,-zvl65536b,-zvl8192b" }
```

```
> opt -passes=loop-vectorize test.ll -S
opt: /home/dtcxzyw/WorkSpace/Projects/compilers/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:5775: llvm::InstructionCost llvm::LoopVectorizationCostModel::computePredInstDiscount(llvm::Instruction*, llvm::LoopVectorizationCostModel::ScalarCostsTy&, llvm::ElementCount): Assertion `!isUniformAfterVectorization(PredInst, VF) && "Instruction marked uniform-after-vectorization will be predicated"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: bin/opt -passes=loop-vectorize test.ll
 #0 0x00007feae37ea2b0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.19.0git+0x1ea2b0)
 #1 0x00007feae37e76bf llvm::sys::RunSignalHandlers() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.19.0git+0x1e76bf)
 #2 0x00007feae37e7815 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007feae3242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007feae32969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007feae32969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007feae32969fc pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007feae3242476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007feae32287f3 abort ./stdlib/abort.c:81:7
 #9 0x00007feae322871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007feae3239e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x00007feade49a37b llvm::LoopVectorizationCostModel::computePredInstDiscount(llvm::Instruction*, llvm::DenseMap<llvm::Instruction*, llvm::InstructionCost, llvm::DenseMapInfo<llvm::Instruction*, void>, llvm::detail::DenseMapPair<llvm::Instruction*, llvm::InstructionCost>>&, llvm::ElementCount) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMVectorize.so.19.0git+0x9a37b)
#12 0x00007feade49a80d llvm::LoopVectorizationCostModel::collectInstsToScalarize(llvm::ElementCount) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMVectorize.so.19.0git+0x9a80d)
#13 0x00007feade4b46ea llvm::LoopVectorizationPlanner::plan(llvm::ElementCount, unsigned int) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMVectorize.so.19.0git+0xb46ea)
#14 0x00007feade4b6a89 llvm::LoopVectorizePass::processLoop(llvm::Loop*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMVectorize.so.19.0git+0xb6a89)
#15 0x00007feade4b991e 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/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMVectorize.so.19.0git+0xb991e)
#16 0x00007feade4baa6d llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMVectorize.so.19.0git+0xbaa6d)
#17 0x00007feadee6d9b6 llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMPasses.so.19.0git+0x6d9b6)
#18 0x00007feadc319031 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMCore.so.19.0git+0x319031)
#19 0x00007feae24a5596 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMX86CodeGen.so.19.0git+0xa5596)
#20 0x00007feadc317d2b llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMCore.so.19.0git+0x317d2b)
#21 0x00007feae24a6986 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMX86CodeGen.so.19.0git+0xa6986)
#22 0x00007feadc315ba1 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/../lib/libLLVMCore.so.19.0git+0x315ba1)
#23 0x00007feae3cbf615 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) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMOptDriver.so.19.0git+0x24615)
#24 0x00007feae3cca266 optMain (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMOptDriver.so.19.0git+0x2f266)
#25 0x00007feae3229d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x00007feae3229e40 call_init ./csu/../csu/libc-start.c:128:20
#27 0x00007feae3229e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x00005582c2277095 _start (bin/opt+0x1095)
Aborted (core dumped)
```

LLVM version: f337525ee8b44da0f1e98eecd7f51bf5805c3760

cc @fhahn 

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltzo7qW_jXkRWUXiIvhIQ_OxTNdp1M71cn0mTeXEMLWREhEEsTxr5-SBBgc0p3us_ee3nN2VxotLWl9WjfdwEgpuuOEXHrxlRffXKBG74W8LDQ-HF9fLnJRvF5-IUWDSQE0URpgpIgXrsFe61p54dqDGw9udqLIBdNLIXce3Bw9uPmHvC-zfyr86Pk3nr_2Er_7s1WN5I5oUCCNGHoVjQZeeAM8CMmi8sI1WdReuE4i-1jQgQhg6oXrAKYLHkLHezA8CCewWtKakR5SUoXbJFo0_ImLF75glDeHxY43g5h7FqSknAAaQuBFftlwvA2C2DPwGfBg6ANvdeW6lkIujWuWNSFsyclBG0_YJgByCRjKCQMejPuOgR8ta0n2BBVEjged7xCugRdegVqSQnVmvAMFr8dtI306ZTwYKy0kqYjckSC0YPWeAhokwIuvwMJY-A4G8OIb2xhfmQ6UY5ilZ70n2lgBN_DQ346IisKNONXGYAUjTclBS4T10mWDlg3Hc2JAC0DTkZwkVbCkVkhJUgGagqDTc4AcddciF4Jl2ZILNxLFVQ3Is5Eb0Iy8PwopDc5FTY8h0FhUleBLSabs78Z_JPfxoHdaSaJttnZqequbMTLSWtK80UR1yWsQVyaS0E2TRUmQbiRRZh6EN-YJr5Iop8YED14hV2BXFK4oXVG5QhKGDo5sXXGkWMmeLAnHhHa1loSwHNGHgU6iYkSXI3rowwKY5kMlhCc6iQy9IPZxqImkFeEasYWqqrqa4fI5rprnzjKfhaLFW34z0_mIUCVmuPkezXAZsq57w5YKv2XjStRvuWVeVpS_5VNcUjbT3_CVmuHPoms1Y0z73pim4aWyhu7NQ-2xaLgmkvAXV98hXSNH6haxjmzVid2qSYNuCbauVxWijluRurKqKtWzFMa1lh0pyroqe3oyvFIaaUJ4X5EUa0dr3JXD2KORVZNEB2bJFhWkJxpH5Eh2LMpb1HXjqBYOuq3zylIH3CLWdFROB0JXiNO6qxL20lEVwj1Fqo5StLIaHVSJidmVHd3iuqdKLjGj9aF8LgfWS4Uwfn5-7hnPpl6IYlJ_Fl07LakxnCqMZFEwwcmYX7JG7U9cbZanHI3ofESrE43dpOgqgheVaE-MsiIVLQ4nRm-8q5w3kqpGVJ4Y6pWPureF8_yhNVnJkRlN1FaXIwpgKjsyiXoKo4546TjOoqMz5phjVzx11ae-fnClk8FOBrtOLnOOmLiidIVL2yN2CXEsKHcQpZMt913RTa5j2XfYj4m-leJuJTxSnItqoOqBOnYURpVAPU3LnmKqF8LSJdORYu7m0ZEavzlqT7nmmp0qNWr6_nu3Bh6f3JN3RdGVpCudZU8O-kl1Bem6qa7ZuaWqGjdW2wWg7SLQdg5qTx5qu6C0T7uu7Pkc90Q3SvvEhz5uMbZUL6_6spdTg5zq5To9207RlgU-7ELQsiAJ06EC_Sgd6DjpyRCukoEf-dnQEAewJ5M4Dgd-GmSmAYLTVj89Vs8zw1sgag0WNVKKKC-8YULUi5ZgLSQ9EnuuXzIGFg9OQNTuMAI3e1ERD26624AHN_8U8umhRiaTN_dS_A_BWnlwg0VVU0bMhNkw1laL2rV1VVPQ3IObR4m4KoWsTMevvQIe3HwWoh7qS1yb43-8WsVGD4sQrr1w_YkrLRusqeDXQulRy1ge9e13oiDMtRsFG03uJSkMyA11m4EH01l0D67tMe7D-A8YMSQNUz2-ejCZSt8yYjbFazdkZoxaK0WkAQImTjCg6r84NZ5Zl5rIyVAeTHu9DezXjbuPJB40J2M4UhtUSD6RAjQOaoEM1hBoCwZeKGMgJ_aYSTHSJq-hB1egRJSRYulS4P7z7frhFqgmr6gGCOTNDkhSC6nN4fvs7kf1vsmXWFSjcE-TgCrVmHPmBiBeAMoxawoC9J4ALJHagxzhJ3NOJ93wDxrhJ1A0VT3cq_wlsP_updhJVAEkd41xqtED5GYB2HwkyYfrSegD_-D7vr8qCSLhiiCY-6OYqVfliHtJubYKPUqb-KOUkehlK5SWBFVd0KmNMLC3xp-aPp8_f73rHZg3lBUe3DjzlsthHjGam34PTW1CslRiGWRLf2dO7lf-IbC2mEQbjA3OjF0leTln7JeGP9AdR-w_ES-cRukvYI9Rd2IPPLcnDWIw0dyDaRcLx1bdquLb_wNQOAGCEYyh31nrVDukyTaJxi8NTAM2OiZWOysyUS6aYmZJVmKw3dZ6Lwkqtk-UsS2tarcouFlpXMFrs6tuxt2W2AvXUeSF61Vywo8_gm9OuhyxbyKv7NuUkTeSOeSx2Dfh0uwMbnXu3GiVgJ2y8bBIjuxzQb2qgpiz2aYWih48uJGIKmKx4coL1yMfpFNomK7KEKDcLFAWShcufJbltAuMxSeE7A1CkIMtZ1smULEtRIWoiwu1p52NYVdqh5GDC4KVUakLu5li0wUFhhnJkh9LJSsypJLBHM_bgkQZClf5n7jt3RCuyB2qvfD6YwJnO_Q82ideiu8gtoIWXng7lS-IRpRNse7N2f9ntQtv7Rjf3q3_6LXv7TJ4OgidLYQ2_JP8gOf5kfrFD-UHYwRr4xf1KNwhxh7I0r-GO1K_mLgjnLojjxKCvuWOe4Y4t-9bvXBdM8S_Yfk1aLh9V178SZv8D3jCGjrxRHTmiQSl2TueIPdIddt_LQUmSpnWiSccY_2LGW1smhgdnxmdZQH5vtGy4Z-qmk0M3jS8W0LOFgc3R25bwZrZdjOGXd_OGx7tO9fhAjTb50ZUlCMt5KMk5E3rFRP4aSPJc0M4fnUA67lBPtNcIjnf44ZUiBekuKImPmcjrJVqqtquEwjv32pgjFtjkyEG-w5xtDMHrbNev9WaVt0E-0LMleS2olrP9LyXoqSMPDRVNdb3l0oyk0OTJEvOkgyh5L0ld5pkH0uwNUfsVVHVe3e8tw1C3a71SznK-GHiqNXEUSQpsjx5Zzc3fuq2pTlz372KOwf_lP_M3_-nwNzbe-95VKzTJ1EZH5wLHAaZHwbjKWki8S0L_3b2569310K-mQDOlRNfT64YMEJxnP0eM-APi9Hfsf389e6_0-RaFOQ_CD-PsI3fOMDQP5tMqwKOr2d3omgYeRS9VSZw6wLVWsh5nzmBH_JYJ_KrzQXjiYmrgrO5kGTpj82F3jfXH3TwT3jwvVT-K4blG2lsXD-JDTxL4zhHH9kT5iLy7-fo-fw3Lpz4ePqiEedlEsQjE2Vjk_ee1oRRPr2BP2hJ-e4LKeeS_52Lxh3Ce4vzvRuCu_qc9xKC_dboutEbymZA_qXmd8xZS4leDXccXesT1uwof7s_nforXTheOWwf162gBZi40WBdmbh2N5FsbtcTtd5qIbqVyFnxD2q_YL7b6yuRtKRE9v1y0_LD5Z_1kv23Wt9I2hJ5nrQwSoJ4krPTF9kYI5gkQNT6DlH-f65tCZPpKnb2WhxmReaD7ZbRHG-VRlJvMWJsO7zXxap5--a5e7c9J7Tce-E6tq_Mk9OoyfmoJPKBlaGc6vOBHGnQFxbdvUq2v2qE_gl0NQc6MWXOilnwcJUZtU_Y_QUgjlOIIVyt_CwGDtXEdPiU5j69-NkpJda5kJrYWYWFJPb7HBnd-ea-RZsYgpZIZWflGpRhuIphTEiaR1GB_DIgWUoILlZlHORlnPoxDldTDIztDzL3aM-B41wUl2GRhRm6IJfBKvDjLF5l8cX-Mg3zJEI5DAoUplmcJ0EECcQoTKI8yiC6oJfQh5EfBkkQwiyOlzArUZH4QYiCNPVz6EU-qRBlS5OeSyF3F_bj5WUaxzC8sD_sU_bHshDmCD8RbpaeL58erhdf7YfUaw_Cdvr5tuPaT50LwRctYtR-dY1vLuRlNw12yot8RpVWp5E11cz-Mndy5_Xim9_r8_G__u048bsPxxeNZJc__2HYuvd_AwAA__8FoO66">