On Wed, Apr 11, 2018 at 12:20 AM, Iago Toral Quiroga <ito...@igalia.com> wrote:
> From: Jose Maria Casanova Crespo <jmcasan...@igalia.com> > > 16-bit immediates are replicated in each word of a 32-bit value > so we need to negate both. > --- > src/intel/compiler/brw_shader.cpp | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/src/intel/compiler/brw_shader.cpp b/src/intel/compiler/brw_ > shader.cpp > index 9cdf9fcb23d..c7edc60b63d 100644 > --- a/src/intel/compiler/brw_shader.cpp > +++ b/src/intel/compiler/brw_shader.cpp > @@ -581,7 +581,8 @@ brw_negate_immediate(enum brw_reg_type type, struct > brw_reg *reg) > return true; > case BRW_REGISTER_TYPE_W: > case BRW_REGISTER_TYPE_UW: > - reg->d = -(int16_t)reg->ud; > + case BRW_REGISTER_TYPE_HF: > + reg->ud ^= 0x80008000; > This is not correct for integers. We need to keep two separate cases. > return true; > case BRW_REGISTER_TYPE_F: > reg->f = -reg->f; > @@ -602,8 +603,6 @@ brw_negate_immediate(enum brw_reg_type type, struct > brw_reg *reg) > case BRW_REGISTER_TYPE_UV: > case BRW_REGISTER_TYPE_V: > assert(!"unimplemented: negate UV/V immediate"); > - case BRW_REGISTER_TYPE_HF: > - assert(!"unimplemented: negate HF immediate"); > case BRW_REGISTER_TYPE_NF: > unreachable("no NF immediates"); > } > -- > 2.14.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev