<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzNVttu2zgQ_Rr5ZSBDpnzTgx-yudVAggbubl8NihxJ3FCUwIuz7tfvUHIcp2gXBYoFAhiySJHDM3POHKns5HHzCY9Qh6NL2DVsgbfg7VGZGnwHomt7pRFc1yJofWiVhaqzUFf_FNk6blAeHGLrQKtnjKOGHxA46M5DV4HrldIOyuBBOeiMPl5Er2i5MrCcw6HubYz20ijRxJUvqKwEp4xA2G534zlNF7QcD2CL5bBpmmQ3SXY1Xj-hxbjZN2ewWwgOLzJJ8itIFn9oTYfTaHGTsHXjfe_oQcLu6Fcr56e18k0op7SJZixXz51BU5lAo9UyL6vlSmZVUa1lvs7zSuZVXqzWZcnkGhNWXGK6Hs6NCb9QTIIl0llO94SgRoOWe6qWiZi4c9iWVKD_D1keQ6dd8H3w-70yFRWMKrzXyK3Zs4KxbC-V67kXzZ6xVerSh0XOFvGaLykzIijW-AVBEGginmrN_Ui7g-ViZDKyTvkNCZ_IpfoH49-xlSyz8Vdy15ym2F1wJIS7Uhm6noqVtt6qPnJ3w1tZC5Om9N84Hv9q9Q3StOVWNOfntEP0gYajTIFCNSRg-nOeG41Huvv1IkwplTQWzh_7AYNr36XBchiDwTsGY3UGXmPFPiid3xFxmdb21MjaddSxCuWpgy6VfFawhMp27dhYhzbtbfc3Ck-WYJ7pGbU4p70_rsFF-jsusTOfezSxaYLHQQJv8WjoLcZZojl1vk47WntaFLM5G8jLYBS9RYeGaAGJnlOpJKC15F5dFQH8TITTUXkfXHYPD18f4Xa3-7yLlnY75EXJk-7e_HVsw6_3T7tsJEhokugwsc9Z3HfNjSGjdoK4NjWCxahKtAPFXZS0AWzREtHieIrnyNoTNhthPD3cXn25BRfKVsVKl6GmIH1nfQTwnmx65qaRq2lnaxpT8CgOoYPEwbOFJRKg5OLZWy7w5BZfPE2ADKSgV9YyelQ82a629Lbitg4t8RwPgo9O3iwi3wVjIkV9ZCNhq2uu9b3lfQNPceaRG14j2eCKXpjQdjIQqzT6bUgU41RT9iMYVFDd1SEecEtMx1vYGofWK8KRsCWQQ9F3wJ0yXKtvPE6fQFbBiNOqVTLPfgVPXPlz-7keOtgPb5vy9P0RtUVeEpUyKDE65qteqYKdGBCRT5Gc4kfK1ePN_dNfg57QyCS_G0NfmSNweVAiJkrOM2qHvCgoyeP3xugedOoB7REa1H0V9Fnx43UiN7ks8oJPeKBOsZsL754Eqzf_4XOjXX1vbcq5gBHHghXZatJs1uuFkPM5K-aLlcCs4oucnH8-X3GWifWaTzQvUbsNuW7CmMEXGELQPTnt5PcRqA3L2GzGaDDLZ2w9RbaSywKFyBjKYlkQ0diSr557emI3Q8jY6PRQEzVvDT8hlanaIA6ACaFXXg-D2IDUeoubi1fM60fmyLQjZ3n4_CexT6by-kUxGfBuBrD_AujPhdI>52907</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [amdgpu] compiling for gfx9 spills a LOT into 64 vgpr 
        </td>
    </tr>

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

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

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

<pre>
    Hey guys, I am trying to compile some llvmir for gfx908, it seems like it have a lot of spiils but is only trying to fit in 64 vgpr, which is weird since IIRC it should have 256 vgpr.

Here is the llvmir I use to compile: [ll file](https://gist.github.com/raikonenfnu/763bf67d0f9f8d3833fd3f3978bb2d8e)

Compiling with llc-13 will generate an [assembly file](https://gist.github.com/raikonenfnu/763bf67d0f9f8d3833fd3f3978bb2d8e#file-output__inference_learn_29220_dispatch_227-s-L5325-L5336) where we can see that it has 654 vgpr spill with 64 vgpr count.

```bash
/usr/bin/llc-13 -mtriple=amdgcn--amdhsa-amdgiz --march=amdgcn -mcpu=gfx908 /home/stanley/output__inference_learn_29220_dispatch_227.ll -filetype=asm

# output assembly file seen [here](https://gist.github.com/raikonenfnu/763bf67d0f9f8d3833fd3f3978bb2d8e#file-output__inference_learn_29220_dispatch_227-s-L5325-L5336)
```

I have also tried compiling with llc generated from [llvm-project linked in aomp](https://github.com/RadeonOpenCompute/llvm-project/tree/amd-stg-open/llvm), which would present a detailed error of:
```bash
./llc -mtriple=amdgcn--amdhsa-amdgiz --march=amdgcn -mcpu=gfx908 /home/stanley/output__inference_learn_29220_dispatch_227.ll -filetype=asm

LLVM ERROR: Error while trying to spill VGPR0 from class VGPR_32: Cannot scavenge register without an emergency spill slot!
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llc -mtriple=amdgcn--amdhsa-amdgiz --march=amdgcn -mcpu=gfx908 /home/stanley/output__inference_learn_29220_dispatch_227.ll -filetype=asm
1.      Running pass 'CallGraph Pass Manager' on module '/home/stanley/output__inference_learn_29220_dispatch_227.ll'.
2.      Running pass 'Prologue/Epilogue Insertion & Frame Finalization' on function '@__inference_learn_29220_dispatch_227'
```

Could there be some bug in the spill/register allocation code for AMDGPU backend?
Any advice/comments/guidance would be very helpful!


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVtuOozgQ_RryYhER0wnkIQ-9fZtI3ZpWZnZeI4ML8LYxyJdkM1-_VUCn06OZ1UirlVqKCDZ2-VSdUweKTp42n-DE6nByEb9hWyZa5u1JmZr5jpVd2ysNzHUtMK0PrbKs6iyrq7_XSU4blGcOoHVMqxegUSMOwATTnWddxVyvlHasCJ4pxzqjTxfRK1yuDFtdsUPdW4p2bFTZ0MojKCuZU6YEtt3uxnOaLmg5HsCXq2HTPEpuo-R6vH4CC7TZN2ewWxYcXGQSpdcsWv6hNR6Oo-VtxPPG-97hg4jf469Wzs9r5ZtQzHETzlihXjoDpjIBR9kqLapVJpNqXeUyzdO0kmmVrrO8KLjMIeLrS0w3w7mU8BFjIqwyXqR4jwhqMGCFx2oZwiScg7bAAv1_yFIKHXfB98Hv98pUWDCs8F6DsGbP15wne6lcL3zZ7DnPYhc_LlO-pGu6wsyQIKrxEViJoJF4rLXwI-2OrZYjk8Q65jckPJGL9Q_Gv2MrWiXjrxCumab4fXAohPtCGbxOxYpbb1VP3N2KVtaliWP8b5ygv1p9Z3HcCls25-e4o-wDDkeZMgzVoIDxz3lhNJzw7veLMMdUYiqcP_UDBte-S4OnbAzG3jFI1Rl4pYp9UDp_IOIyre3UyNp12LEK5NRBl0o-K1iyynbt2FiHNu5t9xeUHi3BvOAzbHGBe39eg4v0d0JCZz73YKhpgodBAm_xcOgt0CzSHDtfxx2unRZRNmcDOQ5G0VtwYJAWJsELLJVkYC26V1cRgF-JcD4q74PL7vHx2xO72-0-78jS7oa8MHnU3Zu_jm347eF5l4wElRolOkzsU077boQxaNSuRK5NDcwCqRLsQHFHkjYMWrBIdHma4jm09ogvRhjPj3fXX-6YC0WrqNJFqDFI31lPAN6Tjc_cnLiad7bGMQYncZQ6SBg8u7RIAitE-eKtKGFyiy8eJ5gMqKBX1hJ8tH62XW3xbSVsHVrkmQ5iH528BSHfBWOIop7YiHh2I7R-sKJv2DPNPAkjakAbzPCFydpOBmQVR_8ZEsaYasp_BgMLqrs60AF3yDTdsq1xYL1CHBFfMXQo_A64V0Zo9V3Q9ASyCqacVmXRVfI7eGjlr-3nZuhgP7xtiun7g7SFXkJKGZRIjvmqV6xgVw6I0KdQTvSRcv10-_D856AnMDJK78fQ1-bEhDyokhJF5xm1g14UlBT0vTG6B556AHtiDei-Cvqs-PE6k5tUrtO1mHnlNWzo_Y06QgUtby-c8vVbaQTssEEeP3_FJLA3Xl-Ms2D15l9ccTS3H41QOReAUC_5OslmzSbP8mWRr4o8y_JsWVRJUSZJllYF5PJKFmKmRQHaEdCIcwNHNoTAe0Q8Uxue8MWCY7BFuuD5HHgmV2soy4SDXK_WSCq06KHn_p3ZzQCJmhofaqThrblnqChVGxjqQvFFQDuxm4sX3Gw4fjPA_wdT6HDH">