Use right shift [1] as an example
- Before, bfxil is generated (https://godbolt.org/z/EfzWMszPn)
- After, orr with right-shifted operand is generated (added test cases in CodeGen/AArch64/bitfield-insert.ll)
[1]
define i64 @test_orr_not_bfxil_i64(i64 %0) { %2 = and i64 %0, 1044480 ; 0xff000 %3 = lshr i64 %2, 12 %4 = or i64 %2, %3 ret i64 %4 }
Should this go through getShifterImm, for consistency even if LSL == 0?