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

    <tr>
        <th>Summary</th>
        <td>
            Assigning empty initializer list to scalable vector in template function triggers assertion
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:codegen
      </td>
    </tr>

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

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

<pre>
    This code triggers an assertion in IRGen. Similar example for RISC-V does the same thing.

```
#include <arm_sve.h>

template <class T>
void foo() {
T y = {};
}

void bar() {
  foo<svint16_t>();
}
```


```
clang++: /root/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::FixedVectorType; From = llvm::VectorType]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible 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: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -march=armv8a+sve --target=aarch64 <source>
1.      <eof> parser at end of file
2.      Per-file LLVM IR generation
3.      <source>:4:6: Generating code for declaration 'foo'
 #0 0x0000564281685314 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00005642816830ac llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3f880ac)
 #2 0x00005642815bf5b8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f9f0f7ad420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f9f0f27a00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007f9f0f259859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007f9f0f259729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007f9f0f26afd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x0000564281eeba77 (anonymous namespace)::ScalarExprEmitter::VisitInitListExpr(clang::InitListExpr*) CGExprScalar.cpp:0:0
```

https://godbolt.org/z/v3MKzYfcr

cc @sdesmalen-arm 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVt-P4jYQ_mvgZRSUXyThgQeW3b2euqeeDrRSn1aO4wT3EjuyHQ7ur--Mk2UXeq2uVVEgwTP-ZubL57FLXZ3X-4O0wHUlwBnZNMJYYAqYtcI4qRVIBR-_fBBqATvZyZYZECfW9a2AWhv48nG3DZ6h0sKCOwiwrEOgg1TNYhbez8LN9JuF0zX-jROpeDtg0FmyZaZ7sUexOMySh_eTnMAwzHkf3mJGsL94HLWsMAE9i4tZvIJZfjeO7-GM7vd-IL-fJdMwPb9D9rNLZm5ng4dMtvYolYuyF0fxvM8PkG5K-vtqMXfVzOI7upINzOJHo7XDW9seu6A3-g_BX__ibWLmbWA39L025LFl1hG1yNRmmReEVgneunOP7gUbnKZy_LRkgxdHfzRgPMTZ-FKXd9-kO8Bee5reXB_lSVTPmIg2e4JL7oCm3Xi9c1jeU_jNRSdYrrQMydvrkbVn1vqIcYYX3mKfDdrPF1aBmWbohHKgaxQa113PnCxRW2NJEc6axTnUTLaimhT1-elhs3sAO5SddMCgHBowghgCp-HgXG8p2fgRrwZrHcoFp_pf6bxhXVo7CIsPKPsKXmVJWuaG2QPKhH91hnFMZws9BjKaC6y6AqsHMw7TTNSn5hLlWoEZFFhuZO-mlHcOQaAaup4y80MhmlafjW4M6y402EkfuqfMiA6s2wTi1LfaCENjpKXgsjpt4DDYVzSUUr2aR6lB0FTfmKmDFJ8g0ITL-p7QB9cPbmEh6IgLCIJTkSFmF9izcuyErxzlL1oIdmhrOA-c1i0_MAyR3P9jeuRsFevtQTsIaq7REFSSNUqjcjmGrJUOPLHXwx0zHFV9j73gWDBMHxsCBnfIjHA0TvYspVYw0f7aCSIiEoeFrnEMemaQG2AOBL4UlFWNOY6esaccE6YheHp6_oSdDRqhhGFE5uiVTHhvYZJNit-M3s2HyVk1Y8ukFkgrkI0IyHHum1I-9RNsdCGEpxA_yyyNiygrlkmUwmeDDHtV7ElaO9ko1v6CMmqJxoL607RgR5Nd8J60E_rvBTu6wU5Cxt-tVnu248O2FUwN_W9qRMMIg7L4iFptNQmGlmnxPwkPr_CU1EWByVDnvGQbX2W7LOtlWcCWtPBFcH0U5nzLA5JEuV35bDVq8-R-TEgyhcjrVR3WOavSOISXFyMsti3xgi1irLOVJf6i7F-yNGilGk5Bo4bR0LuDEaxaWL0IfS1RiihXlaRXYeKchWEJhkkrfgKfE3LmkdMEJ14hL6-Rl6tiiV2y1D-V-TvkOMaJV8jZLXJ-ees_jYlTrjDza8yM1VX27zCTBKdcYRZXKhGiZHlOmExpde70YEHhGcP2viOvRn3vOMMl-HDqzQPuCQ61M-5W0kr3UUn3JK0jK8KMQvXma4tfbdsP9GeE-6vCfrjl32w4uip16xba4Gp4_I7fY_Lp1--_19y8n8Q5zNLQVsJ2rBUqwLYHc7GOsqwokjgNi3m1TqpVsmJzJ10r1rjP4tqgvoOHInfGfUo6yVr5HXtdizXQ1mcpbdo8j36XppPb5QhVD4r7DvV2yHtdyvPBtOv_vm0uV2G-mh_WVcSTomBZjiKJhYjjNKf1FxWiLFmR5HPMTbR2jScQOgtMr4G6KHZg2ueX93O5jsM4jqJoFaZJEheLhLOIpWXMqigqa3RKQ9HhYWBB2RDJc7P2ieEhwKKRqLBvRuZZE8IHRXw8IR20WTvd98Lwua9h7Qv4Ex7bXjA">