<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/134624>134624</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LoongArch] `Cannot select: t14: ch = Prefetch<(load (s8) from `ptr null`)> t13, Constant:i64<0>, TargetConstant:i32<0>, TargetConstant:i32<0>, TargetConstant:i32<0>`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
alexrp
</td>
</tr>
</table>
<pre>
```llvm
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "loongarch64-unknown-linux5.19.0-musl"
define fastcc i16 @"prefetch.test.@prefetch()"() {
Entry:
%0 = alloca [8 x i8], i32 0, align 4
%1 = load i64, ptr null, align 8
%2 = insertvalue { ptr, i64 } zeroinitializer, ptr %0, 0
%3 = insertvalue { ptr, i64 } zeroinitializer, i64 1, 1
call void @llvm.prefetch.p0(ptr null, i32 0, i32 0, i32 0)
call void @llvm.prefetch.p0(ptr null, i32 0, i32 1, i32 0)
call void @llvm.prefetch.p0(ptr null, i32 0, i32 0, i32 0)
ret i16 0
}
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @llvm.prefetch.p0(ptr nocapture readonly, i32 immarg, i32 immarg, i32 immarg) #0
; uselistorder directives
uselistorder ptr @llvm.prefetch.p0, { 2, 1, 0 }
attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) }
```
```console
❯ llc --version | head -n2
LLVM (http://llvm.org/):
LLVM version 20.1.2
❯ llc reduced.ll -march loongarch64
LLVM ERROR: Cannot select: t14: ch = Prefetch<(load (s8) from `ptr null`)> t13, Constant:i64<0>, TargetConstant:i32<0>, TargetConstant:i32<0>, TargetConstant:i32<0>
t1: i64 = Constant<0>
t9: i32 = TargetConstant<0>
t9: i32 = TargetConstant<0>
t9: i32 = TargetConstant<0>
In function: prefetch.test.@prefetch()
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc reduced.ll -march loongarch64
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'LoongArch DAG->DAG Pattern Instruction Selection' on function '@"prefetch.test.@prefetch()"'
#0 0x000074f041d80e02 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:803:3
#1 0x000074f041d7e7af llvm::sys::RunSignalHandlers() /home/alexrp/Source/llvm-project/llvm/lib/Support/Signals.cpp:105:20
#2 0x000074f041d7eb3d SignalHandler(int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:415:1
#3 0x000074f040645330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000074f04069eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000074f04069eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000074f04069eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000074f04064527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000074f0406288ff abort ./stdlib/abort.c:81:7
#9 0x000074f041a93cf9 (/opt/llvm-20/bin/../lib/libLLVM.so.20.1+0xc93cf9)
#10 0x000074f0429aef9c llvm::SDNode::getOperand(unsigned int) const /home/alexrp/Source/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:993:5
#11 0x000074f0429aef9c llvm::SDNode::getConstantOperandVal(unsigned int) const /home/alexrp/Source/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1724:61
#12 0x000074f0429aef9c llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:4424:44
#13 0x000074f0429b77d3 llvm::SelectionDAG::getEntryNode() const /home/alexrp/Source/llvm-project/llvm/include/llvm/CodeGen/SelectionDAG.h:581:41
#14 0x000074f0429b77d3 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:4014:42
#15 0x000074f04597366d llvm::TrackingMDRef::untrack() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:89:9
#16 0x000074f04597366d llvm::TrackingMDRef::~TrackingMDRef() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:55:29
#17 0x000074f04597366d llvm::TypedTrackingMDRef<llvm::MDNode>::~TypedTrackingMDRef() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:106:26
#18 0x000074f04597366d llvm::DebugLoc::~DebugLoc() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/DebugLoc.h:33:9
#19 0x000074f04597366d llvm::SDLoc::~SDLoc() /home/alexrp/Source/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1182:7
#20 0x000074f04597366d llvm::LoongArchDAGToDAGISel::Select(llvm::SDNode*) /home/alexrp/Source/llvm-project/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp:162:1
#21 0x000074f0429ab031 llvm::SmallVectorTemplateCommon<llvm::SDNode*, void>::isSmall() const /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/SmallVector.h:143:39
#22 0x000074f0429ab031 llvm::SmallVectorImpl<llvm::SDNode*>::~SmallVectorImpl() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/SmallVector.h:603:23
#23 0x000074f0429ab031 llvm::SmallVector<llvm::SDNode*, 4u>::~SmallVector() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1203:3
#24 0x000074f0429ab031 llvm::SelectionDAGISel::DoInstructionSelection() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1354:5
#25 0x000074f0429bbfc7 llvm::TimeRegion::~TimeRegion() /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/Timer.h:160:9
#26 0x000074f0429bbfc7 llvm::NamedRegionTimer::~NamedRegionTimer() /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/Timer.h:168:8
#27 0x000074f0429bbfc7 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1123:3
#28 0x000074f0429c0555 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1904:33
#29 0x000074f0429c1c19 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:616:22
#30 0x000074f0429b2547 llvm::OptLevelChanger::~OptLevelChanger() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:269:11
#31 0x000074f0429b2547 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:376:1
#32 0x000074f0429b2547 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:347:6
#33 0x000074f0422fa58f llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:33
#34 0x000074f041f453a4 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1416:7
#35 0x000074f041f455c1 llvm::ilist_detail::node_base_prevnext<llvm::ilist_node_base<true, void>, true>::getNext() const /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ilist_node_base.h:42:38
#36 0x000074f041f455c1 llvm::ilist_node_impl<llvm::ilist_detail::node_options<llvm::Function, true, false, void, false, void>>::getNext() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ilist_node.h:117:66
#37 0x000074f041f455c1 llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void, false, void>, false, false>::operator++() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h:187:25
#38 0x000074f041f455c1 llvm::FPPassManager::runOnModule(llvm::Module&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1451:22
#39 0x000074f041f45e0d runOnModule /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1528:7
#40 0x000074f041f45e0d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:55
#41 0x00005757f1f1e9df compileModule(char**, llvm::LLVMContext&) /home/alexrp/Source/llvm-project/llvm/tools/llc/llc.cpp:753:34
#42 0x00005757f1f13057 main /home/alexrp/Source/llvm-project/llvm/tools/llc/llc.cpp:411:35
#43 0x000074f04062a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#44 0x000074f04062a28b call_init ./csu/../csu/libc-start.c:128:20
#45 0x000074f04062a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#46 0x00005757f1f13de5 _start (/opt/llvm-20/bin/llc+0x12de5)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWltv27qy_jXMC2GDInV9yINixz0F0tUg6Slwngxaom2eUqRAUmmyHvZv3yBF2bLjXNom2dhrociSeRl-38xwZkiJGsM3krFzkFyAZH5GO7tV-pwKdq_bs5WqH85Bivp_Qtw1AJWW6g2zsKaWCvqgOgsBmUOAMZs0gJRs0gJSprH_M-G7hwjngJQRzieS4L7t1rVhvJdpNW8FG-QJpeSG6mqbxpNO_pDqp5wILrv7ZBoVUzRpOiP66QCVNVtzyeCaGltVkEcpBDECGLearZmttlPLjJ2CGA0NwK1duPn-AYLsAqDyUlr9AIiTCCHACfJgqBCqohAkFzm8hzwHyRzgGeQEQ-QeqOAbCeNhUuQnCUVr6PjjGWythrITYj84HwZjP5hLw7S9o6JjDomb4FdIYwiyOfybacUlt5wK_jfTg0gH0D2jQRj5TWGuK3IPkZdUUSHgneK1U6Iz-3SnxhYBnI_p7JRw_FD8majo7UQ9RqWZ9T7iFAeyee9CgFzARScry5WEpbXaAFJCqdy6K1r9gFKtNWNQKvMgKyhVJ39yWcOfXAjNbKclbFij9APAOdWbhrntADWj9U_NLfMgJK0qZgxfCfa4v_B-XAmq2Ys8VUVb22nm5yspHgaOvGmo3jz_q4AAE7Rn3RkmuLFK10zDmmtWWX7HDEDlQY93uVOQZt7NcO9Azh_hTqnUWs1XnWXGr9nv7eziQ9U6oBkCWSA-_KyUNEow13SJQTEH5QIKUcHJ5I5p45wBZDO4ZbSGE-nCzdXV9y8Q4HxrrYt1AC8AXnitKKfdhbNkCCF-6CAGo2k0xY_W0azuKlZPhYCTxsU7OIp8w3KXNzdfbxyxGZVSWWiYYJV1DTZyIRZWW6_b6yG8kRnAuY9BAOfGh7i1Vg0EKdptlNRvCHIJbUScHmdKGkulE-sD9wwBcuk6vvn4PO52Mfwtup2SbOQI-PBE5iMQoxGFH0H6YHks773GfZZwHeKBG_5SKkHl9dVleXsJTbdquIUUrroN1KxV2kKroHMXs_OXDbfbbjWtVBOcJ_xv0mr1_860eMGN6ZgBeAGprCGXlehqBu2WwUpTs4Vu91hNKzYFqLy1bi_VXdP2voem0P93rdVG0wZSvekaJq0Paq9xuygIuOmk5HIDW2rcHs52IfLaNXyhkm5cEsmgkrBRdecSOM720gHOHD78hLgrt2jplp-XnyaAXM7LT_CaWsu0hJ-lsbrrl7v1Hu9s0a81mMYJeX2uz5z9fSRC9wghlMVrFEd1jhjC0JuBlICU5sH0D9eaS-t1-81p2u2p3SBNfy6VsZrRBuC0D0S2j66LrWoYwIu-kAJ4cas67aYf23iwPF-5QV3rnAXgxf9Kfu8a-EZSYaZcVoCUOSKAlCQwiA4ZZCyj61MMbjrZi_kfKmvBtBkKnj8GOaCrWudzEUoAKTEK8PAxvBWp4QEQgPP31VccOURRAETGgFAaJ8SlI6eLIO0-T5dp3JeYk43s-o5qatQ0BfgC3fspoYQAmMSHAgu2whVcLlu7dcln-YMLseRN61KStNS76hTghWytAHgxHjb1aF0Yz9IgPHmNcOk2CRXPis182T1YJT0ldjznWVl5MZaVHSsUZwxqyg3zQoy3BcCLqf_1YGrWumDWKuNt5Ud6sThz54EgNT-UivN8vYZ05WKol2Pr3lq-qUfl0sewr4sDt6MFqdZFsLJqBweaYATwYsXlgK4XKfjK5VpncJeqvc0rL6E3utt0B3EDF5Sti2q0627nf6ma9c8bZr-2TFNZA5x30h-06iFEuKLD_objhyywb5ipmn1ijskuQM7LTw6FmW4BKYvCBY0kwI9-Cf6QEgON786c_zkmUYb9YTIKXPALXEZCPt8y0bf25dP_Mdt3H8TzwB6XfxKTTrM4-unwhLAZx55VHAdW5JDVKstq8gSrnZ38qbXHnn-ASbw1Er_t4sEY8eth743Rt7pFZqppXGY_bY0Z3DldtaW653fc84e55JfthnzdHeOggIOAnRQZSdN6pABXPfzgcvNlfsPWfVMnXfH247fT8SNrfb4BeHGwkLeUj9pD_Ep_Gea_DtveG23iq4gBbvYC3IeW1UeYZ_vuLyGcXQ5MHg9_bzoRSh2fNPDJn-czZ6tuc6WqgHf3821RDmI9QEJG3lE8D-92vsfWP78ZsBeDf5TjkOZdcYmeB7o7VMzLT9_UiZjz9nG_P0QCvNitPX526w9Yhno5xaE6dYSOE_MKkWis-YYK8Z1VVulvrGkFtUPIHPv7Qci8U7zeuT43XsJb54dy_s3N2oPrbRX7c0pwKnycp5-m9rlpxROEdnv4ePibeeBpLqk_c2ESuJBXc3naMHF3ks17M4nw7vjomMQvMDmZsOdqdCIfHcj_6ED5q5k3Ikm8L2lxclR5rNZVNk4RvGE3bNPf4fgksG94M43vD6JOetB3ivaRFafPo_yLNqzuUXkJAeuj5ndG7M6KeUCcPY_4ifK6t2Up68uGW2_Gj_WNCI-dPD_kUKEkSV5ZlZZCXFDDqwuhqh_mIF_sbsBCHZp-KMMCxX3a7ikWRxSjKipepKg7-VV-odWWSzawOaD4qO9DOaaRL5pCaU2OztwrnMRjT_za2it2x8RsS-Vmt3WOWz_WD3Hqr0pCdifR8wyOhVyxDa0e_itMRbJ0X8UQ_M_lGQ-XVI7nYRmA1zTJx3evR1CvqTEjkifZPaKVT1uq7RS9DckTiAKxYhxNDu80o3WcEBqPiC2u3czhzv9XKf0eCX9k6T1ltPgQDWMfKsKx4PDW1MFPqnFRwwU3dlkzS3kIhFLVbLmihi1bze4ku7cHdVs_YTcIkJnVHRtX13gGfdNQ0W2Y_ctJeZdC-wiOT9qxO0WQkLQP73efUoAXwI9r7SeUo1pnQ3MwdG_ZwB7P4JoKs9fMowann5MqegflhAOj37DDjs1eoxhumabHtfu762Xc1j8MmlJtwIMv_L_3UNjAuVda7pSGQ2l9eBf_WGlPRYMv_i3gYfAOTe8ZCZJoXDQUx9gZquEI3juhSPxnTiEexegUiL1WxCj_jWT1x-Cgzg9WY0KK_hKuJzAULkmWZOtoHbGiXsNKNS0XbGfmaku1P9v64-3oFubq-5eZktZv9t-EbJUSxv-s-r8BZ5b4Oj_cmsf4CCdBSQYbyuUbLhlHzsHIoJqj94mYRhWFy6Xgq2ppLNV2WVEhlh7EFOBFZbrHL8PCm7ZTk_yGzOL9aSaOj1fE-cp_FbXkktvjRfpHJ3niJft3Zf1XeP4lrZOYnJJ4wOEU_JOS-wJpUE56bI-aJbAX-ezbOK_zC3Qf4Zol4a3b8J3OWX1O6oIU9IydR1kcIxLFaXa2Pc_jVU5rUhQoIzWtKEF5QjOEa7bCaZSsz_g5RjhBMcoiEkUom1ZsTXNC6ogW6zzBNYgRaygXUxG-4jnz316cRyROcXwm6IoJ47-RxFiyn9D3AoxBMj_T557EqtsYECMXU81ejOVW-I8r97eCyRyCFP3DPuNJ0Vmnxfnvf-ISNH13jv8dAAD__0wWBVA">