diff options
author | Jason Ekstrand <[email protected]> | 2019-05-06 11:45:46 -0500 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-05-24 08:38:11 -0500 |
commit | f2dc0f28728af63e1a79756dab06a7035fecb590 (patch) | |
tree | 567ce89be4af1fc48d287415ab051929f0e1466e /src/compiler/nir/nir_opcodes_c.py | |
parent | 22421ca7be608f38ce701a43e3f6b7f3132b7aab (diff) |
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 <[email protected]>
Reviewed-by: Alyssa Rosenzweig <[email protected]>
Reviewed-by: Vasily Khoruzhick <[email protected]>
Acked-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir_opcodes_c.py')
-rw-r--r-- | src/compiler/nir/nir_opcodes_c.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/nir/nir_opcodes_c.py b/src/compiler/nir/nir_opcodes_c.py index 96c71a1b2c5..c6e5bb39ddd 100644 --- a/src/compiler/nir/nir_opcodes_c.py +++ b/src/compiler/nir/nir_opcodes_c.py @@ -40,16 +40,16 @@ nir_type_conversion_op(nir_alu_type src, nir_alu_type dst, nir_rounding_mode rnd unsigned dst_bit_size = nir_alu_type_get_type_size(dst); if (src == dst && src_base == nir_type_float) { - return nir_op_fmov; + return nir_op_mov; } else if (src == dst && src_base == nir_type_bool) { - return nir_op_imov; + return nir_op_mov; } else if ((src_base == nir_type_int || src_base == nir_type_uint) && (dst_base == nir_type_int || dst_base == nir_type_uint) && src_bit_size == dst_bit_size) { /* Integer <-> integer conversions with the same bit-size on both * ends are just no-op moves. */ - return nir_op_imov; + return nir_op_mov; } switch (src_base) { |