How did you test this? I'm like 99% sure it's wrong. (But I'm avoiding saying how it's wrong so that you don't just fix it to match what I say, but instead work it out yourself by doing the tests that you should have been doing in the first place. Or prove me wrong.)
On Thu, May 29, 2014 at 3:43 PM, Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> wrote: > Signed-off-by: Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> > --- > src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > index 68b9a6d..a56756c 100644 > --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp > @@ -556,6 +556,20 @@ ConstantFolding::expr(Instruction *i, > } > break; > } > + case OP_BFIND: { > + int shift = 0; > + if (i->subOp == NV50_IR_SUBOP_BFIND_SAMT) > + shift = 32 - (b->data.u32 & 0xff); > + switch (i->dType) { > + case TYPE_S32: > + res.data.s32 = util_last_bit_signed(a->data.s32 >> shift)- 1; break; > + case TYPE_U32: > + res.data.u32 = util_last_bit(a->data.u32 >> shift) -1; break; > + default: > + return; > + } > + break; > + } > default: > return; > } > -- > 1.8.4.5 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev