LoongArch: Fix ICE caused by incomplete split conditions [PR125057].
This patch fixes an internal compiler error (ICE) in the LoongArch backend by completing the split conditions for vector moves.
Incomplete split conditions in loongarch_split_vector_move caused an internal compiler error (ICE) when processing certain vector move operations. This patch completes the split conditions, resolving the ICE. The patch also adds new test cases to verify the fix.
In Details
The issue occurred because the split conditions in loongarch_split_vector_move were incomplete, leading to incorrect splitting of RTL expressions like (set (reg:V4DI 32 $f0) (subreg:V4DI (reg:V2DI 32 $f0) 0)). The patch completes these conditions. Search snippets should focus on LoongArch and RTL splitting.
For Context
When compiling code, GCC transforms the source code into an intermediate representation called RTL (Register Transfer Language). Sometimes, complex RTL operations need to be broken down into simpler ones; this is called splitting. If the conditions for splitting are incomplete or incorrect, it can lead to internal compiler errors (ICE). This commit fixes such an issue in the LoongArch backend for vector move operations.