/* Generated automatically from machmode.def and config/riscv/riscv-modes.def
   by genmodes.  */

#include "bconfig.h"
#include "system.h"
#include "coretypes.h"

const char *const mode_name[NUM_MACHINE_MODES] =
{
  "VOID",
  "BLK",
  "CC",
  "BI",
  "QI",
  "HI",
  "SI",
  "DI",
  "TI",
  "QQ",
  "HQ",
  "SQ",
  "DQ",
  "TQ",
  "UQQ",
  "UHQ",
  "USQ",
  "UDQ",
  "UTQ",
  "HA",
  "SA",
  "DA",
  "TA",
  "UHA",
  "USA",
  "UDA",
  "UTA",
  "HF",
  "SF",
  "DF",
  "TF",
  "SD",
  "DD",
  "TD",
  "CQI",
  "CHI",
  "CSI",
  "CDI",
  "CTI",
  "HC",
  "SC",
  "DC",
  "TC",
  "VNx1BI",
  "VNx2BI",
  "VNx4BI",
  "VNx8BI",
  "VNx16BI",
  "VNx32BI",
  "VNx64BI",
  "VNx1QI",
  "VNx2QI",
  "VNx1HI",
  "VNx4QI",
  "VNx2HI",
  "VNx1SI",
  "VNx8QI",
  "VNx4HI",
  "VNx2SI",
  "VNx1DI",
  "VNx16QI",
  "VNx8HI",
  "VNx4SI",
  "VNx2DI",
  "VNx32QI",
  "VNx16HI",
  "VNx8SI",
  "VNx4DI",
  "VNx2TI",
  "VNx64QI",
  "VNx32HI",
  "VNx16SI",
  "VNx8DI",
  "VNx4TI",
  "VNx1HF",
  "VNx2HF",
  "VNx1SF",
  "VNx4HF",
  "VNx2SF",
  "VNx1DF",
  "VNx8HF",
  "VNx4SF",
  "VNx2DF",
  "VNx16HF",
  "VNx8SF",
  "VNx4DF",
  "VNx2TF",
  "VNx32HF",
  "VNx16SF",
  "VNx8DF",
  "VNx4TF",
};

