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

    <tr>
        <th>Summary</th>
        <td>
            Crash when trying to compile `ggml-cuda.cu` from llama.cpp
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          sin-ack
      </td>
    </tr>
</table>

<pre>
    Backtrace:

```
Call parameter type does not match function signature!
  %StackGuardSlot = alloca ptr, align 8, addrspace(5)
 ptr  call void @llvm.stackprotector(ptr %8, ptr addrspace(5) %StackGuardSlot)
in function _ZL13mul_mat_vec_qILi4ELi32ELi4E10block_q4_0Li2EXadL_ZL17vec_dot_q4_0_q8_1PKvPK10block_q8_1RKiEEEvS2_S2_Pfiiii
LLVM ERROR: Broken function found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc ggml-cuda.cu.ll
1.      Running pass 'CallGraph Pass Manager' on module 'ggml-cuda.cu.ll'.
2.      Running pass 'Module Verifier' on function '@_ZL13mul_mat_vec_qILi4ELi32ELi4E10block_q4_0Li2EXadL_ZL17vec_dot_q4_0_q8_1PKvPK10block_q8_1RKiEEEvS2_S2_Pfiiii'
 #0 0x00007f92af85a06e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xc5a06e)
 #1 0x00007f92af857a2b llvm::sys::RunSignalHandlers() (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xc57a2b)
 #2 0x00007f92af857ba6 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xc57ba6)
 #3 0x00007f92ae675dc0 (/lib64/libc.so.6+0x3ddc0)
 #4 0x00007f92ae6c5d9c __pthread_kill_implementation /var/tmp/portage/sys-libs/glibc-2.38-r10/work/glibc-2.38/nptl/pthread_kill.c:44:76
 #5 0x00007f92ae675d12 gsignal /var/tmp/portage/sys-libs/glibc-2.38-r10/work/glibc-2.38/signal/../sysdeps/posix/raise.c:27:6
 #6 0x00007f92ae65e4ed abort /var/tmp/portage/sys-libs/glibc-2.38-r10/work/glibc-2.38/stdlib/abort.c:81:7
 #7 0x00007f92af40ffb7 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x80ffb7)
 #8 0x00007f92af7921ca (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xb921ca)
 #9 0x00007f92afa55763 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xe55763)
#10 0x00007f92af9bc3bc llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xdbc3bc)
#11 0x00007f92b0f79ca9 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x2379ca9)
#12 0x00007f92af9bcd51 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0xdbcd51)
#13 0x0000560f4c6f11e8 (/usr/lib/llvm/17/bin/llc+0x1b1e8)
#14 0x0000560f4c6e6114 main (/usr/lib/llvm/17/bin/llc+0x10114)
#15 0x00007f92ae65feea __libc_start_call_main /var/tmp/portage/sys-libs/glibc-2.38-r10/work/glibc-2.38/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#16 0x00007f92ae65ffa5 call_init /var/tmp/portage/sys-libs/glibc-2.38-r10/work/glibc-2.38/csu/../csu/libc-start.c:128:20
#17 0x00007f92ae65ffa5 __libc_start_main /var/tmp/portage/sys-libs/glibc-2.38-r10/work/glibc-2.38/csu/../csu/libc-start.c:347:5
#18 0x0000560f4c6e64e1 _start (/usr/lib/llvm/17/bin/llc+0x104e1)
[1]    15924 IOT instruction  llc ggml-cuda.cu.ll
```

LLVM IR file: [ggml-cuda.cu.ll.gz](https://github.com/llvm/llvm-project/files/14478006/ggml-cuda.cu.ll.gz)

The IR was generated using Clang 17.0.6 and hipBLAS 5.7.1, from `ggml-cuda.cu` in https://github.com/ggerganov/llama.cpp/commit/67be2ce1015d070b3b2cd488bcb041eefb61de72

<details>
<summary>Command used to generate the IR</summary>

`/usr/lib/llvm/17/bin/clang++ -DGGML_CUDA_DMMV_X=32 -DGGML_CUDA_MMV_Y=1 -DGGML_USE_CUBLAS -DGGML_USE_HIPBLAS -DK_QUANTS_PER_ITERATION=2 -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -D__HIP_PLATFORM_AMD__=1 -D__HIP_PLATFORM_HCC__=1 -I/labs/llama.cpp/. -isystem /usr/include/rocblas --rocm-device-lib-path=/usr/lib/amdgcn/bitcode/ -O3 -DNDEBUG -std=gnu++11 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi -march=native -mllvm -amdgpu-early-inline-all=true -mllvm -amdgpu-function-calls=false -x hip -MD -MT CMakeFiles/ggml.dir/ggml-cuda.cu.o -o ggml-cuda.cu.ll -S /labs/llama.cpp/ggml-cuda.cu -emit-llvm`

</details>

<details>
<summary><code>clang --version</code></summary>

```
clang version 17.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/17/bin
Configuration file: /etc/clang/x86_64-pc-linux-gnu-clang.cfg
```

</details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WFtz66oZ_TXkhUGD0NUPeXB8ycnsZMd1kpPTvmgQwjINQtqAspP--g7IsS0nPZeO25lMLAFa3-LT-hYgaoyoFeeXILkCyfyC9nbb6ksjFKLs5aJsq_fLK8perKaMg2gK8Bzgj_8p3v352xmVEnZU04ZbrqF97zisWm6gai1sqGVbuOkVs6JV0AWlttcckHB4GkJAkgdL2ct1T3X1IFsLQTSHVMqWUdhZDcgMUilqBXN_WVXadI4VyRNAJjuYzmoImaPy2ooKghhL-doExiF3urWc2VYDkrtxgCQeyl2fwn2ms48h1GEixT9uw6jpZdFQW7xyVvy4uRXx4lZEZOEuQlzKlr0UP-IC3wqy-I1Wt-6ZzI2tWus7ih95Ea6-va6-7YfnRbj-JhaLxesDKR5IsdoIIcQQ__b21zu4WK_v1yCawivdvvAjRpu2V5WbFWubTkjqG2nZasurfbZXt4vpwwKavmyEhRSWfQ0171ptoW3h1trOuJdNloAsa2G3fRmwtgFk6ZK5-0Gdbv_JmQVkKYzpuQFkCamqoFBM9hWHdssh09RsYfmhoGAI7xMLq77p9pLCAcCTlW5rTRtIdd03XFlHAkrJYF03ErG-ogHrAymHR0L3yLpXSqgadtQYCEjmVHitabeFK9dyRxWtuQYkg62CTVv1krthp4Ak21EjX4HeDc_9yrXYiD3aPuWAZCDG_2cpkGyneEAiDPEbxhhnmwmhmzyhOOXQv6poCqKpeTfDxUoLZX3yH_Ug9cMgTX8WrbGa0waQ1AlIKDsUQg7IsjfavXdRHkQQZoAsS6EAWQbB0JnGw6-TKAqzwLSAXOE35hkdihSQKDyhnFFSfkV53asHZxbyF6oqybXxdM7EygUdsSKnrEqanilUSdNRqOg4FE-zpGJ4F-oIhwWmDVKPEVUVwyOIeAzBkmrCYFF0dqs5rYoXIWUhmk5yV0t0J9XlK3UTsU0HyNJVPK05IEvzbpAUpSvi2sVFJIhypEMMyPJnq19G7YAsVWelAziKFTAQTeMYRNMsPZBMPs0zJLD2C4A8H50B7-NFmHdT8c54RCPeAFlqKgz3BEkGoukRv3TML-Exrwa_PCM7Ww3C8bieRh66PB1oZCPlxXizKbNzKC_3SCPZ5KNQ2YSEjJ4jVOmRRqEmo1A0SbI0Okco7pH2oZyfjD1wUrKoZEeGsly59eBjORgcr1f3arkz8ZEXHhrTM3lN5fmMCB87YIk32YTRs4QikYcaxSKnyamS8Cg5kteUve_WiEOabppO7lM1StCwIJ41PVUSjih_-GOS4k3M0k0Y8vxPhZKSecywDHk-gozHkDwNwxg2VKi_hovDMB7hnlhcsuGcwqJwDlAYS7Ut3Ia02EU6k6cw03-2u50rfxU52DrDce4cHZifmt9mQxO_ey6EEmc0wCOyw6Xv9Ay9G4Ykd9aMD8yyr5iNcvo_S-eXDKPYrRvJgWB-KqaYh3Cg9hflFPMj5SdXIUjmEEIYJhMSw5v7RyiUsbof9pr_eTt8chw7OivcrOFGSHd8gyC5Onk4qP8Fkjkg-V_e9TtMl98wjrMc49Q99Rl7PzP__3HLHZ2f1MCaK66p5RXsjdtszyRVNQyzAAepP0dsRXd1O32ASZAFoduQbnTbQJDi4yggxVCo3zuy1DXXNVXtq58BbWjAOqcV1jaNcPNIs5ITxkMcJhXOcBmVhFVxnpesxHHI-aZMw4pnZHT2jWYVt1RIA6LFvsn0TUP1O4gWs7Zp3Bx6wyt3pPqYrD8U3axBNHMa3Q8_PVb_kXiYyxUgV4BcQTS_vr67LWZP82kxv7v7tfgNRPOIjNpd899BNA8_Wp8eFsXsyaf3qOWXm9Wu6Vvxt6fp98eHYrVYFzePi_X08eb-O4jmDre4_v5UPNw_rWcLd_fb_WrxfXcPonmKsWt1YMXqdvq4vF_fFdO7eVHsCJx0_TKbfXTduMlSX7THbyqASJh3Y3kD95nZHTLd1q5lpaQGIqRb1qCKvwrGXe2jjtotiOYn2aRNVTPlU2lZ6yEguo8gmn-fL66eriEytgLRvFb9kOEwhOi5EcapFFWcSar9ZtocNatWc9trBdEzlRKiZ_5mNYXoueMVVVYwiJ4ZNRb96KnrVi3qlRMH2p8i0XOvNKdsS0vJkWOGSs3py1cd-2Af8Tvd2ta-d9x8xEaGNwKihmrmkqCoFa8cosaJCSKXhK5HnGr5joSSQnFEpQTR3Or-07APjsgtDQZE8w2VhkP05moUors5RHePcHZHX_hyZwquRoNK6FNTaCFqT_0Logf49Zs_HggRb4RFvhjGJjdU06d6_FOFCqKZF0G08DUFEXrl2ri9nwfd9f1RvR757gCzA9nZ2c77qK65dS78lqdFGqOOISlU_4ac1Hb26E5TsGkr7nZecDi--K4bZSyVkldzob2T_75HDJ_kWrURdT_I9bAGkCW37OAiyy_oIN8XsE39O4vLad4vqsuomkQTesEvwwxPkijHOL7YXpZkgjmZpFESb1K6iRnPS1pNaBiznGcJuxCXBJMYRzjGWYxxHISkiqKsSmNMNjQPIxBj3lAhA_81r9X1hf_mdJlHWZZdSFpyafw3TEIU_wl9JyAEJPMLfenXrbKvDYixFMaaA4oVVvLLmf9K9XPLFbT63S1Gtt19P-NfLTh-Idrr9KLX8vK__2bmp_DvAAAA__8K7nin">