mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-21 11:50:33 +01:00
brw/copy: Commute immediates for MAD multiplicands
This enables constant combining to do its job. v2: Restore accidentally deleted line from a comment. Noticed by Caio. shader-db: All Intel platforms had similar results. (Lunar Lake shown) total cycles in shared programs: 919668392 -> 919669310 (<.01%) cycles in affected programs: 10125264 -> 10126182 (<.01%) helped: 348 / HURT: 194 fossil-db: All Intel platforms had similar results. (Lunar Lake shown) Totals: Cycle count: 31610720660 -> 31610692748 (-0.00%); split: -0.00%, +0.00% Totals from 9066 (1.29% of 702433) affected shaders: Cycle count: 810411934 -> 810384022 (-0.00%); split: -0.01%, +0.00% Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32436>
This commit is contained in:
parent
e3e58d6f48
commit
3a16ad71b7
1 changed files with 6 additions and 0 deletions
|
|
@ -1283,6 +1283,12 @@ commute_immediates(fs_inst *inst)
|
|||
}
|
||||
}
|
||||
|
||||
/* MAD can only have mutliplicand immediate in src2. */
|
||||
if (inst->opcode == BRW_OPCODE_MAD) {
|
||||
if (inst->src[1].file == IMM && inst->src[2].file != IMM)
|
||||
swap_srcs(inst, 1, 2);
|
||||
}
|
||||
|
||||
/* If only one of the sources of a 2-source, commutative instruction (e.g.,
|
||||
* AND) is immediate, it must be src1. If both are immediate, opt_algebraic
|
||||
* should fold it away.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue