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

    <tr>
        <th>Summary</th>
        <td>
            [SLPVectorizer] Instruction does not dominate all uses!
        </td>
    </tr>

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

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

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

<pre>
    Testcase:
```llvm ir
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"

define i16 @c(ptr %i) #0 {
entry:
 %gep.us154 = getelementptr i8, ptr %i, i64 132860
  %gep.us154.1 = getelementptr i8, ptr %i, i64 137774
  %gep.us154.2 = getelementptr i8, ptr %i, i64 142688
  %gep.us154.3 = getelementptr i8, ptr %i, i64 147602
 %gep.us154.4 = getelementptr i8, ptr %i, i64 152516
  %gep.us154.5 = getelementptr i8, ptr %i, i64 157430
  br label %for.cond5.us

for.cond5.us:                                     ; preds = %entry
  %0 = load i16, ptr %gep.us154, align 2
  %1 = load i16, ptr %gep.us154.1, align 2
  %2 = load i16, ptr %gep.us154.2, align 2
  %3 = load i16, ptr %gep.us154.3, align 2
  %4 = load i16, ptr %gep.us154.4, align 2
  %5 = load i16, ptr %gep.us154.5, align 2
  %6 = call i16 @llvm.umax.i16(i16 %5, i16 0)
  %7 = call i16 @llvm.umax.i16(i16 %0, i16 %6)
  %8 = call i16 @llvm.umax.i16(i16 %1, i16 %7)
  %9 = call i16 @llvm.umax.i16(i16 %2, i16 %8)
  %10 = call i16 @llvm.umax.i16(i16 %3, i16 %9)
  %11 = call i16 @llvm.umax.i16(i16 %2, i16 %10)
  %12 = call i16 @llvm.umax.i16(i16 %3, i16 %11)
  %13 = call i16 @llvm.umax.i16(i16 %4, i16 %12)
  %14 = load i16, ptr %gep.us154, align 2
  %15 = call i16 @llvm.umax.i16(i16 %14, i16 %13)
  %16 = load i16, ptr %gep.us154.1, align 2
  %17 = call i16 @llvm.umax.i16(i16 %16, i16 %15)
  %18 = call i16 @llvm.umax.i16(i16 %4, i16 %17)
  ret i16 %18
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i16 @llvm.umax.i16(i16, i16) #1

; uselistorder directives
uselistorder ptr @llvm.umax.i16, { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }

attributes #0 = { "target-features"="+v" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```

Command/backtrace:
```
$ /scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt reduced.ll --passes=slp-vectorizer
WARNING: You're attempting to print out a bitcode file.
This is inadvisable as it may cause display problems. If
you REALLY want to taste LLVM bitcode first-hand, you
can force output with the `-f' option.

Instruction does not dominate all uses!
  %6 = call <4 x i16> @llvm.experimental.vp.strided.load.v4i16.p0.i64(ptr align 2 %gep.us154.2, i64 4914, <4 x i1> splat (i1 true), i32 4)
  %4 = call <8 x i16> @llvm.vector.insert.v8i16.v4i16(<8 x i16> poison, <4 x i16> %6, i64 0)
Instruction does not dominate all uses!
  %7 = call <4 x i16> @llvm.masked.gather.v4i16.v4p0(<4 x ptr> %3, i32 2, <4 x i1> splat (i1 true), <4 x i16> poison)
  %5 = call <8 x i16> @llvm.vector.insert.v8i16.v4i16(<8 x i16> %4, <4 x i16> %7, i64 4)
LLVM ERROR: Broken module found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt reduced.ll --passes=slp-vectorizer
1.      Running pass "verify" on module "reduced.ll"
 #0 0x00005de624576b42 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x3588b42)
 #1 0x00005de624573baf llvm::sys::RunSignalHandlers() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x3585baf)
 #2 0x00005de624573cf4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x0000723bce445330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x0000723bce49eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x0000723bce49eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x0000723bce49eb2c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x0000723bce44527e raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x0000723bce4288ff abort ./stdlib/abort.c:81:7
 #9 0x00005de6216a55f8 llvm::GlobPattern::create(llvm::StringRef, std::optional<unsigned long>) (.cold) GlobPattern.cpp:0:0
