[Mesa-dev] [PATCH 2/3] R600/SI: Take target parameter for sample intrinsics.

Michel Dänzer michel at daenzer.net
Wed Jan 16 06:34:18 PST 2013


On Mit, 2013-01-16 at 12:16 +0100, Christian König wrote: 
> On 16.01.2013 10:42, Michel Dänzer wrote:
> > From: Michel Dänzer <michel.daenzer at amd.com>
> >
> >
> > Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> > ---
> >
> > This is a prerequisite for patch 3 (and probably more similar changes in the
> > future). Unfortunately, it introduces a couple of (non-fatal) error messages
> > such as below during the R600 target build. Tom or anyone, any ideas for
> > silencing these?
> 
> See below.
> 
> >
> > anonymous.105: 	(intrinsic_w_chain:v4f32 2651:iPTR, (imm:i32):$writemask, VReg_128:v4f32:$coord, SReg_256:v8i32:$rsrc, SReg_128:v4i32:$sampler, (imm:i32):$textureTarget)
> > Included from /home/daenzer/src/llvm-git/llvm/lib/Target/R600/AMDGPU.td:40:
> > Included from /home/daenzer/src/llvm-git/llvm/lib/Target/R600/AMDGPUInstructions.td:189:
> > Included from /home/daenzer/src/llvm-git/llvm/lib/Target/R600/SIInstrInfo.td:591:
> > /home/daenzer/src/llvm-git/llvm/lib/Target/R600/SIInstructions.td:1188:1: error: In anonymous.105: Pattern has dead named input: $textureTarget
> > def : Pat <
> > ^
> >
> >   lib/Target/R600/SIInstructions.td |    6 +++---
> >   lib/Target/R600/SIIntrinsics.td   |    2 +-
> >   2 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td
> > index cac42da..01c6ec1 100644
> > --- a/lib/Target/R600/SIInstructions.td
> > +++ b/lib/Target/R600/SIInstructions.td
> > @@ -1186,21 +1186,21 @@ def : Pat <
> >   
> >   /* int_SI_sample */
> >   def : Pat <
> > -  (int_SI_sample imm:$writemask, VReg_128:$coord, SReg_256:$rsrc, SReg_128:$sampler),
> > +  (int_SI_sample imm:$writemask, VReg_128:$coord, SReg_256:$rsrc, SReg_128:$sampler, imm:$textureTarget),
> >     (IMAGE_SAMPLE imm:$writemask, 0, 0, 0, 0, 0, 0, 0, VReg_128:$coord,
> >                   SReg_256:$rsrc, SReg_128:$sampler)
> >   >;
> 
> Not 100% sure, but try declaring it like this:
> 
> def : Pat <
> -  (int_SI_sample imm:$writemask, VReg_128:$coord, SReg_256:$rsrc, SReg_128:$sampler),
> +  (int_SI_sample imm:$writemask, VReg_128:$coord, SReg_256:$rsrc, SReg_128:$sampler, 0),
>     (IMAGE_SAMPLE imm:$writemask, 0, 0, 0, 0, 0, 0, 0, VReg_128:$coord,
>                   SReg_256:$rsrc, SReg_128:$sampler)
> >;

That results in failure to select the intrinsic at runtime.

I figured out how to leave the parameter unnamed, which prevents the
messages. See the v2 patches.

Thanks anyway,


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


More information about the mesa-dev mailing list