<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/98313>98313</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash in aarch64 addSplitConstraints / AArch64TargetLowering
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jan-wassenberg
</td>
</tr>
</table>
<pre>
When building* github.com/google/highway (VQSort) with clang 17.0.6, the compiler crashes in various places:
build: `CXX=~/clang17.0.6/bin/clang++ CC=~/clang17.0.6/bin/clang cmake .. && make -j`.
```
#3 0x00000001065d3c60 CrashRecoverySignalHandler(int) (clang17.0.6/bin/clang-17+0x101f5bc60)
#4 0x0000000192e9b584 (/usr/lib/system/libsystem_platform.dylib+0x180477584)
#5 0x0000000105c1b668 llvm::RAGreedy::addSplitConstraints(llvm::InterferenceCache::Cursor, llvm::BlockFrequency&) (clang17.0.6/bin/clang-17+0x1015a3668)
#6 0x0000000105c1d4b4 llvm::RAGreedy::calculateRegionSplitCost(llvm::LiveInterval const&, llvm::AllocationOrder&, llvm::BlockFrequency&, unsigned int&, bool) (clang17.0.6/bin/clang-17+0x1015a54b4)
#7 0x0000000105c21db4 llvm::RAGreedy::tryAssignCSRFirstTime(llvm::LiveInterval const&, llvm::AllocationOrder&, llvm::MCRegister, unsigned char&, llvm::SmallVectorImpl<llvm::Register>&) (clang17.0.6/bin/clang-17+0x1015a9db4)
#8 0x0000000105c216ec llvm::RAGreedy::selectOrSplitImpl(llvm::LiveInterval const&, llvm::SmallVectorImpl<llvm::Register>&, llvm::SmallSet<llvm::Register, 16u, std::__1::less<llvm::Register>>&, llvm::SmallVector<std::__1::pair<llvm::LiveInterval const*, llvm::MCRegister>, 8u>&, unsigned int) (clang17.0.6/bin/clang-17+0x1015a96ec)
#9 0x0000000105c21bb8 llvm::RAGreedy::selectOrSplit(llvm::LiveInterval const&, llvm::SmallVectorImpl<llvm::Register>&) (clang17.0.6/bin/clang-17+0x1015a9bb8)
#10 0x0000000105c0ad28 llvm::RegAllocBase::allocatePhysRegs() (clang17.0.6/bin/clang-17+0x101592d28)
#11 0x0000000105c247f4 llvm::RAGreedy::runOnMachineFunction(llvm::MachineFunction&) (clang17.0.6/bin/clang-17+0x1015ac7f4)
#12 0x0000000105ac11d4 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (clang17.0.6/bin/clang-17+0x1014491d4)
#13 0x0000000105ea8154 llvm::FPPassManager::runOnFunction(llvm::Function&) (clang17.0.6/bin/clang-17+0x101830154)
#14 0x0000000105eaef24 llvm::FPPassManager::runOnModule(llvm::Module&) (clang17.0.6/bin/clang-17+0x101836f24)
#15 0x0000000105ea8b00 llvm::legacy::PassManagerImpl::run(llvm::Module&) (clang17.0.6/bin/clang-17+0x101830b00)
```
and
```
#3 0x0000000102d57c60 CrashRecoverySignalHandler(int) (clang17.0.6/bin/clang-17+0x101f5bc60)
#4 0x0000000192e9b584 (/usr/lib/system/libsystem_platform.dylib+0x180477584)
#5 0x0000000100f05874 llvm::AArch64TargetLowering::LowerCall(llvm::TargetLowering::CallLoweringInfo&, llvm::SmallVectorImpl<llvm::SDValue>&) const (clang17.0.6/bin/clang-17+0x100109874)
#6 0x0000000103bd6168 llvm::TargetLowering::LowerCallTo(llvm::TargetLowering::CallLoweringInfo&) const (clang17.0.6/bin/clang-17+0x102dda168)
#7 0x0000000103befa54 llvm::SelectionDAGBuilder::lowerInvokable(llvm::TargetLowering::CallLoweringInfo&, llvm::BasicBlock const*) (clang17.0.6/bin/clang-17+0x102df3a54)
#8 0x0000000103bdc39c llvm::SelectionDAGBuilder::LowerCallTo(llvm::CallBase const&, llvm::SDValue, bool, bool, llvm::BasicBlock const*) (clang17.0.6/bin/clang-17+0x102de039c)
#9 0x0000000103bcab44 llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) (clang17.0.6/bin/clang-17+0x102dceb44)
#10 0x0000000103bbe5e4 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (clang17.0.6/bin/clang-17+0x102dc25e4)
#11 0x0000000103c4891c llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, bool&) (clang17.0.6/bin/clang-17+0x102e4c91c)
#12 0x0000000103c4812c llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (clang17.0.6/bin/clang-17+0x102e4c12c)
#13 0x0000000103c46054 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (clang17.0.6/bin/clang-17+0x102e4a054)
#14 0x00000001022451d4 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (clang17.0.6/bin/clang-17+0x1014491d4)
#15 0x000000010262c154 llvm::FPPassManager::runOnFunction(llvm::Function&) (clang17.0.6/bin/clang-17+0x101830154)
#16 0x0000000102632f24 llvm::FPPassManager::runOnModule(llvm::Module&) (clang17.0.6/bin/clang-17+0x101836f24)
#17 0x000000010262cb00 llvm::legacy::PassManagerImpl::run(llvm::Module&) (clang17.0.6/bin/clang-17+0x101830b00)
```
Files are attached.
[vqsort_i16a_crash.zip](https://github.com/user-attachments/files/16162477/vqsort_i16a_crash.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWE1v4zgS_TX0hYhBUtTXwQfbWc0GmEb3xo3euQUUWZLZTUseknLGe9jfvpDkjC3HythBN7YxQWCJFMV6r6pYfKJwTpcVwAyFCxTeT0Tj17WdfRXV3bNwDqocbDnJa7Wf_XsNFc4bbZSuSsTmuNR-3eRTWW8Qy8q6Lg0glq11uX4We4xY8uVfq9p6xFL8rP0aSyOqEtN4SqYRYkvs14BlvdlqAxZLK9waHNYV3gmr68bhrRESHArmiNwjcvjtAKBgjlFElr_9hoL7_yKWdVO_zJzlunrpQ2yB2AIvl381EMuN-AZ4OsWIRYhFuGvefUURmZ7aRxE5_HdNjFgQYPIH6f8oiUIVyIjgZcvnEWS9A7tf6bIS5p-iUgYsYomuOq8gloziuaMxYgvyByW0CHMZEcTSo0l-YjJlkOZhwtvpEMsaZxHLjM4Ry9zeedj0zf7-aWuEL2q7map9N6Y1kRAex2HCBybCU1ahpHkUJdiY3aYNSDB_nP9iAdS-bwmlVluj_bKunLdCV94hlhxHP1QebAEWKglLIdfQdy8b62rb5sJx6MLU8ltm4fcGKrnvgnG1p0IRRFEyoBGd0VA856M0pDCyMcLDI5S6rg6UnB9w-VXvoOOzEwbLlnAH8pTD3JhaCq_r6qNVbcSjv-S4xE3VLUWFu-zouvK6NjfRD3k-jGI8pM-oeoO-t_t5Vw-Wq8dMW-c_6w18b-4flq1znQc7IC3X4vXY1UYY8wWkr-3DZmtQsDyB_jJL8I9bkyRVZ15Kzr0UgRz1kgMD0n-0XXZ0sG700C2sXr23An_5BbbENGrai_Oqf_b0RPsbA86Nmhmz1CNEwfL1fFuh7WC-S6zno3FvLS5x0hxND3P_llBGIAehTM9DmefjZWsQyh8ZxlsY5fmxgiEWUDJkRIRiA0ZQdktuIdyhqop-BcKn9d49Qum6feF6BClTbIiAnvmUx8V4EbFN9bH6IORaV5A1lWwrwcC1r57d5h8ZF3yAjg3QCUmpOkV3Zu6TcO4E6EWE74PGeUrVENpAGYQgEhqeQss-tWg-iEqUbar8CFBJQGg4BMXPQEHBrgH1oVaNGe4GL123AYoKNgQUnnspJ-QEkIFSyENynUDr19wB3neARXJy1FhnKq__FZW6RQkyFcZ_PyVIChIm8WnCzOdWriP-WdgS_K_1M9j2-6Cvom1rKcxwi7w0sh300vNQFfVN1XZ1_0WYBo7FtivYVzqVUJImMR8XjUGuIjrQvm9S_Vy_j-xtqJlSgp5J3XiIGgoxqDarbrPTdXU__2XRfkW9LG_TQnmodvU3kZ-t8HeFaiGclp3EPZEC1-Y4U0UgwjfkWZArGaTyGmJjMWm72u1ybGM_pNOfAvx4_W4kgQTpG8IlyKXI-VXR22mn_as11nY8tOl0pHg9OAk55-MaJMhzCOF6cGdfgs7bphv8PmwsBD6uTgLJk5SOZcfDCsxp7zGIA4zaaOeftAcregV8_kiBF_owU1UreKq3rYWhxj5h2qZOIYyDwc2u1uqghf_s8_ZQx05z7efA06-BW4IFXKZUjou1NliUXRusebdoD_FyF7XRezIKuKRMjsu2QPKIjBbSI8gfqnsZcEHe0nGM8fDn0b0DxcAiJn8G3RsNQQXs_61743Mv_aS6N9MGHBYWsPBeyDWolxPRcLH73dXWP2kaiafuCHf6H71F4T1iydr7bZdyLEMsGxwWNw7sXT_ZBrqzwqxojSCW0YhGjMcxYtnluV-gTtQsUGmQignMaMxIRKOUJpP1TOUEgMdFEtMoZBFJgXNZAAmiIkmTQk70jBHGSUwJDUgSJFNGQOU8ZwHnQuW8QJzARmgzbX07rW050c41MEuTgAYTI3IwrjswZ6yCZ9w9RIyh8H5iZ-07d3lTOsRJW5zdcRavvYFZ9z2AdYWF6IQzvnB4ihHL8EVhPWmsmb3h2i4d-svd1tZfQXrEsg5i696ewm7G_hcAAP__5gsFXw">