intel/brw: List all instructions that have BranchCtrl bit

Previously this bit was not clearly documented in PRMs, but gfx12 PRMs
finally list all the instructions where it is present.

Although it's unclear if it's functional for anything other than "if",
"else", and "goto", we probably still should acknowledge its existence
in other instructions.

Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31747>
This commit is contained in:
Sviatoslav Peleshko 2024-10-19 15:39:47 +03:00 committed by Marge Bot
parent ab1479ae6a
commit aea7366613

View file

@ -61,8 +61,26 @@ brw_has_uip(const struct intel_device_info *devinfo, enum opcode opcode)
static bool
has_branch_ctrl(const struct intel_device_info *devinfo, enum opcode opcode)
{
return opcode == BRW_OPCODE_IF ||
opcode == BRW_OPCODE_ELSE;
switch (opcode) {
case BRW_OPCODE_IF:
case BRW_OPCODE_ELSE:
case BRW_OPCODE_GOTO:
case BRW_OPCODE_BREAK:
case BRW_OPCODE_CALL:
case BRW_OPCODE_CALLA:
case BRW_OPCODE_CONTINUE:
case BRW_OPCODE_ENDIF:
case BRW_OPCODE_HALT:
case BRW_OPCODE_JMPI:
case BRW_OPCODE_RET:
case BRW_OPCODE_WHILE:
case BRW_OPCODE_BRC:
case BRW_OPCODE_BRD:
/* TODO: "join" should also be here if added */
return true;
default:
return false;
}
}
static bool