pan/bi: Add class-specific ops

For disambiguating things like min and max within the MINMAX class.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4061>
This commit is contained in:
Alyssa Rosenzweig 2020-03-03 07:58:05 -05:00 committed by Marge Bot
parent b5bdd89444
commit 44ebc275fe
1 changed files with 26 additions and 0 deletions

View File

@ -118,6 +118,23 @@ struct bi_load_vary {
bool flat;
};
/* Opcodes within a class */
enum bi_minmax_op {
BI_MINMAX_MIN,
BI_MINMAX_MAX
};
enum bi_bitwise_op {
BI_BITWISE_AND,
BI_BITWISE_OR,
BI_BITWISE_XOR
};
enum bi_round_op {
BI_ROUND_MODE, /* use round mode */
BI_ROUND_ROUND /* i.e.: fround() */
};
typedef struct {
struct list_head link; /* Must be first */
enum bi_class type;
@ -150,6 +167,15 @@ typedef struct {
* int). Zero if there is no destination. Bitsize included */
nir_alu_type dest_type;
/* A class-specific op from which the actual opcode can be derived
* (along with the above information) */
union {
enum bi_minmax_op minmax;
enum bi_bitwise_op bitwise;
enum bi_round_op round;
} op;
/* Union for class-specific information */
union {
enum bifrost_minmax_mode minmax;