<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/147986>147986</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISC-V] Assertion `From.getParent() == To.getParent() && !From.hasImplicitDef()' failed.
</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
; ModuleID = 'reduced.bc'
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
define fastcc <vscale x 4 x i8> @c(<vscale x 4 x i16> %0, <vscale x 4 x i1> %active.lane.mask) #0 {
for.cond2.us156.us.us.preheader:
%1 = call <vscale x 4 x i16> @llvm.umin.nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> splat (i16 255))
%2 = trunc <vscale x 4 x i16> %1 to <vscale x 4 x i8>
%3 = select <vscale x 4 x i1> %active.lane.mask, <vscale x 4 x i8> %2, <vscale x 4 x i8> zeroinitializer
ret <vscale x 4 x i8> %3
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <vscale x 4 x i16> @llvm.umin.nxv4i16(<vscale x 4 x i16>, <vscale x 4 x i16>) #1
attributes #0 = { "target-features"="+v" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```
Commands/backtrace
```
/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc ./reduced.ll
llc: /scratch/ewlu/daily-upstream-build/llvm/llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp:524: bool isSafeToMove(const llvm::MachineInstr&, const llvm::MachineInstr&): Assertion `From.getParent() == To.getParent() && !From.hasImplicitDef()' failed.
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/llc ./reduced.ll
1. Running pass 'Function Pass Manager' on module './reduced.ll'.
2. Running pass 'RISC-V Vector Peephole Optimization' on function '@c'
#0 0x0000557dec7f1d02 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1eb4d02)
#1 0x0000557dec7ee9ff llvm::sys::RunSignalHandlers() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1eb19ff)
#2 0x0000557dec7eeb4c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007d7242045330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x00007d724209eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007d724209eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x00007d724209eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x00007d724204527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007d72420288ff abort ./stdlib/abort.c:81:7
#9 0x00007d724202881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007d724203b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x0000557deaf043bf (anonymous namespace)::RISCVVectorPeephole::ensureDominates(llvm::MachineOperand const&, llvm::MachineInstr&) const (.isra.0) RISCVVectorPeephole.cpp:0:0
#12 0x0000557deaf061df (anonymous namespace)::RISCVVectorPeephole::runOnMachineFunction(llvm::MachineFunction&) RISCVVectorPeephole.cpp:0:0
#13 0x0000557deb6254b3 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#14 0x0000557debcbdcb1 llvm::FPPassManager::runOnFunction(llvm::Function&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1380cb1)
#15 0x0000557debcbe101 llvm::FPPassManager::runOnModule(llvm::Module&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1381101)
#16 0x0000557debcbea54 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1381a54)
#17 0x0000557deae7408b compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#18 0x0000557dead861d7 main (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x4491d7)
#19 0x00007d724202a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#20 0x00007d724202a28b call_init ./csu/../csu/libc-start.c:128:20
#21 0x00007d724202a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#22 0x0000557deae68ff5 _start (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x52bff5)
Aborted (core dumped)
```
Godbolt: https://godbolt.org/z/o8j3r6qxs
Found via fuzzer (C program before reduction)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEWFtv2zoS_jXMC2FBoq5-yIOT1LsFWjRoir4aFDmyeUqRWpLK7dcvhpIT23G7bXF6NnAsmZdvbt_MiOLeq60BuCTlFSlvLvgYdtZdwoMeL1orny6_gA-CeyD5iqQrUqXTR-v7niqHQ_kV_WjlqOH9DSX5DSWsdiBHATJpBWE1SVeBuy0EKnngmj_ZMcwLGSx6kq9gMZB8VRXxa6FebjLWkHyVsWZhcjaN3eEYY6-YwalBwx7PKS_uq2Ixmm_GPpiFVmZ8XGzNOO0h6UpCpwzQjvsgBCX59b0XXAN9pAV9pKoh-TtKilQQlH0ymVVxlpUpYddv92bzLBdB3UOiuYGk5_4bYUtKWJ5SUl-RdNVZlwhrJEtGn5VVMnr8DA52wCW4ydEUgbJoluBanxFWzZpiJJKxVyYxj_cFjv-G5nHaD5oHSlijsoqysiRsiZ9ZGRaVCW40Z9z2gp_RYM97dY-TRxwPGkT4FR-eUbuZF7Pvzz6Ds8qooLhWz-CiEg7OCN5j5UiT-mYiC3J7PRoRlDV0FYLzJF9RYzEkLRffqLGdA6DG-icjqLGjeVBGUj-AGDUPvNVAH5TWDsLoDO2ht-6JsMZYA5NvJQjNHfwtAf5-bGcKZpNZPASn2jGAn3mJyVNfYQJNWbXogIfRgce0yW_wm13dE8bo5JpjgOwF4O_zzCzopd5Mil_bvudGesLWKCQ4LuBkFSVs7YXjQewIW2MdI2wtudJPi3HwwQHvF-2otEQMvC624v7lHn09FQ0cUoawtdaCJoSt9zVNa5KutBbIhF-QhcgHF9UStv4SnU3Y-vP7u-uv--tXEMG6W4BhZzUkYsDiWDIsirS1VlPl73gHX-xHew-ENcIaH2gEzlckX33kYqcMvDc-OMIqJMX_XLJE8JX34CLVSZWune2TLYRb7sAEpBwGJb_BUH-xb2cQpaKEZXHjjvv3_aCVUOEGumkNYTXtuNIgE5Kubj-8W929o35sexUop-24pQ4G6wJWkF0IA-YaYWvC1lsVdmObCNsfO3IxOPsXCPSg8n5Euq4pN5IqI_QogYYdUOG439EXuqDsu4AMlWM_TMU2TWj8u3V263hPuduOPZjgfzHGv8-nbNbg82iMMls6cI-pVb8Un1sc-MgN34JDR1pD-9h0cdUJHA6kK_YdSOTY4iudWEb3NKOfhqB69cxR2iyg2wvHJh5bYj0lWJ7S9DFN07Qsawmi7jKZsgN6-Sc_3dw6ZUL09peYqqx5XeT4w8ZODpxZqpBNSKXmD_icsKv0MYO2kCmbu1osXUeGACy77pwhn0dzp7aG639zIzU4_0L7P6lrtuy6V13Zqa5tIeiRVti60YfX1KutMp3dBMJW-PveKhlvl_MOP9eVNP5PAvJZQC1rVrC0KHPsDdHCqV49NtWmKg4fqnBCJN4mVdQ5bnnVuDgGXELLBN1shrBzwOXmm9J6o_pBAyZbZF7MDDMETdj6cFmC5bbAElhXM3j5M-AmgDNc_xC2jg-ZeydU52AP9_wQq1keYtWnDmU1UMeVhwjiYyQIWyfx15OXMGAJG6xXyIe4MsKyGp9-Z9TmGJU1TddR3mLljDhBTtGKQ5NWGZo5b1--2Z61dGP0RlsuN9L2XE1hUCbaiMO93wo-YWVZjcpgiDF_0mO0vC2z-tc4E7dMnEHAo4zkXVrkbYeA3Fjz1NvRU8N78EMsJ8s5O9-2zWkCjB8d3NheGR6wPTRveuCnARy2jNgi50L0o0Y591LCmkR5xxOkO_1-397nF5rGTkyrMvn7prnRfDKzevsucc6-17nq5zXNDzVtK1YWbf7WK3to7E0HSp3V5kQNdN_AXZjcdwbvjFLFkVKilaLNDpRa3-K-fYv8ZXX-WBnPm1S02SvByxMzIEt_xozpiH0c4XnoHzAhy9IDE6pTE3hZHJigYcvF0_wE8GoMPhC-GPR_M4SXxash9VFGQl2kTUuF7Qel4cXhYsdd7J2r49rw4cPXj9fWBHgMs-paizO8bY6EyKbKZE1jlf2DphbFMpMHZfW06vNMcLrZYCne-MBd2ODJbfNS_IUf3zamueud25TssMVgg84niSw9lcjQtzx2ZRVOhUy3iLyIyFOvie9_2OxIlp1DPLLhnPpnkfMCm1g5Ax8XZqiarivpBPknY1SytuvKKUYrbNYgaTzPOYiHE5Bz_I4Pwf-ysrU64Nnk5Jg0TSTWbQlbPxO2ts1fuav-8-innWs7GknvFafd-PwMDqVd02E-9bTQoeR4kJhq4_JCXuZymS_5BVxmdcmyKmuy_GJ3WdSySJuslcu6lgUv83LZ8TorO5Fxtkz5hbpkKSvTOkuzMq_KPGmWbcMz_JZSimJJihR6rnQSX29Yt72IR7jLrKiXTXWheQvax7eSjBl4oHGWMEbKmwt3Gb3ajltPilQrH_wrTFBBx9eZ00GHlDf_4MH2YnT68vcPr7Px95fsvwEAAP__5YKYFw">