https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80845

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #0)
> //(insn 14 13 15 2
> //     (set (reg:QI 23)
> //          (subreg/s/u:QI (reg:SI 44) 0)) 2 {*movqi_insn}
> //     (nil))

For this insn, we enter nvpx_output_mov_insn with dst_inner == QI and src_inner
== SI. There are two clauses (disregarding the CONSTANT_P (src) one) that emit
mov.u32 insn, but neither of them triggers:
...
  if (src_inner == dst_inner)
    return "%.\tmov%t0\t%0, %1;";

  ...

  if (GET_MODE_SIZE (dst_inner) == GET_MODE_SIZE (src_inner))
    return "%.\tmov.b%T0\t%0, %1;";
...

So, we end up at the default, cvt case:
...
  return "%.\tcvt%t0%t1\t%0, %1;";
...

Reply via email to