diff options
author | Topi Pohjolainen <topi.pohjolainen@intel.com> | 2018-06-07 08:33:38 -0400 |
---|---|---|
committer | Topi Pohjolainen <topi.pohjolainen@intel.com> | 2018-06-08 05:44:10 -0400 |
commit | 5a18a5a0b3c3a922393a4ff3faedb79a49af739a (patch) | |
tree | e5fe552162e909b62625ca2b37046b7029fc6545 | |
parent | 4ca09c64de22245f24d778b808c3afa4f36ff28f (diff) |
intel/compiler/icl: Fix src0 for send/sendc
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
-rw-r--r-- | src/intel/compiler/brw_eu_emit.c | 7 | ||||
-rw-r--r-- | src/intel/compiler/brw_inst.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/intel/compiler/brw_eu_emit.c b/src/intel/compiler/brw_eu_emit.c index ee5a048bca..1602a0c3d0 100644 --- a/src/intel/compiler/brw_eu_emit.c +++ b/src/intel/compiler/brw_eu_emit.c @@ -191,7 +191,12 @@ brw_set_src0(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg) brw_inst_set_src0_negate(devinfo, inst, reg.negate); brw_inst_set_src0_address_mode(devinfo, inst, reg.address_mode); - if (reg.file == BRW_IMMEDIATE_VALUE) { + if (devinfo->gen >= 11 && + (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SEND || + brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SENDC)) { + brw_inst_set_send_src0_reg_file(devinfo, inst, reg.file); + brw_inst_set_src0_da_reg_nr(devinfo, inst, reg.nr); + } else if (reg.file == BRW_IMMEDIATE_VALUE) { if (reg.type == BRW_REGISTER_TYPE_DF || brw_inst_opcode(devinfo, inst) == BRW_OPCODE_DIM) brw_inst_set_imm_df(devinfo, inst, reg.df); diff --git a/src/intel/compiler/brw_inst.h b/src/intel/compiler/brw_inst.h index 8663c1b7f5..f8a4fddd22 100644 --- a/src/intel/compiler/brw_inst.h +++ b/src/intel/compiler/brw_inst.h @@ -509,6 +509,7 @@ FF(null_rt, /* 4-7: */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 8: */ 80, 80) /* actually only Gen11+ */ FC(base_mrf, 27, 24, devinfo->gen < 6); +F8(send_src0_reg_file, /* 4+ */ 38, 37, /* 8+ */ 42, 41) /** @} */ /** |