intel/compiler: Implement untyped atomic float min, max, and compare-swap dataport messages

v2: Split changes to the message type field to another patch.  Suggested
by Caio.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
This commit is contained in:
Ian Romanick
2018-04-18 14:02:33 -07:00
parent f347348f8a
commit d515c75463
14 changed files with 261 additions and 1 deletions

View File

@@ -421,6 +421,8 @@ static const char *const dp_dc1_msg_type_hsw[32] = {
[HSW_DATAPORT_DC_PORT1_ATOMIC_COUNTER_OP_SIMD4X2] =
"DC 4x2 atomic counter op",
[HSW_DATAPORT_DC_PORT1_TYPED_SURFACE_WRITE] = "DC typed surface write",
[GEN9_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_FLOAT_OP] =
"DC untyped atomic float op",
};
static const char *const aop[16] = {
@@ -441,6 +443,12 @@ static const char *const aop[16] = {
[BRW_AOP_PREDEC] = "predec",
};
static const char *const aop_float[4] = {
[BRW_AOP_FMAX] = "fmax",
[BRW_AOP_FMIN] = "fmin",
[BRW_AOP_FCMPWR] = "fcmpwr",
};
static const char * const pixel_interpolator_msg_types[4] = {
[GEN7_PIXEL_INTERPOLATOR_LOC_SHARED_OFFSET] = "per_message_offset",
[GEN7_PIXEL_INTERPOLATOR_LOC_SAMPLE] = "sample_position",
@@ -1797,6 +1805,11 @@ brw_disassemble_inst(FILE *file, const struct gen_device_info *devinfo,
simd_modes[msg_ctrl >> 4], msg_ctrl & 0xf);
break;
}
case GEN9_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_FLOAT_OP:
format(file, "SIMD%d,", (msg_ctrl & (1 << 4)) ? 8 : 16);
control(file, "atomic float op", aop_float, msg_ctrl & 0xf,
&space);
break;
default:
format(file, "0x%x", msg_ctrl);
}