https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122477

--- Comment #1 from chenglulu <chenglulu at loongson dot cn> ---
Function loongarch_split_reduction does not handle scalar mode, resulting in
ICE.
The following changes can be restored:

```
diff --git a/gcc/config/loongarch/loongarch.cc
b/gcc/config/loongarch/loongarch.cc
index 9fb0773d59e..fea0bb20ab1 100644
--- a/gcc/config/loongarch/loongarch.cc
+++ b/gcc/config/loongarch/loongarch.cc
@@ -4192,7 +4192,8 @@ loongarch_rtx_costs (rtx x, machine_mode mode, int
outer_code,
 machine_mode
 loongarch_split_reduction (machine_mode mode)
 {
-  if (LSX_SUPPORTED_MODE_P (mode))
+  if (!targetm.vector_mode_supported_p (mode)
+      || LSX_SUPPORTED_MODE_P (mode))
     return mode;

   return mode_for_vector (as_a <scalar_mode> (GET_MODE_INNER (mode)),
```

Reply via email to