nir: define behavior of nir_op_bfm and nir_op_u/ibfe according to SM5 spec.
That is: the five least significant bits provide the values of 'bits' and 'offset' which is the case for all hardware currently supported by NIR and using the bfm/bfe instructions. This patch also changes the lowering of bitfield_insert/extract using shifts to not use bfm and removes the flag 'lower_bfm'. Tested-by: Eric Anholt <eric@anholt.net> Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:

committed by
Daniel Schürmann

parent
a74f256c58
commit
165b7f3a44
@@ -2282,18 +2282,16 @@ typedef struct nir_shader_compiler_options {
|
||||
bool lower_fmod;
|
||||
/** Lowers ibitfield_extract/ubitfield_extract to ibfe/ubfe. */
|
||||
bool lower_bitfield_extract;
|
||||
/** Lowers ibitfield_extract/ubitfield_extract to bfm, compares, shifts. */
|
||||
/** Lowers ibitfield_extract/ubitfield_extract to compares, shifts. */
|
||||
bool lower_bitfield_extract_to_shifts;
|
||||
/** Lowers bitfield_insert to bfi/bfm */
|
||||
bool lower_bitfield_insert;
|
||||
/** Lowers bitfield_insert to bfm, compares, and shifts. */
|
||||
/** Lowers bitfield_insert to compares, and shifts. */
|
||||
bool lower_bitfield_insert_to_shifts;
|
||||
/** Lowers bitfield_reverse to shifts. */
|
||||
bool lower_bitfield_reverse;
|
||||
/** Lowers bit_count to shifts. */
|
||||
bool lower_bit_count;
|
||||
/** Lowers bfm to shifts and subtracts. */
|
||||
bool lower_bfm;
|
||||
/** Lowers ifind_msb to compare and ufind_msb */
|
||||
bool lower_ifind_msb;
|
||||
/** Lowers find_lsb to ufind_msb and logic ops */
|
||||
|
Reference in New Issue
Block a user