[PATCH] D22556: Replace subregister uses when processing tied operands

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 12 17:40:13 PDT 2016


arsenm added a comment.

In https://reviews.llvm.org/D22556#511686, @nhaehnle wrote:

> Please see http://paste.ubuntu.com/22949830/ for a test case that gets broken by this.
>
> The issue is that
>
> %vreg8<def,tied3> = V_MAC_F32_e32 1132462080, %vreg3:sub3, %vreg3:sub2<tied0>
>
> becomes
>
> %vreg8<def,tied3> = V_MAC_F32_e32 1132462080, %vreg8:sub3, %vreg8<tied0>
>
> However, something like this change is still required to fix other bugs related to v_morveld/s.


This testcase and another related one I found are still broken with this, but I don't

In https://reviews.llvm.org/D22556#511686, @nhaehnle wrote:

> Please see http://paste.ubuntu.com/22949830/ for a test case that gets broken by this.
>
> The issue is that
>
> %vreg8<def,tied3> = V_MAC_F32_e32 1132462080, %vreg3:sub3, %vreg3:sub2<tied0>
>
> becomes
>
> %vreg8<def,tied3> = V_MAC_F32_e32 1132462080, %vreg8:sub3, %vreg8<tied0>
>
> However, something like this change is still required to fix other bugs related to v_morveld/s.


I think the problem with this testcase might instead be SIFoldOperands producing the subreg use on the tied operand. I'm not sure if this necessarily makes sense:
%vreg15<def,tied6> = V_MAC_F32_e64 0, %vreg14<kill>, 0, %vreg11:sub3, 0, %vreg11:sub2<tied0>, 0, 0, %EXEC<imp-use>; VGPR_32:%vreg15,%vreg14 VReg_128:%vreg11


https://reviews.llvm.org/D22556





More information about the llvm-commits mailing list