summaryrefslogtreecommitdiffstats
path: root/src/intel/compiler/brw_fs_nir.cpp
diff options
context:
space:
mode:
authorJose Maria Casanova Crespo <[email protected]>2018-03-19 15:03:17 +0100
committerJose Maria Casanova Crespo <[email protected]>2018-04-20 13:30:12 +0200
commiteb96bd57c71dba81e81c61f30ff8f4c5be17440f (patch)
treeca40f46d886b5bb25b7c24c9aaa785c8bf9bb7f5 /src/intel/compiler/brw_fs_nir.cpp
parent24fb3e6aa166b3afe906eb2845077766075189ed (diff)
i965/fs: retype offset_reg to UD at load_ssbo
All operations with offset_reg at do_vector_read are done with UD type. So copy propagation was not working through the generated MOVs: mov(8) vgrf9:UD, vgrf7:D This change allows removing the MOV generated for reading the first components for 16-bit and 64-bit ssbo reads with non-constant offsets. Reviewed-by: Iago Toral Quiroga <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs_nir.cpp')
-rw-r--r--src/intel/compiler/brw_fs_nir.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index a830bb9fcd6..9698a0111ef 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -4146,7 +4146,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
if (const_offset) {
offset_reg = brw_imm_ud(const_offset->u32[0]);
} else {
- offset_reg = get_nir_src(instr->src[1]);
+ offset_reg = retype(get_nir_src(instr->src[1]), BRW_REGISTER_TYPE_UD);
}
/* Read the vector */