From 8b26a2d96d5806d698f827d5521cf75504dc3a85 Mon Sep 17 00:00:00 2001 From: Jose Maria Casanova Crespo Date: Sat, 9 Jun 2018 11:45:57 +0200 Subject: [PATCH] intel/fs: shuffle_from_32bit_read for 64-bit do_untyped_vector_read do_untyped_vector_read is used at load_ssbo and load_shared. The previous MOVs are removed because shuffle_from_32bit_read can handle storing the shuffle results in the expected destination just using the proper offset. Reviewed-by: Jason Ekstrand --- src/intel/compiler/brw_fs_nir.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 01c560e59f8..81c26321ed2 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -2434,16 +2434,8 @@ do_untyped_vector_read(const fs_builder &bld, BRW_PREDICATE_NONE); /* Shuffle the 32-bit load result into valid 64-bit data */ - const fs_reg packed_result = bld.vgrf(dest.type, iter_components); - shuffle_32bit_load_result_to_64bit_data( - bld, packed_result, read_result, iter_components); - - /* Move each component to its destination */ - read_result = retype(read_result, BRW_REGISTER_TYPE_DF); - for (int c = 0; c < iter_components; c++) { - bld.MOV(offset(dest, bld, it * 2 + c), - offset(packed_result, bld, c)); - } + shuffle_from_32bit_read(bld, offset(dest, bld, it * 2), + read_result, 0, iter_components); bld.ADD(read_offset, read_offset, brw_imm_ud(16)); } -- 2.11.0