<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/148949>148949</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] Unexpected illegal type!
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          sjoerdmeijer
      </td>
    </tr>
</table>

<pre>
    Compiling this:

```
char a, d;
int b, c;
void e(char f[][7], bool g[][7], int h[][7][7]) {
  for (char i;;)
 for (signed j;; j += 7)
      for (bool k; k < h[4][4][1]; k = f[j][1])
#pragma clang loop vectorize(enable)
        for (int l(d); l < 17; l += bool(7)) {
          a = !g[j + 1][1] + (g[j + 1][1] ? 0 : 2);
 if (g[i][i])
            b = c = 0;
        }
}
```

with `-std=c++11 -msve-vector-bits=128 -Ofast -mcpu=grace` results an `Unexpected illegal type!` error:

```
clang++: gllvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:991: void (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(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, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: gllvm-project/build/bin/clang++ -std=c++11 -w -fPIC -msve-vector-bits=128 -Ofast -mcpu=grace -o clang_ofast_func.o -c func.cpp
1.      <eof> parser at end of file
2.      Code generation
3. Running pass 'Function Pass Manager' on module 'func.cpp'.
4.      Running pass 'AArch64 Instruction Selection' on function '@_Z1ePA7_cPA7_bPA7_A7_i'
 #0 0x0000aaaab3809a90 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) gllvm-project/llvm/lib/Support/Unix/Signals.inc:834:11
 #1 0x0000aaaab3809fb0 PrintStackTraceSignalHandler(void*) gllvm-project/llvm/lib/Support/Unix/Signals.inc:918:1
 #2 0x0000aaaab3808050 llvm::sys::RunSignalHandlers() gllvm-project/llvm/lib/Support/Signals.cpp:104:5
 #3 0x0000aaaab38092d8 llvm::sys::CleanupOnSignal(unsigned long) gllvm-project/llvm/lib/Support/Unix/Signals.inc:374:1
 #4 0x0000aaaab372b228 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) gllvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:71:7
 #5 0x0000aaaab372b65c CrashRecoverySignalHandler(int) gllvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:390:5
 #6 0x0000fffff7fb09d0 (linux-vdso.so.1+0x9d0)
 #7 0x0000fffff7a1f200 __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #8 0x0000fffff79da67c gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x0000fffff79c7130 abort ./stdlib/abort.c:81:7
#10 0x0000fffff79d3fd0 __assert_fail_base ./assert/assert.c:89:7
#11 0x0000fffff79d4040 __assert_perror_fail ./assert/assert-perr.c:31:1
#12 0x0000aaaab664c38c (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) gllvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:986:3
#13 0x0000aaaab664bf8c llvm::SelectionDAG::Legalize() gllvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:6120:13
#14 0x0000aaaab6770bfc llvm::SelectionDAGISel::CodeGenAndEmitDAG() gllvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1067:13
```

I don't quite understand yet why compiler explorer, see https://godbolt.org/z/GoafTc8Yx, shows a different error:

```
fatal error: error in backend: Cannot select: 0x33eb9910: i32 = zero_extend 0x33eb4df0
  0x33eb4df0: i1 = xor 0x33eb9600, Constant:i1<-1>
 0x33eb9600: i1 = truncate 0x33eb6f50
      0x33eb6f50: i32 = freeze 0x33eb9360
        0x33eb9360: i32,ch = load<(load (s8) from %ir.52, !tbaa !70, !alias.scope !73, !range !72), anyext from i8> 0x33e2b260, 0x33eb8db0, undef:i64
          0x33eb8db0: i64,ch = CopyFromReg 0x33e2b260, Register:i64 %18
In function: _Z1ePA7_cPA7_bPA7_A7_i
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysWF9v2zgS_zTMy8AGRdr685AHxa57AXrXoMkecPdiUCIlM5VJHUkldj_9YSg5sb1tb7t7QmBJ5MyPvxnOjIYR3uvWKHVLlndkub4RQ9hZd-ufrXJyr_SzcjeVlcfbld33utOmhbDTnvCS0PiX0umPlvVOOBCErUASfkdoqU2ACt_r8f3FagmKsDxKNuOSZHmX4Y2toLK2g_Z3wwizuxw9TRZAMkQGaKyDE7LG5fgdYQVOTTPRTgnP4xw8A2F3hK8hm8TiNclGIl9R7CsQvoqrL8Z1p1uCt2l-HU15PpuIiITx3ol2L6DuhGmhs7aHF1UH6_Q39IIyourU-fJvBNDkjrBc4iy_gy7SSLLpeWSOLAnLowFnnjhdIlIjLEGPRnMheecY3wnLfzDJN0CB8BLYyACRdXNS0KOofrMVzq4qrlvHXzqpThfJ1uiY8fcscggtX3XYAUnpzAdJ-LpGG9ldksBs71_UbPTbrNLBE75OWA6zz43wAWb7uh8IX7dO1IqkFJzyQxc8CINwvxl16FUdlATddaoVHYRjrwhLUFY5Z933Yxm3bOSAXmi77mU_6519VnUgbIOveNMVYZuVleqjMoRtHlWn6qCtWZcfCdt8wvX0N7UuP87rvie8LIoE4WIiEJYLY81xbwcPRuyV79EEdHdJeHmOdQIaZ05vn3vC8sf1P6xUQFg5akLpvXKoh-YTlj99up-3Kjwde1VGPMJywkrk1KqwsiaoQ4hjBSbb5x6H_ym6QT1FR-Wn8OJr3NEn4VoVPtlX5bRpR0IoGEkByVYkO4F87msrJ4ST-v3jetKJOCtrfBAm_ILiF9VqH5SLcywlLAXC2E_2mTHCMmiE7pScE1o-fPpQPn4AP1R7HUBANbTgVG9dgGBhF0IfyxvbELZpddgN1by2-7NNvwwF7f2gPGEbEEaCNnU3SAVhp6B2wu-gEvXXEIOTraB3qne2Vt4rCd4ObhxGTeG9rbVAC9xgwNdO9wH5PgZRfwU57PsxUul8TKYHZ1sn9iBcO-yVwcT4faBWg-4k3jXG51lUw-8T7RVmzcP96pcyDmZ2LG9bi5PbZjD13MKshviEUU_LZGJM-ErZhvAP0AvnlQMRQBkJtoFGd4rQkk2SmFLQKqOciCFLSz6HL4Mx-AHqhfdAWLYZTAxoeMCBvwsjWgyLDKyBvZVDh2mRvfFgGXpzMa1wDVaWrt6lC7g3PrhhxH1LwQm0OS1IWEYWdPvvRD2U2bbGnwp_ymyrcY6WQBinQA-UUiqEEBXPaSEKCjGIYiD7ox8fHpw2Ie7y0xgn-buQE69b64NTYh-DPX4NMfR_WpEehx7jmbDNb0YfcEC3RnR-rk1NeJnzBeFlkkw8k2ueTUXhitQI8DdhZIc-zrGCjTXnLzEpkhyZTETYFZGcLr_rsC-DueDjp1LxB5mcKIwlOaHojOVEgV_7gsn8exRWnRJm6D9PRAjLBzN1GJ3FHPtrfuHZ4swviwtSGasYy__X52OFxeeLqu2Lcsepyt_v-26cHR0XZcZuAyPrz1rwvaUm52b4uTvlw_LajHRZw4XydZT9Wqz_hAcv6NkmpxORBq-sqWghKfqz02Y4zF6kt3Nv5wlhd_RQSDq1OITx7EJRJA2jFLbbPuycEnL7VXfdVu_7TmE9jpUL5oRtTB86wjbnYnPc5QVucpZO4PkFeCFFmtXQ-uiSCOOnUNvM49vRS9Xjh6e3PoaQE9qrCMwywssTbnGJW2cJpyAq_N5FnCBHR8ahqJ6fdg2LA72ixRuJNovYZmzxs7qthFcRaxx8exjBijOw5ApsQRdnYH3sxyLm9-BmOB8xeTJlB2JeVI00XdQ8r_9PzdV74o9t1h-peL_SDeYpGjPZwa_sqJq8Pis9F2gXVP9I9fsFVmnCMFmSE6-L6pNmGa2aH_G6f1RTgZnWK438sNchLvUXSF6v8Va60-yN6eVx4h5k_GwH-M-gg4LBSOWw1ZRwVAFed0eo44lWOVCHvrMOC84KvFLXLaCVle3C3LqWsM03wjYfrWie6vxfh6iws68eBEjdNMopE35yqGhEEN3b_PgA2sQWURmJYythjA3go8E4QA-cq6ooEtwT0JzFc9U35exWHQJ2T6PEQjY0nrTOXlEhifIH605IKaXI-9R5E17qhPDVLCH8AwKcib3rBzeYWgQ1zabNkr4d686Gzhg2TqlvJ_mCp_TsGHg2OGoQtqp3Ua2zQhK-wtyzIp6RfIybxtk9ELbUbr5EcTzXhkoIvGd0GhCdFn7ua9urOM6ncSdMO46w6ZQjzFEdwoiqc-xIIydWsTSCjQxzWdHxwyhVg45KFxdn3TMptCNdvNuxsv1x4-z-i2qvoN_OLxEPbUpyDNj39hLBftBbnsXTjbzlsuCFuFG3SbZkaUKTPLnZ3aoFZUld82XGKJNNVadFzau0EfWipirnN_qWUbakWbJklBaLZJ4nXFDJ0wZVBGvIgqq90N0csxMD_yYecm6TRV4siptOVKrz8T9GjBn1CnEWz1nL9Y27jRleDa0nC9ppH_w7TNChi_9qmrptslzDj09uN4Prbv_8eWxi-3LL_hsAAP__6rKmnw">