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

    <tr>
        <th>Summary</th>
        <td>
            [LoopVectorize] Assertion `all_of(I->users(), [&InsertedSet](Value *U) { return InsertedSet.contains(cast<Instruction>(U)); }) && "removed instruction should only be used by instructions inserted " "during expansion"' failed.
        </td>
    </tr>

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

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

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

<pre>
    The following IR hits an assertion the release/20.x branch (specifically e6d4fd035fdf90348fbeba6e73f90feb6e66b30b)

```llvm
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-ni:10:11:12:13"
target triple = "x86_64-unknown-linux-gnu"

define swiftcc ptr addrspace(10) @"julia_copytrito!_5606"(ptr addrspace(13) %0) {
  br label %2

2: ; preds = %11, %1
  %3 = phi i64 [ %12, %11 ], [ 1, %1 ]
  br label %4

4: ; preds = %4, %2
  %5 = phi i64 [ %10, %4 ], [ %3, %2 ]
  %6 = load double, ptr addrspace(13) %0, align 8
  %7 = shl i64 %5, 3
  %8 = getelementptr i8, ptr addrspace(13) null, i64 %7
  store double 0.000000e+00, ptr addrspace(13) %8, align 8
  %9 = icmp eq i64 %5, 0
  %10 = add i64 %5, 1
  br i1 %9, label %11, label %4

11: ; preds = %4
  %12 = add i64 %3, 1
  br label %2
}
```

```
rag@pop-os:~/Documents/Code/reduce$ ../llvm_build_20/bin/opt -disable-output -passes=loop-vectorize -enable-vplan-native-path
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-ni:10:11:12:13"
target triple = "x86_64-unknown-linux-gnu"

