[Mesa-dev] [PATCH 2/3] intel/vec4: Fix nir_op_b2[fi] with 64-bit result

Ian Romanick idr at freedesktop.org
Thu Oct 11 18:21:28 UTC 2018


On 10/11/2018 08:38 AM, Jason Ekstrand wrote:
> ---
>  src/intel/compiler/brw_vec4_nir.cpp | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp
> index eaf1754b006..5ccfd1f8940 100644
> --- a/src/intel/compiler/brw_vec4_nir.cpp
> +++ b/src/intel/compiler/brw_vec4_nir.cpp
> @@ -1586,7 +1586,12 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
>  
>     case nir_op_b2i:
>     case nir_op_b2f:
> -      emit(MOV(dst, negate(op[0])));
> +      if (nir_dest_bit_size(instr->dest.dest) > 32) {
> +         assert(dst.type == BRW_REGISTER_TYPE_DF);
> +         emit_conversion_to_double(dst, negate(op[0]), false);
> +      } else {
> +         emit(MOV(dst, negate(op[0])));
> +      }

I wrote almost the same patch, but I split nir_op_b2i and nir_op_b2f
handling and omitted the assert.  I was never able to get the
then-clause to trigger.  Were you able to get that to happen?

>        break;
>  
>     case nir_op_f2b:
> 



More information about the mesa-dev mailing list