mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
nir: Lower [su]dot_4x8_[ui]add_sat to [su]dot_4x8_[ui]add
Since nir_opt_algebraic runs on its own results, if the driver doesn't have [su]dot_4x8_[ui]add then the [su]dot_4x8_[ui]add lowering rules will kick in and lower that to what we had originally. Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533>
This commit is contained in:
parent
09fc5e1c4d
commit
d2ffcb6092
1 changed files with 3 additions and 3 deletions
|
|
@ -321,15 +321,15 @@ optimizations.extend([
|
|||
# overflowing. 0x100000000 - 0x3f804 = 0xfffc07fc. If c is a constant
|
||||
# that is less than 0xfffc07fc, then the result cannot overflow ever.
|
||||
(('udot_4x8_uadd_sat', a, b, '#c(is_ult_0xfffc07fc)'), ('udot_4x8_uadd', a, b, c)),
|
||||
(('udot_4x8_uadd_sat', a, b, c), ('uadd_sat', udot_4x8_a_b, c), '!options->has_udot_4x8_sat'),
|
||||
(('udot_4x8_uadd_sat', a, b, c), ('uadd_sat', ('udot_4x8_uadd', a, b, 0), c), '!options->has_udot_4x8_sat'),
|
||||
|
||||
# For the signed dot-product, the largest positive value is 4*(-128*-128) =
|
||||
# 0x10000, and the largest negative value is 4*(-128*127) = -0xfe00. We
|
||||
# don't have to worry about that intermediate result overflowing or
|
||||
# underflowing.
|
||||
(('sdot_4x8_iadd_sat', a, b, c), ('iadd_sat', sdot_4x8_a_b, c), '!options->has_sdot_4x8_sat'),
|
||||
(('sdot_4x8_iadd_sat', a, b, c), ('iadd_sat', ('sdot_4x8_iadd', a, b, 0), c), '!options->has_sdot_4x8_sat'),
|
||||
|
||||
(('sudot_4x8_iadd_sat', a, b, c), ('iadd_sat', sudot_4x8_a_b, c), '!options->has_sudot_4x8_sat'),
|
||||
(('sudot_4x8_iadd_sat', a, b, c), ('iadd_sat', ('sudot_4x8_iadd', a, b, 0), c), '!options->has_sudot_4x8_sat'),
|
||||
|
||||
(('udot_2x16_uadd_sat', a, b, c), ('uadd_sat', udot_2x16_a_b, c), '!options->has_dot_2x16'),
|
||||
(('sdot_2x16_iadd_sat', a, b, c), ('iadd_sat', sdot_2x16_a_b, c), '!options->has_dot_2x16'),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue