[RISCV] isel (add (and X, 0xFFFFFFFE), Y) as (SH1ADD (SRLIW X, 1), Y).
Similar for SH2ADD and SH3ADD. This is what we get from int foo(int* x, unsigned y) { return x[y >> 1]; } This allows us to avoid materializing 0xFFFFFFFE into a register.
Loading
Please sign in to comment