<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/132161>132161</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AArch64 Instruction Selection crashed: undef: nxv4bf16
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
penpornk
</td>
</tr>
</table>
<pre>
cc: @paulwalker-arm, @banach-space
Error message:
```
fatal error: error in backend: Cannot select: 0xc6124c8ed260: nxv4bf16 = AArch64ISD::UINT_TO_FP_MERGE_PASSTHRU 0xc6124c8ea8a0, 0xc6124c8ea980, undef:nxv4bf16
0xc6124c8ea8a0: nxv4i1 = AArch64ISD::PTRUE TargetConstant:i32<31>
0xc6124c8e7b20: i32 = TargetConstant<31>
0xc6124c8ea980: nxv4i32,ch = load<(invariant load (<vscale x 1 x s32>) from %ir.28, !noalias !5), zext from nxv4i8> 0xc6124c8b6450, 0xc6124c8e7180, undef:i64
0xc6124c8e7180: i64 = add nuw 0xc6124c8e99f0, 0xc6124c8e2980
0xc6124c8e99f0: i64 = add nuw 0xc6124c8eb160, 0xc6124c8e32b0
0xc6124c8eb160: i64 = add nuw 0xc6124c8e7730, 0xc6124c8f03a0
0xc6124c8e7730: i64,ch = CopyFromReg 0xc6124c8b6450, Register:i64 %0
0xc6124c8e7340: i64 = Register %0
0xc6124c8f03a0: i64 = mul nuw nsw 0xc6124c8efae0, Constant:i64<10000>
0xc6124c8efae0: i64,ch = CopyFromReg 0xc6124c8b6450, Register:i64 %3
0xc6124c8e9980: i64 = Register %3
0xc6124c8eff40: i64 = Constant<10000>
0xc6124c8e32b0: i64 = mul nuw nsw 0xc6124c8e9830, Constant:i64<100>
0xc6124c8e9830: i64,ch = CopyFromReg 0xc6124c8b6450, Register:i64 %4
0xc6124c8e9050: i64 = Register %4
0xc6124c8e3320: i64 = Constant<100>
0xc6124c8e2980: i64,ch = CopyFromReg 0xc6124c8b6450, Register:i64 %8
0xc6124c8e2de0: i64 = Register %8
0xc6124c8ec8c0: i64 = undef
0xc6124c8e9360: nxv4bf16 = undef
In function: convert.2_kernel
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang -c convert.ll --target=aarch64-unknown-linux-gnu -mcpu=neoverse-v2
1. Code generation
2. Running pass 'Function Pass Manager' on module 'convert.ll'.
3. Running pass 'AArch64 Instruction Selection' on function '@convert.2_kernel'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 libLLVM.so.20.1 0x0000e48a27a03ab8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 80
1 libLLVM.so.20.1 0x0000e48a27a01c70 llvm::sys::RunSignalHandlers() + 112
2 libLLVM.so.20.1 0x0000e48a27950e98
3 libLLVM.so.20.1 0x0000e48a27950e44
4 libLLVM.so.20.1 0x0000e48a279fe7a0 llvm::sys::Process::Exit(int, bool) + 48
5 clang 0x0000c6121b3b19b4
6 libLLVM.so.20.1 0x0000e48a2795f674 llvm::report_fatal_error(llvm::Twine const&, bool) + 248
7 libLLVM.so.20.1 0x0000e48a28223990 llvm::SelectionDAGISel::isOrEquivalentToAdd(llvm::SDNode const*) const + 0
8 libLLVM.so.20.1 0x0000e48a28222ee8 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) + 14136
9 libLLVM.so.20.1 0x0000e48a297b2d90
10 libLLVM.so.20.1 0x0000e48a2821b754 llvm::SelectionDAGISel::DoInstructionSelection() + 344
11 libLLVM.so.20.1 0x0000e48a2821af84 llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 932
12 libLLVM.so.20.1 0x0000e48a2821a730 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 4608
13 libLLVM.so.20.1 0x0000e48a28218d00 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 352
14 libLLVM.so.20.1 0x0000e48a28217600 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) + 196
15 libLLVM.so.20.1 0x0000e48a27dd76b0 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 580
16 libLLVM.so.20.1 0x0000e48a27b55c50 llvm::FPPassManager::runOnFunction(llvm::Function&) + 520
17 libLLVM.so.20.1 0x0000e48a27b5b2d0 llvm::FPPassManager::runOnModule(llvm::Module&) + 60
18 libLLVM.so.20.1 0x0000e48a27b5623c llvm::legacy::PassManagerImpl::run(llvm::Module&) + 916
19 libclang-cpp.so.20.1 0x0000e48a30b91364 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) + 2576
20 libclang-cpp.so.20.1 0x0000e48a30edc86c clang::CodeGenAction::ExecuteAction() + 1544
21 libclang-cpp.so.20.1 0x0000e48a318e8c28 clang::FrontendAction::Execute() + 60
22 libclang-cpp.so.20.1 0x0000e48a31876bf0 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 984
23 libclang-cpp.so.20.1 0x0000e48a31965568 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 520
24 clang 0x0000c6121b3b1614 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 5228
25 clang 0x0000c6121b3aeb2c
26 libclang-cpp.so.20.1 0x0000e48a3156017c
27 libLLVM.so.20.1 0x0000e48a27950e1c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 152
28 libclang-cpp.so.20.1 0x0000e48a3155fa90 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const + 340
29 libclang-cpp.so.20.1 0x0000e48a3152e9b4 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 464
30 libclang-cpp.so.20.1 0x0000e48a3152eb60 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const + 132
31 libclang-cpp.so.20.1 0x0000e48a3154650c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) + 364
32 clang 0x0000c6121b3ae27c clang_main(int, char**, llvm::ToolContext const&) + 5076
33 clang 0x0000c6121b3b99dc main + 88
34 libc.so.6 0x0000e48a268773fc
35 libc.so.6 0x0000e48a268774cc __libc_start_main + 152
36 clang 0x0000c6121b3acb30 _start + 48
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Ubuntu clang version 20.1.1 (++20250318083326+1cfbb9f33436-1~exp1~20250318203456.81)
Target: aarch64-unknown-linux-gnu
Thread model: posix
```
clang version: 20
Command to reproduce:
```
clang -c convert.ll --target=aarch64-unknown-linux-gnu -mcpu=neoverse-v2
```
Input file: https://gist.github.com/penpornk/ca9d86e5e91348dc4019cbaf7fda513d
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8WUtv4zgS_jXKhbDBh56HHBTH6c6gezpI0gPsXgyKomxuZNJDUo4zh_ntC1KyLfkRG9OLDRpomSpWffUuUtQYMZec3wbRXRDd39DGLpS-XXG5Ulq-3RSq_LhlLCA5CEK4ok39Tus3rkdULwM8cYsFlZQtRmZFGQ9gHsB8qrXSYMmNoXMeELcUxLD7B_OKWloD7ogcX_8AhAQFZW9clm5tQqVUFhhec2bdAtywGOGQpbzEMXQrcrMOiwrFICD3IM81W8Th48u9E0fyn4-_v85ef8wenmbfp89fprOn_OXl9evzzx4jmlLoVOitZKlfaWTJq4DkWxEBzMHhxg6BQCflP70-_5yCV6rn3E6UNJZKp4YgOCATggIy9Tz7XJMCe66CYM_ycPN-2wHgLRKCAzxhC7-5VrQMyCTAqZBrqgWV1q-BAKcBmawNozUHG4DABhgHahrgDFRaLUGAI6HHOPXexUgqWgtq3GMU4Myt_sU3tqX1ctOATPeYijiMDsyaoKFZRRwea49aTUQcegVoWQLZvPcosqw64Iud9gN7eJpPuRQoPuBCcHHAxdN8yiVJyJBLBQk94OJpWi57v0zU6uNBq-Uzn58w2TOfC2O5bm3kPHHIk4QDZNsNO9Ld3wGy3p5lU3ttpOlrVFHuIfSDNQ4DMkEQQriP1yP-7c5f1ZMc-jE9qyc5j6QaWqeXOye0OIiAixbKUnLWQof2Odj1q9YJz6qcweisocIzkAjBn5ipr8pBqv2qGulJ6-OSn1UhPaoTLGUD6ramDOtzRk50iC3howRVI5kVSjoapuSaazvGszeuJa8DmD99m-YvU2CaYiksoKBo5kDzldIWWAUW1q6MK_L4IcAPc2EXTTFmahngh7peb_8brbT6j2td-EEY03AT4AdAZQmEZHVTcmAXHDBNzcJ3Patd78QTsNJ8pRXjxvASGNXodtntpMYoJqjlJdCNBIZpsbLjAOYvlrI3UDbLVdtq4TiA2ZNWc02XgOp5s-TSGq9sTeUcjNhO67oGo5H1jSYg95T6JjZq5JtU73JUC9lsRnPZgNGSrZqA3Euu1lwbPlrjAObICZqokoM5l1xTb1OYY7f83Egp5BysqHG9I3nobA6e3MJ3Kumc6wAnQEmwVGVTc0e1xxXgxOlGTvHqmi14lMbqpmX74icFB6DlufWxow9CeORmnAwsB96FXajGAvOxLFQNJF1yJyvl0jSagw_VgAVdc-Cd2xKJv7gfWz5Uo8FT_voVKA0Mt963XK6FVtKZHqypBkEMv3374_vs5V_f7358e_z39HnmtgQxdEG1UkL66BLW9djWjQDUonCbxkaNMRwjADeujPEwpTihkNAi9XjakcN8mG720EJar9prG1bpnkjT95kyVnO6DHDsQktIJxIE-A74boqOxXYJ25eNWAJPyX5u5IuYS1p_pbKsuTZu3ujYI-SCBl_BP4sgz1zuk89t4OhCV-bCa5hWPKEnQT-1Gdf-mG6cD1JvlgkolKq3-EOHKAJdFrWsXclBBSlQVjgc8VXKVXES9nC0tWXmp-JZOxX3Xfb6LiR3GWts57I-KOxRJZ_aKcWYZFlf9V223OdfHl943a4K80NP_2zEmtZc2leVl-UAycv97y7ZOyi5g-CfPRAXO-lF7VOMMefpRSjtqqstE7Vcuqw-wuERuKHSH2BKwBZU97D13vRCHIWIuHE-u-yoLClwmfmUgFfohYokCi_qda96RatXs3ZJQnw8I_S5PxGt0svCnPm-cJnLcroU9j7_0pOTEV_B8TWa0YRcDp52Na_rO2oEu6sVezMDr-06wD6Uu7yKoYthRK7BkpbwMhbdyB_yO2ULIflW7ADL0bsdGBJ5u4TXYEniT7F843PKPn4ZEcpcwKLocmUpyyQu-ogOmLrW24NzEscJAFHbF-LLAIooYlEfwMOTk7nt9v9ANPaik0-7QBEVuLxG6nc_ZwzN3i3tJPoLCnS5kCVFFGPCelLrnrt78h-Xq31Ufi478zcNKHPCfZMZsdXqhMoEFhkicdh2opYZXwp7196f_GjsqnE9rPd6opYrUXP96Ed9xrtOMqDwxeLHyrnAdO97wW21kPNnXg2XtzrkB9w6KHnn0P6WR2l1Y8SaP_NqIu2T1QGZ7F-vqy5GH0TNXz6M5Ut_OzEBxpbtm0aKPxs-Wx3sdLPN6l0Ly2fbCae3qeQVbWo7K3nNLb-wkUw7mccqudNSs3Sza77rwVHiHIfhZcfxkqUxO2H3fHsi8SMIZ43l-WFvQJFvDhhdlINSnjKc9uU8aCXt3iV9QT0RPvwxvkJAEhcVBJ-F2EldziPq5UHq1SSXUWRxFMUDNTt5ezBrxeix7ON8yIc1B4en57wYhYAxNFtSMczmXGv64fKDTIaTSBdIh9PJWolyIBW7JoijTuzB3wAF5QVmjji-bKEohijxxJ8XUTdKo345m7jD6TNn7sD3MXGe2tj9jE8rXn8M9N8euGba28CpB9rA6i4X2wj2R4D0CtxRRbNBfJVarLflfDJBbi6ksjwM5JMO2RUB5asbrQfpvy9tu7TfbZjN2GaDUPujcJONKxHCYfJuHhC7hZnVVLjTdvv6gB2taxeOSvfeO5J8P9YfjNUk9NF4uSegCPOsCM9azAc8Pcr9rRkH2XGw0REMDiDXkeYHx5W9UqG_ACaX66VTqojPh8EZpX5ThTmv0W-q-CaMHWjUi4Ylres_OLOqa9376FlR4RzXHQ2vNULn4jOmQH4OJ1eU9CiMI8jOib3vPQ9q4Inid86E_0dTdMN2Gwf4qpqHk075be3dCvdpmHdJ1Ds3K1V3devoyBFB37EJuUJykWUlA05me0ni7yX8-YA5P8XHG31FjdMkIZWrvCTqER9QhIyB2cy9nhlLtZ3t5LSlksSn2hBlBYGg3bG_mth6Yf9lrd1adX0WsM4fFRU1L_2VF-Ab4cxTcpBAV68bw8FoDawChnMgeu0zC2D-s2ikbTq-a66NO8-5SB2jttjfBfgOQxxBglKYEuJMfodYVRRZRUhI4hH6m29W6O8tEYYkjOJxiloBr91dZA7OXkY6qoXmtARLVfoTH1gpIzbtp8f-d8YBTEfnO_s2Kq0C_rK1bNiJb5RdXPzP7kr7vP0t9KqxoBK1E310p2zseHCxvP0aG-AHRrMyjXnEM0TCtGQhRBkraJVUJY0QKQOY35S3pMxIRm_4LUpCHEZpGiY3i9ukDCkmRZWhDGYlSVERRWVWJFGCIKK8uBG3rVswhCmGYTIusyRCHMYEZWWVFCQIIV9SUY9dmo2Vnt_42-1bRDCK0U1NC16b7adkfesvS4tmboIQ1sJYs99nha357ac3ue39OPffg7efDnd3-jeNrm__-V18B3h9i_8bAAD__9Y1GtQ">