diff options
-rw-r--r-- | src/compiler/nir/nir.h | 24 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_move_comparisons.c | 26 |
2 files changed, 25 insertions, 25 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index f6086bd6c05..5a1f79515ad 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1374,6 +1374,30 @@ nir_tex_instr_is_query(const nir_tex_instr *instr) } } +static inline bool +nir_alu_instr_is_comparison(const nir_alu_instr *instr) +{ + switch (instr->op) { + case nir_op_flt: + case nir_op_fge: + case nir_op_feq: + case nir_op_fne: + case nir_op_ilt: + case nir_op_ult: + case nir_op_ige: + case nir_op_uge: + case nir_op_ieq: + case nir_op_ine: + case nir_op_i2b: + case nir_op_f2b: + case nir_op_inot: + case nir_op_fnot: + return true; + default: + return false; + } +} + static inline nir_alu_type nir_tex_instr_src_type(const nir_tex_instr *instr, unsigned src) { diff --git a/src/compiler/nir/nir_opt_move_comparisons.c b/src/compiler/nir/nir_opt_move_comparisons.c index 617c2ca9989..5da57dc9213 100644 --- a/src/compiler/nir/nir_opt_move_comparisons.c +++ b/src/compiler/nir/nir_opt_move_comparisons.c @@ -51,30 +51,6 @@ */ static bool -is_comparison(nir_op op) -{ - switch (op) { - case nir_op_flt: - case nir_op_fge: - case nir_op_feq: - case nir_op_fne: - case nir_op_ilt: - case nir_op_ult: - case nir_op_ige: - case nir_op_uge: - case nir_op_ieq: - case nir_op_ine: - case nir_op_i2b: - case nir_op_f2b: - case nir_op_inot: - case nir_op_fnot: - return true; - default: - return false; - } -} - -static bool move_comparison_source(nir_src *src, nir_block *block, nir_instr *before) { if (!src->is_ssa) @@ -84,7 +60,7 @@ move_comparison_source(nir_src *src, nir_block *block, nir_instr *before) if (src_instr->block == block && src_instr->type == nir_instr_type_alu && - is_comparison(nir_instr_as_alu(src_instr)->op)) { + nir_alu_instr_is_comparison(nir_instr_as_alu(src_instr))) { exec_node_remove(&src_instr->node); |