[RISCV] Add more div by constant test cases.
Some constants require more instructions than others. This adds additional test for each variation. UDIV has 2 variations, SDIV has 4 variations. Some of these sequence may have gotten worse on RV32 when we started doing the div by constant optimization before type legalization. We materialized a smaller constant, but we require more instructions to emulate 8 or 16 bit right shifts. This was hidden by the lack of test coverage. I've also added Zba and Zbb test cases to show the affect of sext.b, sext.h, zext.h, and zext.w on some of the shifts. In some cases we end up generating more code after the multiply because we use a zext.h+srli and sext.h+srai where without Zbb we share a slli between a srli and srai.
Loading
Please sign in to comment