define swiftcc ptr addrspace(10) @"julia_copytrito!_5606"(ptr addrspace(13) %0) {
  br label %2

2: ; preds = %11, %1
  %3 = phi i64 [ %12, %11 ], [ 1, %1 ]
  br label %4

4: ; preds = %4, %2
  %5 = phi i64 [ %10, %4 ], [ %3, %2 ]
  %6 = load double, ptr addrspace(13) %0, align 8
  %7 = shl i64 %5, 3
  %8 = getelementptr i8, ptr addrspace(13) null, i64 %7
  store double 0.000000e+00, ptr addrspace(13) %8, align 8
  %9 = icmp eq i64 %5, 0
  %10 = add i64 %5, 1
  br i1 %9, label %11, label %4

11: ; preds = %4
  %12 = add i64 %3, 1
  br label %2
}
opt: /home/rag/Documents/Code/llvm-project/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp:2402: void llvm::SCEVExpanderCleaner::cleanup(): Assertion `all_of(I->users(), [&InsertedSet](Value *U) { return InsertedSet.contains(cast<Instruction>(U)); }) && "removed instruction should only be used by instructions inserted " "during expansion"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ../llvm_build_20/bin/opt -disable-output -passes=loop-vectorize -enable-vplan-native-path
1. Running pass "function(loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>)" on module "<stdin>"
2.      Running pass "loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>" on function "julia_copytrito!_5606"
 #0 0x00005fdf149f8ef2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (../llvm_build_20/bin/opt+0x361bef2)
 #1 0x00005fdf149f609f llvm::sys::RunSignalHandlers() (../llvm_build_20/bin/opt+0x361909f)
 #2 0x00005fdf149f61dc SignalHandler(int) Signals.cpp:0:0
 #3 0x0000752b78042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000752b780969fc __pthread_kill_implementation ./nptl/./nptl/pthread_kill.c:44:76
 #5 0x0000752b780969fc __pthread_kill_internal ./nptl/./nptl/pthread_kill.c:78:10
 #6 0x0000752b780969fc pthread_kill ./nptl/./nptl/pthread_kill.c:89:10
 #7 0x0000752b78042476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x0000752b780287f3 abort ./stdlib/./stdlib/abort.c:81:7
 #9 0x0000752b7802871b _nl_load_domain ./intl/./intl/loadmsgcat.c:1177:9
#10 0x0000752b78039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x00005fdf14bdaf2f llvm::SCEVExpanderCleaner::cleanup() (../llvm_build_20/bin/opt+0x37fdf2f)
#12 0x00005fdf14cca45f (anonymous namespace)::GeneratedRTChecks::~GeneratedRTChecks() LoopVectorize.cpp:0:0
#13 0x00005fdf14d25731 llvm::LoopVectorizePass::processLoop(llvm::Loop*) (../llvm_build_20/bin/opt+0x3948731)
#14 0x00005fdf14d276b1 llvm::LoopVectorizePass::runImpl(llvm::Function&) (../llvm_build_20/bin/opt+0x394a6b1)
#15 0x00005fdf14d27ce7 llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../llvm_build_20/bin/opt+0x394ace7)
#16 0x00005fdf14f11105 llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilder.cpp:0:0
#17 0x00005fdf13e07a0d llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (../llvm_build_20/bin/opt+0x2a2aa0d)
#18 0x00005fdf12b7c685 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) X86CodeGenPassBuilder.cpp:0:0
#19 0x00005fdf13e059f8 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../llvm_build_20/bin/opt+0x2a289f8)
#20 0x00005fdf12b7d045 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) X86CodeGenPassBuilder.cpp:0:0
#21 0x00005fdf13e0665d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (../llvm_build_20/bin/opt+0x2a2965d)
#22 0x00005fdf15071788 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) (../llvm_build_20/bin/opt+0x3c94788)
#23 0x00005fdf1507e789 optMain (../llvm_build_20/bin/opt+0x3ca1789)
#24 0x0000752b78029d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#25 0x0000752b78029e40 call_init ./csu/../csu/libc-start.c:128:20
#26 0x0000752b78029e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#27 0x00005fdf12b2d725 _start (../llvm_build_20/bin/opt+0x1750725)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWV9v47gR_zTMC2GDIvX3IQ-KE1-D7qKLTXZR9MWgRMrmhSZVksrGfbjPXpCSbcnxBs51rz2gGySxRM785seZ4fCPqbVirTi_BskNSG6vaOc22lz_gytnxNNVpdnu-nHDYaOl1N-EWsP7z3AjnIVUQWotN05oBd2GQ8Mlp5YDvMRo_gIrQ1W9gQDntuW1aERNpdxBnrK4YYgkDWsKROK8qXhFU56RpkANr1KephVBFcAFQKX_TVH_K-XzFqDSUbPmDjLqqKQ73TkIyC0EGPPZFpCSz1qcIUBKgsM__xpNX_1TGod_M3F4iHAOSBnhfNbkaHhSoSndq6fx7CE0C98chKIg6f8RgPGRnjOilXxP7SVPV2k869ST0t_UTArVvczWqutVACoZb4Ti0H4Tjatr2DoDKWPGtrTmAOcRAriAIEYA4187Keiq1u3OGeE0wNEqSVHqoXD-SpEERZz0ANkNQCWElYGSVlz6joGAHwIE5Aa2hjM78E6iCOBFeAh6ACckdLUbAUUaQ5DchF68F4sgSG7DS3IDD8qh8dRw3BuOzxqOB1W8t5uctYsGsXhs1rPcqx8sA5ykAUJqyiDTXSW5F3rLYQtIpVgrmO8RsoBgN7IngZPEC5F9dx6619xxybdcOY8t8u9bUZ2UvncAywKOddrwgSBEcxR-OMA3CL3JNz_DtwiERL1tIf_nhDPai0QoyFDGJv3RPlwiCkC-7RC5PitOAxmmwrlI7i3hU0tkYmmakdnteOqfVAKASkPXIEatbmfaAlL-BvDyVtedd7sFeLnQzBciw1nn3RTD-Rzgpa8gq6oTkq0wAnhZCQXwUrcOzpiwtJJ8pjvXdg7OWl_bLCC3Uut29sxrp434F4czroLccyupminqxDOftdRtflamn5XpZ2X6f6lMunUBEy83ehsqDV2fL0G-5sxao3_ltRte_YeoAF4-Gqpso83Wy39xQvrPh5pKau6etez81urupaWKcTOv2xaQEscoTIhnLRgMYKQEpHxY3H3dSy4kp4qbvqP2L10LcO43VKSE5WHPBlJEpVzpBuD8fgbIXWe5sYNkn7EAp_fKy3P2wF3I5PwrlR2HAJdfhokLDXedUXAkOa-1clQoj1ZT6wBZ3CvrTFd7y4DcAZx_CWYKHxbv05ArKcCpr0qGb_UzZ1AclaDd6E4yqJXcwYrDznIGq91YxPqXQMFj-D_WGb9l5d4z1lv2pSiDDRWSszlA5acPd-XDHbRdtRUOUlh1a2h4q42DTsONc61fXQBeArxcC7fpqnmtt6M4TqMrrO24DyKkyrOvZcd42BzXhtoNrGj95Aytubf94Gj9BFm39XEFqERzGH4-Gb02dAupWQ_JRMr_yvoVzeHnTinvMa_uHdh0qg8ZzqdAgCyUngnluJGcPvNZo03N2cyHB5AbpY-iJ10h-oUPkFZwq1nnFyOMAVlYx0SfHH6i4cEdp5R-KI9AYj9I-PYahvx8JwiiF1_4_Pkliosm5w0eTUS7s_3DJyOUCyF-NH1BPAoZ-m2lrTOcbkPOL6BQrp8B-duB9tX2haRRxRvcn5A8p-iEU4qK5hynz516EGtF5V-oYvIw2S83W6CiOZrFp2YjVsOJAYDzYWR9sx2qGAp_PQoZULIEV1mOYpxgBAOxoUoOW5TR1sR31HOr52kgFlSOtOIpYJEWTQ1Xq9ZtDKds9SSkXIlt26-ENATeD161TgK8HD2ONeY1IGXstwRZOthJLrHjE1NReamFLO_3b72F9JyFsc6lsHkxhs1OPR5nKVzbEKGA2D96zPC2s4y3vqq12oqXsNgJywMwzvzmc8DNp7g4zxoCaeWLacBxrA_o5CX09yT9Mp0NWMUrrKiCKyVXfpe0YnpLRR82oQ6jHx69xNaua9rDRlHmSYbbBEwiNAUmBS_S96VbUBmuJzCJppOvYrTBzbtX5kunYNawBjdH49MpWNc0ThqPRZVWu63uLFR0y4ctWdEb_oUrbqjj7PPjYsPrp6E4_Pa6vaf2Qev2676Inkxgz4FMODCcZCQaOWCi_onawVxrdM2t9b2T2tg3lO_wSRHnGYmOPolP-GRpdQEf06n7bSsnXJaH1S99Fx-aViM-ySmfmmcX8fk-l8VIv1RU7qywH6mia59cizNKfq175xhqnh3HkE7G0ERRhJIRB8YdFXJY-Ki1HzXj8jyTCffXY_89Q4N-eH-k0zyzG--rwzZ8nP_Z2DeEo4yi8dY8-OMtM3_KIV-WJ5hiShE75kk-9gWusjrNf0Se_HE-_FM6_-956k-Pv3D1duYVJ5mXFE0-MvoxbK4f9d6ABysZbZ025-n3Cu8iP6i8P2_yoskPeYPRSd4wFL8vb_bUFxeO__0D_H7Uf4DbLow4jk4inqbJJbXmnHf-94O-OFeKNDnWGDzZ8yQoi7J8nPWmCz78JFouhZoevB6cEWr9mTfnEuXVWB7DhelHWm8CTnmu94OoDDW7e9XofvtwKqW1_Fs4ky-FPAPyH3V_ZzilMXTnW8fODz6R3Xo4YX9H3jrWtx0O_mQRrpombhzlaB_Ks9VUt27ltB6mbT-MvwrF3pL6yo1oBDd7ucr3vPvz4m1OXcRZPipD5CS1eJYXULfuoz9tXIpJoywvjpgnx1FcsALB1cqfKVbWUeNWNZVydTjQ1LZ7ffIaDnbnlOYbQMpk-DqgN5mcmuQxgkFBKOFOrfSPHnoWoPtTU_jOAe_rTnoOcTKIc_zPIpPMn0OSATibFn7MMpzAHvJCh0dZgjKc9A4v_Wky3P_ldbit7rYt39eO_ddHV-yasIIU9IpfR1mMCM5IllxtriOKGszqJMpzHpGE86jIMt6QmOZxRJv8SlxjhBOE_Y44SqNkXuUpL7K4YTVjLMU5iBHfUiHnnvNcm_VVuBK8jnAe4-Qq3CTb8F07xop_g6EXYAyS2ytzHW4Tq25tQYyksM4eYZxwMnxJP9kyg-T254Xu8UL3qjPy-vdf2g5Ber7G_w4AAP__zCGy7g">