Right shifts won't create undef/poison if they are inexact with inrange shift amounts.
Matches handling in Operator::hasPoisonGeneratingFlags()
WIP: There are still a few regression cases to handle (either other missing opcodes or we are freezing ops that we can't push the freeze through multiple operands), but I'm cleaning out old branches and wanted to get this up for future reference.
@craig.topper I'm familiar with the riscv shift code, but moving the freeze out of the way has changed:
to