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

    <tr>
        <th>Summary</th>
        <td>
            LLVM crash: Assertion `!VarElt.getNode() && !InsIndex.getNode() && "Expected one variable element in this vector"' failed.
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          shao-hua-li
      </td>
    </tr>
</table>

<pre>
    LLVM backend crash

Bisected to 279b1ea65f8403aa6d49e7aafa7e40dc906be4bf, which was committed by @alexey-bataev 

Compiler explorer: https://godbolt.org/z/bzMK8Gj7x

```console
% cat reduced.ll
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 void @main(<16 x i32> %0, i32 %1) {
entry:
  %2 = insertelement <16 x i32> %0, i32 1, i64 1
 %3 = insertelement <16 x i32> %2, i32 %1, i64 3
  %4 = insertelement <16 x i32> %3, i32 0, i64 0
  %5 = shl <16 x i32> %4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
  %6 = shufflevector <16 x i32> %5, <16 x i32> zeroinitializer, <16 x i32> <i32 0, i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7, i32 9, i32 9, i32 11, i32 11, i32 13, i32 13, i32 15>
  %7 = tail call i32 @llvm.vector.reduce.xor.v16i32(<16 x i32> %6)
  store i32 %7, ptr null, align 4
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.xor.v16i32(<16 x i32>) #0

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
%
% llc reduced.ll
llc: /tmp/tmpnykja7f4/tmpcn2v8jq4/llvm/lib/Target/X86/X86ISelLowering.cpp:8754: llvm::SDValue llvm::X86TargetLowering::LowerBUILD_VECTOR(llvm::SDValue, llvm::SelectionDAG&) const: Assertion `!VarElt.getNode() && !InsIndex.getNode() && "Expected one variable element in this vector"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/llc reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'
 #0 0x00007f70d44966df llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0x9376df)
 #1 0x00007f70d4493c04 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f70d3774090 (/lib/x86_64-linux-gnu/libc.so.6+0x43090)
 #3 0x00007f70d377400b raise /build/glibc-BHL3KM/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f70d3753859 abort /build/glibc-BHL3KM/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f70d3753729 get_sysdep_segment_value /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f70d3753729 _nl_load_domain /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f70d3764fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x00007f70d711ce39 llvm::X86TargetLowering::LowerBUILD_VECTOR(llvm::SDValue, llvm::SelectionDAG&) const (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0x35bde39)
 #9 0x00007f70d7148dbe llvm::X86TargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0x35e9dbe)
#10 0x00007f70d4f1e118 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) (.part.0) LegalizeDAG.cpp:0:0
#11 0x00007f70d4f2159c llvm::SelectionDAG::Legalize() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0x13c259c)
#12 0x00007f70d50f1750 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0x1592750)
#13 0x00007f70d50f4a08 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0x1595a08)
#14 0x00007f70d50f66f6 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#15 0x00007f70d6fda110 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#16 0x00007f70d4a156d1 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#17 0x00007f70d4666201 llvm::FPPassManager::runOnFunction(llvm::Function&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0xb07201)
#18 0x00007f70d4666449 llvm::FPPassManager::runOnModule(llvm::Module&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0xb07449)
#19 0x00007f70d4666ce2 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/../lib/libLLVM-18git.so+0xb07ce2)
#20 0x000055b489762453 main (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/llc+0xf453)
#21 0x00007f70d3755083 __libc_start_main /build/glibc-BHL3KM/glibc-2.31/csu/../csu/libc-start.c:342:3
#22 0x000055b489762b7e _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-279b1ea65f8403aa6d49e7aafa7e40dc906be4bf/bin/llc+0xfb7e)
[1] 1481186 abort       reduced.ll
%
```

This IR is reduced from
```console
int a, b;
struct c {
  char d
} i, *k, *l;
static int e = 40;
static int *f = &e;
static int **g = &f;
static char h;
static int j;
static long m;
void n() {}
int *o() {
  for (; n < 5;)
    for (; h < 5; h = h + 1)
 ;
}
static int p(int **q) {
  b = a;
  m = 19;
  for (; m; m = m - 1) {
    int *r = &j;
    *r ^= **q + h + **q;
    *k = i;
 }
  *f = 0;
}
void main() {
  struct c t;
  int *s = f;
 **g = 0 <= 0;
  p(&s);
  *g = o(0);
  l = &t;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWV9z4ygS_zTkhbILgf4-5MGO42xqMzdTO3NT8-ZCCMlMEHgRSuL59FcgyZZsZzdzt7WXu9SMjFrQ_eum6W6ANo2oFOfXIFqCaHVFW7vV5rrZUj3btnQmxVWui_31w8PXDzCn7JGrAjJDmy1AK4AW3XMpGs4sL6DVECdZHnAaR2UaIkJpXIQZTygtacJDVLAMxTkP8xLgG_i8FWwLn2kDma5rYR2LfA9BiKjkL3w_y6ml_AmOZd3oeickN5C_7KQ23ACygFtrdw0gC4DXAK8rXeRa2rk2FcDrHwCv8x8ffk3vvicvY04gRt0_plWjJe-pOIKMWmh40TJezKXs6JaailtYUEsl3evWQkBWEGDMZzUgCz7b4QQBsiDYP9xrMH11rTj0j5k4NAKcArIIcDorU9S3lCfFw_A4nH123TCeQLFG7CQfYLyk8SYOZ616VPpZzaRQ7cusUu1hVPcseCkUh09aFM7ONRUKOAQ3QQxfoHDybiHAEXLzIwh27QDgDIJk2XHgypq9s7V_g64D9iCEarixXPKaK2edV1kGvhGHMOh5AByRN7HAU1QdFzJCEr6JDRnYoIEHGvGIPI9mKy-MDN0AQG6OaryDBrkdoY979G1ZSv7EmdXmgh5Rr8eY_IMbLZSwgkrxg5sLPXrF0etgyFkjOmskZ43srBEEF1rkQiuaap947S0VEjIqZecrIZLyqZ53xph3C3v-os38KYidZpf8PwY4G_g2Vhs-uJ0HvbMGqlZK16ZSVAqGQ2fDrV9d_aJLVpOQQ5Zw3SpmhVZwYa1xQQsq7bC66AqVLg3nUOlmrxhUulXPQhWw2XHWSmppLjl8FlIablujYM1rbfYAp0orfkBccCbpgPhnlfdrHRM0hk2tNSJvLW_8py7kJMu_EDg8GgpHx0AsJTsLxFIyZzSA17bedU-1f_xOkzLs3pjCT-n3392bU939iBzg9RcfNgFef0vj7nn_mcsH_cyNUNWc7XaALNIkcpEZ-pFkAcji8-orlS0fUb6lccdrGNuR_dvyn_cPq83X25svH38DOD1j4zxmROSSe2dYLe4Adj4HXTKyDsGicUHMOYrLUjj4Ss2ttPOK23_ogrt58zMVAxxDgIN71dyrgr-81gHfvuy6JK1d_KdG-DkZgqRQ0G5FAzs_cUkDJ7CkQvJi3tn908Pt4vMtbNq8FhZSmLcVNHynjXVp_yQDC7tt8znT9WgS5FM92xn9nTM3CaJpWt4AvIZUFVAoJtuCQ7vlXXnhiw1rKOO9-M_WuVnR1rtD7kFz6P8-GV0ZWkNqqtYp0_T-8cMla4DXrpqRAuA162sHJ5axvBWy4GY2oUqqqtnba5h17vLn-pKfBj2631qlhKrgjjZu-SSH9f_JET5QRSsXbBOoFax10bqUjpMRN5z0JsCvcPyWxnC1uJsBcrta3MF71VjTdjIODtYLKAfhACeH9J8c0jBBEL0ghFBSJqgIwyyOi3Lkr82-6RqfjFDWT8kXN0cTTzf0eaMbazitvffdQKFs54vp3zor8_lh7UuRuxJ2FqSVsPNGA7xELxlJ4qI8BnqASXCiP2EohJ9Fpaj8hapCuplKe3U6ctMHDuT_HxjhMSOSJCHKUG-ADlFfr43qNPeBzRs9jz26kKAMTcCRM54oh4aKxnnM2hvOrT3HZrb85YH8-uHwiuckcDb3kAfTNPum4Dtn4FaJl47w5HGo1r161nMXbSNXyh6rNRJOkUQkjTJIcxcL3orEFp0d_CgvJHVCRr4YnQpJcAYrbjcd7k3DK7faN08-PL9RrlDW6S81LeqmYrQTHaHMATjKji_J3ii5cQM3hXYL5z8TmXW7hfAoM5nKjMOyiH_OZQgpi3jiMumYZxIEjJPsb81k727RkygvOMkmVsqmVgrTIn9rvv-444Z2Afb_yEQ8K_JjPeni4jQxlAEPgtQBp0qrfa3bBipa82bnk0F2rvADr_y2ojdd__Zxd2K2rnJZ9NlivqPGzl0QhMOI1eLuPOA6gNPIXeIgythrxp9gOBRK72sSAsJwlLHJJEySSoTKIInQKzq60raj3uiC33G1UMVtLaz3vfepcJThJEIThcmJwiFF6Z8q3FEXUi5pI9hSavbYTNzsUIF1tXa3FN-hOSKK0ok5whNzxHEZ_6k5TKs-qg-UbYXig-YTc5x9i8-X3ynry2twkrHjsqBBgP4sSHxL49Xi7ov-KzD3W7qB32WQk9Qe0iCKiwC-ytkV6SNMF8H8oeUu8LuMa5L-wziOMRrjWn9yQ4ftwk8jele-naMEo2Di2ump9mGYvUH7D37DNHWNnvReNQ_DbKJ5dqo543ikueQVZft-13W0wX29O66V_yn9Gcdj_fFQWURRHqZZEuMwIrCvr_9e8FIyD7IMIzKBGJzsBiKUErjZuOJ701hq7OZn9gOsaQdLdU3_0fPxOwMS-juDo3h8aqE84bAT_N-zUZ6MCsRoGYBoBYMwDYI07neC3d_pscjxfG-4fhmfNH7Zigbe_wZFMwyEpdH1H13YCGUhdZV2Dkh_RdGdf0B2vLSAkG2pgcdTWSj8-TZePPa_cjSaWsGg49vdroTo0jeAF2V_-RLzVzoAvKiGPuVpH49oe2nk91Oi1KqC9YHqb2_UUMcly8PhaS9Wjz716pfaeF8hS6ggIDcwctyOZ9yTHttDD99cuSdewmC0aRqgHESP4O-6M5LeAL-fIMk9R3rgAGHtKUE2Io3A1P7hu9RwBoMTdnCwtRkM_X3EB_ZfotvuowfklelUGiCejHjsrpGO5IOa8Djv6NwIfmKGO7UpzoNP2pGwHnrj-ZUjcSPXQW4ypvKgNzHAcePLqOUIWjfGOQCafpODeew57MPCuiquSZGRjF7x6yBBQRanKE2uttcsCLICMxxHnEYxS3CR4iIscEFRmRd5ciWuMXI7FJQEcRSGwTxPE8IwYxjFPMRRDkLEayrk3F9HaFNd-RPg6yRMSHwlac5l42-hMVb8GfqPAGMQra7MtT87ztuqASGSorHNkYsVVvLufrq7l35XR-dXrZHX__7ZuDfOvwIAAP__GdkaVQ">