const unsigned char mode_class[NUM_MACHINE_MODES] =
{
  MODE_RANDOM,             /* VOID */
  MODE_RANDOM,             /* BLK */
  MODE_CC,                 /* CC */
  MODE_INT,                /* BI */
  MODE_INT,                /* QI */
  MODE_INT,                /* HI */
  MODE_INT,                /* SI */
  MODE_INT,                /* DI */
  MODE_INT,                /* TI */
  MODE_FRACT,              /* QQ */
  MODE_FRACT,              /* HQ */
  MODE_FRACT,              /* SQ */
  MODE_FRACT,              /* DQ */
  MODE_FRACT,              /* TQ */
  MODE_UFRACT,             /* UQQ */
  MODE_UFRACT,             /* UHQ */
  MODE_UFRACT,             /* USQ */
  MODE_UFRACT,             /* UDQ */
  MODE_UFRACT,             /* UTQ */
  MODE_ACCUM,              /* HA */
  MODE_ACCUM,              /* SA */
  MODE_ACCUM,              /* DA */
  MODE_ACCUM,              /* TA */
  MODE_UACCUM,             /* UHA */
  MODE_UACCUM,             /* USA */
  MODE_UACCUM,             /* UDA */
  MODE_UACCUM,             /* UTA */
  MODE_FLOAT,              /* HF */
  MODE_FLOAT,              /* SF */
  MODE_FLOAT,              /* DF */
  MODE_FLOAT,              /* TF */
  MODE_DECIMAL_FLOAT,      /* SD */
  MODE_DECIMAL_FLOAT,      /* DD */
  MODE_DECIMAL_FLOAT,      /* TD */
  MODE_COMPLEX_INT,        /* CQI */
  MODE_COMPLEX_INT,        /* CHI */
  MODE_COMPLEX_INT,        /* CSI */
  MODE_COMPLEX_INT,        /* CDI */
  MODE_COMPLEX_INT,        /* CTI */
  MODE_COMPLEX_FLOAT,      /* HC */
  MODE_COMPLEX_FLOAT,      /* SC */
  MODE_COMPLEX_FLOAT,      /* DC */
  MODE_COMPLEX_FLOAT,      /* TC */
  MODE_VECTOR_BOOL,        /* VNx1BI */
  MODE_VECTOR_BOOL,        /* VNx2BI */
  MODE_VECTOR_BOOL,        /* VNx4BI */
  MODE_VECTOR_BOOL,        /* VNx8BI */
  MODE_VECTOR_BOOL,        /* VNx16BI */
  MODE_VECTOR_BOOL,        /* VNx32BI */
  MODE_VECTOR_BOOL,        /* VNx64BI */
  MODE_VECTOR_INT,         /* VNx1QI */
  MODE_VECTOR_INT,         /* VNx2QI */
  MODE_VECTOR_INT,         /* VNx1HI */
  MODE_VECTOR_INT,         /* VNx4QI */
  MODE_VECTOR_INT,         /* VNx2HI */
  MODE_VECTOR_INT,         /* VNx1SI */
  MODE_VECTOR_INT,         /* VNx8QI */
  MODE_VECTOR_INT,         /* VNx4HI */
  MODE_VECTOR_INT,         /* VNx2SI */
  MODE_VECTOR_INT,         /* VNx1DI */
  MODE_VECTOR_INT,         /* VNx16QI */
  MODE_VECTOR_INT,         /* VNx8HI */
  MODE_VECTOR_INT,         /* VNx4SI */
  MODE_VECTOR_INT,         /* VNx2DI */
  MODE_VECTOR_INT,         /* VNx32QI */
  MODE_VECTOR_INT,         /* VNx16HI */
  MODE_VECTOR_INT,         /* VNx8SI */
  MODE_VECTOR_INT,         /* VNx4DI */
  MODE_VECTOR_INT,         /* VNx2TI */
  MODE_VECTOR_INT,         /* VNx64QI */
  MODE_VECTOR_INT,         /* VNx32HI */
  MODE_VECTOR_INT,         /* VNx16SI */
  MODE_VECTOR_INT,         /* VNx8DI */
  MODE_VECTOR_INT,         /* VNx4TI */
  MODE_VECTOR_FLOAT,       /* VNx1HF */
  MODE_VECTOR_FLOAT,       /* VNx2HF */
  MODE_VECTOR_FLOAT,       /* VNx1SF */
  MODE_VECTOR_FLOAT,       /* VNx4HF */
  MODE_VECTOR_FLOAT,       /* VNx2SF */
  MODE_VECTOR_FLOAT,       /* VNx1DF */
  MODE_VECTOR_FLOAT,       /* VNx8HF */
  MODE_VECTOR_FLOAT,       /* VNx4SF */
  MODE_VECTOR_FLOAT,       /* VNx2DF */
  MODE_VECTOR_FLOAT,       /* VNx16HF */
  MODE_VECTOR_FLOAT,       /* VNx8SF */
  MODE_VECTOR_FLOAT,       /* VNx4DF */
  MODE_VECTOR_FLOAT,       /* VNx2TF */
  MODE_VECTOR_FLOAT,       /* VNx32HF */
  MODE_VECTOR_FLOAT,       /* VNx16SF */
  MODE_VECTOR_FLOAT,       /* VNx8DF */
  MODE_VECTOR_FLOAT,       /* VNx4TF */
};

poly_uint16_pod mode_nunits[NUM_MACHINE_MODES] = 
{
  { 0, 0 },                /* VOID */
  { 0, 0 },                /* BLK */
  { 1, 0 },                /* CC */
  { 1, 0 },                /* BI */
  { 1, 0 },                /* QI */
  { 1, 0 },                /* HI */
  { 1, 0 },                /* SI */
  { 1, 0 },                /* DI */
  { 1, 0 },                /* TI */
  { 1, 0 },                /* QQ */
  { 1, 0 },                /* HQ */
  { 1, 0 },                /* SQ */
  { 1, 0 },                /* DQ */
  { 1, 0 },                /* TQ */
  { 1, 0 },                /* UQQ */
  { 1, 0 },                /* UHQ */
  { 1, 0 },                /* USQ */
  { 1, 0 },                /* UDQ */
  { 1, 0 },                /* UTQ */
  { 1, 0 },                /* HA */
  { 1, 0 },                /* SA */
  { 1, 0 },                /* DA */
  { 1, 0 },                /* TA */
  { 1, 0 },                /* UHA */
  { 1, 0 },                /* USA */
  { 1, 0 },                /* UDA */
  { 1, 0 },                /* UTA */
  { 1, 0 },                /* HF */
  { 1, 0 },                /* SF */
  { 1, 0 },                /* DF */
  { 1, 0 },                /* TF */
  { 1, 0 },                /* SD */
  { 1, 0 },                /* DD */
  { 1, 0 },                /* TD */
  { 2, 0 },                /* CQI */
  { 2, 0 },                /* CHI */
  { 2, 0 },                /* CSI */
  { 2, 0 },                /* CDI */
  { 2, 0 },                /* CTI */
  { 2, 0 },                /* HC */
  { 2, 0 },                /* SC */
  { 2, 0 },                /* DC */
  { 2, 0 },                /* TC */
  { 1, 0 },                /* VNx1BI */
  { 2, 0 },                /* VNx2BI */
  { 4, 0 },                /* VNx4BI */
  { 8, 0 },                /* VNx8BI */
  { 16, 0 },               /* VNx16BI */
  { 32, 0 },               /* VNx32BI */
  { 64, 0 },               /* VNx64BI */
  { 1, 0 },                /* VNx1QI */
  { 2, 0 },                /* VNx2QI */
  { 1, 0 },                /* VNx1HI */
  { 4, 0 },                /* VNx4QI */
  { 2, 0 },                /* VNx2HI */
  { 1, 0 },                /* VNx1SI */
  { 8, 0 },                /* VNx8QI */
  { 4, 0 },                /* VNx4HI */
  { 2, 0 },                /* VNx2SI */
  { 1, 0 },                /* VNx1DI */
  { 16, 0 },               /* VNx16QI */
  { 8, 0 },                /* VNx8HI */
  { 4, 0 },                /* VNx4SI */
  { 2, 0 },                /* VNx2DI */
  { 32, 0 },               /* VNx32QI */
  { 16, 0 },               /* VNx16HI */
  { 8, 0 },                /* VNx8SI */
  { 4, 0 },                /* VNx4DI */
  { 2, 0 },                /* VNx2TI */
  { 64, 0 },               /* VNx64QI */
  { 32, 0 },               /* VNx32HI */
  { 16, 0 },               /* VNx16SI */
  { 8, 0 },                /* VNx8DI */
  { 4, 0 },                /* VNx4TI */
  { 1, 0 },                /* VNx1HF */
  { 2, 0 },                /* VNx2HF */
  { 1, 0 },                /* VNx1SF */
  { 4, 0 },                /* VNx4HF */
  { 2, 0 },                /* VNx2SF */
  { 1, 0 },                /* VNx1DF */
  { 8, 0 },                /* VNx8HF */
  { 4, 0 },                /* VNx4SF */
  { 2, 0 },                /* VNx2DF */
  { 16, 0 },               /* VNx16HF */
  { 8, 0 },                /* VNx8SF */
  { 4, 0 },                /* VNx4DF */
  { 2, 0 },                /* VNx2TF */
  { 32, 0 },               /* VNx32HF */
  { 16, 0 },               /* VNx16SF */
  { 8, 0 },                /* VNx8DF */
  { 4, 0 },                /* VNx4TF */
};

