Similar to G_[SU]BFX, many targets support similar bitfield insertion operations.
The most generic form extracts a number of bits (width) from a register (val), starting at bit 0.
Those bits are shifted by a certain shift amount (pos), and inserted into another register (src).
The resulting value is written into the output register:
%x = G_BFI %src, %val, %pos, %width
There are several patterns that can be combined to a generic bitfield insertion operation.
Can you add a comment like for sbfx and ubfx, and explain the limits on pos and witdth?