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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] Invalid size request on a scalable vector
        </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>
    Compile this:

```
#include <algorithm>
int a;
extern short b[][1][1];
void c(int d[][1][1], short e[][1][1]) {
  for (int f;;)
    for (int g;; g += 3LL)
      if (d)
        for (int h; h < 2036854775797ULL; h += 4ULL)
          for (int i(-49); i < 10; i++) {
 b[h][g][g] = d[f][g][g] | std::min(0, d[0][f][g]);
            a = std::max((unsigned long long)e[0][1][1],
                         (unsigned long long)401598999);
          }
}
```

with `-Ofast -mcpu=grace` to get this error:


```
fatal error: error in backend: Invalid size request on a scalable vector.
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: /opt/compiler-explorer/clang-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -fno-verbose-asm -S -target aarch64-linux-gnu --gcc-toolchain=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu --sysroot=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot -fcolor-diagnostics -fno-crash-diagnostics -Ofast -mcpu=grace <source>
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module '<source>'.
4.      Running pass 'AArch64 Instruction Selection' on function '@_Z1cPA1_A1_iPA1_A1_s'
 #0 0x0000000003c7a1b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c7a1b8)
 #1 0x0000000003c77b8c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c77b8c)
 #2 0x0000000003bc83d3 llvm::CrashRecoveryContext::HandleExit(int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3bc83d3)
 #3 0x0000000003c6f3de llvm::sys::Process::Exit(int, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c6f3de)
 #4 0x0000000000da499b LLVMErrorHandler(void*, char const*, bool) cc1_main.cpp:0:0
 #5 0x0000000003bd2303 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3bd2303)
 #6 0x0000000003bd2468 (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3bd2468)
 #7 0x0000000003c1f0cd (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c1f0cd)
 #8 0x0000000003c1f0ec llvm::TypeSize::operator unsigned long() const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c1f0ec)
 #9 0x000000000507170b calculateByteProvider(llvm::SDValue, unsigned int, unsigned int, std::optional<unsigned long>, unsigned int) DAGCombiner.cpp:0:0
#10 0x00000000050719c2 calculateByteProvider(llvm::SDValue, unsigned int, unsigned int, std::optional<unsigned long>, unsigned int) DAGCombiner.cpp:0:0
#11 0x0000000005071b25 calculateByteProvider(llvm::SDValue, unsigned int, unsigned int, std::optional<unsigned long>, unsigned int) DAGCombiner.cpp:0:0
#12 0x00000000050fb205 (anonymous namespace)::DAGCombiner::visitOR(llvm::SDNode*) DAGCombiner.cpp:0:0
#13 0x000000000511dc69 (anonymous namespace)::DAGCombiner::visit(llvm::SDNode*) DAGCombiner.cpp:0:0
#14 0x0000000005120825 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
```

See also: https://godbolt.org/z/qTx87jfde
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUWE9zozgW_zTy5RUuIbCBgw_EiXenKrOd6vTMYS8pIR5Y3SAxknCc_vRbEk5svNmd3VQu48IG9J5--un9k2RurWwV4oasbsjqdsFHt9dmY79rNHWP8juaRaXrl81W94PsENxeWpKUhIZrTU8XLQlLpBLdWCOQZMu7Vhvp9j1J7ggtpXLASXJDaIlHh0aB3WvjoJqGJaub-OIW9A5a1iAIy33f-l09tj3B4PviAkjmoQAabeAE1Xj45IawIkhmsnaSQQuE3ZDkFpL7-7MigGy8Zn3ZNOu_9533fv7AaLLOV2mWrbIi--3-_iSZYNPf5rhXMJKwPEoLr5HcgAx4MQ3PHsBfb1PzFtxPk27PN_CjeKM174iyLVhXeycmZS8VYTn1pvTqdNK77BVIzJgC8IB_BuFHwnLC8lGFaKqh06oNP4QVeMadO-8KdPb5T2ApjVdFXhTFO7xIduvjcPq9jExaPku3B7Km0ZeGWwdRL4aRJLet4QLJmoLT0KILwQ1ojDbnEJ9jNdzx7k1legCpoOLiBypvD_hFHXgna7DyJ4LBP0a0DrQCDlbwjlcdwgGF02ZJaPlwf1c-3oEdq1464FCNLRgcfFA7DXvnhpBtbEfYrpVuP1ZLoXvCdl13eL1Fg9HfUTjCdtLaES1hO-Cqhtd8dHsEYbjdB5ouTJptYTA4GC3QWqzB6tFMzb4nt1YLyR3WYEYFVhg5OM_30XHxA-qxHyYL0SWhxYPRreE9cNOOPSrnKQNhOz14TmKqHCbC49Bpg8a3dVy1kTOj-kHYrvJBOLVN8Q1RWz9z00QpRC1E2oPxYfCQoxtGt7QQNUpHBzSVthhx20P0CJHjxruRcyP26zTqpBqPUatGiKJWiMhp3Yk9l4okt_-VHjf9OvUWFyKK2ZItqW88oY7qh9LPaoZuX6zR2n0u7p_ITmNC1AjdaRPVkrdKWyfFyTrB5fPmd8LfV5eT80Opjr1HSbJF3ZDkDgZuLBrgDlDVoBtoZIeElsyrbXWN0KJCw53UitAy8c1fR6WkamHg1gJh2W5UwsvhwTf8yhVvvTkynxW9rscOvdaMB8t8tKXvoZVlsAn8oqwz4wT8iB2GpxNq8zqix03p0z9j8VDGT2X8JE936yXUh2lCgR7p6ycRGY-rHEJ-hepmX-z08GCkciEBvk0plJ-VDH9-0tYZ5D1ha59GUrlQpn1h_HgmEHZDjydOpxWDsCS-YpxVuXiP8bZDrsbhi3qUreLddVH9RH6ewZkfm_GrRJ7UyQW_rQ_Mryj0Ac3LViuHRzdJ_s5V3eHdUbppKfw0hhOHM8NkbsF1k9T4vs9DgZxeLnltodK6-zwLBgZnfuklP1rztCgquL___dc7v-JMZjKE5X6XRFjp-Yg9NyC0su7U8EpQiPip51ItxeCrNg3faZjV3FE1S-ilo6aV6Cksek_ToncZ9N-epcLXIdefbpOJztkm62uy6Tr_tJHS9UV-ZfPoiBsq6k_yc8A6j5T_20h4mcnfXgZ8lD9xetODL7TawFUW58HL3g2fRxIv0rm4JLmiWZzRCgTvxNhxhzcvDh-MPsga5-HxePs778awp3gjfMqd6_e3raQefNnmHUm280n6NeG6XwG35d-2uq-kQnMV3b5K0mvehWB_Bd7xNe-Krf4KvNmcd1MxuvIRyZVWL70eLSjeox3C4llMBC4Qp4aDtNJ9-Xo1s39oXx3LP-cwK-yrOK7FuvgYh48ySOcMGM3Z_28FMb19iMP86POICLyz2u_Jr84Tuq5055batITtfhK2--PbMc--NzUu6k1SF0nBF7iJsxVLUpYzuthvqjROU17nDYvXq6RapTUVWcpZgRlPCioWcsMo8zHL4myVpHSZMcYLtqIiT5EK4bdj2HPZLf3E_NiLcGjZxGme5Nmi4xV2NvwdwZjCZwhSwhhZ3S7MJpx3qrG1JKWdtM6eYZx0Xfgf47RB9Gfd__ksthhNt_n4cetE_rBh_woAAP__SAwxig">