diff --git a/src/intel/compiler/brw_eu_emit.c b/src/intel/compiler/brw_eu_emit.c index 2480724ed75..0e0064f0c9f 100644 --- a/src/intel/compiler/brw_eu_emit.c +++ b/src/intel/compiler/brw_eu_emit.c @@ -604,7 +604,7 @@ brw_alu3(struct brw_codegen *p, unsigned opcode, struct brw_reg dest, brw_eu_inst_set_3src_a1_dst_reg_file(devinfo, inst, phys_file(dest)); brw_eu_inst_set_3src_dst_reg_nr(devinfo, inst, phys_nr(devinfo, dest)); - brw_eu_inst_set_3src_a1_dst_subreg_nr(devinfo, inst, phys_subnr(devinfo, dest) / 8); + brw_eu_inst_set_3src_a1_dst_subreg_nr(devinfo, inst, phys_subnr(devinfo, dest)); brw_eu_inst_set_3src_a1_dst_hstride(devinfo, inst, to_3src_align1_dst_hstride(dest.hstride)); diff --git a/src/intel/compiler/brw_eu_inst.h b/src/intel/compiler/brw_eu_inst.h index 048cc5d9b3f..77c390b5ecd 100644 --- a/src/intel/compiler/brw_eu_inst.h +++ b/src/intel/compiler/brw_eu_inst.h @@ -508,7 +508,7 @@ FC(3src_a1_src0_hstride, /* 9+ */ 70, 69, /* 12+ */ 65, 64, devinfo->ver FDC(3src_a1_src0_vstride, /* 9+ */ 68, 67, /* 12+ */ 43, 43, 35, 35, devinfo->ver >= 10) FC(3src_a1_src0_hw_type, /* 9+ */ 66, 64, /* 12+ */ 42, 40, devinfo->ver >= 10) /* dst_reg_nr same in align16 */ -FC(3src_a1_dst_subreg_nr, /* 9+ */ 55, 54, /* 12+ */ 55, 54, devinfo->ver >= 10) +FD20(3src_a1_dst_subreg_nr, /* 9+ */ 55, 51, /* 12+ */ 55, 51, /* 20+ */ 55, 51, -1) FC(3src_a1_special_acc, /* 9+ */ 55, 52, /* 12+ */ 54, 51, devinfo->ver >= 10) /* aliases dst_subreg_nr */ /* Reserved 51:50 */ FC(3src_a1_dst_hstride, /* 9+ */ 49, 49, /* 12+ */ 48, 48, devinfo->ver >= 10) diff --git a/src/intel/compiler/brw_eu_validate.c b/src/intel/compiler/brw_eu_validate.c index b5391da32fc..7b7896a0bfb 100644 --- a/src/intel/compiler/brw_eu_validate.c +++ b/src/intel/compiler/brw_eu_validate.c @@ -2731,7 +2731,7 @@ brw_hw_decode_inst(const struct brw_isa_info *isa, inst->dst.file = brw_eu_inst_3src_a1_dst_reg_file(devinfo, raw); inst->dst.type = brw_eu_inst_3src_a1_dst_type(devinfo, raw); inst->dst.nr = brw_eu_inst_3src_dst_reg_nr(devinfo, raw); - inst->dst.subnr = brw_eu_inst_3src_a1_dst_subreg_nr(devinfo, raw) * 8; + inst->dst.subnr = brw_eu_inst_3src_a1_dst_subreg_nr(devinfo, raw); inst->dst.hstride = DST_STRIDE_3SRC(brw_eu_inst_3src_a1_dst_hstride(devinfo, raw)); inst->src[0].file = brw_eu_inst_3src_a1_src0_reg_file(devinfo, raw);