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

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 12 18:28:41 PDT 2016


arsenm added a comment.

In https://reviews.llvm.org/D22556#514600, @arsenm wrote:

> 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/D23482 solves this. I wonder if it should be a verifier error to have an operand tied with another with different sub reg indices


https://reviews.llvm.org/D22556





More information about the llvm-commits mailing list