patch to fix PR88157

Message ID ea6d9610-6115-a550-3dc0-cb52b445422a@redhat.com
State New
Headers show
Series
  • patch to fix PR88157
Related show

Commit Message

Vladimir Makarov Nov. 23, 2018, 10:04 p.m.
The following patch fixes

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

   The patch was successfully bootstrapped on x86 and x86-64 with GO and D.

   Committed as rev. 266422.

Comments

Jeff Law Nov. 24, 2018, 7:10 a.m. | #1
On 11/23/18 3:04 PM, Vladimir Makarov wrote:
>   The following patch fixes

> 

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

> 

>   The patch was successfully bootstrapped on x86 and x86-64 with GO and D.

> 

>   Committed as rev. 266422.

> 

> 

> pr88157.patch

> 

> Index: ChangeLog

> ===================================================================

> --- ChangeLog	(revision 266421)

> +++ ChangeLog	(working copy)

> @@ -1,3 +1,9 @@

> +2018-11-23  Vladimir Makarov  <vmakarov@redhat.com>

> +

> +	PR bootstrap/88157

> +	* ira-costs.c (record_operand_costs): Use bigger hard reg class if

> +	its mode does not fit to the original class.

We're still having problems in this code.  I've got about a half-dozen
targets failing.

Try an nds32be-elf cross compiler with the attached testcase.  -O2
-mcmodel=small

It should be failing just below when we try to access
ira_register_move_cost[mode][hard_reg_class][rclass]

Jeff
# 1 "../../../../../gcc/libgcc/libgcc2.c"
# 1 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/nds32be-elf/mcmodel-small/libgcc//"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "../../../../../gcc/libgcc/libgcc2.c"
# 26 "../../../../../gcc/libgcc/libgcc2.c"
# 1 "../../.././gcc/tconfig.h" 1





# 1 "../../.././gcc/auto-host.h" 1
# 7 "../../.././gcc/tconfig.h" 2

# 1 "../../../../../gcc/libgcc/../include/ansidecl.h" 1
# 9 "../../.././gcc/tconfig.h" 2
# 27 "../../../../../gcc/libgcc/libgcc2.c" 2
# 1 "../../../../../gcc/libgcc/../gcc/tsystem.h" 1
# 44 "../../../../../gcc/libgcc/../gcc/tsystem.h"
# 1 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 1 3 4
# 143 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 3 4

# 143 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 209 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 321 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 3 4
typedef unsigned int wchar_t;
# 415 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 3 4
typedef struct {
  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
# 426 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/stddef.h" 3 4
} max_align_t;
# 45 "../../../../../gcc/libgcc/../gcc/tsystem.h" 2
# 1 "/home/jenkins/workspace/nds32be-elf/nds32be-elf-obj/gcc/gcc/include/float.h" 1 3 4
# 46 "../../../../../gcc/libgcc/../gcc/tsystem.h" 2





# 50 "../../../../../gcc/libgcc/../gcc/tsystem.h"
extern void *malloc (size_t);



extern void free (void *);



extern int atexit (void (*)(void));



extern void abort (void) __attribute__ ((__noreturn__));



extern size_t strlen (const char *);



extern void *memcpy (void *, const void *, size_t);



extern void *memset (void *, int, size_t);
# 135 "../../../../../gcc/libgcc/../gcc/tsystem.h"
# 1 "../../../../../gcc/libgcc/../include/filenames.h" 1
# 29 "../../../../../gcc/libgcc/../include/filenames.h"
# 1 "../../../../../gcc/libgcc/../include/hashtab.h" 1
# 39 "../../../../../gcc/libgcc/../include/hashtab.h"
# 1 "../../../../../gcc/libgcc/../include/ansidecl.h" 1
# 40 "../../../../../gcc/libgcc/../include/hashtab.h" 2


typedef unsigned int hashval_t;




typedef hashval_t (*htab_hash) (const void *);






typedef int (*htab_eq) (const void *, const void *);



typedef void (*htab_del) (void *);





typedef int (*htab_trav) (void **, void *);





typedef void *(*htab_alloc) (size_t, size_t);


typedef void (*htab_free) (void *);



typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t);
typedef void (*htab_free_with_arg) (void *, void *);
# 95 "../../../../../gcc/libgcc/../include/hashtab.h"
struct htab {

  htab_hash hash_f;


  htab_eq eq_f;


  htab_del del_f;


  void **entries;


  size_t size;


  size_t n_elements;


  size_t n_deleted;



  unsigned int searches;



  unsigned int collisions;


  htab_alloc alloc_f;
  htab_free free_f;


  void *alloc_arg;
  htab_alloc_with_arg alloc_with_arg_f;
  htab_free_with_arg free_with_arg_f;



  unsigned int size_prime_index;
};

typedef struct htab *htab_t;


enum insert_option {NO_INSERT, INSERT};



extern htab_t htab_create_alloc (size_t, htab_hash,
                                    htab_eq, htab_del,
                                    htab_alloc, htab_free);

extern htab_t htab_create_alloc_ex (size_t, htab_hash,
                                      htab_eq, htab_del,
                                      void *, htab_alloc_with_arg,
                                      htab_free_with_arg);

extern htab_t htab_create_typed_alloc (size_t, htab_hash, htab_eq, htab_del,
     htab_alloc, htab_alloc, htab_free);


extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del);
extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del);

extern void htab_set_functions_ex (htab_t, htab_hash,
                                       htab_eq, htab_del,
                                       void *, htab_alloc_with_arg,
                                       htab_free_with_arg);

extern void htab_delete (htab_t);
extern void htab_empty (htab_t);

extern void * htab_find (htab_t, const void *);
extern void ** htab_find_slot (htab_t, const void *, enum insert_option);
extern void * htab_find_with_hash (htab_t, const void *, hashval_t);
extern void ** htab_find_slot_with_hash (htab_t, const void *,
       hashval_t, enum insert_option);
extern void htab_clear_slot (htab_t, void **);
extern void htab_remove_elt (htab_t, void *);
extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t);

extern void htab_traverse (htab_t, htab_trav, void *);
extern void htab_traverse_noresize (htab_t, htab_trav, void *);

extern size_t htab_size (htab_t);
extern size_t htab_elements (htab_t);
extern double htab_collisions (htab_t);


extern htab_hash htab_hash_pointer;


extern htab_eq htab_eq_pointer;


extern hashval_t htab_hash_string (const void *);


extern hashval_t iterative_hash (const void *, size_t, hashval_t);
# 30 "../../../../../gcc/libgcc/../include/filenames.h" 2
# 83 "../../../../../gcc/libgcc/../include/filenames.h"
extern int filename_cmp (const char *s1, const char *s2);


extern int filename_ncmp (const char *s1, const char *s2,
     size_t n);

extern hashval_t filename_hash (const void *s);

extern int filename_eq (const void *s1, const void *s2);

extern int canonical_filename_eq (const char *a, const char *b);
# 136 "../../../../../gcc/libgcc/../gcc/tsystem.h" 2
# 28 "../../../../../gcc/libgcc/libgcc2.c" 2
# 1 "../../../../../gcc/libgcc/../gcc/coretypes.h" 1
# 346 "../../../../../gcc/libgcc/../gcc/coretypes.h"
struct _dont_use_rtx_here_;
struct _dont_use_rtvec_here_;
struct _dont_use_rtx_insn_here_;
union _dont_use_tree_here_;
# 358 "../../../../../gcc/libgcc/../gcc/coretypes.h"
typedef struct scalar_mode scalar_mode;
typedef struct scalar_int_mode scalar_int_mode;
typedef struct scalar_float_mode scalar_float_mode;
typedef struct complex_mode complex_mode;





enum function_class {
  function_c94,
  function_c99_misc,
  function_c99_math_complex,
  function_sincos,
  function_c11_misc
};



enum symbol_visibility
{
  VISIBILITY_DEFAULT,
  VISIBILITY_PROTECTED,
  VISIBILITY_HIDDEN,
  VISIBILITY_INTERNAL
};



enum flt_eval_method
{
  FLT_EVAL_METHOD_UNPREDICTABLE = -1,
  FLT_EVAL_METHOD_PROMOTE_TO_FLOAT = 0,
  FLT_EVAL_METHOD_PROMOTE_TO_DOUBLE = 1,
  FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE = 2,
  FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 = 16
};

enum excess_precision_type
{
  EXCESS_PRECISION_TYPE_IMPLICIT,
  EXCESS_PRECISION_TYPE_STANDARD,
  EXCESS_PRECISION_TYPE_FAST
};



typedef void (*gt_pointer_operator) (void *, void *);


typedef unsigned char uchar;
# 29 "../../../../../gcc/libgcc/libgcc2.c" 2
# 1 "../../.././gcc/tm.h" 1
# 26 "../../.././gcc/tm.h"
# 1 "../../.././gcc/options.h" 1





# 1 "../../../../../gcc/libgcc/../gcc/flag-types.h" 1
# 23 "../../../../../gcc/libgcc/../gcc/flag-types.h"
enum debug_info_type
{
  NO_DEBUG,
  DBX_DEBUG,
  DWARF2_DEBUG,
  XCOFF_DEBUG,
  VMS_DEBUG,
  VMS_AND_DWARF2_DEBUG

};

enum debug_info_levels
{
  DINFO_LEVEL_NONE,
  DINFO_LEVEL_TERSE,
  DINFO_LEVEL_NORMAL,
  DINFO_LEVEL_VERBOSE
};
# 50 "../../../../../gcc/libgcc/../gcc/flag-types.h"
enum debug_info_usage
{
  DINFO_USAGE_DFN,
  DINFO_USAGE_DIR_USE,
  DINFO_USAGE_IND_USE,
  DINFO_USAGE_NUM_ENUMS
};
# 83 "../../../../../gcc/libgcc/../gcc/flag-types.h"
enum debug_struct_file
{
  DINFO_STRUCT_FILE_NONE,
  DINFO_STRUCT_FILE_BASE,

  DINFO_STRUCT_FILE_SYS,

  DINFO_STRUCT_FILE_ANY
};



enum dwarf_gnat_encodings
{
  DWARF_GNAT_ENCODINGS_ALL = 0,



  DWARF_GNAT_ENCODINGS_GDB = 1,


  DWARF_GNAT_ENCODINGS_MINIMAL = 2

};



enum ivar_visibility
{
  IVAR_VISIBILITY_PRIVATE,
  IVAR_VISIBILITY_PROTECTED,
  IVAR_VISIBILITY_PUBLIC,
  IVAR_VISIBILITY_PACKAGE
};


enum stack_reuse_level
{
  SR_NONE,
  SR_NAMED_VARS,
  SR_ALL
};


enum reorder_blocks_algorithm
{
  REORDER_BLOCKS_ALGORITHM_SIMPLE,
  REORDER_BLOCKS_ALGORITHM_STC
};


enum ira_algorithm
{
  IRA_ALGORITHM_CB,
  IRA_ALGORITHM_PRIORITY
};


enum ira_region
{
  IRA_REGION_ONE,
  IRA_REGION_ALL,
  IRA_REGION_MIXED,



  IRA_REGION_AUTODETECT
};


enum excess_precision
{
  EXCESS_PRECISION_DEFAULT,
  EXCESS_PRECISION_FAST,
  EXCESS_PRECISION_STANDARD
};


enum permitted_flt_eval_methods
{
  PERMITTED_FLT_EVAL_METHODS_DEFAULT,
  PERMITTED_FLT_EVAL_METHODS_TS_18661,
  PERMITTED_FLT_EVAL_METHODS_C11
};
# 176 "../../../../../gcc/libgcc/../gcc/flag-types.h"
enum stack_check_type
{

  NO_STACK_CHECK = 0,



  GENERIC_STACK_CHECK,




  STATIC_BUILTIN_STACK_CHECK,



  FULL_BUILTIN_STACK_CHECK
};


enum fp_contract_mode {
  FP_CONTRACT_OFF = 0,
  FP_CONTRACT_ON = 1,
  FP_CONTRACT_FAST = 2
};


enum scalar_storage_order_kind {
  SSO_NATIVE = 0,
  SSO_BIG_ENDIAN,
  SSO_LITTLE_ENDIAN
};


enum vect_cost_model {
  VECT_COST_MODEL_UNLIMITED = 0,
  VECT_COST_MODEL_CHEAP = 1,
  VECT_COST_MODEL_DYNAMIC = 2,
  VECT_COST_MODEL_DEFAULT = 3
};


enum sanitize_code {

  SANITIZE_ADDRESS = 1UL << 0,
  SANITIZE_USER_ADDRESS = 1UL << 1,
  SANITIZE_KERNEL_ADDRESS = 1UL << 2,

  SANITIZE_THREAD = 1UL << 3,

  SANITIZE_LEAK = 1UL << 4,

  SANITIZE_SHIFT_BASE = 1UL << 5,
  SANITIZE_SHIFT_EXPONENT = 1UL << 6,
  SANITIZE_DIVIDE = 1UL << 7,
  SANITIZE_UNREACHABLE = 1UL << 8,
  SANITIZE_VLA = 1UL << 9,
  SANITIZE_NULL = 1UL << 10,
  SANITIZE_RETURN = 1UL << 11,
  SANITIZE_SI_OVERFLOW = 1UL << 12,
  SANITIZE_BOOL = 1UL << 13,
  SANITIZE_ENUM = 1UL << 14,
  SANITIZE_FLOAT_DIVIDE = 1UL << 15,
  SANITIZE_FLOAT_CAST = 1UL << 16,
  SANITIZE_BOUNDS = 1UL << 17,
  SANITIZE_ALIGNMENT = 1UL << 18,
  SANITIZE_NONNULL_ATTRIBUTE = 1UL << 19,
  SANITIZE_RETURNS_NONNULL_ATTRIBUTE = 1UL << 20,
  SANITIZE_OBJECT_SIZE = 1UL << 21,
  SANITIZE_VPTR = 1UL << 22,
  SANITIZE_BOUNDS_STRICT = 1UL << 23,
  SANITIZE_POINTER_OVERFLOW = 1UL << 24,
  SANITIZE_BUILTIN = 1UL << 25,
  SANITIZE_POINTER_COMPARE = 1UL << 26,
  SANITIZE_POINTER_SUBTRACT = 1UL << 27,
  SANITIZE_SHIFT = SANITIZE_SHIFT_BASE | SANITIZE_SHIFT_EXPONENT,
  SANITIZE_UNDEFINED = SANITIZE_SHIFT | SANITIZE_DIVIDE | SANITIZE_UNREACHABLE
         | SANITIZE_VLA | SANITIZE_NULL | SANITIZE_RETURN
         | SANITIZE_SI_OVERFLOW | SANITIZE_BOOL | SANITIZE_ENUM
         | SANITIZE_BOUNDS | SANITIZE_ALIGNMENT
         | SANITIZE_NONNULL_ATTRIBUTE
         | SANITIZE_RETURNS_NONNULL_ATTRIBUTE
         | SANITIZE_OBJECT_SIZE | SANITIZE_VPTR
         | SANITIZE_POINTER_OVERFLOW | SANITIZE_BUILTIN,
  SANITIZE_UNDEFINED_NONDEFAULT = SANITIZE_FLOAT_DIVIDE | SANITIZE_FLOAT_CAST
      | SANITIZE_BOUNDS_STRICT
};


enum incremental_link {
  INCREMENTAL_LINK_NONE,

  INCREMENTAL_LINK_NOLTO,

  INCREMENTAL_LINK_LTO
};


enum sanitize_coverage_code {

  SANITIZE_COV_TRACE_PC = 1 << 0,

  SANITIZE_COV_TRACE_CMP = 1 << 1
};


enum vtv_priority {
  VTV_NO_PRIORITY = 0,
  VTV_STANDARD_PRIORITY = 1,
  VTV_PREINIT_PRIORITY = 2
};


enum lto_partition_model {
  LTO_PARTITION_NONE = 0,
  LTO_PARTITION_ONE = 1,
  LTO_PARTITION_BALANCED = 2,
  LTO_PARTITION_1TO1 = 3,
  LTO_PARTITION_MAX = 4
};


enum lto_linker_output {
  LTO_LINKER_OUTPUT_UNKNOWN,
  LTO_LINKER_OUTPUT_REL,
  LTO_LINKER_OUTPUT_NOLTOREL,
  LTO_LINKER_OUTPUT_DYN,
  LTO_LINKER_OUTPUT_PIE,
  LTO_LINKER_OUTPUT_EXEC
};



