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

--- Comment #13 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(Sorry I missed this)

(In reply to Andreas Krebbel from comment #11)
> I've tried to change our movstrict backend patterns to use a predicate on
> the dest operand which enforces a subreg. However, since reload strips the
> subreg away when assigning hard regs we end up with a STRICT_LOW_PART of a
> reg again. At least after reload something like this should be acceptable -
> right?
> 
> 298r.ira:
> (insn 8 16 17 3 (set (strict_low_part (subreg:SI (reg/v:DI 64 [ e ]) 4))
>         (const_int 0 [0])) "t.cc":37:17 1485 {movstrictsi}
>      (nil))
> 
> 299r.reload:
> (insn 8 16 17 3 (set (strict_low_part (reg:SI 11 %r11 [orig:64 e+4 ] [64]))
>         (mem/u/c:SI (symbol_ref/u:DI ("*.LC0") [flags 0x2]) [0  S4 A32]))
> "t.cc":37:17 1485 {movstrictsi}
>      (nil))

So you are suggesting that every strict_low_part after reload can just be
removed?  If that is true, should we not just do exactly that then?

Reply via email to