<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61203>61203</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch64] [Codegen] Assertion `N->getValueType(0) == RV.getValueType() && N->getNumValues() == 1 && "Type mismatch"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
max-quazan
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/r1sE343jj
Run `llc -mtriple=aarch64-none-linux-gnu` on the following test:
```
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-ni:1-p2:32:8:8:32-ni:2"
define void @test() {
bb:
br i1 poison, label %bb8, label %bb1
bb1: ; preds = %bb1, %bb
%inst = phi <4 x i64> [ zeroinitializer, %bb1 ], [ <i64 4, i64 5, i64 6, i64 7>, %bb ]
%inst2 = icmp eq i64 poison, poison
br i1 %inst2, label %bb3, label %bb1
bb3: ; preds = %bb1
%inst4 = trunc <4 x i64> %inst to <4 x i8>
%inst5 = add <4 x i8> %inst4, <i8 poison, i8 poison, i8 18, i8 18>
%inst6 = extractelement <4 x i8> %inst5, i64 3
%inst7 = extractelement <4 x i8> %inst5, i64 2
br i1 poison, label %bb12, label %bb8
bb8: ; preds = %bb3, %bb
%inst9 = phi i8 [ -64, %bb ], [ %inst6, %bb3 ]
%inst10 = getelementptr inbounds i32, ptr poison, i64 poison
br label %bb11
bb11: ; preds = %bb11, %bb8
br label %bb11
bb12: ; preds = %bb3
store atomic i8 %inst7, ptr addrspace(1) null unordered, align 2
ret void
}
```
Crash:
```
llc: /root/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1818: void {anonymous}::DAGCombiner::Run(llvm::CombineLevel): Assertion `N->getValueType(0) == RV.getValueType() && N->getNumValues() == 1 && "Type mismatch"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/llc -o /app/output.s -mtriple=aarch64-none-linux-gnu <source>
1. Running pass 'Function Pass Manager' on module '<source>'.
2. Running pass 'AArch64 Instruction Selection' on function '@test'
#0 0x000055caa380b86f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x386d86f)
#1 0x000055caa3808f94 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f978fec2420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007f978f98f00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007f978f96e859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007f978f96e729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007f978f97ffd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x000055caa3491caf llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x34f3caf)
#8 0x000055caa35dd876 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x363f876)
#9 0x000055caa35e11d8 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x36431d8)
#10 0x000055caa35e3209 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#11 0x000055caa29e72de llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#12 0x000055caa2f682c5 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2fca2c5)
#13 0x000055caa2f68509 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2fca509)
#14 0x000055caa2f68d82 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2fcad82)
#15 0x000055caa0b5eb32 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#16 0x000055caa0aa43ae main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0xb063ae)
#17 0x00007f978f970083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#18 0x000055caa0b551ce _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0xbb71ce)
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWNtu27rSfhr6hrBBkTpQF7lQ7Lh_gXatIFnobUBRtM2WIrVIqk369D9IS7alJm2CHWzsonbEw3zzzYEzoplzcq-FuALZNcg2C9b7g7FXLXtc_tuzn0wvatM8XR287xwgFcBbgLd709RG-ZWxe4C3PwHe2sTdkJR8_QrQBqDq-H3XawhypBSHy9Zb2SkByIYxyw95utRGi6WSun9c7nUPcgSNhv4g4M4oZX5IvYdeOB-UHjFzNPyPQ8_sXnjYMM8UezK9h4BsIMBYLFtAKrGUFJAqfAheyiQHpIpfYZSngFR5upQJDhsSTJea4OPcfRzJML3scBQYcAasuIYBxpemNmIntYDfjWwgSFEkjinAJQTF9XFLXZ9MgbC2UCawM9IZDfAaKlYLBQHO6prOxsmlnjAkFQTkGnZWNG4wOm7D6-PTqAPgTGp39Et3kBCQdQofYbT-BoLsGv4U1kgtvWRK_hT2hJBAkG3iKLsOYjJPYRrG4SEbH_LxoQDk5iQbRacMcKQgedtB8W-UOBs-PE3cMorNHEF-7xgSHPOmf896cUo9jUve9prP_Td415vTAg1-mMpnUZ41zWTTCT16jawlvfDIfJDQ88Mv-HnEF4_eMu6FEq3Q_llVp6iRGULxZgT8iiRO5sGj02DRF7KYvJTF5SmNJY1puczTac6N6To45rRInsnIBEW4vRgt7ryFUtem142DkkT2Ye4iEue0PZt_afH8nL54UM8nlb4SCr_orUHeeWMFZN60kkcHDbEdzWBNY13HuACYJqEq6V4p2GtjG2FFE7YxJff6HFsrfKxmA5Ni82wRXlvmDi9VaKV45I231hgP8Fap7-2ys-ar4OMw_JE1wNu1acQHoQHe3gsluJdGb6oPAG831Ye1aWuphV3xrgt1mSYxfY7Ftrhm2uin1vQusCQVINWFzHHirtcA06gwjofVT-K7UACXAa1yTtigNrSsv5aA3OyF_8JUL_556oLfUKzmZBO8f_dlNVuNizgHOIej8F99G3e4cfkom4z7AMZBGLbStczzQ2gpuIA7JpVoVkcf3n66qe5voOvrVnrIYN3voRWdsbHwzLqy9Ie-XnHTXjh36nLpXOSzhUw3UGqu-kbEpstDJGHN-LdQCMSg_t4z_g02fdudgoxWAJW31uwtayGz-z4cHzcE2nRBCzdtJ5WwS_HYKWNDY9lyxfR-yUYnu2Woqd8A3tZSR54cLk2AYF0XgHrf9X7l_vziEGqVM73l4lQdk0Dxrtc6vEN0zDkIcLHtdcwqeBsmPjPN9oFYEd46WtP0SoRdEzBcDG7AzwFWVaQDP2rnbX_EPuXuALwblQbo8bWgGM4YwARB9IgQQlnGGSMU1TTfwXOauid3fLi1UvsYjH_s8RSfN1n248E4bwVrY2KtodT-mI70PwwJwNfokdC8ofkuHJMT72TGm-7KFN7LvWbq_5huVMCnA43jtBsOL4qfExAegIpdWdCd4DjFCD48WBEr2oP1gxXHIvFI84c8vXhpjAudP1jBmpUzKxQZJ2mK0YQvmagp6Q6hGlomnXgFPg_IeUROCUL1BDmdIueCZiVktXkV8wtkjGlWTpCzOXJxiumrMQs8xcynmMVu1-RvwyRk1-QTzGKSC2mZcHaZw5Nyfll8f1OQ1xfyVXUnXK-8A7iargwt4-_OH8djNX-3xE93hLNp4tOJsVnT0CJ_wdiP90JNiFa6uWmlj22NvifPnOxoMQ1KOeUpkqShf-R5nK2UumZO8mtl-Dc3idKphnKjQyXL39WKlCQNPVkRqgyaWUEwKv9ohe313_oz4wepxUh4YsUva6MZq45Zv4p9fg79a_UK_CZlEJeiwI2ALyoKjeeC4rPcfkvqGbzneeEJr11OMc8ueG1vg-jYAt_M6D2ijXecYZ5Nok3mrLNJtF9i_Tk272mEh6n3ZpyhcsI4nTNuKL5grMSe8aehg5-5f2y7c6r-V3g3FE94Z5e8UZ2JmmA46Di5kx-YjTV3VnY_ffryeW20F49jBVCKP5-H-UQPYylhArZM6vcyrkY5YWJiWzFrcQhRAh8eQhd7cJ5Z_3BB4LWNNEWUTLTQmQezhAt4xH832-oi4Wfb1gNSuJn1VosmvHInpJxdvRbNFWlKUrKFuErygqISJVm5OFwlLMMlbVDKckJJUmZ1guu8yGjGeIGzeiGvMMIEEZQjisqkXJFdyutdwbMa14w2HKRItEyqVciFlbH7RbxOXOUJRmQR768u_oyIsRY_YFwMd5pss7BX8SJS93sHUqSk8-6M4qVX8ffH4Y0aZJtwkw9dcy90GP2v3c0WvVXzn0TfcPmKDvv_AAAA___MQEaQ">