enum gfc_init_local_real
{
  GFC_INIT_REAL_OFF = 0,
  GFC_INIT_REAL_ZERO,
  GFC_INIT_REAL_NAN,
  GFC_INIT_REAL_SNAN,
  GFC_INIT_REAL_INF,
  GFC_INIT_REAL_NEG_INF
};



enum gfc_fcoarray
{
  GFC_FCOARRAY_NONE = 0,
  GFC_FCOARRAY_SINGLE,
  GFC_FCOARRAY_LIB
};




enum gfc_convert
{
  GFC_FLAG_CONVERT_NATIVE = 0,
  GFC_FLAG_CONVERT_SWAP,
  GFC_FLAG_CONVERT_BIG,
  GFC_FLAG_CONVERT_LITTLE
};



enum cf_protection_level
{
  CF_NONE = 0,
  CF_BRANCH = 1 << 0,
  CF_RETURN = 1 << 1,
  CF_FULL = CF_BRANCH | CF_RETURN,
  CF_SET = 1 << 2
};
# 7 "../../.././gcc/options.h" 2

# 1 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32-opts.h" 1
# 28 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32-opts.h"
enum nds32_arch_type
{
  ARCH_V2,
  ARCH_V3,
  ARCH_V3J,
  ARCH_V3M,
  ARCH_V3F,
  ARCH_V3S
};


enum nds32_cpu_type
{
  CPU_N6,
  CPU_N7,
  CPU_N8,
  CPU_E8,
  CPU_N9,
  CPU_N10,
  CPU_GRAYWOLF,
  CPU_N12,
  CPU_N13,
  CPU_SIMPLE
};


enum nds32_cmodel_type
{
  CMODEL_SMALL,
  CMODEL_MEDIUM,
  CMODEL_LARGE
};


enum nds32_ict_model_type
{
  ICT_MODEL_SMALL,
  ICT_MODEL_LARGE
};


enum nds32_mul_type
{
  MUL_TYPE_FAST_1,
  MUL_TYPE_FAST_2,
  MUL_TYPE_SLOW
};


enum nds32_register_ports
{
  REG_PORT_3R2W,
  REG_PORT_2R1W
};


enum abi_type
{
  NDS32_ABI_V2,
  NDS32_ABI_V2_FP_PLUS
};


enum float_reg_number
{
  NDS32_CONFIG_FPU_0,
  NDS32_CONFIG_FPU_1,
  NDS32_CONFIG_FPU_2,
  NDS32_CONFIG_FPU_3,
  NDS32_CONFIG_FPU_4,
  NDS32_CONFIG_FPU_5,
  NDS32_CONFIG_FPU_6,
  NDS32_CONFIG_FPU_7
};
# 9 "../../.././gcc/options.h" 2
# 5688 "../../.././gcc/options.h"
enum opt_code
{
  OPT____ = 0,
# 5699 "../../.././gcc/options.h"
  OPT__completion_ = 9,
# 5718 "../../.././gcc/options.h"
  OPT__help = 28,
  OPT__help_ = 29,
# 5746 "../../.././gcc/options.h"
  OPT__no_sysroot_suffix = 56,



  OPT__output_pch_ = 60,

  OPT__param = 62,
# 5784 "../../.././gcc/options.h"
  OPT__sysroot_ = 94,
  OPT__target_help = 95,
# 5795 "../../.././gcc/options.h"
  OPT__version = 105,


  OPT_A = 108,
  OPT_B = 109,
  OPT_C = 110,
  OPT_CC = 111,
  OPT_D = 112,
  OPT_E = 113,


  OPT_F = 116,
  OPT_H = 117,
  OPT_Hd = 118,
  OPT_Hf = 119,
  OPT_I = 120,
  OPT_J = 121,
  OPT_L = 122,
  OPT_M = 123,
  OPT_MD = 124,
  OPT_MF = 125,
  OPT_MG = 126,
  OPT_MM = 127,
  OPT_MMD = 128,
  OPT_MP = 129,
  OPT_MQ = 130,
  OPT_MT = 131,
  OPT_N = 132,
  OPT_O = 133,
  OPT_Ofast = 134,
  OPT_Og = 135,
  OPT_Os = 136,
  OPT_P = 137,
  OPT_Q = 138,
  OPT_Qn = 139,
  OPT_Qy = 140,
  OPT_R = 141,
  OPT_S = 142,
  OPT_T = 143,
  OPT_Tbss = 144,
  OPT_Tbss_ = 145,
  OPT_Tdata = 146,
  OPT_Tdata_ = 147,
  OPT_Ttext = 148,
  OPT_Ttext_ = 149,
  OPT_U = 150,

  OPT_Wa_ = 152,
  OPT_Wabi = 153,
  OPT_Wabi_tag = 154,
  OPT_Wabi_ = 155,
  OPT_Wabsolute_value = 156,
  OPT_Waddress = 157,
  OPT_Waggregate_return = 158,
  OPT_Waggressive_loop_optimizations = 159,
  OPT_Waliasing = 160,
  OPT_Walign_commons = 161,

  OPT_Waligned_new_ = 163,
  OPT_Wall = 164,
  OPT_Walloc_size_larger_than_ = 165,
  OPT_Walloc_zero = 166,
  OPT_Walloca = 167,
  OPT_Walloca_larger_than_ = 168,
  OPT_Wampersand = 169,
  OPT_Wargument_mismatch = 170,
  OPT_Warray_bounds = 171,
  OPT_Warray_bounds_ = 172,
  OPT_Warray_temporaries = 173,
  OPT_Wassign_intercept = 174,
  OPT_Wattribute_alias_ = 175,
  OPT_Wattribute_warning = 176,
  OPT_Wattributes = 177,
  OPT_Wbad_function_cast = 178,
  OPT_Wbool_compare = 179,
  OPT_Wbool_operation = 180,
  OPT_Wbuiltin_declaration_mismatch = 181,
  OPT_Wbuiltin_macro_redefined = 182,
  OPT_Wc___compat = 183,

  OPT_Wc__11_compat = 185,
  OPT_Wc__14_compat = 186,
  OPT_Wc__17_compat = 187,

  OPT_Wc_binding_type = 189,
  OPT_Wc11_c2x_compat = 190,
  OPT_Wc90_c99_compat = 191,
  OPT_Wc99_c11_compat = 192,
  OPT_Wcannot_profile = 193,
  OPT_Wcast_align = 194,
  OPT_Wcast_align_strict = 195,
  OPT_Wcast_function_type = 196,
  OPT_Wcast_qual = 197,
  OPT_Wcast_result = 198,

  OPT_Wcatch_value_ = 200,
  OPT_Wchar_subscripts = 201,
  OPT_Wcharacter_truncation = 202,
  OPT_Wchkp = 203,
  OPT_Wclass_conversion = 204,
  OPT_Wclass_memaccess = 205,
  OPT_Wclobbered = 206,
  OPT_Wcomment = 207,

  OPT_Wcompare_reals = 209,
  OPT_Wconditionally_supported = 210,
  OPT_Wconversion = 211,
  OPT_Wconversion_extra = 212,
  OPT_Wconversion_null = 213,
  OPT_Wcoverage_mismatch = 214,
  OPT_Wcpp = 215,
  OPT_Wctor_dtor_privacy = 216,
  OPT_Wdangling_else = 217,
  OPT_Wdate_time = 218,
  OPT_Wdeclaration_after_statement = 219,
  OPT_Wdelete_incomplete = 220,
  OPT_Wdelete_non_virtual_dtor = 221,
  OPT_Wdeprecated = 222,
  OPT_Wdeprecated_copy = 223,
  OPT_Wdeprecated_declarations = 224,
  OPT_Wdesignated_init = 225,
  OPT_Wdisabled_optimization = 226,
  OPT_Wdiscarded_array_qualifiers = 227,
  OPT_Wdiscarded_qualifiers = 228,
  OPT_Wdiv_by_zero = 229,
  OPT_Wdo_subscript = 230,
  OPT_Wdouble_promotion = 231,
  OPT_Wduplicate_decl_specifier = 232,
  OPT_Wduplicated_branches = 233,
  OPT_Wduplicated_cond = 234,
  OPT_Weffc__ = 235,
  OPT_Wempty_body = 236,
  OPT_Wendif_labels = 237,
  OPT_Wenum_compare = 238,
  OPT_Werror = 239,

  OPT_Werror_ = 241,
  OPT_Wexpansion_to_defined = 242,
  OPT_Wextra = 243,
  OPT_Wextra_semi = 244,
  OPT_Wfatal_errors = 245,
  OPT_Wfloat_conversion = 246,
  OPT_Wfloat_equal = 247,

  OPT_Wformat_contains_nul = 249,
  OPT_Wformat_extra_args = 250,
  OPT_Wformat_nonliteral = 251,

  OPT_Wformat_overflow_ = 253,
  OPT_Wformat_security = 254,
  OPT_Wformat_signedness = 255,

  OPT_Wformat_truncation_ = 257,
  OPT_Wformat_y2k = 258,
  OPT_Wformat_zero_length = 259,
  OPT_Wformat_ = 260,
  OPT_Wframe_address = 261,
  OPT_Wframe_larger_than_ = 262,
  OPT_Wfree_nonheap_object = 263,
  OPT_Wfrontend_loop_interchange = 264,
  OPT_Wfunction_elimination = 265,
  OPT_Whsa = 266,
  OPT_Wif_not_aligned = 267,
  OPT_Wignored_attributes = 268,
  OPT_Wignored_qualifiers = 269,
  OPT_Wimplicit = 270,

  OPT_Wimplicit_fallthrough_ = 272,
  OPT_Wimplicit_function_declaration = 273,
  OPT_Wimplicit_int = 274,
  OPT_Wimplicit_interface = 275,
  OPT_Wimplicit_procedure = 276,

  OPT_Wincompatible_pointer_types = 278,
  OPT_Winherited_variadic_ctor = 279,
  OPT_Winit_list_lifetime = 280,
  OPT_Winit_self = 281,
  OPT_Winline = 282,
  OPT_Wint_conversion = 283,
  OPT_Wint_in_bool_context = 284,
  OPT_Wint_to_pointer_cast = 285,
  OPT_Winteger_division = 286,
  OPT_Wintrinsic_shadow = 287,
  OPT_Wintrinsics_std = 288,
  OPT_Winvalid_memory_model = 289,
  OPT_Winvalid_offsetof = 290,
  OPT_Winvalid_pch = 291,
  OPT_Wjump_misses_init = 292,
  OPT_Wl_ = 293,

  OPT_Wlarger_than_ = 295,
  OPT_Wline_truncation = 296,
  OPT_Wliteral_suffix = 297,
  OPT_Wlogical_not_parentheses = 298,
  OPT_Wlogical_op = 299,
  OPT_Wlong_long = 300,
  OPT_Wlto_type_mismatch = 301,
  OPT_Wmain = 302,
  OPT_Wmaybe_uninitialized = 303,
  OPT_Wmemset_elt_size = 304,
  OPT_Wmemset_transposed_args = 305,
  OPT_Wmisleading_indentation = 306,
  OPT_Wmissing_attributes = 307,
  OPT_Wmissing_braces = 308,
  OPT_Wmissing_declarations = 309,
  OPT_Wmissing_field_initializers = 310,

  OPT_Wmissing_include_dirs = 312,

  OPT_Wmissing_parameter_type = 314,
  OPT_Wmissing_profile = 315,
  OPT_Wmissing_prototypes = 316,
  OPT_Wmudflap = 317,
  OPT_Wmultichar = 318,
  OPT_Wmultiple_inheritance = 319,
  OPT_Wmultistatement_macros = 320,
  OPT_Wnamespaces = 321,
  OPT_Wnarrowing = 322,
  OPT_Wnested_externs = 323,




  OPT_Wnoexcept = 328,
  OPT_Wnoexcept_type = 329,
  OPT_Wnon_template_friend = 330,
  OPT_Wnon_virtual_dtor = 331,
  OPT_Wnonnull = 332,
  OPT_Wnonnull_compare = 333,

  OPT_Wnormalized_ = 335,
  OPT_Wnull_dereference = 336,
  OPT_Wodr = 337,
  OPT_Wold_style_cast = 338,
  OPT_Wold_style_declaration = 339,
  OPT_Wold_style_definition = 340,
  OPT_Wopenmp_simd = 341,
  OPT_Woverflow = 342,
  OPT_Woverlength_strings = 343,
  OPT_Woverloaded_virtual = 344,
  OPT_Woverride_init = 345,
  OPT_Woverride_init_side_effects = 346,
  OPT_Wp_ = 347,
  OPT_Wpacked = 348,
  OPT_Wpacked_bitfield_compat = 349,
  OPT_Wpacked_not_aligned = 350,
  OPT_Wpadded = 351,
  OPT_Wparentheses = 352,
  OPT_Wpedantic = 353,
  OPT_Wpessimizing_move = 354,

  OPT_Wplacement_new_ = 356,
  OPT_Wpmf_conversions = 357,
  OPT_Wpointer_arith = 358,
  OPT_Wpointer_compare = 359,
  OPT_Wpointer_sign = 360,
  OPT_Wpointer_to_int_cast = 361,
  OPT_Wpragmas = 362,
  OPT_Wprio_ctor_dtor = 363,
  OPT_Wproperty_assign_default = 364,
  OPT_Wprotocol = 365,
  OPT_Wpsabi = 366,
  OPT_Wreal_q_constant = 367,
  OPT_Wrealloc_lhs = 368,
  OPT_Wrealloc_lhs_all = 369,
  OPT_Wredundant_decls = 370,
  OPT_Wredundant_move = 371,
  OPT_Wregister = 372,
  OPT_Wreorder = 373,
  OPT_Wrestrict = 374,
  OPT_Wreturn_local_addr = 375,
  OPT_Wreturn_type = 376,
  OPT_Wscalar_storage_order = 377,
  OPT_Wselector = 378,
  OPT_Wsequence_point = 379,
  OPT_Wshadow = 380,

  OPT_Wshadow_ivar = 382,

  OPT_Wshadow_compatible_local = 384,

  OPT_Wshadow_local = 386,
  OPT_Wshift_count_negative = 387,
  OPT_Wshift_count_overflow = 388,
  OPT_Wshift_negative_value = 389,

  OPT_Wshift_overflow_ = 391,
  OPT_Wsign_compare = 392,
  OPT_Wsign_conversion = 393,
  OPT_Wsign_promo = 394,
  OPT_Wsized_deallocation = 395,
  OPT_Wsizeof_array_argument = 396,
  OPT_Wsizeof_pointer_div = 397,
  OPT_Wsizeof_pointer_memaccess = 398,
  OPT_Wspeculative = 399,
  OPT_Wstack_protector = 400,
  OPT_Wstack_usage_ = 401,
  OPT_Wstrict_aliasing = 402,
  OPT_Wstrict_aliasing_ = 403,
  OPT_Wstrict_null_sentinel = 404,
  OPT_Wstrict_overflow = 405,
  OPT_Wstrict_overflow_ = 406,
  OPT_Wstrict_prototypes = 407,
  OPT_Wstrict_selector_match = 408,

  OPT_Wstringop_overflow_ = 410,
  OPT_Wstringop_truncation = 411,
  OPT_Wsubobject_linkage = 412,
  OPT_Wsuggest_attribute_cold = 413,
  OPT_Wsuggest_attribute_const = 414,
  OPT_Wsuggest_attribute_format = 415,
  OPT_Wsuggest_attribute_malloc = 416,
  OPT_Wsuggest_attribute_noreturn = 417,
  OPT_Wsuggest_attribute_pure = 418,
  OPT_Wsuggest_final_methods = 419,
  OPT_Wsuggest_final_types = 420,
  OPT_Wsuggest_override = 421,
  OPT_Wsurprising = 422,
  OPT_Wswitch = 423,
  OPT_Wswitch_bool = 424,
  OPT_Wswitch_default = 425,
  OPT_Wswitch_enum = 426,
  OPT_Wswitch_unreachable = 427,
  OPT_Wsync_nand = 428,
  OPT_Wsynth = 429,
  OPT_Wsystem_headers = 430,
  OPT_Wtabs = 431,
  OPT_Wtarget_lifetime = 432,
  OPT_Wtautological_compare = 433,
  OPT_Wtemplates = 434,
  OPT_Wterminate = 435,
  OPT_Wtraditional = 436,
  OPT_Wtraditional_conversion = 437,
  OPT_Wtrampolines = 438,
  OPT_Wtrigraphs = 439,
  OPT_Wtype_limits = 440,
  OPT_Wundeclared_selector = 441,
  OPT_Wundef = 442,
  OPT_Wundefined_do_loop = 443,
  OPT_Wunderflow = 444,
  OPT_Wuninitialized = 445,
  OPT_Wunknown_pragmas = 446,


