<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/127298>127298</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"` for `load volatile` from hardcoded pointer on `powerpc-linux-musleabihf`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:PowerPC,
regression,
crash-on-valid
</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:32:32-Fn32-i64:64-n32"
target triple = "powerpc-unknown-linux4.19.0-musleabihf"
define fastcc void @behavior.ptrfromint.forceCompilerAnalyzeBranchHardCodedPtrDereference() {
Entry:
%0 = load volatile i8, ptr inttoptr (i32 -559038737 to ptr), align 1
ret void
}
```
Obviously not code meant to actually be *run* - only compiled. I think "crash on valid" still applies since I don't see anything wrong with the IR in a vacuum, and it compiled fine in prior LLVM versions.
```
❯ llc reduced.ll -O0
llc: /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/APInt.h:127: llvm::APInt::APInt(unsigned int, uint64_t, bool, bool): Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"' failed.
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 -O0
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@behavior.ptrfromint.forceCompilerAnalyzeBranchHardCodedPtrDereference'
#0 0x0000714490d80ed2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:802:3
#1 0x0000714490d7e87f llvm::sys::RunSignalHandlers() /home/alexrp/Source/llvm-project/llvm/lib/Support/Signals.cpp:105:20
#2 0x0000714490d7ec0d SignalHandler(int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:415:1
#3 0x000071448f645330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000071448f69eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000071448f69eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000071448f69eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000071448f64527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000071448f6288ff abort ./stdlib/abort.c:81:7
#9 0x000071448f62881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000071448f63b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x0000714490c220b9 llvm::maxIntN(long) /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/MathExtras.h:252:35
#12 0x0000714490c220b9 llvm::isIntN(unsigned int, long) /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/MathExtras.h:262:53
#13 0x0000714490c220b9 llvm::APInt::APInt(unsigned int, unsigned long, bool, bool) /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/APInt.h:120:11
#14 0x000071449197f3f6 llvm::SelectionDAG::getConstant(llvm::APInt const&, llvm::SDLoc const&, llvm::EVT, bool, bool) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1674:39
#15 0x000071449197f3f6 llvm::SelectionDAG::getConstant(unsigned long, llvm::SDLoc const&, llvm::EVT, bool, bool) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1668:21
#16 0x0000714494cf3db0 llvm::PPCTargetLowering::SelectOptimalAddrMode(llvm::SDNode const*, llvm::SDValue, llvm::SDValue&, llvm::SDValue&, llvm::SelectionDAG&, llvm::MaybeAlign) const /home/alexrp/Source/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp:19053:14
#17 0x0000714494c6b13e SelectDForm /home/alexrp/Source/llvm-project/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:267:71
#18 0x0000714494c6b13e (anonymous namespace)::PPCDAGToDAGISel::CheckComplexPattern(llvm::SDNode*, llvm::SDNode*, llvm::SDValue, unsigned int, llvm::SmallVectorImpl<std::pair<llvm::SDValue, llvm::SDNode*>>&) /home/alexrp/Source/llvm-project/build-20/lib/Target/PowerPC/PPCGenDAGISel.inc:79877:21
#19 0x00007144919b3cec llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3612:7
#20 0x0000714494c877d8 llvm::TrackingMDRef::untrack() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:89:9
#21 0x0000714494c877d8 llvm::TrackingMDRef::~TrackingMDRef() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:55:29
#22 0x0000714494c877d8 llvm::TypedTrackingMDRef<llvm::MDNode>::~TypedTrackingMDRef() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:106:26
#23 0x0000714494c877d8 llvm::DebugLoc::~DebugLoc() /home/alexrp/Source/llvm-project/llvm/include/llvm/IR/DebugLoc.h:33:9
#24 0x0000714494c877d8 llvm::SDLoc::~SDLoc() /home/alexrp/Source/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1182:7
#25 0x0000714494c877d8 (anonymous namespace)::PPCDAGToDAGISel::Select(llvm::SDNode*) /home/alexrp/Source/llvm-project/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:6364:1
#26 0x00007144919aad11 llvm::SmallVectorTemplateCommon<llvm::SDNode*, void>::isSmall() const /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/SmallVector.h:143:39
#27 0x00007144919aad11 llvm::SmallVectorImpl<llvm::SDNode*>::~SmallVectorImpl() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/SmallVector.h:603:23
#28 0x00007144919aad11 llvm::SmallVector<llvm::SDNode*, 4u>::~SmallVector() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1203:3
#29 0x00007144919aad11 llvm::SelectionDAGISel::DoInstructionSelection() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1354:5
#30 0x00007144919bbca7 llvm::TimeRegion::~TimeRegion() /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/Timer.h:160:9
#31 0x00007144919bbca7 llvm::NamedRegionTimer::~NamedRegionTimer() /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/Timer.h:168:8
#32 0x00007144919bbca7 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1123:3
#33 0x00007144919c0235 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1904:33
#34 0x00007144919c18f9 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:616:22
#35 0x0000714494c8f1ab (anonymous namespace)::PPCDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:172:5
#36 0x00007144919b2227 llvm::OptLevelChanger::~OptLevelChanger() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:269:11
#37 0x00007144919b2227 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:376:1
#38 0x00007144919b2227 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:347:6
#39 0x00007144912fa4bf llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:33
#40 0x0000714490f45424 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1416:7
#41 0x0000714490f45641 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
#42 0x0000714490f45641 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
#43 0x0000714490f45641 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
#44 0x0000714490f45641 llvm::FPPassManager::runOnModule(llvm::Module&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1451:22
#45 0x0000714490f45e8d runOnModule /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1528:7
#46 0x0000714490f45e8d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:55
#47 0x00006158388669df compileModule(char**, llvm::LLVMContext&) /home/alexrp/Source/llvm-project/llvm/tools/llc/llc.cpp:753:34
#48 0x000061583885b057 main /home/alexrp/Source/llvm-project/llvm/tools/llc/llc.cpp:411:35
#49 0x000071448f62a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#50 0x000071448f62a28b call_init ./csu/../csu/libc-start.c:128:20
#51 0x000071448f62a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#52 0x000061583885bde5 _start (/opt/llvm-20/bin/llc+0x12de5)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWltT2zwa_jXiRpOMLZ8vuDAJ6ccMtEzbr3uZkW0l0SJLHkmmsBf723d0MLFDoJQCM992mDSR7VfP854lCytFt5yQU5CcgWR5gnu9E_IUM3Inu5NKNPenIA3cH2O3LQhKjeWWaNhgjRm-F72GIFpCgND5rAVRSWYdiMoI2Y_ZikdoRtMYRGUaz3iEAEJ7GVrSjpHh-U78JLKrZz2_4eInnzHK-7t4HhbzYNb2ihFc0d3GCQBB2ZAN5QRusNJ1DW8FbSCIg4rs8C0Vct5puZGipVzPN0LWZCHajjIiS47Z_X_ImcS83v2FZbMQDWmutVwSSTZEEl4TgHKACgiyMxCU51zLexCZKSEEKAksXiZwA28Fw5oyAmkO0AJ2WkLKtRbmC0A5jRCcJUkRRHkWZVALcwdAhbkXM7rlMLRCJdEWv-GVLc3noHLH9Et1S0Wv2D3kQsNaNAS2BHNtJOJa95ixe1gRCFApew5QCWdQcHYPa8e5mcMLqHeU3xg11xKrHRQc3mJGG4AQVJoyBnHXMUoUVJTXBF7ARnCAMg0VIRDze_P8Fv6UwnxSvYN6R-DFV0g5xPAW133fWl68gVQ_zAytjSiHnaRCwsvLH1fwlkhFBVdzx25C9hyBYgnKFWSshpI0fU2aOWNw9sVcZqwGUQkBWu1ESwBaOT8FaPVN9NLYbWWcdNZJ8W9Sa_8ToBXlNesbsh8ol9_N5_UF1_MdiMoQZUayvRqVICrtpfFXlPfcxkpjbGyo9pTrNF7b75UQbP9_YWSVShGpqeBwiB0rjaq_L7j-DFB-RvW_aKN35rlbzKzHoRSg1FjpB2Y9gVRZk2MOP88qquEDhFtz2YQCyuAGWxuDoLy-PC-_nUPVVy3VEMOq30JJOiGtq-y07pQBgVYArbZU7_pqXot2r5UD5VGleqIAWjmrOh1auzsfqnB9oyWuiZn7m8b1DWz6tnOxEsyh_XctxVbiFmK57VvCtXJ6PmLd0D_xtefc-FqHlYIAZaue11aP12bgCnO8JdIQFxy2oulNBkHZXhxAmQGEnhB3bdLM9QIuy08zEJ0vy0_wGmtNJIcXXGnZu8m-EUbsNz_TZkABUPZ2eSYzCQCgKIDBXRAEQRbGcRE0eUAaNPJGda_cl2tJubaq_m4UD1C-v0nin2uhtCS4tX60cI5avCJeGK3MTX1nfAeg1d-c3pkBuuWYqTnlJg7zwCZ5zyCcMshInm2OMfjacyfmL8wbRqQaku0fgxzQ1Z1xwTBIQFSiwMNDh_DqoIETICZhv6u-4tAgCj2gaAQo36RxEkUBtLrw0u7ydJ3GrgrOtrx3F-q5EvMUoLPgzj5iko0TGE8FFqRCNVyvO72TBDfrG8rYmrYdIyYKsXXlOUAr3mkG0Gp829yiNTU7S73w5CXCuQkizJ4Vm-XWNl5sekzs-JlnZeXFWFZ2qFCUESgxVcQKUdYWAK3m9te9akhnclsnlLWVvdOKtaVgIJ5PpaI832wgrkxKtXJ046xlhxyq0ND0jxePHg8ruOZsbfqHdSNaTJ0ZKLcczXCrtjV2ssIwM2CMiU2IBVNpUZWE2e_5jH3E-YwROA3aGqGgKkZB2-I7X6uY4NvXhcaj0ruPkiusd-d3WmJlazBKbD5JPDb0PDaqPLTDsvwhUFMDNYk81Oh5qC_pJYbfDv2jhuJ9ep7AupgnMc4fRVhkm2iTjkg81MNl-cmNbIleCK40towO6MLaXPJ1aCRleSnqJ66d__j-NsxdLJh6-4lwc_sY-vTnUCzSzKS7aIiL5M908cia_wAFpCYxo8EZxom5iOtN1FTBCOn19eK7XcJdmmaK8u1YL186TVvMyqaRV6KZ9ijflp_N8sXzLw9188O1tUcHH3nSE-MTrgcXr_B9RUqz9DKKtSherV6nAIBWvqE0364XF98IG5Qy6LYIksj8H3vlZlPlplUYEd9vLldCtu8AaVl--i725kapKSvZYO38GCCAcswFv29FryDHLVGd7TiLBxcYhJoJ3OBiR-ob0wEzcueb6iPmP2L4J4Yf_OFRkt_f1GLGfpBaC3nRdgxEC6Ubd6nDVIJo8UsHGyaPzs2f8ZnfCrqqp6yZoeAXZvhEuNeV7wezIrfV_SHoimnWqaKa1E949l7lbtTE-kK0rXhG3w86rHdYTkJwqt13zjhWA84NozREvlkyLXowdcM8y5p8xN-seG4o314tv5KNG-q5WX_evHoJ8ahGXnw19htPZEul7TR9cUDhb8P873TsvdEmduUzwEW_gHvfkeYA8yhkrpwHmdBwTB7f_t50wiC1KcvziZ7nsyRVv70Utcf78PNtUQ5iLcAoGnlH_Dw8W_89Nvf9zYAdjz5jPte0hmE-jrbkGNDXJH0321N55_XZ5MXVLI3sBrNPoyidplGMmzA8XjC-k7ZjWA-Zc1oqRpnTbs4OIUCVleDt9toe4onufATO2SyORn0pyl5MzdfCp8qc87-D29_ME49zSQPDBflFE8pfzOVpw8T9UTbvzSRElsrApPgFk6N1eylGu42jzcY_2gz73QIcRomJHL_knu5ChkVV1Tgblwrakq9ka2D6YrAfeDON79fcRrrXdxrsM-x0p_Exys-4JY1DZSV4rI-G3xmxWU7lHjF6HvFxB_G2LHlz3lJtzfixvhGikZNP9iuLsKgDFCUvbE5Lxs6wovUZE_WNmhSKh739_Yr4AxkWQezKt6N4sANSh_mm-CVF2fMv_ArXO8rJwGZC8dG1D-WYhrZ5Qp7iYdHfhLh6VdH_YNov7gXCDI0S2kErUCGExoH3pdOX5JawxQ7z7UOmOBz92LBDaTHalYuy5xkcCrkkW1zf_yM8M8rSfdMW5f-_POPhfYLhOe0V0AbH1QY-CfUaKzUieZTdI1r5vMNSz4O3IXkEkSdWjJNnPH2DuYmTGMUjYqtr8-Tw8vZ3Kb2OhF2pOU8ZTT4kithmRr8aisND-Gk87uEoo0qvG6Ix9QmQi4asK6zIupPklpM7PWlT3QMPN4FooaXbeRoWE2gB7dDQwG6J_mykvMu64gCO7VFi-7rF9ygxeokCrAB6uLR4QjmiMzZUk1v3lvXs0QJuMFN7zTwacLtyR1T0Dsrx62QbsD5i4-gliqGaSHy4VHl3vYzH3JdBU6LzeNCZ_XsPhQ2cndJyu5XpC28cP6-0p7LBlT3OMU3efug9M0ESjnqkODnETvIGjuC9E4oE5aN8lB4DsdcKG9W_kSy36vfq_GA1JlHh9h4dgaFxScMkj_I8TYtmMxwLezBzvcPSLuUPdv4vL39cLQTXNthfCVkLwZT9WbtPjzOzL2Mi_zImzqc4kypIMmhfy7_dlHEYjt5sx4eHAnBYY7heM1rVa6Wx1OsaM7Z-OBtQq_7xuQV_KOLYQzYg3QtNN2MSHM6I8gra-ymn-nAS99VInlnJ7iiCdU97nsZIDI9JnHA4Bv-oZNcgeeUk6NAeDUmgE-mPOohuULl76VJRPuj8LLgLUUMSf8JhOFl40pxGTREV-ISchllUJAWKUX6yO43zlEQZCvIoSerYtGdxXqVxlG6SIAub6oSeogAlAQqTIA6yIJ8TFKE8iJoUo00cVBWIA9JiyuYGz1zI7Yk9NXcaogwV-QnDFWHKnq5FqML1DeGNCdlhFYMAMp-SbCVRyhYAP2SP2M0Enw3HNEGyPJGnlnbVbxWIA5OF1X5iTTUjpx9z7DAN4EZIO8X4IKwdl6KFOyybWjSkgZ2w54KgAzSc8XUnVEanetPgpJfs9PVnFL3Cb0_R_wIAAP__QdPL8Q">