From f2dc0f28728af63e1a79756dab06a7035fecb590 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 6 May 2019 11:45:46 -0500 Subject: nir: Drop imov/fmov in favor of one mov instruction The difference between imov and fmov has been a constant source of confusion in NIR for years. No one really knows why we have two or when to use one vs. the other. The real reason is that they do different things in the presence of source and destination modifiers. However, without modifiers (which many back-ends don't have), they are identical. Now that we've reworked nir_lower_to_source_mods to leave one abs/neg instruction in place rather than replacing them with imov or fmov instructions, we don't need two different instructions at all anymore. Reviewed-by: Kristian H. Kristensen Reviewed-by: Alyssa Rosenzweig Reviewed-by: Vasily Khoruzhick Acked-by: Rob Clark --- src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/gallium/drivers/nouveau/codegen') diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp index 9054060453b..a9089ea7b59 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp @@ -2845,8 +2845,7 @@ Converter::visit(nir_alu_instr *insn) // those are weird ALU ops and need special handling, because // 1. they are always componend based // 2. they basically just merge multiple values into one data type - case nir_op_imov: - case nir_op_fmov: + case nir_op_mov: if (!insn->dest.dest.is_ssa && insn->dest.dest.reg.reg->num_array_elems) { nir_reg_dest& reg = insn->dest.dest.reg; uint32_t goffset = regToLmemOffset[reg.reg->index]; -- cgit v1.2.3