<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97870>97870</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AArch64 with SDAG crashes when compiling
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DigOrDog
</td>
</tr>
</table>
<pre>
# Description
The following code crashes aarch64 backend with SDAG.
However, it's interesting to note that it compiles successfully when using -global-isel on AArch64, or on x86_64 and ARM architectures.
# Minimal Reproduction
https://godbolt.org/z/7WeaTdrhe
## Code
```
define i32 @f(ptr %A, ptr %G3) {
BB:
%G2 = getelementptr i8, ptr %G3, i64 168
%0 = ptrtoint ptr %G2 to i64
%CastPtrToI2 = trunc i64 %0 to i1
store bfloat 0xR0000, ptr %G2, align 2
store i1 %CastPtrToI2, ptr %A, align 1
ret i32 0
}
```
## Stack Trace
```
LLVM ERROR: Cannot select: 0x9687300: i64,ch = store<(store (s16) into %ir.G2), <pre-inc>> 0x9602f28, ConstantFP:bf16<APFloat(0)>, 0x96871b0, Constant:i64<168>
0x9687370: bf16 = ConstantFP<APFloat(0)>
0x96871b0: i64,ch = CopyFromReg 0x9602f28, Register:i64 %1
0x9687140: i64 = Register %1
0x9687220: i64 = Constant<168>
In function: f
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-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -mtriple=aarch64 <source>
1. Running pass 'Function Pass Manager' on module '<source>'.
2. Running pass 'AArch64 Instruction Selection' on function '@f'
#0 0x0000000003749078 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/llc+0x3749078)
#1 0x0000000003746a1c SignalHandler(int) Signals.cpp:0:0
#2 0x00007aa282042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00007aa2820969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#4 0x00007aa282042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#5 0x00007aa2820287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#6 0x000000000072d846 llvm::UniqueStringSaver::save(llvm::StringRef) (.cold) StringSaver.cpp:0:0
#7 0x000000000350c47c llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/opt/compiler-explorer/clang-trunk/bin/llc+0x350c47c)
#8 0x00000000035138a5 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/opt/compiler-explorer/clang-trunk/bin/llc+0x35138a5)
#9 0x0000000000ad925b (anonymous namespace)::AArch64DAGToDAGISel::Select(llvm::SDNode*) AArch64ISelDAGToDAG.cpp:0:0
#10 0x00000000035099e4 llvm::SelectionDAGISel::DoInstructionSelection() (/opt/compiler-explorer/clang-trunk/bin/llc+0x35099e4)
#11 0x0000000003518bf1 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-trunk/bin/llc+0x3518bf1)
#12 0x000000000351b649 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x351b649)
#13 0x000000000351d5b4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x351d5b4)
#14 0x000000000350d291 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x350d291)
#15 0x000000000284919b llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#16 0x0000000002d83d22 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2d83d22)
#17 0x0000000002d83ea1 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2d83ea1)
#18 0x0000000002d85b50 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2d85b50)
#19 0x000000000084a9c4 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#20 0x00000000007403c6 main (/opt/compiler-explorer/clang-trunk/bin/llc+0x7403c6)
#21 0x00007aa282029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#22 0x00007aa282029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#23 0x000000000084260e _start (/opt/compiler-explorer/clang-trunk/bin/llc+0x84260e)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEmF9z46oVwD8NfmHsQSDrz4MfFDvOzcymm7G3t9OnDEJYpkGgAkqcfvoOSHYsr-_dzd10urNJbMQ553f-cEBQa0WtOF-A-Q2Yrya0c3ttFitRfzUrXU9KXb0tACZwxS0zonVCK4BWABXf9hzutJT6VagaMl1xyAy1e24hpYbtkxiWlD1zVcFX4fZwuyruZr3ob_qVv3AD8BIKB3BqoVCOG26dV-U0VNpx6PbUQeEg000rJLfQdoxxa3edlG_wdc8V7KwXmNZSl1ROheUSagWLIpj36rXxA4cseUpiSFUFi80D9HTCceY6w-2ANPzGBD4IJRoq4Ya3Rlcde_d471xrASkAXgO8rnVVaulm2tQAr_8D8Dr9B6ffKrPnFyq91qWujsMJGv6HrxXfCcWhIBiCGO0AzlpnIMDzwvMPn-8IwDkE6U0vc3PjKcJHGB5jCMgK1txxyRuunBcT2YWCJRRJDKMkO5NEQbB1xmmh3Gk29kkQSTzMBHi-pNY9OvNN3_e2nOkUCwqDFj89Ouq1ThsOy53U1EF02CCE0DkL9l-oFLWCeCwjogtbZ2LFu9TJkuEuRG6IJUhXV2M8ysTWUfYMvxnKrifky5ffH-DtZvN1A0gBl1Qp7aDlkjPnB9AhT7KUIOS_iFBlbB9CElwAZAlw1nvjP0SJz5xQTnsfhJl573PvCiDL1vCpUAyQW0Bug2aEdzjkbamVdVS59SMgRbmLEkCWxePahxTgDHkd5NZP7HmiEp1LAVJ4NLL02Sa3x3AN7Glg90oD97mpKzZGst7Opd9L3b6tjW42vB77sOG1sI6bnsb7f0rcSV981BdUHSVGc_uZGI9mvns68vFewV2n-jVLCrjrRx-_3BbbW2i7shEOUlh2NTS81cb5wr1Y1sLtu3LGdAPwWsqX459pa_S_fA3gtbC24xbgdegoQjHZVb5dDQ0wtD3n62voLX3FVV3TnpYtmgGUPxpdG9pAaurOr1oPAQFe69ZbGdqemfJDK7Xx7XLNJFX11K-9Z4DXpVABjsGpr641bVsv3bm2czMLp4csmVLbTO2bcvQAyMp3WQmnjTOilRyQ1bFRA7K0ujOMnwIZecBNp5RvsC21FgKcrofQwkc_8EAVrT1W6ntso6tO-ppPR8pwOgQBX1M4dGp4r6wzfauF27DUfAJ7xcd8BtWhQ6antkQQRAd0_EfSOEdpBkPWSAFIYd9s_-HRCOVCHvqFj7P3SYa-PmnrDKcNwEnok8qFfuvL-OPZAPgGHQYWv4ZOsNEFbEIjBreiVlT-RlUlvdJssN0P2xlrfdGg8HNShAdFKaU4wyjGc4wGWilKgNf9hjeVQnWHaa26_gGbWT1LAl4QGcGRsc48yXcMtm5vOK2enoWUHzMQ5EcG4kvoOE1gbYOfH4WP02Skez7WjbN0RyAt_QL_kOYgONKcnOcMpbjK4uSswP6uxL87vnVGqHpLX0Kv83VHX8Y11s_Y8N1QVzOmZRXy_C56PdfpqGjmiMUpOwM4rZZVcXe_5bIf7Xetf3LXPx6jrP7mzyK4-OUS72FG4crGtBHJ6PyHtP2oPyEtddP4hX8ddwk7FU6rFWR7aiDze8Dlk89Yuz33yLF8VAe0yvG89Eao0uqt0Z2FijbctqG55D360N1Wxd03fcXhP87KIOgFjsLfF4dvKOiiOPKcxz8M90qftduzbpt9QkF4gFPcPGF0URBZuYt-XL664ndcFaq6bYRbFXefAhdsj-DwBVyZxPlPVmsh5Q21gt1IzZ7tKJWnXXKoz-QT0D3ZCJ1coFfz8seZN536qh4o2wvFj5Qj9O-efQa7RxuxxxdVW-H8z2riC68pe_s_ehAARx7Mzz3AWZxHeQn_EMKfls7wr3J_DzxrqXEzv0nDK_qu94PRboWrjFQYn3GtH73o8dz2YaK_HMKBZBTC9BKV0-gnUB_CMXOc8mHoUzA5HWc6u8Ccl3N0hinPavMM-L5p35fc_wzWs4xgx5tUFtOcxcfrk1Pg_NYZ9pmwb76T-ffepVaOH449S0p2tcwwGh-KYkRYAhsq1C951Os5dwhHF-e6vMo_eNANIiOd-FInjxF8evJiT9ZR457OPPlpKzweWyEXqcAJ4rDX_0tB6jWdTB1fIR03jVDU8eGyrT9W-_fJ7f3d9vbu9376crAGDXedUbzyMyKS_8mtyaRakConOZ3wRZRihHGeR_PJfoE4i3BWpjhOeIUTnlcsojvKcVbOU1zGE7HACMcoRQmKSEbmM56TeYKiBKc7Nid5AmLEGyrkzBfhTJt6Et6sF3mapWgiacmlDfeSGCv-CsNDgDGYryZmEd7Jy662IEZSWGfftTjhJF8c3y1Pl4-n68lwddgHXqh60hm5-Ot3AD3sywL_NwAA__8iO0Gx">