<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/102566>102566</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISC-V] Assertion `MemVT.getScalarType().bitsLT(VT.getScalarType()) && "Should only be an extending load, not truncating!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
patrick-rivos
</td>
</tr>
</table>
<pre>
Likely caused by a commit today since godbolt doesn't crash at time of filing bug:
https://godbolt.org/z/56jfG4KGd
Reduced LLVM IR:
```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 void @c() #0 {
entry:
call void @llvm.memcpy.p0.p0.i64(ptr null, ptr null, i64 4, i1 false)
ret void
}
; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1
attributes #0 = { "target-features"="+64bit,+relax,+xsfvcp,+xsifivecdiscarddlone,+xsifivecflushdlone,+zicsr,+zve32x,+zvl32b,-a,-b,-c,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-m,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xsfcease,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-zmmul,-ztso,-zvbb,-zvbc,-zve32f,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
```
Command/backtrace:
```
> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc reduced.ll
llc: /scratch/tc-testing/tc-compiler-fuzz-trunk/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:8921: llvm::SDValue llvm::SelectionDAG::getLoad(llvm::ISD::MemIndexedMode, llvm::ISD::LoadExtType, llvm::EVT, const llvm::SDLoc&, llvm::SDValue, llvm::SDValue, llvm::SDValue, llvm::EVT, llvm::MachineMemOperand*): Assertion `MemVT.getScalarType().bitsLT(VT.getScalarType()) && "Should only be an extending load, not truncating!"' 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/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@c'
#0 0x000055d226c6f050 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1de1050)
#1 0x000055d226c6c46f llvm::sys::RunSignalHandlers() (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1dde46f)
#2 0x000055d226c6c5c5 SignalHandler(int) Signals.cpp:0:0
#3 0x0000729c90442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000729c904969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x0000729c904969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x0000729c904969fc pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x0000729c90442476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#8 0x0000729c904287f3 abort ./stdlib/abort.c:81:7
#9 0x0000729c9042871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x0000729c90439e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x000055d22698b825 llvm::SelectionDAG::getLoad(llvm::ISD::MemIndexedMode, llvm::ISD::LoadExtType, llvm::EVT, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue, llvm::SDValue, llvm::EVT, llvm::MachineMemOperand*) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1afd825)
#12 0x000055d2269a22a5 llvm::SelectionDAG::getExtLoad(llvm::ISD::LoadExtType, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDValue, llvm::MachinePointerInfo, llvm::EVT, llvm::MaybeAlign, llvm::MachineMemOperand::Flags, llvm::AAMDNodes const&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b142a5)
#13 0x000055d2269d1233 getMemcpyLoadsAndStores(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue, llvm::SDValue, unsigned long, llvm::Align, bool, bool, llvm::MachinePointerInfo, llvm::MachinePointerInfo, llvm::AAMDNodes const&, llvm::AAResults*) SelectionDAG.cpp:0:0
#14 0x000055d2269d21a3 llvm::SelectionDAG::getMemcpy(llvm::SDValue, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue, llvm::SDValue, llvm::Align, bool, bool, llvm::CallInst const*, std::optional<bool>, llvm::MachinePointerInfo, llvm::MachinePointerInfo, llvm::AAMDNodes const&, llvm::AAResults*) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b441a3)
#15 0x000055d22696bf44 llvm::SelectionDAGBuilder::visitIntrinsicCall(llvm::CallInst const&, unsigned int) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1addf44)
#16 0x000055d22696f5bc llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1ae15bc)
#17 0x000055d226a02284 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, true>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, true>, bool&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b74284)
#18 0x000055d226a03682 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b75682)
#19 0x000055d226a04e57 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b76e57)
#20 0x000055d2269f5389 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b67389)
#21 0x000055d225b75c27 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#22 0x000055d22619f15c llvm::FPPassManager::runOnFunction(llvm::Function&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x131115c)
#23 0x000055d22619f589 llvm::FPPassManager::runOnModule(llvm::Module&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1311589)
#24 0x000055d22619e496 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1310496)
#25 0x000055d225479cf6 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#26 0x000055d2253bdbb6 main (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x52fbb6)
#27 0x0000729c90429d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#28 0x0000729c90429e40 call_init ./csu/../csu/libc-start.c:128:20
#29 0x0000729c90429e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#30 0x000055d2254705c5 _start (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x5e25c5)
zsh: IOT instruction (core dumped) /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc
```
Godbolt: https://godbolt.org/z/n8n9YbzEa
Found via fuzzer
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWltz46qW_jXKC2WXjC6WHvLgXNyTmmR2qtPVVfPkQoBsThCoATlOfv0UF8mS476crrPTe7rS0scCFusGLJCR1mwrKL2Msqsou7lAndlJddkioxh-nim2l_qikuT18p49U_4KMOo0JaB6BQhg2TTMACMJegWaCUzBVpJKcgOIpFpEcGkAVkjvADLAsIYCWYOacSa2oOq2UbKK4psoXu2MabUtwXUE14HHXKptBNdvEVxn-b_qT-l_fyK-uX9-pqTDlID7-68P4O7zwCzKY__H-b4BTAVqcgUeJOk4vbsBUXIDIrhUnsO8whFc-mYGqS01gCCDOHqVnQltIZ01UbKiszZKVnnqHjM2gAUsomS1gMVMJNDTniwNwglbo1jLac9SMY33eTrrxLOQL2LGmegOs63ohm7-SWjNBAV7yQiI0hhHlnEJIpjEIFpe-UZUGPU62ABgxPnQwxpi3tAGt6_zNrZ_VnJYtEYB0XEewWswxixPQerAAtSIaxrBMvBV1Di2Qb7lzVhQa-N1J7BhUoCVMcr6FAhphakQfgZC1opSIGQnXpgg4IVxrqjplAANbaR6jWCB1Lah1tZAUUReFDPH4QnFHCn6a4pJxBnSbvjWdIoCx0sK_jro-66JHbJv4Vg5G7CmQTYWnc0XY42RMYpVnaE6uMN6dnllvetdPqspspy19WlyY5_wKk8rZiJ4HcErRTk6eHjQ9R63PWY121NMmMZIEcKloNOamnd6N6K_MaxVgHuawEOPeQKrCF7PkH04hO2D2Ad1j0NLFWuoMIjPdNO0zRmqOEfV56lnid-kZuQ9vTvT-A1hpM9QOXIanpAZrhlvz9O1Y1Pbx84-3Fh6h2UnDFVUvPjyFpkWeWj2iAe410fyXk8qjHWNKzSIeWqDCeV0G7BWTIQGtG1aj7RBhlLhCrrvpzGutz1qjQpQ1m1T93girR4x1xOW2q7ZxmODw3sQeyS07vL0wB3cI0J70HlQIRVITOxRaCZQKz3rfVs1Du3t44D3iHcBVWwApkGCtaFI-UtADcI9ok1AmjVOrIOuMUWaBryvhcKctYf6Wz2QXhqE8bdv33rCN1smkkzK36SvNzuKSIVGuBphfcS4kaOCFKSR-yOhbmjDyOFI6JXwhdNK2rSIqSNBv4pR8z3xZjzsbZgKZEeTrZflBe9cyze0gIXSHuZpj5CX8g1VO-QBVzp0aNAirzx8Ce294m9e57fKN6yeQ_G5Lx_82_fBvg_2jXy0vGHqX7V_NbINoH87hd4IE55X7ZnUVd0w4eEuvAZC33Y3Bn0tw3laBVTJZkDtgN4CwqiRqMes7hHXfSesfDy9MSz83Hpj1uQe1VRgyjzeMWGE4cdCaxOdUGwDv173Z_8U4UXCm4a3V_fZj_esw4uGZjpUe7M1TecHNdq7dx88tg8us4t5HVCekgEdad6C-5HBLX5pUMC7_j1UhyjYP2_Du6cL3IMg7f5ZDG1C2FnU99f9u--nh3667xf03QeF93wRw-DfPV_AYoB5Ugx0GKdDBczyHiZwmQ_0NC6HimwBe5gPTPIsS4YWxaK0TSAYkpbp5r0YNu__SMJyHGbIR8eJw7VsGmQDZ23HMQph-j6B7bOqWxDBtcYKGbyL4NrgmaHaMOsZW8CyaRmnalZ3b28zozrxbPl2jJPZFu8HbLMln2Rako2FNecY9Fkw5348zrFV5jeGtAOMXqyK4PpaEvrJ7lDrJ8qpSw1vVp9OinPc2ry6KOHCDu0YJKsoWT3dfEW8o2PKmIujbKm5l4hEsDi2unu68eCBNneC0AMlD9LtdOBMI9v99mC-vLYnLW6_frEELIU2E6nuJY5gPm0cZP1dYhjrSHhAeMcEfaDNXy1VLlhWNhNOVmClNVUuy47y-IE2X7_Mt9Q8YcSR8lrYE8K8Ykbff4lgcb7eJ7R5BHObrz7tZMcJsNkvqChAAtCDoYLYsxp39r0GQtozTCcw8qGwcPnsEtSIcUrmPn4e729XT7dAd5U9HCJ70AOKtlLZkyI4Oeoxs-uqOZbNNHxmrZL_ojaZWTOtO5s-rwESBDCBeUcoMDsaTpbD_AnDPxk7cUnXtMOEiufA_XtUcqtQA5DadjZN1L8Z5789tRZBkM-dENauLdJ27VkOh6ZHS3hAAm2psoaVAjTu0Do-rtpD2jJoC7_D8fPd0_XsK7hZfZpFye3N6hN4RMZQJcCd0EZ1frhhMoWx6l4Oex52J81wLPanm_gQx3GcZQTCHOd1nMWjcNWv2oNHxYRxXvjilrXxvFToZSO1URQ1Yf4wYXwcFn-jIyJ4FR8WhC7iLD6eZd2iP9UJp3l9TqfPnXhiW4H4fyFBOLUpVvFhYhOa5vVEbHgqdoYzMBEwgkWwrCfrsMTG7v_AKAmMlrDEZZymMINxUMov34ci3-Tp-GrCVuC5lvPciee6TIRLpzzLvKwx2Gxas7P74-aZcb5hTcupO6m5cJtHcC1am32tx83mdiNK0yhZLfMj_-xX-NsTk0D8h5yX7s5mZI38HOdxtx-yK8oTdstT46bLHGy184fj5GEE13NXetWE2qPAupWa2UBQiGnqeMNllKxGNiimrGGxrBOAKrvGOlaGePc5kpfO7qyj2Vy-47CowEbwjV3rN0Q2iHm_MJcVry250VuMPLvFYmlFCm63MymeMkxKWub_Xii5LkMoWZ7T6VkWVQGzP5wLnGQBPjf4U7nAh6w_qCYFzCZ-ma4_JYIQ_dQvt4cfuOa7Vv-Rkc945FcNHOz5KN1CcSdq-VMHvFZ0xdlW_MwxjrzmaKunLVerh5v_kYTqkTYf48BqkUI0dWAydSBZ2K1gS82Du0u13tArQZ6MdDeXxXdc-z7q_8MzohPu6wQBXLpj6NicvS8qKfn4_etO_ln9OY9N6z9T3XGjw2Q8c6IZbbfW7OmJ2eECJT-bN94lUyecN9vfthz9gq2vEec2s-wFWNlqbcJ0kK3VCvEouXZdk9s_66kPmXVpukDJZNZlU_fnVZ2m33H_leVPla_YM83MnTCKCc2wNfUkHE5tn0-mzgcm2IiQOk0nKucnKtdZhX9Z5eleMTq3fPQKiugiq_BEseVEMRRDWHzPl3dPlI-pV0gzfMUlfp4oyDjTZsMMVchItXnZ2ON7lFyftiDUIBYYCknoxs-uadORtWw0GOXndPiad-2_4Y0qjj1H0vlpOvRxbU-n7v8nqf2y9XH77jKFxXQ6FCdRk-QF_MWoWXF-VHK6KQ_XBx-eWSyzvIATDcsTDVOaLX-qoerEXyIs8r0yEw3f1X2gijnNlmMV4fQipKyzpCh_oOI93SL8-s9XNF8mRTlRdHL8yqplhuHy_a7cy_qItB5peVa993rNW6TMPLalM_zOplFwevxYlPUiG28q60fbtb9F-7cl-tstnSwWi2yym8DkVKNsElLf08j_oGUaQIH0kdpkJ3GTnmhD0zIfacNHE2Kk113THpeDP61TnE6vIuAkd8vSZYnrHISxBjfgHVIuxVxNd6f7-68P11IYeuhXZ87x-dieJExZUpGqyoG7jPkAxTNYV9VU75NLLFiSMgabDWcV3miDlNlgxPlmuC7Cunt_oRWuzM51mu-iZJW5m7j8OOrp_VZJ09j9pmnDBDOnA3louc8cd39D5X6SBUemPb3yckwnqpzT4izzZFlasQfe08vxLF3GGc6A5_ohjqMww8cj_pu2VgV3f30BbJQ22wiVirqPI5T4yfT3yXXuW-Yn_9M-K9zPfvMnClH-b_V2i8afTdeyEwTsGQJWJqouyGVCyqREF_RysbRpeZEV8GJ3mSCUJUldkBJlBS7ztCxSSpa0LuOaxrS6YJcwhmlcxGWcpkkM57AsYVwsMlThpIYwjdKYNojxufuRmVTbC_cl6nIRwyzPLziqKNfuZ5MQCvoCXG0EYZTdXKhLZ5Oq2-oojW3-q49sDDPc_d7Sf6OJspt_6ve8i07xy9__YBcstb-E_xcAAP__t4pA5Q">