llvm-project
0ebef5e5 - [DAGCombine] Enable div by constant optimization for odd sized vectors before type legalization. (#188313)

Commit
19 days ago
[DAGCombine] Enable div by constant optimization for odd sized vectors before type legalization. (#188313) If we we are going to legalize to a vector with the same element type and mulh or mul_lohi are supported, allow the optimization before type legalization. RISC-V will widen vectors using vp.udiv/sdiv that doesn't support division by constant optimization. In addition, type legalization will create a build_vector with undef elements making it hard to match after type legalization. Other targets may need to widen by a combination of vector and scalar divisions to avoid traps if we widen a vector with garbage. I had to enable the MULHU->SRL DAG combine before type legalization to prevent regressions. After type legalization, the multiply constant build_vector will have undef elements and the combine won't trigger.
Author
Parents
Loading