nir: Rename replicated-result dot-product instructions
All these instructions replicate the result of a N-component dot-product to a vec4. Naming them fdot_replicatedN gives the impression that are some sort of abstract dot-product that replicates the result to a vecN. They also deviate from fdph_replicated... which nobody would reasonably consider naming fdot_replicatedh. Naming these opcodes fdotN_replicated more closely matches what they are, and it matches the pattern of fdph_replicated. I believe that the only reason these opcodes were named this way was because it simplified the implementation of the binop_reduce function in nir_opcodes.py. I made some fairly simple changes to that function, and I think the end result is ok. The bulk of the changes come from the sed rename: sed --in-place -e 's/fdot_replicated\([234]\)/fdot\1_replicated/g' \ $(grep -r 'fdot_replicated[234]' src/) v2: Use a named parameter to binop_reduce instead of using isinstance(name, str). Suggested by Jason. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5725>
This commit is contained in:
@@ -2074,9 +2074,9 @@ late_optimizations = [
|
||||
|
||||
(('~fadd', ('fneg(is_used_once)', ('fsat(is_used_once)', 'a(is_not_fmul)')), 1.0), ('fsat', ('fadd', 1.0, ('fneg', a)))),
|
||||
|
||||
(('fdot2', a, b), ('fdot_replicated2', a, b), 'options->fdot_replicates'),
|
||||
(('fdot3', a, b), ('fdot_replicated3', a, b), 'options->fdot_replicates'),
|
||||
(('fdot4', a, b), ('fdot_replicated4', a, b), 'options->fdot_replicates'),
|
||||
(('fdot2', a, b), ('fdot2_replicated', a, b), 'options->fdot_replicates'),
|
||||
(('fdot3', a, b), ('fdot3_replicated', a, b), 'options->fdot_replicates'),
|
||||
(('fdot4', a, b), ('fdot4_replicated', a, b), 'options->fdot_replicates'),
|
||||
(('fdph', a, b), ('fdph_replicated', a, b), 'options->fdot_replicates'),
|
||||
|
||||
(('~flrp', ('fadd(is_used_once)', a, b), ('fadd(is_used_once)', a, c), d), ('fadd', ('flrp', b, c, d), a)),
|
||||
@@ -2252,9 +2252,9 @@ distribute_src_mods = [
|
||||
# Try to remove some spurious negations rather than pushing them down.
|
||||
(('fmul', ('fneg', a), ('fneg', b)), ('fmul', a, b)),
|
||||
(('ffma', ('fneg', a), ('fneg', b), c), ('ffma', a, b, c)),
|
||||
(('fdot_replicated2', ('fneg', a), ('fneg', b)), ('fdot_replicated2', a, b)),
|
||||
(('fdot_replicated3', ('fneg', a), ('fneg', b)), ('fdot_replicated3', a, b)),
|
||||
(('fdot_replicated4', ('fneg', a), ('fneg', b)), ('fdot_replicated4', a, b)),
|
||||
(('fdot2_replicated', ('fneg', a), ('fneg', b)), ('fdot2_replicated', a, b)),
|
||||
(('fdot3_replicated', ('fneg', a), ('fneg', b)), ('fdot3_replicated', a, b)),
|
||||
(('fdot4_replicated', ('fneg', a), ('fneg', b)), ('fdot4_replicated', a, b)),
|
||||
(('fneg', ('fneg', a)), a),
|
||||
|
||||
(('fneg', ('fmul(is_used_once)', a, b)), ('fmul', ('fneg', a), b)),
|
||||
@@ -2269,9 +2269,9 @@ distribute_src_mods = [
|
||||
(('fneg', ('fmin(is_used_once)', a, b)), ('fmax', ('fneg', a), ('fneg', b))),
|
||||
(('fneg', ('fmax(is_used_once)', a, b)), ('fmin', ('fneg', a), ('fneg', b))),
|
||||
|
||||
(('fneg', ('fdot_replicated2(is_used_once)', a, b)), ('fdot_replicated2', ('fneg', a), b)),
|
||||
(('fneg', ('fdot_replicated3(is_used_once)', a, b)), ('fdot_replicated3', ('fneg', a), b)),
|
||||
(('fneg', ('fdot_replicated4(is_used_once)', a, b)), ('fdot_replicated4', ('fneg', a), b)),
|
||||
(('fneg', ('fdot2_replicated(is_used_once)', a, b)), ('fdot2_replicated', ('fneg', a), b)),
|
||||
(('fneg', ('fdot3_replicated(is_used_once)', a, b)), ('fdot3_replicated', ('fneg', a), b)),
|
||||
(('fneg', ('fdot4_replicated(is_used_once)', a, b)), ('fdot4_replicated', ('fneg', a), b)),
|
||||
|
||||
# fdph works mostly like fdot, but to get the correct result, the negation
|
||||
# must be applied to the second source.
|
||||
|
Reference in New Issue
Block a user