Signed-off-by: Pierre Moreau <pierre.mor...@free.fr> --- src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index e032255178..57223d311c 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -975,8 +975,9 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) bld.setPosition(i, false); uint8_t size = i->getDef(0)->reg.size; - uint32_t mask = (1ULL << size) - 1; - assert(size <= 32); + uint8_t bitsize = size * 8; + uint32_t mask = (1ULL << bitsize) - 1; + assert(bitsize <= 32); uint64_t val = imm0.reg.data.u64; for (int8_t d = 0; i->defExists(d); ++d) { @@ -984,7 +985,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) assert(def->reg.size == size); newi = bld.mkMov(def, bld.mkImm((uint32_t)(val & mask)), TYPE_U32); - val >>= size; + val >>= bitsize; } delete_Instruction(prog, i); break; -- 2.13.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev