On Sat, Jun 9, 2018 at 4:13 AM, Jose Maria Casanova Crespo < jmcasan...@igalia.com> wrote:
> As the previous use of shuffle_32bit_load_result_to_64bit_data > had a source/destination overlap for 64-bit. Now a temporal destination > s/temporal/temporary/ With that, patches 10 and 11 are Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > is used for 64-bit cases to use shuffle_from_32bit_read that doesn't > handle src/dst overlaps. > --- > src/intel/compiler/brw_fs_nir.cpp | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/intel/compiler/brw_fs_nir.cpp > b/src/intel/compiler/brw_fs_nir.cpp > index 11b707e57a8..7e0ef2f34a9 100644 > --- a/src/intel/compiler/brw_fs_nir.cpp > +++ b/src/intel/compiler/brw_fs_nir.cpp > @@ -3350,6 +3350,7 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder > &bld, > unsigned base = nir_intrinsic_base(instr); > unsigned comp = nir_intrinsic_component(instr); > unsigned num_components = instr->num_components; > + fs_reg orig_dest = dest; > enum brw_reg_type type = dest.type; > > /* Special case fields in the VUE header */ > @@ -3365,6 +3366,7 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder > &bld, > */ > type = BRW_REGISTER_TYPE_F; > num_components *= 2; > + dest = bld.vgrf(type, num_components); > } > > for (unsigned int i = 0; i < num_components; i++) { > @@ -3373,10 +3375,8 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder > &bld, > } > > if (nir_dest_bit_size(instr->dest) == 64) { > - shuffle_32bit_load_result_to_64bit_data(bld, > - dest, > - retype(dest, type), > - instr->num_components); > + shuffle_from_32bit_read(bld, orig_dest, dest, 0, > + instr->num_components); > } > break; > } > -- > 2.17.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