arm: Use E_FOOmode instead of FOOmode in arm_preferred_simd_mode
authorChristophe Lyon <christophe.lyon@linaro.org>
Mon, 12 Oct 2020 13:28:20 +0000 (13:28 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Mon, 12 Oct 2020 13:29:54 +0000 (13:29 +0000)
gcc-4.8.5 does not accept case clauses with non-literal type, which
happens for "QImode" as it expands to (scalar_int_mode
((scalar_int_mode::from_int) E_QImode)).

Use E_QImode instead in arm_preferred_simd_mode, to fix the
build. Same for HImode, SImode, HFmode and SFmode as introduced by a
recent patch.

2020-10-12  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode
instead of FOOmode.

gcc/config/arm/arm.c

index 5d9c995e5c643528acb4d86583ce442dd232e58a..0b8c5fa074d32e9ced107d1917323479c19d4c4e 100644 (file)
@@ -28967,11 +28967,11 @@ arm_preferred_simd_mode (scalar_mode mode)
   if (TARGET_HAVE_MVE)
     switch (mode)
       {
-      case QImode:
+      case E_QImode:
        return V16QImode;
-      case HImode:
+      case E_HImode:
        return V8HImode;
-      case SImode:
+      case E_SImode:
        return V4SImode;
 
       default:;
@@ -28980,9 +28980,9 @@ arm_preferred_simd_mode (scalar_mode mode)
   if (TARGET_HAVE_MVE_FLOAT)
     switch (mode)
       {
-      case HFmode:
+      case E_HFmode:
        return V8HFmode;
-      case SFmode:
+      case E_SFmode:
        return V4SFmode;
 
       default:;