<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63322>63322</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch64][SVE][SelectionDAG] infinite loop caused by legalizing & combining CONCAT_VECTORS
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
FLZ101
</td>
</tr>
</table>
<pre>
## test case
```llvm
; RUN: llc -O3 -mcpu=neoverse-n2 < %s | FileCheck %s
; CHECK: allocno_reload_assign:
; Function Attrs: nocallback nofree nosync nounwind willreturn writeonly
declare void @llvm.masked.scatter.nxv16i8.nxv16p0(<vscale x 16 x i8>, <vscale x 16 x ptr>, i32 immarg, <vscale x 16 x i1>) #0
define fastcc i8 @allocno_reload_assign() {
br label %1
1: ; preds = %1, %0
call void @llvm.masked.scatter.nxv16i8.nxv16p0(<vscale x 16 x i8> zeroinitializer, <vscale x 16 x ptr> zeroinitializer, i32 0, <vscale x 16 x i1> xor (<vscale x 16 x i1> shufflevector (<vscale x 16 x i1> icmp eq (<vscale x 16 x ptr> insertelement (<vscale x 16 x ptr> poison, ptr null, i64 0), <vscale x 16 x ptr> zeroinitializer), <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer), <vscale x 16 x i1> shufflevector (<vscale x 16 x i1> insertelement (<vscale x 16 x i1> poison, i1 true, i32 0), <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer)))
br label %1
}
; uselistorder directives
uselistorder <vscale x 16 x i1> poison, { 1, 2, 0 }
attributes #0 = { nocallback nofree nosync nounwind willreturn writeonly }
```
```
LLVM ERROR: SmallVector unable to grow. Requested capacity (4294967296) is larger than maximum value for size type (4294967295)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: ../../../../build-x/bin/llc -O3 -mcpu=neoverse-n2 issue-4803-reduced.ll
1. Running pass 'Function Pass Manager' on module 'issue-4803-reduced.ll'.
2. Running pass 'AArch64 Instruction Selection' on function '@allocno_reload_assign'
#0 0x00000000039978dc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:22
#1 0x0000000003997c38 PrintStackTraceSignalHandler(void*) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:675:1
#2 0x0000000003995a48 llvm::sys::RunSignalHandlers() /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/Signals.cpp:104:20
#3 0x00000000039972b0 SignalHandler(int) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x0000ffffb8714698 (linux-vdso.so.1+0x698)
#5 0x0000ffffb81b2200 raise (/lib64/libc.so.6+0x33200)
#6 0x0000ffffb81b35ac abort (/lib64/libc.so.6+0x345ac)
#7 0x00000000038f077c llvm::report_fatal_error(llvm::Twine const&, bool) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/ErrorHandling.cpp:125:9
#8 0x000000000390a568 report_at_maximum_capacity(unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/SmallVector.cpp:77:56
#9 0x000000000390a5f8 unsigned long getNewCapacity<unsigned int>(unsigned long, unsigned long, unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/SmallVector.cpp:102:3
#10 0x000000000390a7bc llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Support/SmallVector.cpp:140:46
#11 0x0000000001a2e2f8 llvm::SmallVectorTemplateCommon<llvm::SDNode*, void>::grow_pod(unsigned long, unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/include/llvm/ADT/SmallVector.h:142:3
#12 0x0000000001a2bd9c llvm::SmallVectorTemplateBase<llvm::SDNode*, true>::grow(unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/include/llvm/ADT/SmallVector.h:529:71
#13 0x0000000001a28730 llvm::SDNode* const* llvm::SmallVectorTemplateCommon<llvm::SDNode*, void>::reserveForParamAndGetAddressImpl<llvm::SmallVectorTemplateBase<llvm::SDNode*, true>>(llvm::SmallVectorTemplateBase<llvm::SDNode*, true>*, llvm::SDNode* const&, unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/include/llvm/ADT/SmallVector.h:247:30
#14 0x0000000001a237a0 llvm::SmallVectorTemplateBase<llvm::SDNode*, true>::reserveForParamAndGetAddress(llvm::SDNode*&, unsigned long) /home/z30026696/opt/llvm/src/llvm-project/llvm/include/llvm/ADT/SmallVector.h:542:3
#15 0x0000000001a1d364 llvm::SmallVectorTemplateBase<llvm::SDNode*, true>::push_back(llvm::SDNode*) /home/z30026696/opt/llvm/src/llvm-project/llvm/include/llvm/ADT/SmallVector.h:566:14
#16 0x00000000035df55c (anonymous namespace)::DAGCombiner::AddToWorklist(llvm::SDNode*, bool) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:280:27
#17 0x00000000035df068 (anonymous namespace)::DAGCombiner::AddToWorklistWithUsers(llvm::SDNode*) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:207:5
#18 0x00000000035e3cb8 (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1807:7
#19 0x000000000365ffd0 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:27459:3
#20 0x00000000037b0f30 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:924:61
#21 0x00000000037afc04 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:702:1
#22 0x00000000037b4248 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1705:33
#23 0x00000000037aebd4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:483:7
#24 0x000000000194e594 (anonymous namespace)::AArch64DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:57:0
#25 0x0000000002a4b8f4 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:33
#26 0x0000000003140a7c llvm::FPPassManager::runOnFunction(llvm::Function&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:40
#27 0x0000000003140c7c llvm::FPPassManager::runOnModule(llvm::Module&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:29
#28 0x0000000003141044 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:38
#29 0x000000000313ccfc llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:55
#30 0x00000000031417a4 llvm::legacy::PassManager::run(llvm::Module&) /home/z30026696/opt/llvm/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1677:17
#31 0x00000000016d9b5c compileModule(char**, llvm::LLVMContext&) /home/z30026696/opt/llvm/src/llvm-project/llvm/tools/llc/llc.cpp:759:66
#32 0x00000000016d7e2c main /home/z30026696/opt/llvm/src/llvm-project/llvm/tools/llc/llc.cpp:420:35
#33 0x0000ffffb819fbe0 __libc_start_main (/lib64/libc.so.6+0x20be0)
#34 0x00000000016d6e84 _start (../../../../build-x/bin/llc+0x16d6e84)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWltT27ra_jXmRkPGlnzKBRcmIV2dj7YMsLpmvpuMLL9OtCtLWZLMob9-j2wHHwjQdkMpw-Rgy6-e5z1LCjWGbyTAiRedetHyiNZ2q_TJ6vz_Az84ylVxf-Jh4mGCLBiLGDXg-UvPz7rX2G__hbipukvkFF3-_dkjGRKCoeMvBB1XbFd7ZClB3YA2cCwx8sgCeTgyyEsWaMUFLLbAvjWXejmLv84W_-ckUSEUk2qtQSharFvUHslGWMgpWtWSWa4kyqzVxj0pFaNC5JR9Q1KVGgBJZe4lQ1LV8pbLAt1yITTYWkt0q7kFJcV9K7EAJqgGdKN4gbywITmrqPkGxcwwai3omby7CWKetu8738OpRxY3hlEB6A4FMbpDPPXImYcX6NGdndXdLU4w4lVF9ebgQB404-bIw8Qfki6g5BJQSY1lDPHUwTysLJw2zyen7YMI5RoJmoNwOg-GMgOnN6fNnYbCII8s2yG4sZi_f97p9VVUg76DVlxyy6ng30E_o6pDQ53q_Ke1hu6URgfnbu6abV2WAm6A2WfHcVbtEPx7cESHjUsD2oKACqR9buBOcaOkg7yzGslaiIZHHDoe85-if3h0C7mf5vEAgn9a3A9r6kU1TOHxAFldw8CYr0-r-X_G85PlNJfUBgQ3VukCNCq4Bmb5DXTZaXTzZaDJKWriB7sXH01mo9ZqntcWTBPfbcQlp7-YuwbS99n5YMpuv56ff_2Ezi4vv1y6qL-qqBBfWwvXkuYCkFVoo9XtDF3CvzUYCwVidEcZt_fOuCGeh_M4wfPYpRdukKB6AxrZLZWoone8qit0Q0UNqFQaGf4dkL3fwejZ6ME4F-dn2dUZMnVecYsoyusN0rBT2jogW2t3Lqt7eOXh1YbbbZ3PmKo8vGoKUPt2vNPqP8Csh1fcmBqMh1eIygJxyURdALJbQExTs0VOt1ZTBrN2-ivrlF3U1e6huPgz1PxdaLXRtEJUb2rn2U11mc08vJq85DUXxfGd-8RlA-npKtjgOw5TnxxrKGoGxUyILgvP0GUtJZcbtKPGeUbyUN0u3IVPVNKN8-4EKYkqVdTCaTU5LBMnHUXc8ZkKzzLNtnGIPkpjdd3OcwUCmk_dJOUegIeTpwtN0sVZ48v-nb__I_N5khYMNaYimUcyc2_aDxeaS9so_9pZw8NpP0jT27UyVgOtPBw3SULathautqoCD6--E9_Hcex8cKV2tncHo9ljp9i7Cs89vLqqd867PLz6W3JntCu-kVSYGZfMI1nsY49kGPeUgiklRlI0wd_K-IvKQjgDpa5Kejj7baCTyCNZ0GPGE8wRDdNDZris5Qi62XcNrwt6j5btXJgFfuhU7PdwyVTFOPfRVKe_0QnCgIz1GXYAy7Is8zQJwnieuoQmuKzvjm8Ko2ZGzQIPn_p38TztS4-HSTR6Nsgx9n2kKTdNSmwhxWH7zpyYuBFDCPb9kaB4IohElCGau1T5rKAwomwkKBmpOy39JBkGaZt-1yW1VKxBa6VH4Xl96xpQpqSxXXjmSok3MM2Zm7qxP5ebve9g5-kDLunYdXwaxWlXQNbUrruCtN5XMA-ntWxWQAUSSm7ewtn7ktqBThKPZFHcg54_Al2maIQLbcB-htvFHjZZPNx2ceDWBlMiC_TShd9ANWjSJ-k6D0wCf0o1yYe-NpBw6paaj3k2w1xDst6pYpha_wy-oe_yRdwTHpWLgGLAZXqY8DVUO0EtLFRVKemRxWDU8rMqoKPZMD6giTen37VP_YVseT3RwrbRwcTmeKKCvJg_YfO9CjrbP6GAZq0wVMAbRPEPco3w3AV00JMlE7JpQnx0gMg-Y2av6AwaDOgbWCl9QTWtMll8AJsVhQZjPlY7MRbzy2o_G-X_X5bTfntGNfE7OjEOXZJ-2GvBJAgnhiUJ9V_Ni5-z3FjbvYj3VE80jfForJ2gIHH4atrZ1Wa7dku1p1Tx22jHcZPget7xqJ5FRRlFzLVfVCp5X6naIEkrMLtmUTNvgS-zDwtV5VyCbi9kRXGt_lH6m-DO7w9zfOW-aqEK-ABuffqwyFtmHzy8GqDrihpOXVHbL-sc62TK2o_T_431P9xu_zbtiuNtTPzztP2mT-tZj3vLCAjLf571ZS1HFLu753AD72LcIG1oDow77kbjqCyLUaIbShxSeIbWMM1n2SWYWljzqAB0qL_sbPv93XSCkzCaj_IbHvetSe6X5CmlfLwCMSKUyeKs4raZ7fWW00_ymWLpSM2xW2bHfauCxzsZCS2ZH77Iqb16Sg1np0JNUjJ3obzmFjS1So-ye3urAEt5J0mqAtZq52Ywo6GDHaiHUoAXqKTCwLDnGV57aCqGDvVHwGmzdvxudk-aJdjA7HjiyiEebQY9Z_ZMiN7y41T9sDfZN2_vRDhI_MgF7yB6ycTTIS9e9nRdyy_yE2VbLmHPbkT50b334xymZJTE8bhbnYcQzcOXalW3A7zMPlyrP0YT11RvwF3t0PWfHL491k4NkStlfc-OR10ppmGelkO7T2BfUGMGhA8yfVtjHwC0z97BxKXHjWcQ-nS0abe6cA_vjwjegdTHSw-vzmFD2f0AycM2CXEhGg5MlUz5sB_i86k59hg7Y3fpt3FJnW32G6qOSzrhEvjhi8H36c8lGEWu_ydpT3DcIgaEsXJoLNFI6k52enntFkTH7D0ZRY33RX1rPzmnCsIgoeHLhP4IMkHc7CcHffIfH1EFcTHPI4aYqnZcwIM_sS3VTQs-6cLPz79-Wihp4e6VqrhVSpj2HLR93TcmTY8d93ul42OqIC4SwAxVlMu3ghDixrMHjkDGhyrzMgcfrdeC52xtLNV23eF5-oAF-zn0JzVOaDjhFUMaolack_SDh8iN8O7pB_FZrrSFwolhSkNzdA1FP_v4sP-oOCHFnMzpEZwEcRqnAUnm8dH2hKW4iOYpSVkeURJimuaM4jydF35ZBiE74ifYx8SPg8hPMAni2TwscEkDIDguMI0DL_SholzMnMpnSm-OmnPok5gQjI-an1uY5kdmGEu4bQ--PYy9aHmkTxqr5fXGeKHvGnPTS7HciubXafv6Hy296PTq61n3YdgeRUvEZcklt4CEUjvEaG2gQPk9chEs-HcuN8jDsQuGnDfH34svnxfZ9frr2eL6y-XVUa3Fya__yqAh-98AAAD__3we6LQ">