:wave: Hey,
I'm working on implementing swizzle on RISC-V. This pretty much has a 1-1 translation with the vrgather.vv instruction in the V Spec. However that instruction has an interesting encoding constrain in that the source registers must never be the same as the destination registers.
I couldn't find any way of modeling this constraint in regalloc2. Did I miss something? And failing that, do we have any good ways of doing it other than using a fixed register constraint?
Now that I'm looking at this again, it looks like we can use reg_def_at_start and reg_use_at_end to specify this constraint. Not sure how I missed those, Sorry for the noise!
Afonso Bordado has marked this topic as resolved.
Last updated: Jan 10 2026 at 20:04 UTC