summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTopi Pohjolainen <topi.pohjolainen@intel.com>2018-06-07 08:33:38 -0400
committerTopi Pohjolainen <topi.pohjolainen@intel.com>2018-06-08 05:44:10 -0400
commit5a18a5a0b3c3a922393a4ff3faedb79a49af739a (patch)
treee5fe552162e909b62625ca2b37046b7029fc6545
parent4ca09c64de22245f24d778b808c3afa4f36ff28f (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.c7
-rw-r--r--src/intel/compiler/brw_inst.h1
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)
/** @} */
/**