You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[RISCV] Use vmv.v.x for any rv32 e64 splat with equal halves (#130530)
The prior logic was reasoning in terms of vsetivli immediates, but using
the vmv.v.x is strongly profitable for high LMUL cases. The key
difference is that the vmv.v.x form is rematerializeable during
register allocation, and the vsle form is not.
This change uses the vlmax form of the vsetvli for all cases where the
2 x size can't be encoded as a vsetivli. This has the effect of increasing
VL more than necessary across the vmv.v.x, which could in theory be
problematic performance-wise on some hardware. We can revisit (or
add a tune flag) if this turns out to be noteworthy.
0 commit comments