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

    <tr>
        <th>Summary</th>
        <td>
            AArch64 non-pow2 vector sizes crash
        </td>
    </tr>

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

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

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

<pre>
    Here's the LLVM IR for a repro:
```llvm
target triple = "aarch64-unknown-linux-musl"

; N x i80, where N is > 1
define void @foo(<2 x i80> %0) {
  ret void
}
```

When compiled with 
```
clang-18 reduced.ll --target=aarch64-linux
```
I get this stack trace:
<details>
<summary>Stack Trace</summary>

```
clang-18: /home/david/Code/llvm-project/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp:466: void buildCopyFromRegs(llvm::MachineIRBuilder&, llvm::ArrayRef<llvm::Register>, llvm::ArrayRef<llvm::Register>, llvm::LLT, llvm::LLT, llvm::ISD::ArgFlagsTy): Assertion `DstEltTy.getSizeInBits() % PartLLT.getSizeInBits() == 0' 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: /home/david/local/llvm18-assert/bin/clang-18 -cc1 -triple aarch64-unknown-linux -emit-obj -mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name reduced.ll -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +v8a -target-feature +fp-armv8 -target-feature +neon -target-abi aapcs -debugger-tuning=gdb -fdebug-compilation-dir=/home/david/Code/zig/build/reduce -fcoverage-compilation-dir=/home/david/Code/zig/build/reduce -resource-dir /home/david/local/llvm18-assert/lib/clang/18 -ferror-limit 19 -fno-signed-char -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -target-feature -fmv -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/reduced-68f765.o -x ir reduced.ll
1. Code generation
2.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
3.      Running pass 'IRTranslator' on function '@foo'
... segfault handler
#11 0x00005594ccef9872 buildCopyFromRegs(llvm::MachineIRBuilder&, llvm::ArrayRef<llvm::Register>, llvm::ArrayRef<llvm::Register>, llvm::LLT, llvm::LLT, llvm::ISD::ArgFlagsTy) CallLowering.cpp:0:0
#12 0x00005594ccefd545 llvm::CallLowering::handleAssignments(llvm::CallLowering::ValueHandler&, llvm::SmallVectorImpl<llvm::CallLowering::ArgInfo>&, llvm::CCState&, llvm::SmallVectorImpl<llvm::CCValAssign>&, llvm::MachineIRBuilder&, llvm::ArrayRef<llvm::Register>) const (/home/david/local/llvm18-assert/bin/clang-18+0x4c81545)
#13 0x00005594c943073e llvm::AArch64CallLowering::lowerFormalArguments(llvm::MachineIRBuilder&, llvm::Function const&, llvm::ArrayRef<llvm::ArrayRef<llvm::Register>>, llvm::FunctionLoweringInfo&) const (/home/david/local/llvm18-assert/bin/clang-18+0x11b473e)
#14 0x00005594ccf62475 llvm::IRTranslator::runOnMachineFunction(llvm::MachineFunction&) (/home/david/local/llvm18-assert/bin/clang-18+0x4ce6475)
#15 0x00005594cb500ef7 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#16 0x00005594cbaf341e llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/david/local/llvm18-assert/bin/clang-18+0x387741e)
#17 0x00005594cbaf3669 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/david/local/llvm18-assert/bin/clang-18+0x3877669)
#18 0x00005594cbaf3fb5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/david/local/llvm18-assert/bin/clang-18+0x3877fb5)
#19 0x00005594cc3ea626 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/home/david/local/llvm18-assert/bin/clang-18+0x416e626)
#20 0x00005594cc9e7eb0 clang::CodeGenAction::ExecuteAction() (/home/david/local/llvm18-assert/bin/clang-18+0x476beb0)
#21 0x00005594ccc70a39 clang::FrontendAction::Execute() (/home/david/local/llvm18-assert/bin/clang-18+0x49f4a39)
#22 0x00005594ccbeb425 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/david/local/llvm18-assert/bin/clang-18+0x496f425)
#23 0x00005594ccd3b8c5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/david/local/llvm18-assert/bin/clang-18+0x4abf8c5)
#24 0x00005594c93a43a9 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/david/local/llvm18-assert/bin/clang-18+0x11283a9)
#25 0x00005594c939c0a3 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#26 0x00005594c93a04fd clang_main(int, char**, llvm::ToolContext const&) (/home/david/local/llvm18-assert/bin/clang-18+0x11244fd)
#27 0x00005594c92b1a9b main (/home/david/local/llvm18-assert/bin/clang-18+0x1035a9b)
#28 0x00007f9a769421ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#29 0x00007f9a7694228b call_init ./csu/../csu/libc-start.c:128:20
#30 0x00007f9a7694228b __libc_start_main ./csu/../csu/libc-start.c:347:5
#31 0x00005594c939ace5 _start (/home/david/local/llvm18-assert/bin/clang-18+0x111ece5)
```
</details>

Downstream issue: ziglang/zig#20680
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWUFv27gS_jXMhaAhkbJkHXJQ7HgbIN0tkqB7DChqJHNLkXok5ST99Q-U5MRyvOh2m3d5RZvaFDn85puPMyOGOycbDXCJlldoubngvd8Ze3kHz1IYTWl6UZrq5fITWEA0c9jvAN_efv2Mb-5wbSzm2EJnDWIFijYoKlAajX-V2rfjkOe2AY-9lZ0CjNgGI0o5t2KXJqTX37R50kRJ3T-TtncKUTqZGn-yK_w7fsZyFSG6xk87sIB_x9JhxK5xPE6qoJYa8N7ICqMkqo1BdIXYmk4L2TVGdBkhmmOUXY1rMLbghyXTRtnmxIVjGH_uQGNh2k4qqPCT9Dt8drZQXDckXmELVS-gWiiFCRkpQGxzcHtw96yBGzyQtZMOO8_FN-wtF_DGL1tX4LlUDrHr1yHXty23L4hd3w9rHsY1a0S3b49mrJ5HjViBEd3uTAuIbiu-lxWi27WpwtcQUdJZ8xcIP30N_8lymvIbaES3vylTcnVzDyoMc6VuzRNYqZuF6DrEiiRNwy5DqMpeqmptupetNe0dNA7R1WCWFYgVn7nYSQ03d1dhGlhE06CAtwmFtfzlDmrE1m-Dd9BI58EGh39h9u3tww8Gbu43B8PNVvHGPbwgmgffCufAemk0Rmm0cf5a-YeXRQP-Xn6HG30lfXB0ECNd4i_c-tvbh_PP2SaclwjRDNc8SG8xBuzL7XVxf41dX7bSY47LvgkH0ViPvcE77zsXwNEtottG-l1fLoRpj6I2j6V0rgeH6BZzXWGpheorGM66sNztcMnFt1GHdI274cQLcA4q7Exvx-GwkjtnhOQeKmx7jZ2wsvMT5FGZVd92r2KOFviLNY3lLea26VvQ3p2XoDKCqwl3vCJ8YBjRbSmD5l4PHREixmTKNGdTDCbQSk9M-RcmrQXFnwkPRzTgqqTFnGBSScdLBaS2AJgIBdwS7jwpoTYWSCADdIVJy6UmtVRANG9hduKDaSN4EAFpTQUKd1Jg0klBFOxBYTp-kY50EjBpa8tbIJ2RelDjRhtNFPAak7rlfkfAWm0wqeuOCKNDLEI6MRqTWhtiTa8rqRsS5mLSCqOdt73wxhKuJHfgMKl7_SR1RXxwziG2oXhKTER0PW5Agw0gp7EauO8tYESv9it-brjuCLftfnXumYaAbRrnpcScd8JhUkHZNw1Y4nstdYPYpqlKTOphnIwJdqStkoGHv81G32UT4h9SA6LbkXtMamH2YHkDv27KwqjtsPonFDnmw0GRiG6DJmuw1liiZDiqcT5GbKi6FRE7bjGpG90LsgfrpNGIbZIFXcSY1O6b7IipLBE7EN-I1KRp68FJZSypJG-0cV4GXk8iQOp2j0nNq8o62WCyeXz8bb1-_FR8vX7c_FncbenjenvzWNx_RmwTY2KCh77tXv2vSLqqs3S5MJg8Y2mP1D2e3XiBA32jbAaax3G6wMOfu16HAOOOO4cRzba9FkNO_BIGPnPNm5DSM2w0bk3Vh9aAZke70GxKHOxvLN7cPViuneLeHAzVh00QzQ59QDZaWSwW2EFT8155vOO6UmCnWkhZHOPoOYqiaLnMEyGgzlcZ_X8sT_hMRY6Gf69U0BMqqmWyPLJ7bGAcGckshkZyTOHHNL2f_5WrHj5NETgl7b7lSn2FkLlu2k7N2HhvqrDNja7NQM-JofX63nMPP7fB-itXoyPnTH5AxHM8pGY81Pd_V-QQvYqeE7GKl8kyNByvgWPHgcsTFmUMjsEVQzl8T6IK37bGtlwVr1X4p5T-erYH5_4ZLT_k6lTyh00O4IfAh60-itM4LpOMwYzTZHYY6pQm2fFhmKWgYcT2-g89EXZAfI7Mt2fp2Aj-qh4gTbK5HpbH2MtlFEGdvVfzAUhIy0cunMX-HvSi49YvhherM_bOJ5h0hovXLImPdbr9EpYeCsRPI_olGtkqy5J4LoHsFG6a5v8A7uehps1DPw19GNQ0zWdQV6dQ6_JYrQoaLl7Gz0egxzQ4Af_fAq7LuUTz2fFiwFOa4rF3GgBct9Jfje32H73veo_o6ujx5q0DutaN1IdsfzTlE_AK7D2Ed4E_uiAVN8tSR1Ond9gfzHoYGq0fTLrlujk35agM-ZDDQv6bl5iJ8eLE4ERCMYl9Vui1t72Te7iDeq39F29nKXVfT8d6KxXcvzgP7ZRana_GJ72W_-nhsTtZafnTY_dkpYdH5y3wdraogqGVeqxAgYcfLHxN5-9dWhvt-jYUleJDEmGcQjoI9lVlNJqpLIcMyuhM4CdyR-E9g-g9HPhefQi0LC2hjGbQ5n2nyCLO8mNoW2u0fwv8MbaPQpXXCWezPELnLWAJZUKXc8KGezB7o53nerydes_Z37vxQTUvT-uEzhIKnfVAomLlSsyQTxjfHNhPb-lzvO8c_CBx8rJeiTniWYeRM54wnmMh4seWy3k2PuqYhtfGKbEUh6M1G6Pr8WrzY4DHMV0xPhfJcg48FxFn-MDvOn4wRs3gv2-833txkiSDjXVQzrM_SqM5rqzcgz3bXdD0hM8oqatRAQdGpfYHvgZ6in-26QdwmCR1NeNw1lvktIx5XuIA89d3i9iS5-Vst0N7kNU5z9I8obHg-PFRyVI8Os-tfxRcqYEmvAgGXY_odhE-uhdXQecQ3erOq_Ga492ixQ6xIksQK9jbpvnppnRV4mGJ1NKf7jN-DMbJYHwhECtiukKsoG9BZtE5ozNPzjlx1jhLMsSK5Zvt-ETXXMASj1Y_QAMxCDhKACe_ahhu7N_d7w8_N-ZJj9UUD7e1iBX4u2yme6bhCovRKF1FF9UlqwLuC7iMMxqzPIrS1cXuMhJ1nbGaLUuarMqK18sSYshZVYtcRAm7kJc0okmUxXkcLxO6WogsrWqRlHQV02UkKEoiaLlUi-DqwtjmYoBymecpyy8UL0G54RdJlGp4mnBSipabC3s5XDmXfeNQEinpvHuz4qVXcDm9oGJtNOnME8X7IVlgJ7-DGy-iL3qrLv_97faIc39J_xsAAP__TfdMNw">