The SDWA gfx9 support broke VI, this fixes the assert at least.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
This patch fixes the bug I sent to llvm-commits, https://bugs.freedesktop.org/show_bug.cgi?id=101561
Tested-by: Nick Sarnie <commendsarnex@gmail.com>
Thanks,
Sarnex
Hi,
I have no access to bug report: https://bugs.freedesktop.org/show_bug.cgi?id=101561
Can you send me failing .ll?
Thanks
This change should in fact fix problem, but it is only workaround.
Ultimately problem is that instruction V_CVT_U32_F32 allow omod operand (see SIInstrInfo.td:1435). In fact this operand shouldn't be allowed here.
This should work as quickfix for assert if you need this. But I think it is better to provide full fix.
lib/Target/AMDGPU/SIPeepholeSDWA.cpp | ||
---|---|---|
718 | This is also no reason to use hasModifiersSet. That is a convenience wrapper when you don't have the operand, you can check the value of it directly here |
At the moment this is more than an assert fix, we have broken VI in favour of GFX9 which nobody has. Please get a workaround, revert or fix into llvm master asap.
This is also no reason to use hasModifiersSet. That is a convenience wrapper when you don't have the operand, you can check the value of it directly here