[SPARC] Lower dynamic v2i32 vector extracts on 32-bit SPARC (#222348)
Lower dynamically indexed extracts after vector legalization so that
instruction selection never receives a variable index.
Constant indexes use the existing TableGen patterns.
Fixes the following error:
LLVM ERROR: Cannot select: 0x5e7e87e5b590: i32 = extract_vector_elt
0x5e7e87e5b910, 0x5e7e87e5b0c0
0x5e7e87e5b910: v2i32 = BUILD_VECTOR 0x5e7e87e5af70, 0x5e7e87e5b6e0
0x5e7e87e5af70: i32,ch = CopyFromReg 0x5e7e87e24840, Register:i32 %0
0x5e7e87e5b750: i32 = Register %0
0x5e7e87e5b6e0: i32,ch = CopyFromReg 0x5e7e87e24840, Register:i32 %1
0x5e7e87e5b7c0: i32 = Register %1
0x5e7e87e5b0c0: i32,ch = CopyFromReg 0x5e7e87e24840, Register:i32 %2
0x5e7e87e5afe0: i32 = Register %2
In function: extract_v2i8
Assisted-by: Codex
(cherry picked from commit fc264e6ba8b4c65abb716882826e3adccc3bbf1a)