[AArch64][GlobalISel] Use GPR for illegal fconstants and extend < 32 bit GPR constants to 32 bits (#178692)
In a similar fashion to
https://github.com/llvm/llvm-project/pull/175810, this PR aims to
simplify the handling of constants by extending smaller than 32 bit
integer constants to 32 bits in regbankselect. This is only done for
constants that were going to be assigned to a GPR and aims to simplify
the selection of these.
In addition, fconstants that would have lead to a constant pool load
because they are illegal as immediates (except for 128 bit) are now
converted to a constant on GPR registers before being copied to the FPR.
This hopefully reduces cache pressure & simplifies selection.
I have tried to rely on tablegen as much as possible for selecting the
instructions for this.