<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/132844>132844</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llc: Assertion `(TLI.getTypeAction(*DAG.getContext(), Op.getValueType()) == TargetLowering::TypeLegal || Op.getOpcode() == ISD::TargetConstant || Op.getOpcode() == ISD::Register) && "Unexpected illegal type!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Zentrik
</td>
</tr>
</table>
<pre>
Following IR triggers on assertion on HEAD when compiling with `llc`. This is a recent regression.
```llvm
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define swiftcc { ptr, i8 } @julia_try_compute_fieldidx_stmt_92847.3(<4 x ptr> %0, <4 x ptr> %1) #0 {
%3 = alloca [35 x ptr], i32 0, align 16
%4 = load <4 x ptr>, ptr null, align 8
%5 = getelementptr i8, ptr %3, i64 216
%6 = extractelement <4 x ptr> %4, i64 3
store ptr %6, ptr %5, align 8
%7 = getelementptr i8, ptr %3, i64 208
%8 = extractelement <4 x ptr> %0, i64 0
store ptr %8, ptr %7, align 8
%9 = getelementptr i8, ptr %3, i64 200
%10 = extractelement <4 x ptr> %0, i64 3
store ptr %10, ptr %9, align 8
%11 = getelementptr i8, ptr %3, i64 192
%12 = extractelement <4 x ptr> %1, i64 0
store ptr %12, ptr %11, align 8
ret { ptr, i8 } zeroinitializer
}
attributes #0 = { "target-cpu"="x86-64-v4" }
```
```
llc: /root/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:969: void {anonymous}::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*): Assertion `(TLI.getTypeAction(*DAG.getContext(), Op.getValueType()) == TargetLowering::TypeLegal || Op.getOpcode() == ISD::TargetConstant || Op.getOpcode() == ISD::Register) && "Unexpected illegal type!"' 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 -x86-asm-syntax=intel <source>
1. Running pass 'Function Pass Manager' on module '<source>'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@julia_try_compute_fieldidx_stmt_92847.3'
#0 0x0000000003e05be8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3e05be8)
#1 0x0000000003e03574 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007963a4042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00007963a40969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#4 0x00007963a4042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#5 0x00007963a40287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#6 0x00007963a402871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#7 0x00007963a4039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#8 0x0000000003a9178c (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) (.part.0) LegalizeDAG.cpp:0:0
#9 0x0000000003a93d86 llvm::SelectionDAG::LegalizeOp(llvm::SDNode*, llvm::SmallSetVector<llvm::SDNode*, 16u>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a93d86)
#10 0x0000000003a4829b (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) DAGCombiner.cpp:0:0
#11 0x0000000003a4a53b llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::BatchAAResults*, llvm::CodeGenOptLevel) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a4a53b)
#12 0x0000000003bac255 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3bac255)
#13 0x0000000003baf3f5 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3baf3f5)
#14 0x0000000003bb06b5 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3bb06b5)
#15 0x0000000003ba104f llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3ba104f)
#16 0x0000000002d797fa llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#17 0x000000000339720f llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x339720f)
#18 0x00000000033975c1 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x33975c1)
#19 0x0000000003397e61 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3397e61)
#20 0x00000000008a00e6 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#21 0x000000000078487e main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x78487e)
#22 0x00007963a4029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#23 0x00007963a4029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#24 0x0000000000896d15 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x896d15)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
Godbolt: https://godbolt.org/z/GfEjPq5hK
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWF1v27wV_jXMDWGDor4vfKHYcd5g6Ro0XTHsxqCkY5kNTWok1ST99QMp25KcvG2yBcMuVrSuJOp5znPI80GRGcMbCbBA8SWKVxesszulF_8AaTV_uChV_bxYKyHUI5cNvvmCreZNA9pgJTEzBrTlSrqbP66KFX7cgcSV2rdcuPcfud1hlBAhKpSQOf664wZzgxnWUIG0WEOjwRiu5ByRAiWk_yvEjz0ihWW6AYtrZplgz6qzGIUrjCiF2R6FBcxamhIUFiH1P-42mN66qyTyPzN-ughohsIioNlsm5HDlfSPkiM8iWb37jVKBx1W81bAUcNTlmySaNbJB6ke5Uxw2T3NGtn1EESKGrZcAjaPfGurCqP0ErdWI7rEPMMoXWEUke-d4Gxj9fPGTVpnYbPlIGpeP22M3dtNTrMonYfICV5G-MkzhFcY0Zg4phdPA0RzjGhInD1ECvcs9JKZEKpiGMWXYXyAxCuvJqTYkzHBG4mDxMEcLvI4oVg9tePeba3GshNiwGVHWOxhDVgQsAdp3as8O4KcHm81iTAdbCUeBE9Ws-oIfOlddESGHmes0nBkTUYW4ldkpW-XRU6g7E2yyBFJXsoaW0hfkZW_QxY5ggLyPl2vTFdARjbyV4QFwZuVBTk9oeiblAW_mLGAjmwEwbk0DfaVXPoJWnHJLWeC_wTtMjBd9XnIrNW87CyYQ2K4_E0vXQ73iT2rWp-14apP61kSzX5EiFJ84DiWpZ5vfOsKW-iSbK2VsoiuXeWatVp9h-p46_7jJaLrparhGiSi63sQULnCuSquEV3fQuNlr4rredW2KCzyJHe8PxSvnVYmlXzeq844QWGBwmLMcIT3I8e7zy2imbffA1Z_VTUgWiDqqYtT7Xae0Ozr7c28Afv1uYXCE7uaQwsnqQG7VNLCk_XPfLB8bt3jb0x04CDHAR_NboK_-pm9VY-guWx6Ce5Frw6jdInSI8nntvLKshH85v7gZ8-zVNJY5gLpzcAv0HBjQff1MEE0cQv-NwlPLVQWasyF8Fqslx-4AKAp3jIuoHbN6O72qri_wqYr99xihsuuwRpapS22Cu-sbY2zRNeIrhtud105r9R-tObTSODGdGAQXWMma8xlJboasN0BrjQzO1yy6sHlDDjb95ZVD7ju9i4WECnIHJH8TqtGsz1muulcVplD5KnW8fdNF_QMnlqhtHN8XQkmm9mpS5uZ1Z18QHRdcukVVnimHAVrW0fU2bazc4NnLgmY2c_Ms7TsCYUrLi0Il8ZGdboC1wRIEThVXzopXatvmXH5la476cMH37kHn5hkjdOSui3CXtWda6A0nTDR1PlMX2P7e5bgVXE9Q-HVqrjGN9JY3fX8pww4kG-Phh39Ozpr2nfJkGDyRI5_QiBxCRke8sc8m_7iTnNp_QJ9dcs1STLNHjfKWA1s72Nuibm0fQRm_-FKIXpJng6yXKr1ooMz0WGcRvieN5KJP5ishSPPvIYlNrzhcqs21heBpS8ufT04IMyh-BD_rzdADwbSPAlZRCIaU3Lwpi9qh23QaPvjBqq5UfPEa_aQQXE4JcyTfFvh1u40sHrzwIV4H7vHD-zRudwoTXBjvHvvlR2lyUAcT4lplm5DzEpXDd5F64EDbfKCNijfTRiUA2E6JQxzyJP3EXrIQJhNIozlQZpVjvDUkrBkezCtT4X8A5qTI5-3TNu5ixr8sjeOwzM_UxfWWTJK2kmffaOA5Ri_Z0Lcg_0GlVUahcs_QQRJ5wtZ8pG53nvTr4RL9WmBYlFG8_J3K7EqrpdqX3IJ-tAWOzlx_DB6Cz9AOPEjwNl0OwnBmQQWh-Uvp_vA9QuT4-m-ZLbaFcUXMJ2w5sVqHPZPn1t7kvthc-1dGeaaThwtWeU-a1539OYexERfIeurPbd-a5d9pMhexiAyPBO5Dbe_F9k_LYS4ZIZXl0JVD2ayPKcGXrlN1wfHdC9ycCGaulCSpPy9C7qTn-UnVu24hKPaiQsvxj7WB69y8CE-W4aARNtf-OAqUPX8v-GJ1zp4kow9oXWap1uG_1SM2-CN3HhV_0vho9L-Ct8rNSedTG-Yp5SMp3d953DHfea75XzIPPaihnnMziXHVfAGyZ_89ni6_odHHy03roJBbn4uF5KxXDEK2JHwm3075ON_RTQkg2g66YYkY4RAcjh5hNNEVjumfRs56yS3t98-nT5pvUwhqpexRyf9jqRZlKWA94zLj3Krpxy8Ottu07zO37nd9pCBMDwnhIjgzcZhNsYybTcjd95sAqKRiWi6EnlSBzHuyT9qmnrS3uTxM9iC3nPJ3Ke8P2buN_num_j-5vr-6vobIm6r4U1iDbbTEmo3HIT5y0Oda1WXSlg3fvZp3w_MlW4QXf9EdH29vfp-989495eLehHWeZizC1gEaUSzOI-j5GK3SBJS0zLKyzSra7olpIyjJIq2WZVUDJLygi8ooTEJaUTDMCfJPNpuSe0LbhWnEFcoIrBnXMxdzDrbF_78YBGENIuiC8FKEMaf2VMq4RH7UUQpilcXeuGPHsquMSgightrBhrLrYDF4djq_2dAvzoDuui0WPz75zyHpfqxoP8KAAD__47bj30">