const unsigned char mode_next[NUM_MACHINE_MODES] =
{
  E_VOIDmode,              /* VOID */
  E_VOIDmode,              /* BLK */
  E_VOIDmode,              /* CC */
  E_QImode,                /* BI */
  E_HImode,                /* QI */
  E_SImode,                /* HI */
  E_DImode,                /* SI */
  E_TImode,                /* DI */
  E_VOIDmode,              /* TI */
  E_HQmode,                /* QQ */
  E_SQmode,                /* HQ */
  E_DQmode,                /* SQ */
  E_TQmode,                /* DQ */
  E_VOIDmode,              /* TQ */
  E_UHQmode,               /* UQQ */
  E_USQmode,               /* UHQ */
  E_UDQmode,               /* USQ */
  E_UTQmode,               /* UDQ */
  E_VOIDmode,              /* UTQ */
  E_SAmode,                /* HA */
  E_DAmode,                /* SA */
  E_TAmode,                /* DA */
  E_VOIDmode,              /* TA */
  E_USAmode,               /* UHA */
  E_UDAmode,               /* USA */
  E_UTAmode,               /* UDA */
  E_VOIDmode,              /* UTA */
  E_SFmode,                /* HF */
  E_DFmode,                /* SF */
  E_TFmode,                /* DF */
  E_VOIDmode,              /* TF */
  E_DDmode,                /* SD */
  E_TDmode,                /* DD */
  E_VOIDmode,              /* TD */
  E_CHImode,               /* CQI */
  E_CSImode,               /* CHI */
  E_CDImode,               /* CSI */
  E_CTImode,               /* CDI */
  E_VOIDmode,              /* CTI */
  E_SCmode,                /* HC */
  E_DCmode,                /* SC */
  E_TCmode,                /* DC */
  E_VOIDmode,              /* TC */
  E_VNx2BImode,            /* VNx1BI */
  E_VNx4BImode,            /* VNx2BI */
  E_VNx8BImode,            /* VNx4BI */
  E_VNx16BImode,           /* VNx8BI */
  E_VNx32BImode,           /* VNx16BI */
  E_VNx64BImode,           /* VNx32BI */
  E_VOIDmode,              /* VNx64BI */
  E_VNx2QImode,            /* VNx1QI */
  E_VNx1HImode,            /* VNx2QI */
  E_VNx4QImode,            /* VNx1HI */
  E_VNx2HImode,            /* VNx4QI */
  E_VNx1SImode,            /* VNx2HI */
  E_VNx8QImode,            /* VNx1SI */
  E_VNx4HImode,            /* VNx8QI */
  E_VNx2SImode,            /* VNx4HI */
  E_VNx1DImode,            /* VNx2SI */
  E_VNx16QImode,           /* VNx1DI */
  E_VNx8HImode,            /* VNx16QI */
  E_VNx4SImode,            /* VNx8HI */
  E_VNx2DImode,            /* VNx4SI */
  E_VNx32QImode,           /* VNx2DI */
  E_VNx16HImode,           /* VNx32QI */
  E_VNx8SImode,            /* VNx16HI */
  E_VNx4DImode,            /* VNx8SI */
  E_VNx2TImode,            /* VNx4DI */
  E_VNx64QImode,           /* VNx2TI */
  E_VNx32HImode,           /* VNx64QI */
  E_VNx16SImode,           /* VNx32HI */
  E_VNx8DImode,            /* VNx16SI */
  E_VNx4TImode,            /* VNx8DI */
  E_VOIDmode,              /* VNx4TI */
  E_VNx2HFmode,            /* VNx1HF */
  E_VNx1SFmode,            /* VNx2HF */
  E_VNx4HFmode,            /* VNx1SF */
  E_VNx2SFmode,            /* VNx4HF */
  E_VNx1DFmode,            /* VNx2SF */
  E_VNx8HFmode,            /* VNx1DF */
  E_VNx4SFmode,            /* VNx8HF */
  E_VNx2DFmode,            /* VNx4SF */
  E_VNx16HFmode,           /* VNx2DF */
  E_VNx8SFmode,            /* VNx16HF */
  E_VNx4DFmode,            /* VNx8SF */
  E_VNx2TFmode,            /* VNx4DF */
  E_VNx32HFmode,           /* VNx2TF */
  E_VNx16SFmode,           /* VNx32HF */
  E_VNx8DFmode,            /* VNx16SF */
  E_VNx4TFmode,            /* VNx8DF */
  E_VOIDmode,              /* VNx4TF */
};

const unsigned char mode_wider[NUM_MACHINE_MODES] =
{
  E_VOIDmode,              /* VOID */
  E_VOIDmode,              /* BLK */
  E_VOIDmode,              /* CC */
  E_QImode,                /* BI */
  E_HImode,                /* QI */
  E_SImode,                /* HI */
  E_DImode,                /* SI */
  E_TImode,                /* DI */
  E_VOIDmode,              /* TI */
  E_HQmode,                /* QQ */
  E_SQmode,                /* HQ */
  E_DQmode,                /* SQ */
  E_TQmode,                /* DQ */
  E_VOIDmode,              /* TQ */
  E_UHQmode,               /* UQQ */
  E_USQmode,               /* UHQ */
  E_UDQmode,               /* USQ */
  E_UTQmode,               /* UDQ */
  E_VOIDmode,              /* UTQ */
  E_SAmode,                /* HA */
  E_DAmode,                /* SA */
  E_TAmode,                /* DA */
  E_VOIDmode,              /* TA */
  E_USAmode,               /* UHA */
  E_UDAmode,               /* USA */
  E_UTAmode,               /* UDA */
  E_VOIDmode,              /* UTA */
  E_SFmode,                /* HF */
  E_DFmode,                /* SF */
  E_TFmode,                /* DF */
  E_VOIDmode,              /* TF */
  E_DDmode,                /* SD */
  E_TDmode,                /* DD */
  E_VOIDmode,              /* TD */
  E_VOIDmode,              /* CQI */
  E_VOIDmode,              /* CHI */
  E_VOIDmode,              /* CSI */
  E_VOIDmode,              /* CDI */
  E_VOIDmode,              /* CTI */
  E_SCmode,                /* HC */
  E_DCmode,                /* SC */
  E_TCmode,                /* DC */
  E_VOIDmode,              /* TC */
  E_VOIDmode,              /* VNx1BI */
  E_VOIDmode,              /* VNx2BI */
  E_VOIDmode,              /* VNx4BI */
  E_VOIDmode,              /* VNx8BI */
  E_VOIDmode,              /* VNx16BI */
  E_VOIDmode,              /* VNx32BI */
  E_VOIDmode,              /* VNx64BI */
  E_VOIDmode,              /* VNx1QI */
  E_VOIDmode,              /* VNx2QI */
  E_VOIDmode,              /* VNx1HI */
  E_VOIDmode,              /* VNx4QI */
  E_VOIDmode,              /* VNx2HI */
  E_VOIDmode,              /* VNx1SI */
  E_VOIDmode,              /* VNx8QI */
  E_VOIDmode,              /* VNx4HI */
  E_VOIDmode,              /* VNx2SI */
  E_VOIDmode,              /* VNx1DI */
  E_VOIDmode,              /* VNx16QI */
  E_VOIDmode,              /* VNx8HI */
  E_VOIDmode,              /* VNx4SI */
  E_VOIDmode,              /* VNx2DI */
  E_VOIDmode,              /* VNx32QI */
  E_VOIDmode,              /* VNx16HI */
  E_VOIDmode,              /* VNx8SI */
  E_VOIDmode,              /* VNx4DI */
  E_VOIDmode,              /* VNx2TI */
  E_VOIDmode,              /* VNx64QI */
  E_VOIDmode,              /* VNx32HI */
  E_VOIDmode,              /* VNx16SI */
  E_VOIDmode,              /* VNx8DI */
  E_VOIDmode,              /* VNx4TI */
  E_VOIDmode,              /* VNx1HF */
  E_VOIDmode,              /* VNx2HF */
  E_VOIDmode,              /* VNx1SF */
  E_VOIDmode,              /* VNx4HF */
  E_VOIDmode,              /* VNx2SF */
  E_VOIDmode,              /* VNx1DF */
  E_VOIDmode,              /* VNx8HF */
  E_VOIDmode,              /* VNx4SF */
  E_VOIDmode,              /* VNx2DF */
  E_VOIDmode,              /* VNx16HF */
  E_VOIDmode,              /* VNx8SF */
  E_VOIDmode,              /* VNx4DF */
  E_VOIDmode,              /* VNx2TF */
  E_VOIDmode,              /* VNx32HF */
  E_VOIDmode,              /* VNx16SF */
  E_VOIDmode,              /* VNx8DF */
  E_VOIDmode,              /* VNx4TF */
};

const unsigned char mode_2xwider[NUM_MACHINE_MODES] =
{
  E_VOIDmode,              /* VOID */
  E_BLKmode,               /* BLK */
  E_VOIDmode,              /* CC */
  E_VOIDmode,              /* BI */
  E_HImode,                /* QI */
  E_SImode,                /* HI */
  E_DImode,                /* SI */
  E_TImode,                /* DI */
  E_VOIDmode,              /* TI */
  E_HQmode,                /* QQ */
  E_SQmode,                /* HQ */
  E_DQmode,                /* SQ */
  E_TQmode,                /* DQ */
  E_VOIDmode,              /* TQ */
  E_UHQmode,               /* UQQ */
  E_USQmode,               /* UHQ */
  E_UDQmode,               /* USQ */
  E_UTQmode,               /* UDQ */
  E_VOIDmode,              /* UTQ */
  E_SAmode,                /* HA */
  E_DAmode,                /* SA */
  E_TAmode,                /* DA */
  E_VOIDmode,              /* TA */
  E_USAmode,               /* UHA */
  E_UDAmode,               /* USA */
  E_UTAmode,               /* UDA */
  E_VOIDmode,              /* UTA */
  E_SFmode,                /* HF */
  E_DFmode,                /* SF */
  E_TFmode,                /* DF */
  E_VOIDmode,              /* TF */
  E_DDmode,                /* SD */
  E_TDmode,                /* DD */
  E_VOIDmode,              /* TD */
  E_CHImode,               /* CQI */
  E_CSImode,               /* CHI */
  E_CDImode,               /* CSI */
  E_CTImode,               /* CDI */
  E_VOIDmode,              /* CTI */
  E_SCmode,                /* HC */
  E_DCmode,                /* SC */
  E_TCmode,                /* DC */
  E_VOIDmode,              /* TC */
  E_VOIDmode,              /* VNx1BI */
  E_VOIDmode,              /* VNx2BI */
  E_VOIDmode,              /* VNx4BI */
  E_VNx16BImode,           /* VNx8BI */
  E_VNx32BImode,           /* VNx16BI */
  E_VNx64BImode,           /* VNx32BI */
  E_VOIDmode,              /* VNx64BI */
  E_VNx2QImode,            /* VNx1QI */
  E_VNx4QImode,            /* VNx2QI */
  E_VNx2HImode,            /* VNx1HI */
  E_VNx8QImode,            /* VNx4QI */
  E_VNx4HImode,            /* VNx2HI */
  E_VNx2SImode,            /* VNx1SI */
  E_VNx16QImode,           /* VNx8QI */
  E_VNx8HImode,            /* VNx4HI */
  E_VNx4SImode,            /* VNx2SI */
  E_VNx2DImode,            /* VNx1DI */
  E_VNx32QImode,           /* VNx16QI */
  E_VNx16HImode,           /* VNx8HI */
  E_VNx8SImode,            /* VNx4SI */
  E_VNx4DImode,            /* VNx2DI */
  E_VNx64QImode,           /* VNx32QI */
  E_VNx32HImode,           /* VNx16HI */
  E_VNx16SImode,           /* VNx8SI */
  E_VNx8DImode,            /* VNx4DI */
  E_VNx4TImode,            /* VNx2TI */
  E_VOIDmode,              /* VNx64QI */
  E_VOIDmode,              /* VNx32HI */
  E_VOIDmode,              /* VNx16SI */
  E_VOIDmode,              /* VNx8DI */
  E_VOIDmode,              /* VNx4TI */
  E_VNx2HFmode,            /* VNx1HF */
  E_VNx4HFmode,            /* VNx2HF */
  E_VNx2SFmode,            /* VNx1SF */
  E_VNx8HFmode,            /* VNx4HF */
  E_VNx4SFmode,            /* VNx2SF */
  E_VNx2DFmode,            /* VNx1DF */
  E_VNx16HFmode,           /* VNx8HF */
  E_VNx8SFmode,            /* VNx4SF */
  E_VNx4DFmode,            /* VNx2DF */
  E_VNx32HFmode,           /* VNx16HF */
  E_VNx16SFmode,           /* VNx8SF */
  E_VNx8DFmode,            /* VNx4DF */
  E_VNx4TFmode,            /* VNx2TF */
  E_VOIDmode,              /* VNx32HF */
  E_VOIDmode,              /* VNx16SF */
  E_VOIDmode,              /* VNx8DF */
  E_VOIDmode,              /* VNx4TF */
};

