[Mesa-dev] [PATCH 10/12] R600/SI: cleanup literal handling

Michel Dänzer michel at daenzer.net
Tue Feb 12 23:00:12 PST 2013


On Die, 2013-02-12 at 19:39 -0500, Tom Stellard wrote: 
> On Tue, Feb 12, 2013 at 06:13:22PM +0100, Christian König wrote:
> > From: Christian König <christian.koenig at amd.com>
> > 
> > Seems to be allot simpler, and also paves the
> > way for further improvements.

[...]

> > diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td
> > index 63ef9ef..e68bbe7 100644
> > --- a/lib/Target/R600/SIInstructions.td
> > +++ b/lib/Target/R600/SIInstructions.td
> > [...]
> > @@ -1180,7 +1141,7 @@ def : Pat<
> >                          VReg_32:$buf_idx_vgpr),
> >    (BUFFER_LOAD_FORMAT_XYZW imm:$attr_offset, 0, 1, 0, 0, 0,
> >                             VReg_32:$buf_idx_vgpr, SReg_128:$tlst,
> > -                           0, 0, (i32 SREG_LIT_0))
> > +                           0, 0, 0x80)
> 
> What does this 0x80 mean?

It's the encoding of inline constant 0, i.e. the same as SREG_LIT_0 was.


> > diff --git a/lib/Target/R600/SILowerControlFlow.cpp b/lib/Target/R600/SILowerControlFlow.cpp
> > index 3780e40..051f460 100644
> > --- a/lib/Target/R600/SILowerControlFlow.cpp
> > +++ b/lib/Target/R600/SILowerControlFlow.cpp
> > @@ -158,10 +158,10 @@ void SILowerControlFlowPass::SkipIfDead(MachineInstr &MI) {
> >            .addImm(0)
> >            .addImm(1)
> >            .addImm(1)
> > -          .addReg(AMDGPU::SREG_LIT_0)
> > -          .addReg(AMDGPU::SREG_LIT_0)
> > -          .addReg(AMDGPU::SREG_LIT_0)
> > -          .addReg(AMDGPU::SREG_LIT_0);
> > +          .addImm(0)
> > +          .addImm(0)
> > +          .addImm(0)
> > +          .addImm(0);

Because the EXP definition declares these operands as VReg_32, not
VSrc_32, this results in encoding 0 directly, i.e. VGPR0. It doesn't
really matter here for exporting to the NULL target, but then it might
be better to make that explicit by using an undefined value.


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the mesa-dev mailing list