#10 0x00005de6244a24f5 (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x34b44f5)
#11 0x00005de6243a4a90 llvm::VerifierPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x33b6a90)
#12 0x00005de621795e15 llvm::detail::PassModel<llvm::Module, llvm::VerifierPass, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x7a7e15)
#13 0x00005de62435f33d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x337133d)
#14 0x00005de6217a2051 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) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x7b4051)
#15 0x00005de621793b8c optMain (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x7a5b8c)
#16 0x0000723bce42a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#17 0x0000723bce42a28b call_init ./csu/../csu/libc-start.c:128:20
#18 0x0000723bce42a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#19 0x00005de62178a1e5 _start (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x79c1e5)
Aborted
```

Godbolt: https://godbolt.org/z/hq5nGcnrd

Found via fuzzer: C testcase same as https://github.com/llvm/llvm-project/issues/141262
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWc1y2zgSfhr4ghKLBPh78IH-UTa1zozLTs3WnFQgCUrYgAAXAGUrT78FgJJIW4nlzLj2sClHogD2140P3Y1ukmjN1oLSS5BcgeTmggxmI9UlfeLDRSWb3eVXqk1NNAW4BGEJ0tD_cb7tIFMgLA1Ra2pgQwzhZCcHAwG-gQAhuugALumiB7hMY_exYIeLCOUAlxHKFwIjP_ZoxxA6YhrFek73eIrpepvGi0F8E_JJLDgTw_NiLQYvA8KyoS0TFLIohSAOa4Dy3igIUMIAKiBAOIQguwJhSYVRO78iO72mfTDoKImdqjU1lNOOCmOlWQ7QNTziXEOWxjDCKE9DKz6TD6J3IGRZFr9GQOcjxCjN89cI-B0IWRqilyQE76AhQUmUvjYheQdCFmNPZKUgJxXldr6VKqilaJJg0H5vZyO4hOf8A_gK9oo2enShxO_7aG7oRrkkjfWYiXGHddgxwtlaQLQXit4UCqITYuhtMXRCDL8thk-IxW-LnVpb8rZYckIsdWI14XwfeTY5BENHngOHk7thlDhhex0CVOyls3Olw720VTkByM8FiCYA2QSgOBcATQDyCUAUnouAJwjFFCH6FRuiKY8R-hUjomgKgc-FiKcQaArxtuudCqrk7D2cacZTzemvRWZ0tgN60P2PZKr7bB-cmX9wQkXNYdAmdJDd-KRnE9hyELVhUsDSGOVSn5BWU0Xqb1DIVlEKhdQ7UUMhB_HERAN1T-uBE0MqTuET41xRMygBO9pJtQMoF1JQr72hNSeK_sTu0eTxCI2Olg2acqaNVA1VsGGK1oZtqc3Xsxm3Da-Qr-1RDCMX1YX9cMdDZj_crEsWji7nr87v3f7ZM3ykhxijWDUYqsfD3Wb57MoWC76CWLSUmEFRbUsEfGM_0dUWIDRizAGiA8Dfx_De2H3d5A2_ll1HRAPQ0uowitQv6yt7jWII0FLXiph6A9DSFmUALRvC-G4x9NooSrpFNTDukOz3Yl1vD9eWcV8l2SEmAFrK3kBFm6GmTcA5XCx6ojXVAN9o3i-2tDZSse_U1nX_Kh9--_zbJ-twf8oBoExRSIyhXW-YWEMjYa-YMNBWfARWzNSyobBlnAYgLL9umIb2T5Bmy7SjiWjIDOzIDtZk0BQ2TPec7GCvZMVppwP4uQVhuZMDfLgt7-7-hE9EGKvJEG0ovLv748tEkdJmsXEsXsOdHEBY1kTAVqqaWqP6wcAnZjbQbCgEabhoAcqg7G0sBX4bPgtt1OCjq5FUQyENbGTHBDEU2mgeLDkoOnHUAXwdw2cXGPj24N_0uaeK2ZKH8GDbB9oo1liuJWmCbcyiNOjDwFbBvjYdk9GJSsAWR3Hh891Bl1VlOTPQhSY0anBhbO_HyIZLMa8B9qbmr031mx0woakywdZGurcQ2Mp8KtFLpqWYGeKR3EHsTR2Ponczmr3FaEf0N9oEa2I2VI0UbuM-9FZagd6o0Rq8JwKdy9pc536hxbwi-ltI3Cf_VxRmh932ip2X3z48_P5gQ-9KyW9UwE42A6ewlYP391p2PePE8UwqqQxtPKn3d7fl4y3UQ9UxF5fDGiraS-XiaGNMb48QgJYALdfMbIYqqGUH0NIuZ_xa9Er-m9YGoCXTerD7tYRENJCJmg8NdRFVK6I38JC-bEQ9Gpswm6HrfTILA1-G3yu5VqSDRK0HGxruEPsfZrZotOthEMKmMnunPTO2VLF2Z08HeWDc9p0HVN9o-rMmfA7DMEwamqI4ydIqRtBRiEuAS73T_uLepkjHy1eX5FF-vEmRp5X0SwXIB5Iw_pTNP4AdgK7CZ5zkeRXvKzZ35s0XgivSnlrIwyAe2VoQ_g8iGk6VdkZ-tK1JRdqjreilrXUbw5lVNr4th9dQszUTrVwZgEr7eytZ4y6LUUIHdW_9NHT_vQI8KsgQrmoaxwm2RYVbIWcVQMvnPF2l8fTJg52oAy2D1NnsRI4Wx3PAglaohqtVbzaKkmb1jXG-Yl3vm2QfzQFAS9EbDtByeltQA1zGMcBllo7gyTngwlAlCP8pbOaexOxJSE_BTmV-ipUXU6zsJaEoo1ARpqkD0W4nAFoG7tdON7S3yaaXmll_cHc6WJQBXO4Xns9RUZ63rc-CHtU0frfckLcqssscxYupG0UpSZI2n7j8Jy6re1voKOEHakWJmYfuo1FMrB9o61zNNH7U1xaEA3w9CPdYrYFcijXAt2OoBLW0cVDAiZIXfmhjcp5dYoLiNvnQSIurOG7HjsYaMM8KmMSkCCcU_WETJaPqnugxPahBzAjaNy1jYjtOlILwnWb6CxFkTRXA1yeELF_pR2cXXKWkCI9rnmWXKCsSGiUTwxtqCONjVidaf5EN5TPzv7gTY77cGVNnEzEi4Vv3d4rfva53sHsE_XBuM5LRaOJOeO5OSYtxM7Ha0flji_9vaMM4izBujrzFc5ckKEyiidlqEJa6e9ZTzsRPMtSbBHx13fIXUm8cTnlq9o5ViqjdZ9HKz13PX98lJf_dtV1Lxk-A_KXpHyynVIrs7Oh0xxwnfFgzn0h-cP8ha7eHrHNtiwQ4o9FiXdl9s7WFe-rovWuGKnuzMlKOycGv4p_MF-o_umufGPb3VXbm3d8fG8VVHCbR0RuTFwkSV3lt--kvhImPzSZJlddHO14UKIhENYGrlS3EVtoQZVa2YVt11ixbD9R6eF1ijPXLKaFgY4sFW2rhUWP2UiPKK9cVrphg5qUSf2mRFw7ZVSD-dRfan_AvSxiHOFvDKfNPIuPY1kbJCDwvbrKcRDSBHvJD96ioIzpm_HLsR1899fokm0pyY7u_F42onwikWgO0_A7QcvOfRHyqhWq85NL2vXDLCGyH77aJwyW8hmZ8NQk16dzTpV9vb6M4Qim6aC5xU-CCXNDLKIvzEOEwLS42l1lV0baI4yiv2iZKq4o0TVu3bZGmJGmi4oJdohAlYWKdJcniIqhpmCdRGJOqxjinBYhD2hHGA_fYQKr1hdN96RQnF-7Fl3YvYRES9Am6WdtvJjcX6tKZXQ1rDeKQM230EcYww93b28e7-z-OXW5yA89-FnMxKH75F7lLLraX6L8BAAD__2fu_aY">