On 4/18/23 19:04, juzhe.zh...@rivai.ai wrote:
The bug issue reported by google/highway project:
(set(..........)
        (reg:QI s0)
(reg:DI s0))

The "avl" operand rtx  = (reg:DI s0)
count_occurrences return 1 however the actual regno occurrences should be 2.
In this case, the VSETVL PASS will eliminate the use of (reg:DI s0) then file assertion in RTL_SSA.
Instead, we should not eliminate "s0" dependency.
So these are not vector hard registers, but GPR hard registers. Meaning you have to worry about even more things. Consider case on rv32 when you ask to count (reg:QI s1) and there is a reference to (reg:DI s0).

Prior to reload you also have to worry about SUBREGs.


You probably need to be using refers_to_regno_p or something similar.

jeff

Reply via email to