aco/isel: avoid unnecessary calls to nir_unsigned_upper_bound()

These were responsible for ~20% of the time
spent in instruction selection.
Reduces overall compile times by ~0.5%.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11879>
This commit is contained in:
Daniel Schürmann 2021-07-14 13:47:01 +02:00
parent 940725a7d9
commit 114d38e57d

View file

@ -855,8 +855,8 @@ emit_vop2_instruction(isel_context* ctx, nir_alu_instr* instr, aco_opcode op, Te
Operand op1(src1);
for (int i = 0; i < 2; i++) {
uint32_t src_ub = get_alu_src_ub(ctx, instr, swap_srcs ? !i : i);
if (uses_ub & (1 << i)) {
uint32_t src_ub = get_alu_src_ub(ctx, instr, swap_srcs ? !i : i);
if (src_ub <= 0xffff)
bld.set16bit(i ? op1 : op0);
else if (src_ub <= 0xffffff)