  OPT_Wunsuffixed_float_constants = 449,
  OPT_Wunused = 450,
  OPT_Wunused_but_set_parameter = 451,
  OPT_Wunused_but_set_variable = 452,

  OPT_Wunused_const_variable_ = 454,
  OPT_Wunused_dummy_argument = 455,
  OPT_Wunused_function = 456,
  OPT_Wunused_label = 457,
  OPT_Wunused_local_typedefs = 458,
  OPT_Wunused_macros = 459,
  OPT_Wunused_parameter = 460,
  OPT_Wunused_result = 461,
  OPT_Wunused_value = 462,
  OPT_Wunused_variable = 463,
  OPT_Wuse_without_only = 464,
  OPT_Wuseless_cast = 465,
  OPT_Wvarargs = 466,
  OPT_Wvariadic_macros = 467,
  OPT_Wvector_operation_performance = 468,
  OPT_Wvirtual_inheritance = 469,
  OPT_Wvirtual_move_assign = 470,
  OPT_Wvla = 471,
  OPT_Wvla_larger_than_ = 472,
  OPT_Wvolatile_register_var = 473,
  OPT_Wwrite_strings = 474,
  OPT_Wzero_as_null_pointer_constant = 475,
  OPT_Wzerotrip = 476,
  OPT_X = 477,
  OPT_Xassembler = 478,
  OPT_Xf = 479,
  OPT_Xlinker = 480,
  OPT_Xpreprocessor = 481,
  OPT_Z = 482,
  OPT_ansi = 483,
  OPT_aux_info = 484,

  OPT_auxbase = 486,
  OPT_auxbase_strip = 487,
  OPT_c = 488,
  OPT_coverage = 489,
  OPT_cpp = 490,
  OPT_cpp_ = 491,
  OPT_d = 492,
  OPT_debuglib_ = 493,
  OPT_defaultlib_ = 494,
  OPT_dumpbase = 495,
  OPT_dumpdir = 496,
  OPT_dumpfullversion = 497,
  OPT_dumpmachine = 498,
  OPT_dumpspecs = 499,
  OPT_dumpversion = 500,
  OPT_e = 501,
  OPT_export_dynamic = 502,
  OPT_fPIC = 503,
  OPT_fPIE = 504,
  OPT_fRTS_ = 505,
  OPT_fabi_compat_version_ = 506,
  OPT_fabi_version_ = 507,
  OPT_faccess_control = 508,
  OPT_fada_spec_parent_ = 509,
  OPT_faggressive_function_elimination = 510,
  OPT_faggressive_loop_optimizations = 511,
  OPT_falign_commons = 512,
  OPT_falign_functions = 513,
  OPT_falign_functions_ = 514,
  OPT_falign_jumps = 515,
  OPT_falign_jumps_ = 516,
  OPT_falign_labels = 517,
  OPT_falign_labels_ = 518,
  OPT_falign_loops = 519,
  OPT_falign_loops_ = 520,

  OPT_faligned_new_ = 522,
  OPT_fall_instantiations = 523,
  OPT_fall_intrinsics = 524,
  OPT_fall_virtual = 525,
  OPT_fallow_leading_underscore = 526,
  OPT_fallow_parameterless_variadic_functions = 527,
  OPT_falt_external_templates = 528,




  OPT_fasan_shadow_offset_ = 533,
  OPT_fasm = 534,
  OPT_fassert = 535,
  OPT_fassociative_math = 536,
  OPT_fassume_phsa = 537,
  OPT_fasynchronous_unwind_tables = 538,
  OPT_fauto_inc_dec = 539,
  OPT_fauto_profile = 540,
  OPT_fauto_profile_ = 541,
  OPT_fautomatic = 542,
  OPT_fbackslash = 543,
  OPT_fbacktrace = 544,
  OPT_fblas_matmul_limit_ = 545,
  OPT_fbounds_check = 546,
  OPT_fbounds_check_ = 547,
  OPT_fbranch_count_reg = 548,
  OPT_fbranch_probabilities = 549,
  OPT_fbranch_target_load_optimize = 550,
  OPT_fbranch_target_load_optimize2 = 551,
  OPT_fbtr_bb_exclusive = 552,
  OPT_fbuilding_libgcc = 553,
  OPT_fbuiltin = 554,
  OPT_fbuiltin_ = 555,
  OPT_fbuiltin_printf = 556,
  OPT_fc_prototypes = 557,
  OPT_fcall_saved_ = 558,
  OPT_fcall_used_ = 559,
  OPT_fcaller_saves = 560,
  OPT_fcanonical_system_headers = 561,

  OPT_fcf_protection_ = 563,
  OPT_fcheck_array_temporaries = 564,

  OPT_fcheck_new = 566,
  OPT_fcheck_pointer_bounds = 567,
  OPT_fcheck_ = 568,
  OPT_fchecking = 569,
  OPT_fchecking_ = 570,
  OPT_fchkp_check_incomplete_type = 571,
  OPT_fchkp_check_read = 572,
  OPT_fchkp_check_write = 573,
  OPT_fchkp_first_field_has_own_bounds = 574,
  OPT_fchkp_flexible_struct_trailing_arrays = 575,
  OPT_fchkp_instrument_calls = 576,
  OPT_fchkp_instrument_marked_only = 577,
  OPT_fchkp_narrow_bounds = 578,
  OPT_fchkp_narrow_to_innermost_array = 579,
  OPT_fchkp_optimize = 580,
  OPT_fchkp_store_bounds = 581,
  OPT_fchkp_treat_zero_dynamic_size_as_infinite = 582,
  OPT_fchkp_use_fast_string_functions = 583,
  OPT_fchkp_use_nochk_string_functions = 584,
  OPT_fchkp_use_static_bounds = 585,
  OPT_fchkp_use_static_const_bounds = 586,
  OPT_fchkp_use_wrappers = 587,
  OPT_fchkp_zero_input_bounds_for_main = 588,

  OPT_fcoarray_ = 590,
  OPT_fcode_hoisting = 591,
  OPT_fcombine_stack_adjustments = 592,
  OPT_fcommon = 593,
  OPT_fcompare_debug = 594,
  OPT_fcompare_debug_second = 595,
  OPT_fcompare_debug_ = 596,
  OPT_fcompare_elim = 597,
  OPT_fconcepts = 598,
  OPT_fcond_mismatch = 599,

  OPT_fconserve_stack = 601,
  OPT_fconstant_string_class_ = 602,
  OPT_fconstexpr_depth_ = 603,
  OPT_fconstexpr_loop_limit_ = 604,
  OPT_fconvert_ = 605,
  OPT_fcprop_registers = 606,
  OPT_fcray_pointer = 607,
  OPT_fcrossjumping = 608,
  OPT_fcse_follow_jumps = 609,

  OPT_fcx_fortran_rules = 611,
  OPT_fcx_limited_range = 612,
  OPT_fd_lines_as_code = 613,
  OPT_fd_lines_as_comments = 614,
  OPT_fdata_sections = 615,
  OPT_fdbg_cnt_list = 616,
  OPT_fdbg_cnt_ = 617,
  OPT_fdce = 618,
  OPT_fdebug = 619,
  OPT_fdebug_cpp = 620,
  OPT_fdebug_prefix_map_ = 621,
  OPT_fdebug_types_section = 622,
  OPT_fdebug_ = 623,
  OPT_fdec = 624,
  OPT_fdec_include = 625,
  OPT_fdec_intrinsic_ints = 626,
  OPT_fdec_math = 627,
  OPT_fdec_static = 628,
  OPT_fdec_structure = 629,
  OPT_fdeclone_ctor_dtor = 630,
  OPT_fdeduce_init_list = 631,
  OPT_fdefault_double_8 = 632,

  OPT_fdefault_integer_8 = 634,
  OPT_fdefault_real_10 = 635,
  OPT_fdefault_real_16 = 636,
  OPT_fdefault_real_8 = 637,
  OPT_fdefer_pop = 638,
  OPT_fdelayed_branch = 639,
  OPT_fdelete_dead_exceptions = 640,
  OPT_fdelete_null_pointer_checks = 641,
  OPT_fdevirtualize = 642,
  OPT_fdevirtualize_at_ltrans = 643,
  OPT_fdevirtualize_speculatively = 644,

  OPT_fdiagnostics_color_ = 646,
  OPT_fdiagnostics_format_ = 647,
  OPT_fdiagnostics_generate_patch = 648,
  OPT_fdiagnostics_minimum_margin_width_ = 649,
  OPT_fdiagnostics_parseable_fixits = 650,
  OPT_fdiagnostics_show_caret = 651,
  OPT_fdiagnostics_show_labels = 652,
  OPT_fdiagnostics_show_line_numbers = 653,
  OPT_fdiagnostics_show_location_ = 654,
  OPT_fdiagnostics_show_option = 655,
  OPT_fdiagnostics_show_template_tree = 656,
  OPT_fdirectives_only = 657,
  OPT_fdisable_ = 658,
  OPT_fdoc = 659,
  OPT_fdoc_dir_ = 660,
  OPT_fdoc_file_ = 661,
  OPT_fdoc_inc_ = 662,
  OPT_fdollar_ok = 663,
  OPT_fdollars_in_identifiers = 664,
  OPT_fdse = 665,
  OPT_fdump_ = 666,
  OPT_fdump_ada_spec = 667,
  OPT_fdump_ada_spec_slim = 668,

  OPT_fdump_d_original = 670,
  OPT_fdump_final_insns = 671,
  OPT_fdump_final_insns_ = 672,
  OPT_fdump_fortran_optimized = 673,
  OPT_fdump_fortran_original = 674,
  OPT_fdump_go_spec_ = 675,
  OPT_fdump_internal_locations = 676,
  OPT_fdump_noaddr = 677,

  OPT_fdump_passes = 679,
  OPT_fdump_unnumbered = 680,
  OPT_fdump_unnumbered_links = 681,
  OPT_fdwarf2_cfi_asm = 682,
  OPT_fearly_inlining = 683,
  OPT_felide_constructors = 684,
  OPT_felide_type = 685,

  OPT_feliminate_unused_debug_symbols = 687,
  OPT_feliminate_unused_debug_types = 688,
  OPT_femit_class_debug_always = 689,
  OPT_femit_struct_debug_baseonly = 690,
  OPT_femit_struct_debug_detailed_ = 691,
  OPT_femit_struct_debug_reduced = 692,
  OPT_fenable_ = 693,
  OPT_fenforce_eh_specs = 694,
  OPT_fenum_int_equiv = 695,
  OPT_fexceptions = 696,
  OPT_fexcess_precision_ = 697,
  OPT_fexec_charset_ = 698,
  OPT_fexpensive_optimizations = 699,
  OPT_fext_numeric_literals = 700,
  OPT_fextended_identifiers = 701,
  OPT_fextern_tls_init = 702,
  OPT_fexternal_blas = 703,
  OPT_fexternal_templates = 704,
  OPT_ff2c = 705,
  OPT_ffast_math = 706,
  OPT_ffat_lto_objects = 707,
  OPT_ffile_prefix_map_ = 708,
  OPT_ffinite_math_only = 709,
  OPT_ffixed_ = 710,
  OPT_ffixed_form = 711,
  OPT_ffixed_line_length_ = 712,
  OPT_ffixed_line_length_none = 713,
  OPT_ffloat_store = 714,
  OPT_ffor_scope = 715,

  OPT_fforward_propagate = 717,
  OPT_ffp_contract_ = 718,
  OPT_ffp_int_builtin_inexact = 719,
  OPT_ffpe_summary_ = 720,
  OPT_ffpe_trap_ = 721,
  OPT_ffree_form = 722,
  OPT_ffree_line_length_ = 723,
  OPT_ffree_line_length_none = 724,
  OPT_ffreestanding = 725,
  OPT_ffriend_injection = 726,
  OPT_ffrontend_loop_interchange = 727,
  OPT_ffrontend_optimize = 728,
  OPT_ffunction_cse = 729,
  OPT_ffunction_sections = 730,
  OPT_fgcse = 731,
  OPT_fgcse_after_reload = 732,
  OPT_fgcse_las = 733,
  OPT_fgcse_lm = 734,
  OPT_fgcse_sm = 735,
  OPT_fgimple = 736,
  OPT_fgnat_encodings_ = 737,
  OPT_fgnu_keywords = 738,
  OPT_fgnu_runtime = 739,
  OPT_fgnu_tm = 740,
  OPT_fgnu_unique = 741,
  OPT_fgnu89_inline = 742,
  OPT_fgo_c_header_ = 743,
  OPT_fgo_check_divide_overflow = 744,
  OPT_fgo_check_divide_zero = 745,
  OPT_fgo_compiling_runtime = 746,
  OPT_fgo_debug_escape = 747,
  OPT_fgo_debug_escape_hash_ = 748,
  OPT_fgo_dump_ = 749,
  OPT_fgo_optimize_ = 750,
  OPT_fgo_pkgpath_ = 751,
  OPT_fgo_prefix_ = 752,
  OPT_fgo_relative_import_path_ = 753,
  OPT_fgraphite = 754,
  OPT_fgraphite_identity = 755,
  OPT_fguess_branch_probability = 756,
  OPT_fguiding_decls = 757,



  OPT_fhoist_adjacent_loads = 761,
  OPT_fhonor_std = 762,
  OPT_fhosted = 763,
  OPT_fhuge_objects = 764,
  OPT_fident = 765,
  OPT_fif_conversion = 766,
  OPT_fif_conversion2 = 767,
  OPT_fignore_unknown_pragmas = 768,
  OPT_fimplement_inlines = 769,
  OPT_fimplicit_inline_templates = 770,
  OPT_fimplicit_none = 771,
  OPT_fimplicit_templates = 772,
  OPT_findirect_inlining = 773,
  OPT_finhibit_size_directive = 774,
  OPT_finit_character_ = 775,
  OPT_finit_derived = 776,
  OPT_finit_integer_ = 777,
  OPT_finit_local_zero = 778,
  OPT_finit_logical_ = 779,
  OPT_finit_real_ = 780,
  OPT_finline = 781,
  OPT_finline_atomics = 782,
  OPT_finline_functions = 783,
  OPT_finline_functions_called_once = 784,

  OPT_finline_limit_ = 786,
  OPT_finline_matmul_limit_ = 787,
  OPT_finline_small_functions = 788,
  OPT_finput_charset_ = 789,
  OPT_finstrument_functions = 790,
  OPT_finstrument_functions_exclude_file_list_ = 791,
  OPT_finstrument_functions_exclude_function_list_ = 792,
  OPT_finteger_4_integer_8 = 793,
  OPT_fintrinsic_modules_path = 794,
  OPT_fintrinsic_modules_path_ = 795,
  OPT_finvariants = 796,
  OPT_fipa_bit_cp = 797,
  OPT_fipa_cp = 798,

  OPT_fipa_cp_clone = 800,
  OPT_fipa_icf = 801,
  OPT_fipa_icf_functions = 802,
  OPT_fipa_icf_variables = 803,

  OPT_fipa_profile = 805,
  OPT_fipa_pta = 806,
  OPT_fipa_pure_const = 807,
  OPT_fipa_ra = 808,
  OPT_fipa_reference = 809,
  OPT_fipa_reference_addressable = 810,
  OPT_fipa_sra = 811,
  OPT_fipa_stack_alignment = 812,

  OPT_fipa_vrp = 814,
  OPT_fira_algorithm_ = 815,
  OPT_fira_hoist_pressure = 816,
  OPT_fira_loop_pressure = 817,
  OPT_fira_region_ = 818,
  OPT_fira_share_save_slots = 819,
  OPT_fira_share_spill_slots = 820,
  OPT_fira_verbose_ = 821,
  OPT_fisolate_erroneous_paths_attribute = 822,
  OPT_fisolate_erroneous_paths_dereference = 823,
  OPT_fivar_visibility_ = 824,
  OPT_fivopts = 825,
  OPT_fjump_tables = 826,
  OPT_fkeep_gc_roots_live = 827,
  OPT_fkeep_inline_dllexport = 828,
  OPT_fkeep_inline_functions = 829,
  OPT_fkeep_static_consts = 830,
  OPT_fkeep_static_functions = 831,
  OPT_flabels_ok = 832,
  OPT_flax_vector_conversions = 833,
  OPT_fleading_underscore = 834,
  OPT_flifetime_dse = 835,
  OPT_flifetime_dse_ = 836,
  OPT_flimit_function_alignment = 837,
  OPT_flinker_output_ = 838,
  OPT_flive_range_shrinkage = 839,
  OPT_flocal_ivars = 840,


  OPT_floop_interchange = 843,
  OPT_floop_nest_optimize = 844,

  OPT_floop_parallelize_all = 846,

  OPT_floop_unroll_and_jam = 848,
  OPT_flra_remat = 849,
  OPT_flto = 850,
  OPT_flto_compression_level_ = 851,
  OPT_flto_odr_type_merging = 852,
  OPT_flto_partition_ = 853,
  OPT_flto_report = 854,
  OPT_flto_report_wpa = 855,
  OPT_flto_ = 856,
  OPT_fltrans = 857,
  OPT_fltrans_output_list_ = 858,
  OPT_fmacro_prefix_map_ = 859,
  OPT_fmain = 860,
  OPT_fmath_errno = 861,
  OPT_fmax_array_constructor_ = 862,
  OPT_fmax_errors_ = 863,
  OPT_fmax_identifier_length_ = 864,
  OPT_fmax_stack_var_size_ = 865,
  OPT_fmax_subrecord_length_ = 866,
  OPT_fmem_report = 867,
  OPT_fmem_report_wpa = 868,
  OPT_fmerge_all_constants = 869,
  OPT_fmerge_constants = 870,
  OPT_fmerge_debug_strings = 871,
  OPT_fmessage_length_ = 872,
  OPT_fmodule_file_ = 873,
  OPT_fmodule_private = 874,
  OPT_fmoduleinfo = 875,
  OPT_fmodulo_sched = 876,
  OPT_fmodulo_sched_allow_regmoves = 877,
  OPT_fmove_loop_invariants = 878,
  OPT_fms_extensions = 879,
  OPT_fmudflap = 880,
  OPT_fmudflapir = 881,
  OPT_fmudflapth = 882,
  OPT_fname_mangling_version_ = 883,
  OPT_fnew_abi = 884,
  OPT_fnew_inheriting_ctors = 885,
  OPT_fnew_ttp_matching = 886,
  OPT_fnext_runtime = 887,
  OPT_fnil_receivers = 888,
  OPT_fnon_call_exceptions = 889,
  OPT_fnonansi_builtins = 890,
  OPT_fnonnull_objects = 891,
  OPT_fnothrow_opt = 892,
  OPT_fobjc_abi_version_ = 893,
  OPT_fobjc_call_cxx_cdtors = 894,
  OPT_fobjc_direct_dispatch = 895,
  OPT_fobjc_exceptions = 896,
  OPT_fobjc_gc = 897,
  OPT_fobjc_nilcheck = 898,
  OPT_fobjc_sjlj_exceptions = 899,
  OPT_fobjc_std_objc1 = 900,
  OPT_foffload_abi_ = 901,
  OPT_foffload_ = 902,
  OPT_fomit_frame_pointer = 903,
  OPT_fonly_ = 904,
  OPT_fopenacc = 905,
  OPT_fopenacc_dim_ = 906,
  OPT_fopenmp = 907,
  OPT_fopenmp_simd = 908,
  OPT_foperator_names = 909,
  OPT_fopt_info = 910,
  OPT_fopt_info_ = 911,

  OPT_foptimize_sibling_calls = 913,
  OPT_foptimize_strlen = 914,

  OPT_fpack_derived = 916,
  OPT_fpack_struct = 917,
  OPT_fpack_struct_ = 918,
  OPT_fpad_source = 919,
  OPT_fpartial_inlining = 920,
  OPT_fpatchable_function_entry_ = 921,
  OPT_fpcc_struct_return = 922,
  OPT_fpch_deps = 923,
  OPT_fpch_preprocess = 924,
  OPT_fpeel_loops = 925,
  OPT_fpeephole = 926,
  OPT_fpeephole2 = 927,
  OPT_fpermissive = 928,
  OPT_fpermitted_flt_eval_methods_ = 929,
  OPT_fpic = 930,
  OPT_fpie = 931,
  OPT_fplan9_extensions = 932,
  OPT_fplt = 933,
  OPT_fplugin_arg_ = 934,
  OPT_fplugin_ = 935,
  OPT_fpost_ipa_mem_report = 936,
  OPT_fpostconditions = 937,
  OPT_fpre_ipa_mem_report = 938,
  OPT_fpreconditions = 939,
  OPT_fpredictive_commoning = 940,
  OPT_fprefetch_loop_arrays = 941,
  OPT_fpreprocessed = 942,
  OPT_fpretty_templates = 943,
  OPT_fprintf_return_value = 944,
  OPT_fprofile = 945,
  OPT_fprofile_abs_path = 946,
  OPT_fprofile_arcs = 947,
  OPT_fprofile_correction = 948,
  OPT_fprofile_dir_ = 949,
  OPT_fprofile_exclude_files_ = 950,
  OPT_fprofile_filter_files_ = 951,
  OPT_fprofile_generate = 952,
  OPT_fprofile_generate_ = 953,
  OPT_fprofile_reorder_functions = 954,
  OPT_fprofile_report = 955,
  OPT_fprofile_update_ = 956,
  OPT_fprofile_use = 957,
  OPT_fprofile_use_ = 958,
  OPT_fprofile_values = 959,
  OPT_fprotect_parens = 960,
  OPT_frandom_seed = 961,
  OPT_frandom_seed_ = 962,
  OPT_frange_check = 963,
  OPT_freal_4_real_10 = 964,
  OPT_freal_4_real_16 = 965,
  OPT_freal_4_real_8 = 966,
  OPT_freal_8_real_10 = 967,
  OPT_freal_8_real_16 = 968,
  OPT_freal_8_real_4 = 969,
  OPT_frealloc_lhs = 970,
  OPT_freciprocal_math = 971,
  OPT_frecord_gcc_switches = 972,
  OPT_frecord_marker_4 = 973,
  OPT_frecord_marker_8 = 974,
  OPT_frecursive = 975,
  OPT_free = 976,
  OPT_freg_struct_return = 977,

  OPT_frelease = 979,
  OPT_frename_registers = 980,
  OPT_freorder_blocks = 981,
  OPT_freorder_blocks_algorithm_ = 982,
  OPT_freorder_blocks_and_partition = 983,
  OPT_freorder_functions = 984,
  OPT_frepack_arrays = 985,
  OPT_freplace_objc_classes = 986,
  OPT_frepo = 987,
  OPT_freport_bug = 988,
  OPT_frequire_return_statement = 989,
  OPT_frerun_cse_after_loop = 990,

  OPT_freschedule_modulo_scheduled_loops = 992,
  OPT_fresolution_ = 993,
  OPT_frounding_math = 994,
  OPT_frtti = 995,
  OPT_fsanitize_address_use_after_scope = 996,
  OPT_fsanitize_coverage_ = 997,
  OPT_fsanitize_recover = 998,
  OPT_fsanitize_recover_ = 999,
  OPT_fsanitize_sections_ = 1000,
  OPT_fsanitize_undefined_trap_on_error = 1001,
  OPT_fsanitize_ = 1002,
  OPT_fsave_optimization_record = 1003,
  OPT_fsched_critical_path_heuristic = 1004,
  OPT_fsched_dep_count_heuristic = 1005,
  OPT_fsched_group_heuristic = 1006,
  OPT_fsched_interblock = 1007,
  OPT_fsched_last_insn_heuristic = 1008,
  OPT_fsched_pressure = 1009,
  OPT_fsched_rank_heuristic = 1010,
  OPT_fsched_spec = 1011,
  OPT_fsched_spec_insn_heuristic = 1012,
  OPT_fsched_spec_load = 1013,
  OPT_fsched_spec_load_dangerous = 1014,
  OPT_fsched_stalled_insns = 1015,
  OPT_fsched_stalled_insns_dep = 1016,
  OPT_fsched_stalled_insns_dep_ = 1017,
  OPT_fsched_stalled_insns_ = 1018,
  OPT_fsched_verbose_ = 1019,
  OPT_fsched2_use_superblocks = 1020,

  OPT_fschedule_fusion = 1022,
  OPT_fschedule_insns = 1023,
  OPT_fschedule_insns2 = 1024,
  OPT_fsecond_underscore = 1025,
  OPT_fsection_anchors = 1026,

  OPT_fsel_sched_pipelining = 1028,
  OPT_fsel_sched_pipelining_outer_loops = 1029,
  OPT_fsel_sched_reschedule_pipelined = 1030,
  OPT_fselective_scheduling = 1031,
  OPT_fselective_scheduling2 = 1032,
  OPT_fself_test_ = 1033,
  OPT_fsemantic_interposition = 1034,
  OPT_fshort_enums = 1035,
  OPT_fshort_wchar = 1036,
  OPT_fshow_column = 1037,
  OPT_fshrink_wrap = 1038,
  OPT_fshrink_wrap_separate = 1039,
  OPT_fsign_zero = 1040,
  OPT_fsignaling_nans = 1041,
  OPT_fsigned_bitfields = 1042,
  OPT_fsigned_char = 1043,
  OPT_fsigned_zeros = 1044,
  OPT_fsimd_cost_model_ = 1045,
  OPT_fsingle_precision_constant = 1046,
  OPT_fsized_deallocation = 1047,
  OPT_fsplit_ivs_in_unroller = 1048,
  OPT_fsplit_loops = 1049,
  OPT_fsplit_paths = 1050,
  OPT_fsplit_stack = 1051,
  OPT_fsplit_wide_types = 1052,
  OPT_fsquangle = 1053,
  OPT_fssa_backprop = 1054,
  OPT_fssa_phiopt = 1055,
  OPT_fsso_struct_ = 1056,
  OPT_fstack_arrays = 1057,

  OPT_fstack_check_ = 1059,
  OPT_fstack_clash_protection = 1060,
  OPT_fstack_limit = 1061,
  OPT_fstack_limit_register_ = 1062,
  OPT_fstack_limit_symbol_ = 1063,
  OPT_fstack_protector = 1064,
  OPT_fstack_protector_all = 1065,
  OPT_fstack_protector_explicit = 1066,
  OPT_fstack_protector_strong = 1067,
  OPT_fstack_reuse_ = 1068,
  OPT_fstack_usage = 1069,
  OPT_fstats = 1070,
  OPT_fstdarg_opt = 1071,
  OPT_fstore_merging = 1072,

  OPT_fstrict_aliasing = 1074,
  OPT_fstrict_enums = 1075,
  OPT_fstrict_overflow = 1076,
  OPT_fstrict_prototype = 1077,
  OPT_fstrict_volatile_bitfields = 1078,

  OPT_fstrong_eval_order_ = 1080,
  OPT_fswitch_errors = 1081,
  OPT_fsync_libcalls = 1082,
  OPT_fsyntax_only = 1083,
  OPT_ftabstop_ = 1084,

  OPT_ftemplate_backtrace_limit_ = 1086,

  OPT_ftemplate_depth_ = 1088,
  OPT_ftest_coverage = 1089,
  OPT_ftest_forall_temp = 1090,
  OPT_fthis_is_variable = 1091,
  OPT_fthread_jumps = 1092,
  OPT_fthreadsafe_statics = 1093,
  OPT_ftime_report = 1094,
  OPT_ftime_report_details = 1095,
  OPT_ftls_model_ = 1096,
  OPT_ftoplevel_reorder = 1097,
  OPT_ftracer = 1098,
  OPT_ftrack_macro_expansion = 1099,
  OPT_ftrack_macro_expansion_ = 1100,
  OPT_ftrampolines = 1101,
  OPT_ftransition_all = 1102,
  OPT_ftransition_checkimports = 1103,
  OPT_ftransition_complex = 1104,
  OPT_ftransition_dip1000 = 1105,
  OPT_ftransition_dip25 = 1106,
  OPT_ftransition_field = 1107,
  OPT_ftransition_import = 1108,
  OPT_ftransition_nogc = 1109,
  OPT_ftransition_tls = 1110,
  OPT_ftrapping_math = 1111,
  OPT_ftrapv = 1112,
  OPT_ftree_bit_ccp = 1113,
  OPT_ftree_builtin_call_dce = 1114,
  OPT_ftree_ccp = 1115,
  OPT_ftree_ch = 1116,

  OPT_ftree_coalesce_vars = 1118,
  OPT_ftree_copy_prop = 1119,

  OPT_ftree_cselim = 1121,
  OPT_ftree_dce = 1122,
  OPT_ftree_dominator_opts = 1123,
  OPT_ftree_dse = 1124,
  OPT_ftree_forwprop = 1125,
  OPT_ftree_fre = 1126,
  OPT_ftree_loop_distribute_patterns = 1127,
  OPT_ftree_loop_distribution = 1128,
  OPT_ftree_loop_if_convert = 1129,

  OPT_ftree_loop_im = 1131,
  OPT_ftree_loop_ivcanon = 1132,

  OPT_ftree_loop_optimize = 1134,
  OPT_ftree_loop_vectorize = 1135,
  OPT_ftree_lrs = 1136,
  OPT_ftree_parallelize_loops_ = 1137,
  OPT_ftree_partial_pre = 1138,
  OPT_ftree_phiprop = 1139,
  OPT_ftree_pre = 1140,
  OPT_ftree_pta = 1141,
  OPT_ftree_reassoc = 1142,

  OPT_ftree_scev_cprop = 1144,
  OPT_ftree_sink = 1145,
  OPT_ftree_slp_vectorize = 1146,
  OPT_ftree_slsr = 1147,
  OPT_ftree_sra = 1148,


  OPT_ftree_switch_conversion = 1151,
  OPT_ftree_tail_merge = 1152,
  OPT_ftree_ter = 1153,

  OPT_ftree_vectorize = 1155,

  OPT_ftree_vrp = 1157,
  OPT_funconstrained_commons = 1158,
  OPT_funderscoring = 1159,
  OPT_funit_at_a_time = 1160,
  OPT_funittest = 1161,
  OPT_funroll_all_loops = 1162,
  OPT_funroll_loops = 1163,

  OPT_funsafe_math_optimizations = 1165,
  OPT_funsigned_bitfields = 1166,
  OPT_funsigned_char = 1167,
  OPT_funswitch_loops = 1168,
  OPT_funwind_tables = 1169,
  OPT_fuse_cxa_atexit = 1170,
  OPT_fuse_cxa_get_exception_ptr = 1171,
  OPT_fuse_ld_bfd = 1172,
  OPT_fuse_ld_gold = 1173,
  OPT_fuse_ld_lld = 1174,
  OPT_fuse_linker_plugin = 1175,
  OPT_fvar_tracking = 1176,
  OPT_fvar_tracking_assignments = 1177,
  OPT_fvar_tracking_assignments_toggle = 1178,
  OPT_fvar_tracking_uninit = 1179,
  OPT_fvariable_expansion_in_unroller = 1180,

  OPT_fvect_cost_model_ = 1182,
  OPT_fverbose_asm = 1183,

  OPT_fversion_ = 1185,
  OPT_fvisibility_inlines_hidden = 1186,
  OPT_fvisibility_ms_compat = 1187,
  OPT_fvisibility_ = 1188,
  OPT_fvpt = 1189,
  OPT_fvtable_gc = 1190,
  OPT_fvtable_thunks = 1191,
  OPT_fvtable_verify_ = 1192,
  OPT_fvtv_counts = 1193,
  OPT_fvtv_debug = 1194,
  OPT_fweak = 1195,
  OPT_fweb = 1196,

  OPT_fwhole_program = 1198,
  OPT_fwide_exec_charset_ = 1199,
  OPT_fworking_directory = 1200,
  OPT_fwpa = 1201,
  OPT_fwpa_ = 1202,
  OPT_fwrapv = 1203,
  OPT_fwrapv_pointer = 1204,
  OPT_fxref = 1205,

  OPT_fzero_initialized_in_bss = 1207,
  OPT_fzero_link = 1208,
  OPT_g = 1209,
  OPT_gant = 1210,
  OPT_gas_loc_support = 1211,
  OPT_gas_locview_support = 1212,
  OPT_gcoff = 1213,
  OPT_gcoff1 = 1214,
  OPT_gcoff2 = 1215,
  OPT_gcoff3 = 1216,
  OPT_gcolumn_info = 1217,
  OPT_gdescribe_dies = 1218,
  OPT_gdwarf = 1219,
  OPT_gdwarf_ = 1220,
  OPT_gen_decls = 1221,
  OPT_ggdb = 1222,
  OPT_ggnu_pubnames = 1223,
  OPT_ginline_points = 1224,
  OPT_ginternal_reset_location_views = 1225,
  OPT_gnat = 1226,
  OPT_gnatO = 1227,
  OPT_gno_ = 1228,
  OPT_gno_pubnames = 1229,
  OPT_gpubnames = 1230,
  OPT_grecord_gcc_switches = 1231,
  OPT_gsplit_dwarf = 1232,
  OPT_gstabs = 1233,
  OPT_gstabs_ = 1234,
  OPT_gstatement_frontiers = 1235,
  OPT_gstrict_dwarf = 1236,
  OPT_gtoggle = 1237,
  OPT_gvariable_location_views = 1238,
  OPT_gvariable_location_views_incompat5 = 1239,
  OPT_gvms = 1240,
  OPT_gxcoff = 1241,
  OPT_gxcoff_ = 1242,
  OPT_gz = 1243,
  OPT_gz_ = 1244,
  OPT_h = 1245,
  OPT_idirafter = 1246,
  OPT_imacros = 1247,
  OPT_imultiarch = 1248,
  OPT_imultilib = 1249,
  OPT_include = 1250,
  OPT_iplugindir_ = 1251,
  OPT_iprefix = 1252,
  OPT_iquote = 1253,
  OPT_isysroot = 1254,
  OPT_isystem = 1255,
  OPT_iwithprefix = 1256,
  OPT_iwithprefixbefore = 1257,
  OPT_k8 = 1258,
  OPT_l = 1259,
  OPT_lang_asm = 1260,
  OPT_m16_bit = 1261,
  OPT_mabi_ = 1262,
  OPT_malign_functions = 1263,
  OPT_malways_align = 1264,
  OPT_malways_save_lp = 1265,
  OPT_march_ = 1266,
  OPT_mbig_endian = 1267,
  OPT_mcache_block_size_ = 1268,
  OPT_mcmodel_ = 1269,
  OPT_mcmov = 1270,
  OPT_mconfig_fpu_ = 1271,
  OPT_mconfig_mul_ = 1272,
  OPT_mconfig_register_ports_ = 1273,
  OPT_mcpu_ = 1274,
  OPT_mctor_dtor = 1275,
  OPT_mext_dsp = 1276,
  OPT_mext_fpu_dp = 1277,
  OPT_mext_fpu_fma = 1278,
  OPT_mext_fpu_sp = 1279,
  OPT_mext_perf = 1280,
  OPT_mext_perf2 = 1281,
  OPT_mext_string = 1282,


  OPT_mforbid_fp_as_gp = 1285,
  OPT_mforce_fp_as_gp = 1286,
  OPT_mforce_no_ext_dsp = 1287,

  OPT_mfull_regs = 1289,
  OPT_mhw_abs = 1290,
  OPT_mict_model_ = 1291,
  OPT_minline_asm_r15 = 1292,
  OPT_misr_secure_ = 1293,
  OPT_misr_vector_size_ = 1294,
  OPT_mlittle_endian = 1295,

  OPT_mreduced_regs = 1297,
  OPT_mrelax = 1298,
  OPT_mrelax_hint = 1299,
  OPT_mret_in_naked_func = 1300,
  OPT_msched_prolog_epilog = 1301,
  OPT_munaligned_access = 1302,
  OPT_mv3push = 1303,
  OPT_mvh = 1304,
  OPT_n = 1305,
  OPT_no_canonical_prefixes = 1306,
  OPT_no_integrated_cpp = 1307,
  OPT_no_pie = 1308,
  OPT_nocpp = 1309,
  OPT_nodefaultlibs = 1310,
  OPT_nolibc = 1311,
  OPT_nophoboslib = 1312,
  OPT_nostartfiles = 1313,
  OPT_nostdinc = 1314,
  OPT_nostdinc__ = 1315,
  OPT_nostdlib = 1316,
  OPT_o = 1317,
  OPT_p = 1318,
  OPT_pass_exit_codes = 1319,

  OPT_pedantic_errors = 1321,
  OPT_pg = 1322,
  OPT_pie = 1323,
  OPT_pipe = 1324,
  OPT_print_file_name_ = 1325,
  OPT_print_libgcc_file_name = 1326,
  OPT_print_multi_directory = 1327,
  OPT_print_multi_lib = 1328,
  OPT_print_multi_os_directory = 1329,
  OPT_print_multiarch = 1330,
  OPT_print_objc_runtime_info = 1331,
  OPT_print_prog_name_ = 1332,
  OPT_print_search_dirs = 1333,
  OPT_print_sysroot = 1334,
  OPT_print_sysroot_headers_suffix = 1335,
  OPT_quiet = 1336,
  OPT_r = 1337,
  OPT_remap = 1338,
  OPT_s = 1339,
  OPT_save_temps = 1340,
  OPT_save_temps_ = 1341,
  OPT_shared = 1342,
  OPT_shared_libgcc = 1343,
  OPT_shared_libphobos = 1344,

  OPT_specs_ = 1346,
  OPT_static = 1347,
  OPT_static_libasan = 1348,
  OPT_static_libgcc = 1349,
  OPT_static_libgfortran = 1350,
  OPT_static_libgo = 1351,
  OPT_static_liblsan = 1352,
  OPT_static_libmpx = 1353,
  OPT_static_libmpxwrappers = 1354,
  OPT_static_libphobos = 1355,
  OPT_static_libstdc__ = 1356,
  OPT_static_libtsan = 1357,
  OPT_static_libubsan = 1358,
  OPT_static_pie = 1359,


  OPT_std_c__11 = 1362,
  OPT_std_c__14 = 1363,
  OPT_std_c__17 = 1364,


  OPT_std_c__2a = 1367,
  OPT_std_c__98 = 1368,
  OPT_std_c11 = 1369,
  OPT_std_c17 = 1370,


  OPT_std_c2x = 1373,

  OPT_std_c90 = 1375,
  OPT_std_c99 = 1376,

  OPT_std_f2003 = 1378,
  OPT_std_f2008 = 1379,
  OPT_std_f2008ts = 1380,
  OPT_std_f2018 = 1381,
  OPT_std_f95 = 1382,
  OPT_std_gnu = 1383,


  OPT_std_gnu__11 = 1386,
  OPT_std_gnu__14 = 1387,
  OPT_std_gnu__17 = 1388,


  OPT_std_gnu__2a = 1391,
  OPT_std_gnu__98 = 1392,
  OPT_std_gnu11 = 1393,
  OPT_std_gnu17 = 1394,


  OPT_std_gnu2x = 1397,

  OPT_std_gnu90 = 1399,
  OPT_std_gnu99 = 1400,


  OPT_std_iso9899_199409 = 1403,





  OPT_std_legacy = 1409,
  OPT_symbolic = 1410,
  OPT_t = 1411,
  OPT_time = 1412,
  OPT_time_ = 1413,
  OPT_traditional = 1414,
  OPT_traditional_cpp = 1415,
  OPT_trigraphs = 1416,
  OPT_u = 1417,
  OPT_undef = 1418,
  OPT_v = 1419,
  OPT_version = 1420,
  OPT_w = 1421,
  OPT_wrapper = 1422,
  OPT_x = 1423,
  OPT_z = 1424,
  N_OPTS,
  OPT_SPECIAL_unknown,
  OPT_SPECIAL_ignore,
  OPT_SPECIAL_deprecated,
  OPT_SPECIAL_program_name,
  OPT_SPECIAL_input_file
};
# 27 "../../.././gcc/tm.h" 2
# 1 "../../.././gcc/insn-constants.h" 1
# 15 "../../.././gcc/insn-constants.h"
enum unspec_element {
  UNSPEC_COPYSIGN = 0,
  UNSPEC_FCPYNSD = 1,
  UNSPEC_FCPYNSS = 2,
  UNSPEC_FCPYSD = 3,
  UNSPEC_FCPYSS = 4,
  UNSPEC_CLIP = 5,
  UNSPEC_CLIPS = 6,
  UNSPEC_CLO = 7,
  UNSPEC_PBSAD = 8,
  UNSPEC_PBSADA = 9,
  UNSPEC_BSE = 10,
  UNSPEC_BSE_2 = 11,
  UNSPEC_BSP = 12,
  UNSPEC_BSP_2 = 13,
  UNSPEC_FFB = 14,
  UNSPEC_FFMISM = 15,
  UNSPEC_FLMISM = 16,
  UNSPEC_KDMBB = 17,
  UNSPEC_KDMBT = 18,
  UNSPEC_KDMTB = 19,
  UNSPEC_KDMTT = 20,
  UNSPEC_KHMBB = 21,
  UNSPEC_KHMBT = 22,
  UNSPEC_KHMTB = 23,
  UNSPEC_KHMTT = 24,
  UNSPEC_KSLRAW = 25,
  UNSPEC_KSLRAWU = 26,
  UNSPEC_SVA = 27,
  UNSPEC_SVS = 28,
  UNSPEC_WSBH = 29,
  UNSPEC_LWUP = 30,
  UNSPEC_LBUP = 31,
  UNSPEC_SWUP = 32,
  UNSPEC_SBUP = 33,
  UNSPEC_UALOAD_HW = 34,
  UNSPEC_UALOAD_W = 35,
  UNSPEC_UALOAD_DW = 36,
  UNSPEC_UASTORE_HW = 37,
  UNSPEC_UASTORE_W = 38,
  UNSPEC_UASTORE_DW = 39,
  UNSPEC_GOTINIT = 40,
  UNSPEC_GOT = 41,
  UNSPEC_GOTOFF = 42,
  UNSPEC_PLT = 43,
  UNSPEC_TLSGD = 44,
  UNSPEC_TLSLD = 45,
  UNSPEC_TLSIE = 46,
  UNSPEC_TLSLE = 47,
  UNSPEC_ROUND = 48,
  UNSPEC_VEC_COMPARE = 49,
  UNSPEC_KHM = 50,
  UNSPEC_KHMX = 51,
  UNSPEC_CLIP_OV = 52,
  UNSPEC_CLIPS_OV = 53,
  UNSPEC_BITREV = 54,
  UNSPEC_KABS = 55,
  UNSPEC_LOOP_END = 56,
  UNSPEC_TLS_DESC = 57,
  UNSPEC_TLS_IE = 58,
  UNSPEC_ADD32 = 59,
  UNSPEC_ICT = 60,
  UNSPEC_KADDH = 61,
  UNSPEC_KSUBH = 62
};

extern const char *const unspec_element_strings[];

enum unspec_volatile_element {
  UNSPEC_VOLATILE_EH_RETURN = 0,
  UNSPEC_VOLATILE_ISYNC = 1,
  UNSPEC_VOLATILE_ISB = 2,
  UNSPEC_VOLATILE_DSB = 3,
  UNSPEC_VOLATILE_MSYNC = 4,
  UNSPEC_VOLATILE_MSYNC_ALL = 5,
  UNSPEC_VOLATILE_MSYNC_STORE = 6,
  UNSPEC_VOLATILE_MFSR = 7,
  UNSPEC_VOLATILE_MFUSR = 8,
  UNSPEC_VOLATILE_MTSR = 9,
  UNSPEC_VOLATILE_MTUSR = 10,
  UNSPEC_VOLATILE_SETGIE_EN = 11,
  UNSPEC_VOLATILE_SETGIE_DIS = 12,
  UNSPEC_VOLATILE_FMFCSR = 13,
  UNSPEC_VOLATILE_FMTCSR = 14,
  UNSPEC_VOLATILE_FMFCFG = 15,
  UNSPEC_VOLATILE_JR_ITOFF = 16,
  UNSPEC_VOLATILE_JR_TOFF = 17,
  UNSPEC_VOLATILE_JRAL_ITON = 18,
  UNSPEC_VOLATILE_JRAL_TON = 19,
  UNSPEC_VOLATILE_RET_ITOFF = 20,
  UNSPEC_VOLATILE_RET_TOFF = 21,
  UNSPEC_VOLATILE_STANDBY_NO_WAKE_GRANT = 22,
  UNSPEC_VOLATILE_STANDBY_WAKE_GRANT = 23,
  UNSPEC_VOLATILE_STANDBY_WAKE_DONE = 24,
  UNSPEC_VOLATILE_TEQZ = 25,
  UNSPEC_VOLATILE_TNEZ = 26,
  UNSPEC_VOLATILE_TRAP = 27,
  UNSPEC_VOLATILE_SETEND_BIG = 28,
  UNSPEC_VOLATILE_SETEND_LITTLE = 29,
  UNSPEC_VOLATILE_BREAK = 30,
  UNSPEC_VOLATILE_SYSCALL = 31,
  UNSPEC_VOLATILE_NOP = 32,
  UNSPEC_VOLATILE_LLW = 33,
  UNSPEC_VOLATILE_SCW = 34,
  UNSPEC_VOLATILE_CCTL_L1D_INVALALL = 35,
  UNSPEC_VOLATILE_CCTL_L1D_WBALL_ALVL = 36,
  UNSPEC_VOLATILE_CCTL_L1D_WBALL_ONE_LVL = 37,
  UNSPEC_VOLATILE_CCTL_IDX_WRITE = 38,
  UNSPEC_VOLATILE_CCTL_IDX_READ = 39,
  UNSPEC_VOLATILE_CCTL_VA_WBINVAL_L1 = 40,
  UNSPEC_VOLATILE_CCTL_VA_WBINVAL_LA = 41,
  UNSPEC_VOLATILE_CCTL_IDX_WBINVAL = 42,
  UNSPEC_VOLATILE_CCTL_VA_LCK = 43,
  UNSPEC_VOLATILE_DPREF_QW = 44,
  UNSPEC_VOLATILE_DPREF_HW = 45,
  UNSPEC_VOLATILE_DPREF_W = 46,
  UNSPEC_VOLATILE_DPREF_DW = 47,
  UNSPEC_VOLATILE_TLBOP_TRD = 48,
  UNSPEC_VOLATILE_TLBOP_TWR = 49,
  UNSPEC_VOLATILE_TLBOP_RWR = 50,
  UNSPEC_VOLATILE_TLBOP_RWLK = 51,
  UNSPEC_VOLATILE_TLBOP_UNLK = 52,
  UNSPEC_VOLATILE_TLBOP_PB = 53,
  UNSPEC_VOLATILE_TLBOP_INV = 54,
  UNSPEC_VOLATILE_TLBOP_FLUA = 55,
  UNSPEC_VOLATILE_ENABLE_INT = 56,
  UNSPEC_VOLATILE_DISABLE_INT = 57,
  UNSPEC_VOLATILE_SET_PENDING_SWINT = 58,
  UNSPEC_VOLATILE_CLR_PENDING_SWINT = 59,
  UNSPEC_VOLATILE_CLR_PENDING_HWINT = 60,
  UNSPEC_VOLATILE_GET_ALL_PENDING_INT = 61,
  UNSPEC_VOLATILE_GET_PENDING_INT = 62,
  UNSPEC_VOLATILE_SET_INT_PRIORITY = 63,
  UNSPEC_VOLATILE_GET_INT_PRIORITY = 64,
  UNSPEC_VOLATILE_SET_TRIG_LEVEL = 65,
  UNSPEC_VOLATILE_SET_TRIG_EDGE = 66,
  UNSPEC_VOLATILE_GET_TRIG_TYPE = 67,
  UNSPEC_VOLATILE_RELAX_GROUP = 68,
  UNSPEC_VOLATILE_OMIT_FP_BEGIN = 69,
  UNSPEC_VOLATILE_OMIT_FP_END = 70,
  UNSPEC_VOLATILE_POP25_RETURN = 71,
  UNSPEC_VOLATILE_UNALIGNED_FEATURE = 72,
  UNSPEC_VOLATILE_ENABLE_UNALIGNED = 73,
  UNSPEC_VOLATILE_DISABLE_UNALIGNED = 74,
  UNSPEC_VOLATILE_RDOV = 75,
  UNSPEC_VOLATILE_CLROV = 76
};

extern const char *const unspec_volatile_element_strings[];
# 28 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/dbxelf.h" 1
# 29 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/elfos.h" 1
# 30 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/newlib-stdint.h" 1
# 31 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32.h" 1
# 39 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32.h"
enum nds32_relax_insn_type
{
  RELAX_ORI,
  RELAX_PLT_ADD,
  RELAX_TLS_ADD_or_LW,
  RELAX_TLS_ADD_LW,
  RELAX_TLS_LW_JRAL,
  RELAX_DONE
};


enum nds32_expand_result_type
{
  EXPAND_DONE,
  EXPAND_FAIL,
  EXPAND_CREATE_TEMPLATE
};


enum nds32_16bit_address_type
{

  ADDRESS_REG,

  ADDRESS_LO_REG_IMM3U,

  ADDRESS_POST_INC_LO_REG_IMM3U,

  ADDRESS_POST_MODIFY_LO_REG_IMM3U,

  ADDRESS_R8_IMM7U,

  ADDRESS_FP_IMM7U,

  ADDRESS_SP_IMM7U,

  ADDRESS_NOT_16BIT_FORMAT
};
# 248 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32.h"
struct machine_function
{


  int va_args_size;


  int local_size;

  int out_args_size;


  int fp_size;

  int gp_size;

  int lp_size;



  int callee_saved_gpr_regs_size;



  int callee_saved_fpr_regs_size;


  int callee_saved_area_gpr_padding_bytes;


  int callee_saved_first_gpr_regno;

  int callee_saved_last_gpr_regno;


  int callee_saved_first_fpr_regno;

  int callee_saved_last_fpr_regno;


  int va_args_area_padding_bytes;


  int va_args_first_regno;

  int va_args_last_regno;


  int eh_return_data_regs_size;

  int eh_return_data_first_regno;

  int eh_return_data_last_regno;



  int use_eh_return_p;



  int naked_p;


  int fp_as_gp_p;
# 320 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32.h"
  int strict_aligned_p;


  int attr_naked_p;
  int attr_no_prologue_p;
};


typedef struct
{
  unsigned int gpr_offset;
  unsigned int fpr_offset;
} nds32_cumulative_args;
# 350 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32.h"
enum nds32_isr_category
{
  NDS32_ISR_NONE,
  NDS32_ISR_INTERRUPT,
  NDS32_ISR_EXCEPTION,
  NDS32_ISR_RESET
};


enum nds32_isr_save_reg
{
  NDS32_SAVE_ALL,
  NDS32_PARTIAL_SAVE
};


enum nds32_isr_nested_type
{
  NDS32_NESTED,
  NDS32_NOT_NESTED,
  NDS32_NESTED_READY,
  NDS32_CRITICAL
};




struct nds32_isr_info
{




  enum nds32_isr_category category;



  char func_name[100];




  enum nds32_isr_save_reg save_reg;




  enum nds32_isr_nested_type nested_type;






  unsigned int security_level;





  unsigned int total_n_vectors;




  char nmi_name[100];




  char warm_name[100];
};




enum nds32_builtins
{
  NDS32_BUILTIN_ISYNC,
  NDS32_BUILTIN_ISB,
  NDS32_BUILTIN_DSB,
  NDS32_BUILTIN_MSYNC_ALL,
  NDS32_BUILTIN_MSYNC_STORE,
  NDS32_BUILTIN_MFSR,
  NDS32_BUILTIN_MFUSR,
  NDS32_BUILTIN_MTSR,
  NDS32_BUILTIN_MTSR_ISB,
  NDS32_BUILTIN_MTSR_DSB,
  NDS32_BUILTIN_MTUSR,
  NDS32_BUILTIN_SETGIE_EN,
  NDS32_BUILTIN_SETGIE_DIS,
  NDS32_BUILTIN_FMFCFG,
  NDS32_BUILTIN_FMFCSR,
  NDS32_BUILTIN_FMTCSR,
  NDS32_BUILTIN_FCPYNSS,
  NDS32_BUILTIN_FCPYSS,
  NDS32_BUILTIN_FCPYNSD,
  NDS32_BUILTIN_FCPYSD,
  NDS32_BUILTIN_ABS,
  NDS32_BUILTIN_AVE,
  NDS32_BUILTIN_BCLR,
  NDS32_BUILTIN_BSET,
  NDS32_BUILTIN_BTGL,
  NDS32_BUILTIN_BTST,
  NDS32_BUILTIN_CLIP,
  NDS32_BUILTIN_CLIPS,
  NDS32_BUILTIN_CLZ,
  NDS32_BUILTIN_CLO,
  NDS32_BUILTIN_MAX,
  NDS32_BUILTIN_MIN,
  NDS32_BUILTIN_PBSAD,
  NDS32_BUILTIN_PBSADA,
  NDS32_BUILTIN_BSE,
  NDS32_BUILTIN_BSP,
  NDS32_BUILTIN_FFB,
  NDS32_BUILTIN_FFMISM,
  NDS32_BUILTIN_FLMISM,
  NDS32_BUILTIN_KADDW,
  NDS32_BUILTIN_KSUBW,
  NDS32_BUILTIN_KADDH,
  NDS32_BUILTIN_KSUBH,
  NDS32_BUILTIN_KDMBB,
  NDS32_BUILTIN_V_KDMBB,
  NDS32_BUILTIN_KDMBT,
  NDS32_BUILTIN_V_KDMBT,
  NDS32_BUILTIN_KDMTB,
  NDS32_BUILTIN_V_KDMTB,
  NDS32_BUILTIN_KDMTT,
  NDS32_BUILTIN_V_KDMTT,
  NDS32_BUILTIN_KHMBB,
  NDS32_BUILTIN_V_KHMBB,
  NDS32_BUILTIN_KHMBT,
  NDS32_BUILTIN_V_KHMBT,
  NDS32_BUILTIN_KHMTB,
  NDS32_BUILTIN_V_KHMTB,
  NDS32_BUILTIN_KHMTT,
  NDS32_BUILTIN_V_KHMTT,
  NDS32_BUILTIN_KSLRAW,
  NDS32_BUILTIN_KSLRAW_U,
  NDS32_BUILTIN_RDOV,
  NDS32_BUILTIN_CLROV,
  NDS32_BUILTIN_ROTR,
  NDS32_BUILTIN_SVA,
  NDS32_BUILTIN_SVS,
  NDS32_BUILTIN_WSBH,
  NDS32_BUILTIN_JR_ITOFF,
  NDS32_BUILTIN_JR_TOFF,
  NDS32_BUILTIN_JRAL_ITON,
  NDS32_BUILTIN_JRAL_TON,
  NDS32_BUILTIN_RET_ITOFF,
  NDS32_BUILTIN_RET_TOFF,
  NDS32_BUILTIN_STANDBY_NO_WAKE_GRANT,
  NDS32_BUILTIN_STANDBY_WAKE_GRANT,
  NDS32_BUILTIN_STANDBY_WAKE_DONE,
  NDS32_BUILTIN_TEQZ,
  NDS32_BUILTIN_TNEZ,
  NDS32_BUILTIN_TRAP,
  NDS32_BUILTIN_SETEND_BIG,
  NDS32_BUILTIN_SETEND_LITTLE,
  NDS32_BUILTIN_SYSCALL,
  NDS32_BUILTIN_BREAK,
  NDS32_BUILTIN_NOP,
  NDS32_BUILTIN_SCHE_BARRIER,
  NDS32_BUILTIN_GET_CURRENT_SP,
  NDS32_BUILTIN_SET_CURRENT_SP,
  NDS32_BUILTIN_RETURN_ADDRESS,
  NDS32_BUILTIN_LLW,
  NDS32_BUILTIN_LWUP,
  NDS32_BUILTIN_LBUP,
  NDS32_BUILTIN_SCW,
  NDS32_BUILTIN_SWUP,
  NDS32_BUILTIN_SBUP,
  NDS32_BUILTIN_CCTL_VA_LCK,
  NDS32_BUILTIN_CCTL_IDX_WBINVAL,
  NDS32_BUILTIN_CCTL_VA_WBINVAL_L1,
  NDS32_BUILTIN_CCTL_VA_WBINVAL_LA,
  NDS32_BUILTIN_CCTL_IDX_READ,
  NDS32_BUILTIN_CCTL_IDX_WRITE,
  NDS32_BUILTIN_CCTL_L1D_INVALALL,
  NDS32_BUILTIN_CCTL_L1D_WBALL_ALVL,
  NDS32_BUILTIN_CCTL_L1D_WBALL_ONE_LVL,
  NDS32_BUILTIN_DPREF_QW,
  NDS32_BUILTIN_DPREF_HW,
  NDS32_BUILTIN_DPREF_W,
  NDS32_BUILTIN_DPREF_DW,
  NDS32_BUILTIN_TLBOP_TRD,
  NDS32_BUILTIN_TLBOP_TWR,
  NDS32_BUILTIN_TLBOP_RWR,
  NDS32_BUILTIN_TLBOP_RWLK,
  NDS32_BUILTIN_TLBOP_UNLK,
  NDS32_BUILTIN_TLBOP_PB,
  NDS32_BUILTIN_TLBOP_INV,
  NDS32_BUILTIN_TLBOP_FLUA,
  NDS32_BUILTIN_UALOAD_HW,
  NDS32_BUILTIN_UALOAD_W,
  NDS32_BUILTIN_UALOAD_DW,
  NDS32_BUILTIN_UASTORE_HW,
  NDS32_BUILTIN_UASTORE_W,
  NDS32_BUILTIN_UASTORE_DW,
  NDS32_BUILTIN_GIE_DIS,
  NDS32_BUILTIN_GIE_EN,
  NDS32_BUILTIN_ENABLE_INT,
  NDS32_BUILTIN_DISABLE_INT,
  NDS32_BUILTIN_SET_PENDING_SWINT,
  NDS32_BUILTIN_CLR_PENDING_SWINT,
  NDS32_BUILTIN_CLR_PENDING_HWINT,
  NDS32_BUILTIN_GET_ALL_PENDING_INT,
  NDS32_BUILTIN_GET_PENDING_INT,
  NDS32_BUILTIN_SET_INT_PRIORITY,
  NDS32_BUILTIN_GET_INT_PRIORITY,
  NDS32_BUILTIN_SET_TRIG_LEVEL,
  NDS32_BUILTIN_SET_TRIG_EDGE,
  NDS32_BUILTIN_GET_TRIG_TYPE,
  NDS32_BUILTIN_DSP_BEGIN,
  NDS32_BUILTIN_ADD16,
  NDS32_BUILTIN_V_UADD16,
  NDS32_BUILTIN_V_SADD16,
  NDS32_BUILTIN_RADD16,
  NDS32_BUILTIN_V_RADD16,
  NDS32_BUILTIN_URADD16,
  NDS32_BUILTIN_V_URADD16,
  NDS32_BUILTIN_KADD16,
  NDS32_BUILTIN_V_KADD16,
  NDS32_BUILTIN_UKADD16,
  NDS32_BUILTIN_V_UKADD16,
  NDS32_BUILTIN_SUB16,
  NDS32_BUILTIN_V_USUB16,
  NDS32_BUILTIN_V_SSUB16,
  NDS32_BUILTIN_RSUB16,
  NDS32_BUILTIN_V_RSUB16,
  NDS32_BUILTIN_URSUB16,
  NDS32_BUILTIN_V_URSUB16,
  NDS32_BUILTIN_KSUB16,
  NDS32_BUILTIN_V_KSUB16,
  NDS32_BUILTIN_UKSUB16,
  NDS32_BUILTIN_V_UKSUB16,
  NDS32_BUILTIN_CRAS16,
  NDS32_BUILTIN_V_UCRAS16,
  NDS32_BUILTIN_V_SCRAS16,
  NDS32_BUILTIN_RCRAS16,
  NDS32_BUILTIN_V_RCRAS16,
  NDS32_BUILTIN_URCRAS16,
  NDS32_BUILTIN_V_URCRAS16,
  NDS32_BUILTIN_KCRAS16,
  NDS32_BUILTIN_V_KCRAS16,
  NDS32_BUILTIN_UKCRAS16,
  NDS32_BUILTIN_V_UKCRAS16,
  NDS32_BUILTIN_CRSA16,
  NDS32_BUILTIN_V_UCRSA16,
  NDS32_BUILTIN_V_SCRSA16,
  NDS32_BUILTIN_RCRSA16,
  NDS32_BUILTIN_V_RCRSA16,
  NDS32_BUILTIN_URCRSA16,
  NDS32_BUILTIN_V_URCRSA16,
  NDS32_BUILTIN_KCRSA16,
  NDS32_BUILTIN_V_KCRSA16,
  NDS32_BUILTIN_UKCRSA16,
  NDS32_BUILTIN_V_UKCRSA16,
  NDS32_BUILTIN_ADD8,
  NDS32_BUILTIN_V_UADD8,
  NDS32_BUILTIN_V_SADD8,
  NDS32_BUILTIN_RADD8,
  NDS32_BUILTIN_V_RADD8,
  NDS32_BUILTIN_URADD8,
  NDS32_BUILTIN_V_URADD8,
  NDS32_BUILTIN_KADD8,
  NDS32_BUILTIN_V_KADD8,
  NDS32_BUILTIN_UKADD8,
  NDS32_BUILTIN_V_UKADD8,
  NDS32_BUILTIN_SUB8,
  NDS32_BUILTIN_V_USUB8,
  NDS32_BUILTIN_V_SSUB8,
  NDS32_BUILTIN_RSUB8,
  NDS32_BUILTIN_V_RSUB8,
  NDS32_BUILTIN_URSUB8,
  NDS32_BUILTIN_V_URSUB8,
  NDS32_BUILTIN_KSUB8,
  NDS32_BUILTIN_V_KSUB8,
  NDS32_BUILTIN_UKSUB8,
  NDS32_BUILTIN_V_UKSUB8,
  NDS32_BUILTIN_SRA16,
  NDS32_BUILTIN_V_SRA16,
  NDS32_BUILTIN_SRA16_U,
  NDS32_BUILTIN_V_SRA16_U,
  NDS32_BUILTIN_SRL16,
  NDS32_BUILTIN_V_SRL16,
  NDS32_BUILTIN_SRL16_U,
  NDS32_BUILTIN_V_SRL16_U,
  NDS32_BUILTIN_SLL16,
  NDS32_BUILTIN_V_SLL16,
  NDS32_BUILTIN_KSLL16,
  NDS32_BUILTIN_V_KSLL16,
  NDS32_BUILTIN_KSLRA16,
  NDS32_BUILTIN_V_KSLRA16,
  NDS32_BUILTIN_KSLRA16_U,
  NDS32_BUILTIN_V_KSLRA16_U,
  NDS32_BUILTIN_CMPEQ16,
  NDS32_BUILTIN_V_SCMPEQ16,
  NDS32_BUILTIN_V_UCMPEQ16,
  NDS32_BUILTIN_SCMPLT16,
  NDS32_BUILTIN_V_SCMPLT16,
  NDS32_BUILTIN_SCMPLE16,
  NDS32_BUILTIN_V_SCMPLE16,
  NDS32_BUILTIN_UCMPLT16,
  NDS32_BUILTIN_V_UCMPLT16,
  NDS32_BUILTIN_UCMPLE16,
  NDS32_BUILTIN_V_UCMPLE16,
  NDS32_BUILTIN_CMPEQ8,
  NDS32_BUILTIN_V_SCMPEQ8,
  NDS32_BUILTIN_V_UCMPEQ8,
  NDS32_BUILTIN_SCMPLT8,
  NDS32_BUILTIN_V_SCMPLT8,
  NDS32_BUILTIN_SCMPLE8,
  NDS32_BUILTIN_V_SCMPLE8,
  NDS32_BUILTIN_UCMPLT8,
  NDS32_BUILTIN_V_UCMPLT8,
  NDS32_BUILTIN_UCMPLE8,
  NDS32_BUILTIN_V_UCMPLE8,
  NDS32_BUILTIN_SMIN16,
  NDS32_BUILTIN_V_SMIN16,
  NDS32_BUILTIN_UMIN16,
  NDS32_BUILTIN_V_UMIN16,
  NDS32_BUILTIN_SMAX16,
  NDS32_BUILTIN_V_SMAX16,
  NDS32_BUILTIN_UMAX16,
  NDS32_BUILTIN_V_UMAX16,
  NDS32_BUILTIN_SCLIP16,
  NDS32_BUILTIN_V_SCLIP16,
  NDS32_BUILTIN_UCLIP16,
  NDS32_BUILTIN_V_UCLIP16,
  NDS32_BUILTIN_KHM16,
  NDS32_BUILTIN_V_KHM16,
  NDS32_BUILTIN_KHMX16,
  NDS32_BUILTIN_V_KHMX16,
  NDS32_BUILTIN_KABS16,
  NDS32_BUILTIN_V_KABS16,
  NDS32_BUILTIN_SMIN8,
  NDS32_BUILTIN_V_SMIN8,
  NDS32_BUILTIN_UMIN8,
  NDS32_BUILTIN_V_UMIN8,
  NDS32_BUILTIN_SMAX8,
  NDS32_BUILTIN_V_SMAX8,
  NDS32_BUILTIN_UMAX8,
  NDS32_BUILTIN_V_UMAX8,
  NDS32_BUILTIN_KABS8,
  NDS32_BUILTIN_V_KABS8,
  NDS32_BUILTIN_SUNPKD810,
  NDS32_BUILTIN_V_SUNPKD810,
  NDS32_BUILTIN_SUNPKD820,
  NDS32_BUILTIN_V_SUNPKD820,
  NDS32_BUILTIN_SUNPKD830,
  NDS32_BUILTIN_V_SUNPKD830,
  NDS32_BUILTIN_SUNPKD831,
  NDS32_BUILTIN_V_SUNPKD831,
  NDS32_BUILTIN_ZUNPKD810,
  NDS32_BUILTIN_V_ZUNPKD810,
  NDS32_BUILTIN_ZUNPKD820,
  NDS32_BUILTIN_V_ZUNPKD820,
  NDS32_BUILTIN_ZUNPKD830,
  NDS32_BUILTIN_V_ZUNPKD830,
  NDS32_BUILTIN_ZUNPKD831,
  NDS32_BUILTIN_V_ZUNPKD831,
  NDS32_BUILTIN_RADDW,
  NDS32_BUILTIN_URADDW,
  NDS32_BUILTIN_RSUBW,
  NDS32_BUILTIN_URSUBW,
  NDS32_BUILTIN_SRA_U,
  NDS32_BUILTIN_KSLL,
  NDS32_BUILTIN_PKBB16,
  NDS32_BUILTIN_V_PKBB16,
  NDS32_BUILTIN_PKBT16,
  NDS32_BUILTIN_V_PKBT16,
  NDS32_BUILTIN_PKTB16,
  NDS32_BUILTIN_V_PKTB16,
  NDS32_BUILTIN_PKTT16,
  NDS32_BUILTIN_V_PKTT16,
  NDS32_BUILTIN_SMMUL,
  NDS32_BUILTIN_SMMUL_U,
  NDS32_BUILTIN_KMMAC,
  NDS32_BUILTIN_KMMAC_U,
  NDS32_BUILTIN_KMMSB,
  NDS32_BUILTIN_KMMSB_U,
  NDS32_BUILTIN_KWMMUL,
  NDS32_BUILTIN_KWMMUL_U,
  NDS32_BUILTIN_SMMWB,
  NDS32_BUILTIN_V_SMMWB,
  NDS32_BUILTIN_SMMWB_U,
  NDS32_BUILTIN_V_SMMWB_U,
  NDS32_BUILTIN_SMMWT,
  NDS32_BUILTIN_V_SMMWT,
  NDS32_BUILTIN_SMMWT_U,
  NDS32_BUILTIN_V_SMMWT_U,
  NDS32_BUILTIN_KMMAWB,
  NDS32_BUILTIN_V_KMMAWB,
  NDS32_BUILTIN_KMMAWB_U,
  NDS32_BUILTIN_V_KMMAWB_U,
  NDS32_BUILTIN_KMMAWT,
  NDS32_BUILTIN_V_KMMAWT,
  NDS32_BUILTIN_KMMAWT_U,
  NDS32_BUILTIN_V_KMMAWT_U,
  NDS32_BUILTIN_SMBB,
  NDS32_BUILTIN_V_SMBB,
  NDS32_BUILTIN_SMBT,
  NDS32_BUILTIN_V_SMBT,
  NDS32_BUILTIN_SMTT,
  NDS32_BUILTIN_V_SMTT,
  NDS32_BUILTIN_KMDA,
  NDS32_BUILTIN_V_KMDA,
  NDS32_BUILTIN_KMXDA,
  NDS32_BUILTIN_V_KMXDA,
  NDS32_BUILTIN_SMDS,
  NDS32_BUILTIN_V_SMDS,
  NDS32_BUILTIN_SMDRS,
  NDS32_BUILTIN_V_SMDRS,
  NDS32_BUILTIN_SMXDS,
  NDS32_BUILTIN_V_SMXDS,
  NDS32_BUILTIN_KMABB,
  NDS32_BUILTIN_V_KMABB,
  NDS32_BUILTIN_KMABT,
  NDS32_BUILTIN_V_KMABT,
  NDS32_BUILTIN_KMATT,
  NDS32_BUILTIN_V_KMATT,
  NDS32_BUILTIN_KMADA,
  NDS32_BUILTIN_V_KMADA,
  NDS32_BUILTIN_KMAXDA,
  NDS32_BUILTIN_V_KMAXDA,
  NDS32_BUILTIN_KMADS,
  NDS32_BUILTIN_V_KMADS,
  NDS32_BUILTIN_KMADRS,
  NDS32_BUILTIN_V_KMADRS,
  NDS32_BUILTIN_KMAXDS,
  NDS32_BUILTIN_V_KMAXDS,
  NDS32_BUILTIN_KMSDA,
  NDS32_BUILTIN_V_KMSDA,
  NDS32_BUILTIN_KMSXDA,
  NDS32_BUILTIN_V_KMSXDA,
  NDS32_BUILTIN_SMAL,
  NDS32_BUILTIN_V_SMAL,
  NDS32_BUILTIN_BITREV,
  NDS32_BUILTIN_WEXT,
  NDS32_BUILTIN_BPICK,
  NDS32_BUILTIN_INSB,
  NDS32_BUILTIN_SADD64,
  NDS32_BUILTIN_UADD64,
  NDS32_BUILTIN_RADD64,
  NDS32_BUILTIN_URADD64,
  NDS32_BUILTIN_KADD64,
  NDS32_BUILTIN_UKADD64,
  NDS32_BUILTIN_SSUB64,
  NDS32_BUILTIN_USUB64,
  NDS32_BUILTIN_RSUB64,
  NDS32_BUILTIN_URSUB64,
  NDS32_BUILTIN_KSUB64,
  NDS32_BUILTIN_UKSUB64,
  NDS32_BUILTIN_SMAR64,
  NDS32_BUILTIN_SMSR64,
  NDS32_BUILTIN_UMAR64,
  NDS32_BUILTIN_UMSR64,
  NDS32_BUILTIN_KMAR64,
  NDS32_BUILTIN_KMSR64,
  NDS32_BUILTIN_UKMAR64,
  NDS32_BUILTIN_UKMSR64,
  NDS32_BUILTIN_SMALBB,
  NDS32_BUILTIN_V_SMALBB,
  NDS32_BUILTIN_SMALBT,
  NDS32_BUILTIN_V_SMALBT,
  NDS32_BUILTIN_SMALTT,
  NDS32_BUILTIN_V_SMALTT,
  NDS32_BUILTIN_SMALDA,
  NDS32_BUILTIN_V_SMALDA,
  NDS32_BUILTIN_SMALXDA,
  NDS32_BUILTIN_V_SMALXDA,
  NDS32_BUILTIN_SMALDS,
  NDS32_BUILTIN_V_SMALDS,
  NDS32_BUILTIN_SMALDRS,
  NDS32_BUILTIN_V_SMALDRS,
  NDS32_BUILTIN_SMALXDS,
  NDS32_BUILTIN_V_SMALXDS,
  NDS32_BUILTIN_SMUL16,
  NDS32_BUILTIN_V_SMUL16,
  NDS32_BUILTIN_SMULX16,
  NDS32_BUILTIN_V_SMULX16,
  NDS32_BUILTIN_UMUL16,
  NDS32_BUILTIN_V_UMUL16,
  NDS32_BUILTIN_UMULX16,
  NDS32_BUILTIN_V_UMULX16,
  NDS32_BUILTIN_SMSLDA,
  NDS32_BUILTIN_V_SMSLDA,
  NDS32_BUILTIN_SMSLXDA,
  NDS32_BUILTIN_V_SMSLXDA,
  NDS32_BUILTIN_UCLIP32,
  NDS32_BUILTIN_SCLIP32,
  NDS32_BUILTIN_KABS,
  NDS32_BUILTIN_UALOAD_U16,
  NDS32_BUILTIN_UALOAD_S16,
  NDS32_BUILTIN_UALOAD_U8,
  NDS32_BUILTIN_UALOAD_S8,
  NDS32_BUILTIN_UASTORE_U16,
  NDS32_BUILTIN_UASTORE_S16,
  NDS32_BUILTIN_UASTORE_U8,
  NDS32_BUILTIN_UASTORE_S8,
  NDS32_BUILTIN_DSP_END,
  NDS32_BUILTIN_UNALIGNED_FEATURE,
  NDS32_BUILTIN_ENABLE_UNALIGNED,
  NDS32_BUILTIN_DISABLE_UNALIGNED,
  NDS32_BUILTIN_COUNT
};
# 1201 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32.h"
enum reg_class
{
  NO_REGS,
  R5_REG,
  R8_REG,
  R15_TA_REG,
  STACK_REG,
  FRAME_POINTER_REG,
  LOW_REGS,
  MIDDLE_REGS,
  HIGH_REGS,
  GENERAL_REGS,
  FRAME_REGS,
  FP_REGS,
  ALL_REGS,
  LIM_REG_CLASSES
};
# 32 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/nds32/elf.h" 1
# 33 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32_intrinsic.h" 1
# 29 "../../../../../gcc/libgcc/../gcc/config/nds32/nds32_intrinsic.h"
typedef signed char int8x4_t __attribute ((vector_size(4)));
typedef short int16x2_t __attribute ((vector_size(4)));
typedef int int32x2_t __attribute__((vector_size(8)));
typedef unsigned char uint8x4_t __attribute__ ((vector_size (4)));
typedef unsigned short uint16x2_t __attribute__ ((vector_size (4)));
typedef unsigned int uint32x2_t __attribute__((vector_size(8)));


enum nds32_intrinsic_registers
{
  __NDS32_REG_CPU_VER__ = 1024,
  __NDS32_REG_ICM_CFG__,
  __NDS32_REG_DCM_CFG__,
  __NDS32_REG_MMU_CFG__,
  __NDS32_REG_MSC_CFG__,
  __NDS32_REG_MSC_CFG2__,
  __NDS32_REG_CORE_ID__,
  __NDS32_REG_FUCOP_EXIST__,

  __NDS32_REG_PSW__,
  __NDS32_REG_IPSW__,
  __NDS32_REG_P_IPSW__,
  __NDS32_REG_IVB__,
  __NDS32_REG_EVA__,
  __NDS32_REG_P_EVA__,
  __NDS32_REG_ITYPE__,
  __NDS32_REG_P_ITYPE__,

  __NDS32_REG_MERR__,
  __NDS32_REG_IPC__,
  __NDS32_REG_P_IPC__,
  __NDS32_REG_OIPC__,
  __NDS32_REG_P_P0__,
  __NDS32_REG_P_P1__,

  __NDS32_REG_INT_MASK__,
  __NDS32_REG_INT_MASK2__,
  __NDS32_REG_INT_MASK3__,
  __NDS32_REG_INT_PEND__,
  __NDS32_REG_INT_PEND2__,
  __NDS32_REG_INT_PEND3__,
  __NDS32_REG_SP_USR__,
  __NDS32_REG_SP_PRIV__,
  __NDS32_REG_INT_PRI__,
  __NDS32_REG_INT_PRI2__,
  __NDS32_REG_INT_PRI3__,
  __NDS32_REG_INT_PRI4__,
  __NDS32_REG_INT_CTRL__,
  __NDS32_REG_INT_TRIGGER__,
  __NDS32_REG_INT_TRIGGER2__,
  __NDS32_REG_INT_GPR_PUSH_DIS__,

  __NDS32_REG_MMU_CTL__,
  __NDS32_REG_L1_PPTB__,
  __NDS32_REG_TLB_VPN__,
  __NDS32_REG_TLB_DATA__,
  __NDS32_REG_TLB_MISC__,
  __NDS32_REG_VLPT_IDX__,
  __NDS32_REG_ILMB__,
  __NDS32_REG_DLMB__,

  __NDS32_REG_CACHE_CTL__,
  __NDS32_REG_HSMP_SADDR__,
  __NDS32_REG_HSMP_EADDR__,
  __NDS32_REG_SDZ_CTL__,
  __NDS32_REG_N12MISC_CTL__,
  __NDS32_REG_MISC_CTL__,
  __NDS32_REG_ECC_MISC__,

  __NDS32_REG_BPC0__,
  __NDS32_REG_BPC1__,
  __NDS32_REG_BPC2__,
  __NDS32_REG_BPC3__,
  __NDS32_REG_BPC4__,
  __NDS32_REG_BPC5__,
  __NDS32_REG_BPC6__,
  __NDS32_REG_BPC7__,

  __NDS32_REG_BPA0__,
  __NDS32_REG_BPA1__,
  __NDS32_REG_BPA2__,
  __NDS32_REG_BPA3__,
  __NDS32_REG_BPA4__,
  __NDS32_REG_BPA5__,
  __NDS32_REG_BPA6__,
  __NDS32_REG_BPA7__,

  __NDS32_REG_BPAM0__,
  __NDS32_REG_BPAM1__,
  __NDS32_REG_BPAM2__,
  __NDS32_REG_BPAM3__,
  __NDS32_REG_BPAM4__,
  __NDS32_REG_BPAM5__,
  __NDS32_REG_BPAM6__,
  __NDS32_REG_BPAM7__,

  __NDS32_REG_BPV0__,
  __NDS32_REG_BPV1__,
  __NDS32_REG_BPV2__,
  __NDS32_REG_BPV3__,
  __NDS32_REG_BPV4__,
  __NDS32_REG_BPV5__,
  __NDS32_REG_BPV6__,
  __NDS32_REG_BPV7__,

  __NDS32_REG_BPCID0__,
  __NDS32_REG_BPCID1__,
  __NDS32_REG_BPCID2__,
  __NDS32_REG_BPCID3__,
  __NDS32_REG_BPCID4__,
  __NDS32_REG_BPCID5__,
  __NDS32_REG_BPCID6__,
  __NDS32_REG_BPCID7__,

  __NDS32_REG_EDM_CFG__,
  __NDS32_REG_EDMSW__,
  __NDS32_REG_EDM_CTL__,
  __NDS32_REG_EDM_DTR__,
  __NDS32_REG_BPMTC__,
  __NDS32_REG_DIMBR__,

  __NDS32_REG_TECR0__,
  __NDS32_REG_TECR1__,
  __NDS32_REG_PFMC0__,
  __NDS32_REG_PFMC1__,
  __NDS32_REG_PFMC2__,
  __NDS32_REG_PFM_CTL__,
  __NDS32_REG_PFT_CTL__,
  __NDS32_REG_HSP_CTL__,
  __NDS32_REG_SP_BOUND__,
  __NDS32_REG_SP_BOUND_PRIV__,
  __NDS32_REG_SP_BASE__,
  __NDS32_REG_SP_BASE_PRIV__,
  __NDS32_REG_FUCOP_CTL__,
  __NDS32_REG_PRUSR_ACC_CTL__,

  __NDS32_REG_DMA_CFG__,
  __NDS32_REG_DMA_GCSW__,
  __NDS32_REG_DMA_CHNSEL__,
  __NDS32_REG_DMA_ACT__,
  __NDS32_REG_DMA_SETUP__,
  __NDS32_REG_DMA_ISADDR__,
  __NDS32_REG_DMA_ESADDR__,
  __NDS32_REG_DMA_TCNT__,
  __NDS32_REG_DMA_STATUS__,
  __NDS32_REG_DMA_2DSET__,
  __NDS32_REG_DMA_2DSCTL__,
  __NDS32_REG_DMA_RCNT__,
  __NDS32_REG_DMA_HSTATUS__,

  __NDS32_REG_PC__,
  __NDS32_REG_SP_USR1__,
  __NDS32_REG_SP_USR2__,
  __NDS32_REG_SP_USR3__,
  __NDS32_REG_SP_PRIV1__,
  __NDS32_REG_SP_PRIV2__,
  __NDS32_REG_SP_PRIV3__,
  __NDS32_REG_BG_REGION__,
  __NDS32_REG_SFCR__,
  __NDS32_REG_SIGN__,
  __NDS32_REG_ISIGN__,
  __NDS32_REG_P_ISIGN__,
  __NDS32_REG_IFC_LP__,
  __NDS32_REG_ITB__
};


enum nds32_cctl_valck
{
  __NDS32_CCTL_L1D_VA_FILLCK__,
  __NDS32_CCTL_L1D_VA_ULCK__,
  __NDS32_CCTL_L1I_VA_FILLCK__,
  __NDS32_CCTL_L1I_VA_ULCK__
};

enum nds32_cctl_idxwbinv
{
  __NDS32_CCTL_L1D_IX_WBINVAL__,
  __NDS32_CCTL_L1D_IX_INVAL__,
  __NDS32_CCTL_L1D_IX_WB__,
  __NDS32_CCTL_L1I_IX_INVAL__
};

enum nds32_cctl_vawbinv
{
  __NDS32_CCTL_L1D_VA_INVAL__,
  __NDS32_CCTL_L1D_VA_WB__,
  __NDS32_CCTL_L1D_VA_WBINVAL__,
  __NDS32_CCTL_L1I_VA_INVAL__
};

enum nds32_cctl_idxread
{
  __NDS32_CCTL_L1D_IX_RTAG__,
  __NDS32_CCTL_L1D_IX_RWD__,
  __NDS32_CCTL_L1I_IX_RTAG__,
  __NDS32_CCTL_L1I_IX_RWD__
};

enum nds32_cctl_idxwrite
{
  __NDS32_CCTL_L1D_IX_WTAG__,
  __NDS32_CCTL_L1D_IX_WWD__,
  __NDS32_CCTL_L1I_IX_WTAG__,
  __NDS32_CCTL_L1I_IX_WWD__
};

enum nds32_dpref
{
  __NDS32_DPREF_SRD__,
  __NDS32_DPREF_MRD__,
  __NDS32_DPREF_SWR__,
  __NDS32_DPREF_MWR__,
  __NDS32_DPREF_PTE__,
  __NDS32_DPREF_CLWR__
};
# 34 "../../.././gcc/tm.h" 2
# 1 "../../../../../gcc/libgcc/../gcc/config/initfini-array.h" 1
# 35 "../../.././gcc/tm.h" 2





# 1 "../../.././gcc/insn-modes.h" 1






enum machine_mode
{
  E_VOIDmode,






  E_BLKmode,






  E_CCmode,






  E_BImode,






  E_QImode,






  E_HImode,






  E_SImode,






  E_DImode,






  E_TImode,






  E_QQmode,






  E_HQmode,






  E_SQmode,






  E_DQmode,






  E_TQmode,






  E_UQQmode,






  E_UHQmode,






  E_USQmode,






  E_UDQmode,






  E_UTQmode,






  E_HAmode,






  E_SAmode,






  E_DAmode,






  E_TAmode,






  E_UHAmode,






  E_USAmode,






  E_UDAmode,






  E_UTAmode,






  E_SFmode,






  E_DFmode,






  E_SDmode,






  E_DDmode,






  E_TDmode,






  E_CQImode,






  E_CHImode,






  E_CSImode,






  E_CDImode,






  E_CTImode,






  E_SCmode,






  E_DCmode,






  E_V4QImode,






  E_V2HImode,






  E_V8QImode,






  E_V4HImode,






  E_V2SImode,






  MAX_MACHINE_MODE,

  MIN_MODE_RANDOM = E_VOIDmode,
  MAX_MODE_RANDOM = E_BLKmode,

  MIN_MODE_CC = E_CCmode,
  MAX_MODE_CC = E_CCmode,

  MIN_MODE_INT = E_QImode,
  MAX_MODE_INT = E_TImode,

  MIN_MODE_PARTIAL_INT = E_VOIDmode,
  MAX_MODE_PARTIAL_INT = E_VOIDmode,

  MIN_MODE_FRACT = E_QQmode,
  MAX_MODE_FRACT = E_TQmode,

  MIN_MODE_UFRACT = E_UQQmode,
  MAX_MODE_UFRACT = E_UTQmode,

  MIN_MODE_ACCUM = E_HAmode,
  MAX_MODE_ACCUM = E_TAmode,

  MIN_MODE_UACCUM = E_UHAmode,
  MAX_MODE_UACCUM = E_UTAmode,

  MIN_MODE_FLOAT = E_SFmode,
  MAX_MODE_FLOAT = E_DFmode,

  MIN_MODE_DECIMAL_FLOAT = E_SDmode,
  MAX_MODE_DECIMAL_FLOAT = E_TDmode,

  MIN_MODE_COMPLEX_INT = E_CQImode,
  MAX_MODE_COMPLEX_INT = E_CTImode,

  MIN_MODE_COMPLEX_FLOAT = E_SCmode,
  MAX_MODE_COMPLEX_FLOAT = E_DCmode,

  MIN_MODE_VECTOR_BOOL = E_VOIDmode,
  MAX_MODE_VECTOR_BOOL = E_VOIDmode,

  MIN_MODE_VECTOR_INT = E_V4QImode,
  MAX_MODE_VECTOR_INT = E_V2SImode,

  MIN_MODE_VECTOR_FRACT = E_VOIDmode,
  MAX_MODE_VECTOR_FRACT = E_VOIDmode,

  MIN_MODE_VECTOR_UFRACT = E_VOIDmode,
  MAX_MODE_VECTOR_UFRACT = E_VOIDmode,

  MIN_MODE_VECTOR_ACCUM = E_VOIDmode,
  MAX_MODE_VECTOR_ACCUM = E_VOIDmode,

  MIN_MODE_VECTOR_UACCUM = E_VOIDmode,
  MAX_MODE_VECTOR_UACCUM = E_VOIDmode,

  MIN_MODE_VECTOR_FLOAT = E_VOIDmode,
  MAX_MODE_VECTOR_FLOAT = E_VOIDmode,

  NUM_MACHINE_MODES = MAX_MACHINE_MODE
};
# 41 "../../.././gcc/tm.h" 2

# 1 "../../../../../gcc/libgcc/../gcc/defaults.h" 1
# 43 "../../.././gcc/tm.h" 2
# 30 "../../../../../gcc/libgcc/libgcc2.c" 2
# 1 "./libgcc_tm.h" 1
# 31 "../../../../../gcc/libgcc/libgcc2.c" 2
# 56 "../../../../../gcc/libgcc/libgcc2.c"
# 1 "../../../../../gcc/libgcc/libgcc2.h" 1
# 32 "../../../../../gcc/libgcc/libgcc2.h"
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void __clear_cache (char *, char *);
extern void __eprintf (const char *, const char *, unsigned int, const char *)
  __attribute__ ((__noreturn__));
# 122 "../../../../../gcc/libgcc/libgcc2.h"
typedef int QItype __attribute__ ((mode (QI)));
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));


typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));


typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
# 147 "../../../../../gcc/libgcc/libgcc2.h"
typedef float SFtype __attribute__ ((mode (SF)));
typedef _Complex float SCtype __attribute__ ((mode (SC)));


typedef float DFtype __attribute__ ((mode (DF)));
typedef _Complex float DCtype __attribute__ ((mode (DC)));
# 163 "../../../../../gcc/libgcc/libgcc2.h"
typedef int cmp_return_type __attribute__((mode (__libgcc_cmp_return__)));
typedef int shift_count_type __attribute__((mode (__libgcc_shift_count__)));
# 375 "../../../../../gcc/libgcc/libgcc2.h"
extern DItype __muldi3 (DItype, DItype);
extern DItype __divdi3 (DItype, DItype);
extern UDItype __udivdi3 (UDItype, UDItype);
extern UDItype __umoddi3 (UDItype, UDItype);
extern DItype __moddi3 (DItype, DItype);
extern DItype __divmoddi4 (DItype, DItype, DItype *);





extern UDItype __udivmoddi4 (UDItype, UDItype, UDItype *);




extern DItype __negdi2 (DItype);


extern DItype __lshrdi3 (DItype, shift_count_type);
extern DItype __ashldi3 (DItype, shift_count_type);
extern DItype __ashrdi3 (DItype, shift_count_type);




extern USItype __udiv_w_sdiv (USItype *, USItype, USItype, USItype);


extern cmp_return_type __cmpdi2 (DItype, DItype);
extern cmp_return_type __ucmpdi2 (DItype, DItype);


extern SItype __bswapsi2 (SItype);


extern DItype __bswapdi2 (DItype);


extern SItype __absvsi2 (SItype);
extern SItype __addvsi3 (SItype, SItype);
extern SItype __subvsi3 (SItype, SItype);
extern SItype __mulvsi3 (SItype, SItype);
extern SItype __negvsi2 (SItype);
extern DItype __absvdi2 (DItype);
extern DItype __addvdi3 (DItype, DItype);
extern DItype __subvdi3 (DItype, DItype);
extern DItype __mulvdi3 (DItype, DItype);
extern DItype __negvdi2 (DItype);
# 445 "../../../../../gcc/libgcc/libgcc2.h"
extern DItype __fixsfdi (SFtype);
extern SFtype __floatdisf (DItype);
extern SFtype __floatundisf (UDItype);
extern USItype __fixunssfsi (SFtype);
extern UDItype __fixunssfdi (SFtype);
extern SFtype __powisf2 (SFtype, int);
extern SCtype __divsc3 (SFtype, SFtype, SFtype, SFtype);
extern SCtype __mulsc3 (SFtype, SFtype, SFtype, SFtype);


extern DItype __fixdfdi (DFtype);
extern DFtype __floatdidf (DItype);
extern DFtype __floatundidf (UDItype);
extern USItype __fixunsdfsi (DFtype);
extern UDItype __fixunsdfdi (DFtype);
extern DFtype __powidf2 (DFtype, int);
extern DCtype __divdc3 (DFtype, DFtype, DFtype, DFtype);
extern DCtype __muldc3 (DFtype, DFtype, DFtype, DFtype);
# 491 "../../../../../gcc/libgcc/libgcc2.h"
  struct DWstruct {SItype high, low;};
# 500 "../../../../../gcc/libgcc/libgcc2.h"
typedef union
{
  struct DWstruct s;
  DItype ll;
} DWunion;



extern const UQItype __popcount_tab[256];





extern const UQItype __clz_tab[256];

# 1 "../../../../../gcc/libgcc/../include/longlong.h" 1
# 60 "../../../../../gcc/libgcc/../include/longlong.h"
extern const UQItype __clz_tab[256] ;
# 517 "../../../../../gcc/libgcc/libgcc2.h" 2


extern int __clzdi2 (UDItype);
extern int __clzsi2 (USItype);
extern int __ctzsi2 (USItype);
extern int __ctzdi2 (UDItype);
extern int __clrsbsi2 (SItype);
extern int __clrsbdi2 (DItype);
extern int __ffssi2 (USItype);
extern int __ffsdi2 (DItype);
extern int __popcountsi2 (USItype);
extern int __popcountdi2 (UDItype);
extern int __paritysi2 (USItype);
extern int __paritydi2 (UDItype);


extern void __enable_execute_stack (void *);
# 57 "../../../../../gcc/libgcc/libgcc2.c" 2
# 547 "../../../../../gcc/libgcc/libgcc2.c"
DItype
__muldi3 (DItype u, DItype v)
{
  const DWunion uu = {.ll = u};
  const DWunion vv = {.ll = v};
  DWunion w = {.ll = ({DWunion __w; do { USItype __x0, __x1, __x2, __x3; USItype __ul, __vl, __uh, __vh; __ul = ((USItype) (uu.s.low) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); __uh = ((USItype) (uu.s.low) >> ((4 * 8) / 2)); __vl = ((USItype) (vv.s.low) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); __vh = ((USItype) (vv.s.low) >> ((4 * 8) / 2)); __x0 = (USItype) __ul * __vl; __x1 = (USItype) __ul * __vh; __x2 = (USItype) __uh * __vl; __x3 = (USItype) __uh * __vh; __x1 += ((USItype) (__x0) >> ((4 * 8) / 2)); __x1 += __x2; if (__x1 < __x2) __x3 += ((USItype) 1 << ((4 * 8) / 2)); (__w.s.high) = __x3 + ((USItype) (__x1) >> ((4 * 8) / 2)); (__w.s.low) = ((USItype) (__x1) & (((USItype) 1 << ((4 * 8) / 2)) - 1)) * ((USItype) 1 << ((4 * 8) / 2)) + ((USItype) (__x0) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); } while (0); __w.ll; })};

  w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
        + (USItype) uu.s.high * (USItype) vv.s.low);

  return w.ll;
}
Vladimir Makarov Nov. 25, 2018, 5:54 a.m. | #2
On 11/24/2018 02:10 AM, Jeff Law wrote:
> On 11/23/18 3:04 PM, Vladimir Makarov wrote:

>>    The following patch fixes

>>

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

>>

>>    The patch was successfully bootstrapped on x86 and x86-64 with GO and D.

>>

>>    Committed as rev. 266422.

>>

>>

>> pr88157.patch

>>

>> Index: ChangeLog

>> ===================================================================

>> --- ChangeLog	(revision 266421)

>> +++ ChangeLog	(working copy)

>> @@ -1,3 +1,9 @@

>> +2018-11-23  Vladimir Makarov  <vmakarov@redhat.com>

>> +

>> +	PR bootstrap/88157

>> +	* ira-costs.c (record_operand_costs): Use bigger hard reg class if

>> +	its mode does not fit to the original class.

> We're still having problems in this code.  I've got about a half-dozen

> targets failing.

>

> Try an nds32be-elf cross compiler with the attached testcase.  -O2

> -mcmodel=small

>

> It should be failing just below when we try to access

> ira_register_move_cost[mode][hard_reg_class][rclass]

Thanks for testing, Jeff.  I've just committed a patch which should fix 
the problems.

Patch

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 266421)
+++ ChangeLog	(working copy)
@@ -1,3 +1,9 @@ 
+2018-11-23  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR bootstrap/88157
+	* ira-costs.c (record_operand_costs): Use bigger hard reg class if
+	its mode does not fit to the original class.
+
 2018-11-23  Martin Sebor  <msebor@redhat.com>
 
 	PR tree-optimization/87756
Index: ira-costs.c
===================================================================
--- ira-costs.c	(revision 266385)
+++ ira-costs.c	(working copy)
@@ -1319,6 +1319,13 @@  record_operand_costs (rtx_insn *insn, en
 	  bool dead_p = find_regno_note (insn, REG_DEAD, REGNO (src));
 
 	  hard_reg_class = REGNO_REG_CLASS (other_regno);
+	  /* Target code may return any cost for mode which does not
+	     fit the the hard reg class (e.g. DImode for AREG on
+	     i386).  Check this and use a bigger class to get the
+	     right cost.  */
+	  if (! ira_hard_reg_in_set_p (other_regno, mode,
+				       reg_class_contents[hard_reg_class]))
+	    hard_reg_class = ira_pressure_class_translate[hard_reg_class];
 	  i = regno == (int) REGNO (src) ? 1 : 0;
 	  for (k = cost_classes_ptr->num - 1; k >= 0; k--)
 	    {