mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 13:28:06 +02:00
nir/algebraic: Add more lowering
This commit adds lowering options for the following opcodes: - nir_op_fmod - nir_op_bitfield_insert - nir_op_uadd_carry - nir_op_usub_borrow Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
b0d4ee520e
commit
d00abcc283
2 changed files with 10 additions and 0 deletions
|
|
@ -1446,6 +1446,10 @@ typedef struct nir_shader_compiler_options {
|
|||
bool lower_fpow;
|
||||
bool lower_fsat;
|
||||
bool lower_fsqrt;
|
||||
bool lower_fmod;
|
||||
bool lower_bitfield_insert;
|
||||
bool lower_uadd_carry;
|
||||
bool lower_usub_borrow;
|
||||
/** lowers fneg and ineg to fsub and isub. */
|
||||
bool lower_negate;
|
||||
/** lowers fsub and isub to fadd+fneg and iadd+ineg. */
|
||||
|
|
|
|||
|
|
@ -222,6 +222,12 @@ optimizations = [
|
|||
(('iadd', a, ('isub', 0, b)), ('isub', a, b)),
|
||||
(('fabs', ('fsub', 0.0, a)), ('fabs', a)),
|
||||
(('iabs', ('isub', 0, a)), ('iabs', a)),
|
||||
|
||||
# Misc. lowering
|
||||
(('fmod', a, b), ('fsub', a, ('fmul', b, ('ffloor', ('fdiv', a, b)))), 'options->lower_fmod'),
|
||||
(('bitfield_insert', a, b, c, d), ('bfi', ('bfm', d, c), b, a), 'options->lower_bitfield_insert'),
|
||||
(('uadd_carry', a, b), ('b2i', ('ult', ('iadd', a, b), a)), 'options->lower_uadd_carry'),
|
||||
(('usub_borrow', a, b), ('b2i', ('ult', a, b)), 'options->lower_usub_borrow'),
|
||||
]
|
||||
|
||||
# Add optimizations to handle the case where the result of a ternary is
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue