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