This removes EImode from the (AArch64) compiler, and all mention of or support
for it.

bootstrapped and check-gcc on aarch64-none-linux-gnu

gcc/ChangeLog:

        * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
        comment.

        * config/aarch64/aarch64-builtins.c (ei_UP,
        aarch64_simd_intEI_type_node): Remove.
        (aarch64_simd_builtin_std_type): Remove EImode case.
        (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.

        * config/aarch64/aarch64-modes.def: Remove EImode.
---
 gcc/config/aarch64/aarch64-builtins.c | 8 --------
 gcc/config/aarch64/aarch64-modes.def  | 5 ++---
 gcc/config/aarch64/aarch64.c          | 2 +-
 3 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/gcc/config/aarch64/aarch64-builtins.c 
b/gcc/config/aarch64/aarch64-builtins.c
index 294bf9d..9c8ca3b 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -73,7 +73,6 @@
 #define v2di_UP  V2DImode
 #define v2df_UP  V2DFmode
 #define ti_UP   TImode
-#define ei_UP   EImode
 #define oi_UP   OImode
 #define ci_UP   CImode
 #define xi_UP   XImode
@@ -435,7 +434,6 @@ static struct aarch64_simd_type_info aarch64_simd_types [] 
= {
 #undef ENTRY
 
 static tree aarch64_simd_intOI_type_node = NULL_TREE;
-static tree aarch64_simd_intEI_type_node = NULL_TREE;
 static tree aarch64_simd_intCI_type_node = NULL_TREE;
 static tree aarch64_simd_intXI_type_node = NULL_TREE;
 
@@ -509,8 +507,6 @@ aarch64_simd_builtin_std_type (enum machine_mode mode,
       return QUAL_TYPE (TI);
     case OImode:
       return aarch64_simd_intOI_type_node;
-    case EImode:
-      return aarch64_simd_intEI_type_node;
     case CImode:
       return aarch64_simd_intCI_type_node;
     case XImode:
@@ -623,15 +619,11 @@ aarch64_init_simd_builtin_types (void)
 #define AARCH64_BUILD_SIGNED_TYPE(mode)  \
   make_signed_type (GET_MODE_PRECISION (mode));
   aarch64_simd_intOI_type_node = AARCH64_BUILD_SIGNED_TYPE (OImode);
-  aarch64_simd_intEI_type_node = AARCH64_BUILD_SIGNED_TYPE (EImode);
   aarch64_simd_intCI_type_node = AARCH64_BUILD_SIGNED_TYPE (CImode);
   aarch64_simd_intXI_type_node = AARCH64_BUILD_SIGNED_TYPE (XImode);
 #undef AARCH64_BUILD_SIGNED_TYPE
 
   tdecl = add_builtin_type
-           ("__builtin_aarch64_simd_ei" , aarch64_simd_intEI_type_node);
-  TYPE_NAME (aarch64_simd_intEI_type_node) = tdecl;
-  tdecl = add_builtin_type
            ("__builtin_aarch64_simd_oi" , aarch64_simd_intOI_type_node);
   TYPE_NAME (aarch64_simd_intOI_type_node) = tdecl;
   tdecl = add_builtin_type
diff --git a/gcc/config/aarch64/aarch64-modes.def 
b/gcc/config/aarch64/aarch64-modes.def
index b17b90d..653bd00 100644
--- a/gcc/config/aarch64/aarch64-modes.def
+++ b/gcc/config/aarch64/aarch64-modes.def
@@ -46,9 +46,8 @@ VECTOR_MODE (FLOAT, DF, 1);   /*                 V1DF.  */
 /* Oct Int: 256-bit integer mode needed for 32-byte vector arguments.  */
 INT_MODE (OI, 32);
 
-/* Opaque integer modes for 3, 6 or 8 Neon double registers (2 is
-   TImode).  */
-INT_MODE (EI, 24);
+/* Opaque integer modes for 3 or 4 Neon q-registers / 6 or 8 Neon d-registers
+   (2 d-regs = 1 q-reg = TImode).  */
 INT_MODE (CI, 48);
 INT_MODE (XI, 64);
 
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 020f63c..a923b55 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -9305,7 +9305,7 @@ aarch64_simd_attr_length_move (rtx_insn *insn)
 }
 
 /* Compute and return the length of aarch64_simd_reglist<mode>, where <mode> is
-   one of VSTRUCT modes: OI, CI, EI, or XI.  */
+   one of VSTRUCT modes: OI, CI, or XI.  */
 int
 aarch64_simd_attr_length_rglist (enum machine_mode mode)
 {
-- 
1.8.3

Reply via email to