On 7/22/24 9:16 PM, Andrew Pinski wrote:

It is interesting how there is a subreg of a hardregister after reload
showing up here. Is that on purpose?
In general subregs of hard regs shouldn't exist after allocation. There are just a few exceptions to that rule. I don't remember where the code is, but there's a pass over all the insns after reloading which should have removed them.


They come from:
```
(define_insn "*tf_to_fprx2_0"
   [(set (subreg:DF (match_operand:FPRX2 0 "nonimmediate_operand" "+f") 0)
         (subreg:DF (match_operand:TF    1 "general_operand"       "v") 0))]
...
(define_insn "*tf_to_fprx2_1"
   [(set (subreg:DF (match_operand:FPRX2 0 "nonimmediate_operand" "+f") 8)
         (subreg:DF (match_operand:TF    1 "general_operand"       "v") 8))]
This kind of stuff may inhibit the elimination of hard register subregs since after removing the subreg these patterns probably won't match anymore.

Jeff

Reply via email to