const unsigned char mode_inner[NUM_MACHINE_MODES] =
{
  E_VOIDmode,              /* VOID */
  E_BLKmode,               /* BLK */
  E_CCmode,                /* CC */
  E_BImode,                /* BI */
  E_QImode,                /* QI */
  E_HImode,                /* HI */
  E_SImode,                /* SI */
  E_DImode,                /* DI */
  E_TImode,                /* TI */
  E_QQmode,                /* QQ */
  E_HQmode,                /* HQ */
  E_SQmode,                /* SQ */
  E_DQmode,                /* DQ */
  E_TQmode,                /* TQ */
  E_UQQmode,               /* UQQ */
  E_UHQmode,               /* UHQ */
  E_USQmode,               /* USQ */
  E_UDQmode,               /* UDQ */
  E_UTQmode,               /* UTQ */
  E_HAmode,                /* HA */
  E_SAmode,                /* SA */
  E_DAmode,                /* DA */
  E_TAmode,                /* TA */
  E_UHAmode,               /* UHA */
  E_USAmode,               /* USA */
  E_UDAmode,               /* UDA */
  E_UTAmode,               /* UTA */
  E_HFmode,                /* HF */
  E_SFmode,                /* SF */
  E_DFmode,                /* DF */
  E_TFmode,                /* TF */
  E_SDmode,                /* SD */
  E_DDmode,                /* DD */
  E_TDmode,                /* TD */
  E_QImode,                /* CQI */
  E_HImode,                /* CHI */
  E_SImode,                /* CSI */
  E_DImode,                /* CDI */
  E_TImode,                /* CTI */
  E_HFmode,                /* HC */
  E_SFmode,                /* SC */
  E_DFmode,                /* DC */
  E_TFmode,                /* TC */
  E_BImode,                /* VNx1BI */
  E_BImode,                /* VNx2BI */
  E_BImode,                /* VNx4BI */
  E_BImode,                /* VNx8BI */
  E_BImode,                /* VNx16BI */
  E_BImode,                /* VNx32BI */
  E_BImode,                /* VNx64BI */
  E_QImode,                /* VNx1QI */
  E_QImode,                /* VNx2QI */
  E_HImode,                /* VNx1HI */
  E_QImode,                /* VNx4QI */
  E_HImode,                /* VNx2HI */
  E_SImode,                /* VNx1SI */
  E_QImode,                /* VNx8QI */
  E_HImode,                /* VNx4HI */
  E_SImode,                /* VNx2SI */
  E_DImode,                /* VNx1DI */
  E_QImode,                /* VNx16QI */
  E_HImode,                /* VNx8HI */
  E_SImode,                /* VNx4SI */
  E_DImode,                /* VNx2DI */
  E_QImode,                /* VNx32QI */
  E_HImode,                /* VNx16HI */
  E_SImode,                /* VNx8SI */
  E_DImode,                /* VNx4DI */
  E_TImode,                /* VNx2TI */
  E_QImode,                /* VNx64QI */
  E_HImode,                /* VNx32HI */
  E_SImode,                /* VNx16SI */
  E_DImode,                /* VNx8DI */
  E_TImode,                /* VNx4TI */
  E_HFmode,                /* VNx1HF */
  E_HFmode,                /* VNx2HF */
  E_SFmode,                /* VNx1SF */
  E_HFmode,                /* VNx4HF */
  E_SFmode,                /* VNx2SF */
  E_DFmode,                /* VNx1DF */
  E_HFmode,                /* VNx8HF */
  E_SFmode,                /* VNx4SF */
  E_DFmode,                /* VNx2DF */
  E_HFmode,                /* VNx16HF */
  E_SFmode,                /* VNx8SF */
  E_DFmode,                /* VNx4DF */
  E_TFmode,                /* VNx2TF */
  E_HFmode,                /* VNx32HF */
  E_SFmode,                /* VNx16SF */
  E_DFmode,                /* VNx8DF */
  E_TFmode,                /* VNx4TF */
};

const unsigned char class_narrowest_mode[MAX_MODE_CLASS] =
{
  MIN_MODE_RANDOM,         /* VOID */
  MIN_MODE_CC,             /* CC */
  MIN_MODE_INT,            /* QI */
  MIN_MODE_PARTIAL_INT,    /* VOID */
  MIN_MODE_FRACT,          /* QQ */
  MIN_MODE_UFRACT,         /* UQQ */
  MIN_MODE_ACCUM,          /* HA */
  MIN_MODE_UACCUM,         /* UHA */
  MIN_MODE_FLOAT,          /* HF */
  MIN_MODE_DECIMAL_FLOAT,  /* SD */
  MIN_MODE_COMPLEX_INT,    /* CQI */
  MIN_MODE_COMPLEX_FLOAT,  /* HC */
  MIN_MODE_VECTOR_BOOL,    /* VNx1BI */
  MIN_MODE_VECTOR_INT,     /* VNx1QI */
  MIN_MODE_VECTOR_FRACT,   /* VOID */
  MIN_MODE_VECTOR_UFRACT,  /* VOID */
  MIN_MODE_VECTOR_ACCUM,   /* VOID */
  MIN_MODE_VECTOR_UACCUM,  /* VOID */
  MIN_MODE_VECTOR_FLOAT,   /* VNx1HF */
  MIN_MODE_OPAQUE,         /* VOID */
};
