summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2018-11-09 14:13:35 -0800
committerFrancisco Jerez <[email protected]>2019-10-11 12:24:16 -0700
commit6cb764ae9cd0e6b533699f7e55cec401c10907b7 (patch)
tree2515c37758dc60d5d0ebe9232cf6f77bc15a8feb
parent31182e7aa95be5c999bda51b8a2575bed59fc621 (diff)
intel/eu/gen12: Add Gen12 opcode descriptions to the table.
Quite a lot of churn because the encoding of most hardware opcodes has changed unfortunately. v2: Split dot-product description fixes to separate patch (Caio). Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/intel/compiler/brw_eu.cpp71
1 files changed, 47 insertions, 24 deletions
diff --git a/src/intel/compiler/brw_eu.cpp b/src/intel/compiler/brw_eu.cpp
index 11bdddcc7cb..a8c3e55f65f 100644
--- a/src/intel/compiler/brw_eu.cpp
+++ b/src/intel/compiler/brw_eu.cpp
@@ -456,6 +456,7 @@ enum gen {
GEN9 = (1 << 7),
GEN10 = (1 << 8),
GEN11 = (1 << 9),
+ GEN12 = (1 << 10),
GEN_ALL = ~0
};
@@ -466,29 +467,49 @@ enum gen {
static const struct opcode_desc opcode_descs[] = {
/* IR, HW, name, nsrc, ndst, gens */
{ BRW_OPCODE_ILLEGAL, 0, "illegal", 0, 0, GEN_ALL },
- { BRW_OPCODE_MOV, 1, "mov", 1, 1, GEN_ALL },
- { BRW_OPCODE_SEL, 2, "sel", 2, 1, GEN_ALL },
- { BRW_OPCODE_MOVI, 3, "movi", 2, 1, GEN_GE(GEN45) },
- { BRW_OPCODE_NOT, 4, "not", 1, 1, GEN_ALL },
- { BRW_OPCODE_AND, 5, "and", 2, 1, GEN_ALL },
- { BRW_OPCODE_OR, 6, "or", 2, 1, GEN_ALL },
- { BRW_OPCODE_XOR, 7, "xor", 2, 1, GEN_ALL },
- { BRW_OPCODE_SHR, 8, "shr", 2, 1, GEN_ALL },
- { BRW_OPCODE_SHL, 9, "shl", 2, 1, GEN_ALL },
+ { BRW_OPCODE_MOV, 1, "mov", 1, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_MOV, 97, "mov", 1, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_SEL, 2, "sel", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_SEL, 98, "sel", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_MOVI, 3, "movi", 2, 1, GEN_GE(GEN45) & GEN_LT(GEN12) },
+ { BRW_OPCODE_MOVI, 99, "movi", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_NOT, 4, "not", 1, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_NOT, 100, "not", 1, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_AND, 5, "and", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_AND, 101, "and", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_OR, 6, "or", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_OR, 102, "or", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_XOR, 7, "xor", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_XOR, 103, "xor", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_SHR, 8, "shr", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_SHR, 104, "shr", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_SHL, 9, "shl", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_SHL, 105, "shl", 2, 1, GEN_GE(GEN12) },
{ BRW_OPCODE_DIM, 10, "dim", 1, 1, GEN75 },
- { BRW_OPCODE_SMOV, 10, "smov", 0, 0, GEN_GE(GEN8) },
- { BRW_OPCODE_ASR, 12, "asr", 2, 1, GEN_ALL },
- { BRW_OPCODE_ROR, 14, "ror", 2, 1, GEN_GE(GEN11) },
- { BRW_OPCODE_ROL, 15, "rol", 2, 1, GEN_GE(GEN11) },
- { BRW_OPCODE_CMP, 16, "cmp", 2, 1, GEN_ALL },
- { BRW_OPCODE_CMPN, 17, "cmpn", 2, 1, GEN_ALL },
- { BRW_OPCODE_CSEL, 18, "csel", 3, 1, GEN_GE(GEN8) },
+ { BRW_OPCODE_SMOV, 10, "smov", 0, 0, GEN_GE(GEN8) & GEN_LT(GEN12) },
+ { BRW_OPCODE_SMOV, 106, "smov", 0, 0, GEN_GE(GEN12) },
+ { BRW_OPCODE_ASR, 12, "asr", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_ASR, 108, "asr", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_ROR, 14, "ror", 2, 1, GEN11 },
+ { BRW_OPCODE_ROR, 110, "ror", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_ROL, 15, "rol", 2, 1, GEN11 },
+ { BRW_OPCODE_ROL, 111, "rol", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_CMP, 16, "cmp", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_CMP, 112, "cmp", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_CMPN, 17, "cmpn", 2, 1, GEN_LT(GEN12) },
+ { BRW_OPCODE_CMPN, 113, "cmpn", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_CSEL, 18, "csel", 3, 1, GEN_GE(GEN8) & GEN_LT(GEN12) },
+ { BRW_OPCODE_CSEL, 114, "csel", 3, 1, GEN_GE(GEN12) },
{ BRW_OPCODE_F32TO16, 19, "f32to16", 1, 1, GEN7 | GEN75 },
{ BRW_OPCODE_F16TO32, 20, "f16to32", 1, 1, GEN7 | GEN75 },
- { BRW_OPCODE_BFREV, 23, "bfrev", 1, 1, GEN_GE(GEN7) },
- { BRW_OPCODE_BFE, 24, "bfe", 3, 1, GEN_GE(GEN7) },
- { BRW_OPCODE_BFI1, 25, "bfi1", 2, 1, GEN_GE(GEN7) },
- { BRW_OPCODE_BFI2, 26, "bfi2", 3, 1, GEN_GE(GEN7) },
+ { BRW_OPCODE_BFREV, 23, "bfrev", 1, 1, GEN_GE(GEN7) & GEN_LT(GEN12) },
+ { BRW_OPCODE_BFREV, 119, "bfrev", 1, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_BFE, 24, "bfe", 3, 1, GEN_GE(GEN7) & GEN_LT(GEN12) },
+ { BRW_OPCODE_BFE, 120, "bfe", 3, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_BFI1, 25, "bfi1", 2, 1, GEN_GE(GEN7) & GEN_LT(GEN12) },
+ { BRW_OPCODE_BFI1, 121, "bfi1", 2, 1, GEN_GE(GEN12) },
+ { BRW_OPCODE_BFI2, 26, "bfi2", 3, 1, GEN_GE(GEN7) & GEN_LT(GEN12) },
+ { BRW_OPCODE_BFI2, 122, "bfi2", 3, 1, GEN_GE(GEN12) },
{ BRW_OPCODE_JMPI, 32, "jmpi", 0, 0, GEN_ALL },
{ BRW_OPCODE_BRD, 33, "brd", 0, 0, GEN_GE(GEN7) },
{ BRW_OPCODE_IF, 34, "if", 0, 0, GEN_ALL },
@@ -511,11 +532,11 @@ static const struct opcode_desc opcode_descs[] = {
{ BRW_OPCODE_FORK, 46, "fork", 0, 0, GEN6 },
{ BRW_OPCODE_GOTO, 46, "goto", 0, 0, GEN_GE(GEN8) },
{ BRW_OPCODE_POP, 47, "pop", 2, 0, GEN_LE(GEN5) },
- { BRW_OPCODE_WAIT, 48, "wait", 1, 0, GEN_ALL },
+ { BRW_OPCODE_WAIT, 48, "wait", 1, 0, GEN_LT(GEN12) },
{ BRW_OPCODE_SEND, 49, "send", 1, 1, GEN_ALL },
{ BRW_OPCODE_SENDC, 50, "sendc", 1, 1, GEN_ALL },
- { BRW_OPCODE_SENDS, 51, "sends", 2, 1, GEN_GE(GEN9) },
- { BRW_OPCODE_SENDSC, 52, "sendsc", 2, 1, GEN_GE(GEN9) },
+ { BRW_OPCODE_SENDS, 51, "sends", 2, 1, GEN_GE(GEN9) & GEN_LT(GEN12) },
+ { BRW_OPCODE_SENDSC, 52, "sendsc", 2, 1, GEN_GE(GEN9) & GEN_LT(GEN12) },
{ BRW_OPCODE_MATH, 56, "math", 2, 1, GEN_GE(GEN6) },
{ BRW_OPCODE_ADD, 64, "add", 2, 1, GEN_ALL },
{ BRW_OPCODE_MUL, 65, "mul", 2, 1, GEN_ALL },
@@ -545,7 +566,8 @@ static const struct opcode_desc opcode_descs[] = {
{ BRW_OPCODE_LRP, 92, "lrp", 3, 1, GEN_GE(GEN6) & GEN_LE(GEN10) },
{ BRW_OPCODE_MADM, 93, "madm", 3, 1, GEN_GE(GEN8) },
{ BRW_OPCODE_NENOP, 125, "nenop", 0, 0, GEN45 },
- { BRW_OPCODE_NOP, 126, "nop", 0, 0, GEN_ALL },
+ { BRW_OPCODE_NOP, 126, "nop", 0, 0, GEN_LT(GEN12) },
+ { BRW_OPCODE_NOP, 96, "nop", 0, 0, GEN_GE(GEN12) }
};
static enum gen
@@ -560,6 +582,7 @@ gen_from_devinfo(const struct gen_device_info *devinfo)
case 9: return GEN9;
case 10: return GEN10;
case 11: return GEN11;
+ case 12: return GEN12;
default:
unreachable("not reached");
}