/* Generated automatically by the program `genrecog' from the target machine description file. */ #define IN_TARGET_CODE 1 #include "config.h" #include "system.h" #include "coretypes.h" #include "backend.h" #include "predict.h" #include "rtl.h" #include "memmodel.h" #include "tm_p.h" #include "emit-rtl.h" #include "insn-config.h" #include "recog.h" #include "output.h" #include "flags.h" #include "df.h" #include "resource.h" #include "diagnostic-core.h" #include "reload.h" #include "regs.h" #include "tm-constrs.h" /* `recog' contains a decision tree that recognizes whether the rtx X0 is a valid instruction. recog returns -1 if the rtx is not valid. If the rtx is valid, recog returns a nonnegative number which is the insn code number for the pattern that matched. This is the same as the order in the machine description of the entry that matched. This number can be used as an index into `insn_data' and other tables. The third parameter to recog is an optional pointer to an int. If present, recog will accept a pattern if it matches except for missing CLOBBER expressions at the end. In that case, the value pointed to by the optional pointer will be set to the number of CLOBBERs that need to be added (it should be initialized to zero by the caller). If it is set nonzero, the caller should allocate a PARALLEL of the appropriate size, copy the initial entries, and call add_clobbers (found in insn-emit.cc) to fill in the CLOBBERs. The function split_insns returns 0 if the rtl could not be split or the split rtl as an INSN list if it can be. The function peephole2_insns returns 0 if the rtl could not be matched. If there was a match, the new rtl is returned in an INSN list, and LAST_INSN will point to the last recognized insn in the old sequence. */ extern rtx_insn *gen_split_1 (rtx_insn *, rtx *); extern rtx_insn *gen_split_2 (rtx_insn *, rtx *); extern rtx_insn *gen_split_3 (rtx_insn *, rtx *); extern rtx_insn *gen_split_4 (rtx_insn *, rtx *); extern rtx_insn *gen_split_5 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_1 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_2 (rtx_insn *, rtx *); extern rtx_insn *gen_split_6 (rtx_insn *, rtx *); extern rtx_insn *gen_split_7 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_3 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_4 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_5 (rtx_insn *, rtx *); extern rtx_insn *gen_split_8 (rtx_insn *, rtx *); extern rtx_insn *gen_split_9 (rtx_insn *, rtx *); extern rtx_insn *gen_split_10 (rtx_insn *, rtx *); extern rtx_insn *gen_split_11 (rtx_insn *, rtx *); extern rtx_insn *gen_split_12 (rtx_insn *, rtx *); extern rtx_insn *gen_split_13 (rtx_insn *, rtx *); extern rtx_insn *gen_split_14 (rtx_insn *, rtx *); extern rtx_insn *gen_split_15 (rtx_insn *, rtx *); extern rtx_insn *gen_split_16 (rtx_insn *, rtx *); extern rtx_insn *gen_split_17 (rtx_insn *, rtx *); extern rtx_insn *gen_split_18 (rtx_insn *, rtx *); extern rtx_insn *gen_split_19 (rtx_insn *, rtx *); extern rtx_insn *gen_split_20 (rtx_insn *, rtx *); extern rtx_insn *gen_split_21 (rtx_insn *, rtx *); extern rtx_insn *gen_split_22 (rtx_insn *, rtx *); extern rtx_insn *gen_split_23 (rtx_insn *, rtx *); extern rtx_insn *gen_split_24 (rtx_insn *, rtx *); extern rtx_insn *gen_split_25 (rtx_insn *, rtx *); extern rtx_insn *gen_split_26 (rtx_insn *, rtx *); extern rtx_insn *gen_split_27 (rtx_insn *, rtx *); extern rtx_insn *gen_split_28 (rtx_insn *, rtx *); extern rtx_insn *gen_split_29 (rtx_insn *, rtx *); extern rtx_insn *gen_split_30 (rtx_insn *, rtx *); extern rtx_insn *gen_split_31 (rtx_insn *, rtx *); extern rtx_insn *gen_split_32 (rtx_insn *, rtx *); extern rtx_insn *gen_split_33 (rtx_insn *, rtx *); extern rtx_insn *gen_split_34 (rtx_insn *, rtx *); extern rtx_insn *gen_split_35 (rtx_insn *, rtx *); extern rtx_insn *gen_split_36 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_6 (rtx_insn *, rtx *); extern rtx_insn *gen_split_37 (rtx_insn *, rtx *); extern rtx_insn *gen_split_38 (rtx_insn *, rtx *); extern rtx_insn *gen_split_39 (rtx_insn *, rtx *); extern rtx_insn *gen_split_40 (rtx_insn *, rtx *); extern rtx_insn *gen_split_41 (rtx_insn *, rtx *); extern rtx_insn *gen_split_42 (rtx_insn *, rtx *); extern rtx_insn *gen_split_43 (rtx_insn *, rtx *); extern rtx_insn *gen_split_44 (rtx_insn *, rtx *); extern rtx_insn *gen_split_45 (rtx_insn *, rtx *); extern rtx_insn *gen_split_46 (rtx_insn *, rtx *); extern rtx_insn *gen_split_47 (rtx_insn *, rtx *); extern rtx_insn *gen_split_48 (rtx_insn *, rtx *); extern rtx_insn *gen_split_49 (rtx_insn *, rtx *); extern rtx_insn *gen_split_50 (rtx_insn *, rtx *); extern rtx_insn *gen_split_51 (rtx_insn *, rtx *); extern rtx_insn *gen_split_52 (rtx_insn *, rtx *); extern rtx_insn *gen_split_53 (rtx_insn *, rtx *); extern rtx_insn *gen_split_54 (rtx_insn *, rtx *); extern rtx_insn *gen_split_55 (rtx_insn *, rtx *); extern rtx_insn *gen_split_56 (rtx_insn *, rtx *); extern rtx_insn *gen_split_57 (rtx_insn *, rtx *); extern rtx_insn *gen_split_58 (rtx_insn *, rtx *); extern rtx_insn *gen_split_59 (rtx_insn *, rtx *); extern rtx_insn *gen_split_60 (rtx_insn *, rtx *); extern rtx_insn *gen_split_61 (rtx_insn *, rtx *); extern rtx_insn *gen_split_62 (rtx_insn *, rtx *); extern rtx_insn *gen_split_63 (rtx_insn *, rtx *); extern rtx_insn *gen_split_64 (rtx_insn *, rtx *); extern rtx_insn *gen_split_65 (rtx_insn *, rtx *); extern rtx_insn *gen_split_66 (rtx_insn *, rtx *); extern rtx_insn *gen_split_67 (rtx_insn *, rtx *); extern rtx_insn *gen_split_68 (rtx_insn *, rtx *); extern rtx_insn *gen_split_69 (rtx_insn *, rtx *); extern rtx_insn *gen_split_70 (rtx_insn *, rtx *); extern rtx_insn *gen_split_71 (rtx_insn *, rtx *); extern rtx_insn *gen_split_72 (rtx_insn *, rtx *); extern rtx_insn *gen_split_73 (rtx_insn *, rtx *); extern rtx_insn *gen_split_74 (rtx_insn *, rtx *); extern rtx_insn *gen_split_75 (rtx_insn *, rtx *); extern rtx_insn *gen_split_76 (rtx_insn *, rtx *); extern rtx_insn *gen_split_77 (rtx_insn *, rtx *); extern rtx_insn *gen_split_78 (rtx_insn *, rtx *); extern rtx_insn *gen_split_79 (rtx_insn *, rtx *); extern rtx_insn *gen_split_80 (rtx_insn *, rtx *); extern rtx_insn *gen_split_81 (rtx_insn *, rtx *); extern rtx_insn *gen_split_82 (rtx_insn *, rtx *); extern rtx_insn *gen_split_83 (rtx_insn *, rtx *); extern rtx_insn *gen_split_84 (rtx_insn *, rtx *); extern rtx_insn *gen_split_85 (rtx_insn *, rtx *); extern rtx_insn *gen_split_86 (rtx_insn *, rtx *); extern rtx_insn *gen_split_87 (rtx_insn *, rtx *); extern rtx_insn *gen_split_88 (rtx_insn *, rtx *); extern rtx_insn *gen_split_89 (rtx_insn *, rtx *); extern rtx_insn *gen_split_90 (rtx_insn *, rtx *); extern rtx_insn *gen_split_91 (rtx_insn *, rtx *); extern rtx_insn *gen_split_92 (rtx_insn *, rtx *); extern rtx_insn *gen_split_93 (rtx_insn *, rtx *); extern rtx_insn *gen_split_94 (rtx_insn *, rtx *); extern rtx_insn *gen_split_95 (rtx_insn *, rtx *); extern rtx_insn *gen_split_96 (rtx_insn *, rtx *); extern rtx_insn *gen_split_97 (rtx_insn *, rtx *); extern rtx_insn *gen_split_98 (rtx_insn *, rtx *); extern rtx_insn *gen_split_99 (rtx_insn *, rtx *); extern rtx_insn *gen_split_100 (rtx_insn *, rtx *); extern rtx_insn *gen_split_101 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_7 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_8 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_9 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_10 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_11 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_12 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_13 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_14 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_15 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_16 (rtx_insn *, rtx *); extern rtx_insn *gen_split_102 (rtx_insn *, rtx *); extern rtx_insn *gen_split_103 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_17 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_18 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_19 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_20 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_21 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_22 (rtx_insn *, rtx *); extern rtx_insn *gen_split_104 (rtx_insn *, rtx *); extern rtx_insn *gen_split_105 (rtx_insn *, rtx *); extern rtx_insn *gen_split_106 (rtx_insn *, rtx *); extern rtx_insn *gen_split_107 (rtx_insn *, rtx *); extern rtx_insn *gen_split_108 (rtx_insn *, rtx *); extern rtx_insn *gen_split_109 (rtx_insn *, rtx *); extern rtx_insn *gen_split_110 (rtx_insn *, rtx *); extern rtx_insn *gen_split_111 (rtx_insn *, rtx *); extern rtx_insn *gen_split_112 (rtx_insn *, rtx *); extern rtx_insn *gen_split_113 (rtx_insn *, rtx *); extern rtx_insn *gen_split_114 (rtx_insn *, rtx *); extern rtx_insn *gen_split_115 (rtx_insn *, rtx *); extern rtx_insn *gen_split_116 (rtx_insn *, rtx *); extern rtx_insn *gen_split_117 (rtx_insn *, rtx *); static int pattern0 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern1 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: return pattern0 (x3, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern0 (x3, E_DImode) != 0) return -1; return 1; case E_V2DImode: if (pattern0 (x3, E_V2DImode) != 0) return -1; return 2; case E_V4SImode: if (pattern0 (x3, E_V4SImode) != 0) return -1; return 3; case E_V8HImode: if (pattern0 (x3, E_V8HImode) != 0) return -1; return 4; case E_V16QImode: if (pattern0 (x3, E_V16QImode) != 0) return -1; return 5; default: return -1; } } static int pattern2 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern3 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x6 = XEXP (x3, 2); operands[3] = x6; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; return pattern2 (x3); /* [-1, 1] */ } static int pattern4 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode) || !register_operand (operands[2], E_SFmode)) return -1; return 0; case E_DFmode: if (!register_operand (operands[1], E_DFmode) || !register_operand (operands[2], E_DFmode)) return -1; return 1; default: return -1; } } static int pattern5 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; return pattern4 (); /* [-1, 1] */ } static int pattern6 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern7 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_CCmode: return pattern5 (x3, E_CCmode); /* [-1, 1] */ case E_CCFmode: res = pattern5 (x3, E_CCFmode); if (res >= 0) return res + 2; /* [2, 3] */ return -1; case E_V2DImode: if (pattern6 (x3, E_V2DFmode, E_V2DImode) != 0) return -1; return 4; case E_V4SImode: if (pattern6 (x3, E_V4SFmode, E_V4SImode) != 0) return -1; return 5; default: return -1; } } static int pattern8 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[2] = x2; switch (GET_MODE (operands[0])) { case E_CCmode: return pattern5 (x1, E_CCmode); /* [-1, 1] */ case E_CCFmode: res = pattern5 (x1, E_CCFmode); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } } static int pattern9 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; return pattern8 (x3); /* [-1, 3] */ } static int pattern10 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !reg_or_vector_same_simm5_operand (operands[2], i1)) return -1; return 0; } static int pattern11 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4HImode: return pattern0 (x3, E_V4HImode); /* [-1, 0] */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0) return -1; return 1; case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0) return -1; return 2; case E_V2DImode: if (pattern10 (x3, E_V2DImode) != 0) return -1; return 3; case E_V4SImode: if (pattern10 (x3, E_V4SImode) != 0) return -1; return 4; case E_V8HImode: if (pattern10 (x3, E_V8HImode) != 0) return -1; return 5; case E_V16QImode: if (pattern10 (x3, E_V16QImode) != 0) return -1; return 6; default: return -1; } } static int pattern12 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !reg_or_vector_same_uimm5_operand (operands[2], i1)) return -1; return 0; } static int pattern13 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern0 (x3, E_V8QImode); /* [-1, 0] */ case E_V2DImode: if (pattern12 (x3, E_V2DImode) != 0) return -1; return 1; case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0) return -1; return 2; case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0) return -1; return 3; case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0) return -1; return 4; default: return -1; } } static int pattern14 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4HImode: return pattern0 (x3, E_V4HImode); /* [-1, 0] */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0) return -1; return 1; default: return -1; } } static int pattern15 (rtx x1, int i1, int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != UNSPEC || XVECLEN (x2, 0) != i2 || XINT (x2, 1) != i1) return -1; return 0; } static int pattern16 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; if (peep2_current_count < 2) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XEXP (x2, 0); operands[1] = x4; if (!non_volatile_mem_operand (operands[1], E_HImode)) return -1; x5 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x5) != SET) return -1; x6 = XEXP (x5, 1); if (GET_CODE (x6) != i1 || GET_MODE (x6) != E_SImode) return -1; x7 = XEXP (x5, 0); operands[2] = x7; if (!register_operand (operands[2], E_SImode)) return -1; x8 = XEXP (x6, 0); operands[3] = x8; if (!non_volatile_mem_operand (operands[3], E_HImode)) return -1; return 0; } static int pattern17 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!cprestore_load_slot_operand (operands[0], i1) || GET_CODE (x1) != REG || REGNO (x1) != 76 || GET_MODE (x1) != i1) return -1; return 0; } static int pattern18 (rtx x1, int *pnum_clobbers) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XEXP (x1, 1); if (XINT (x2, 1) != 64 || GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!memory_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern19 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !arith_operand (operands[2], i1)) return -1; return 0; } static int pattern20 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[1], E_DImode) || !arith_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern21 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern22 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !reg_or_vector_same_uimm6_operand (operands[2], i1)) return -1; return 0; } static int pattern23 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[1] = x2; x3 = XEXP (x1, 1); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_SImode: return pattern19 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern20 (x1) != 0) return -1; return 1; case E_V2SImode: if (pattern21 (x1, E_V2SImode) != 0) return -1; return 2; case E_V4HImode: if (pattern21 (x1, E_V4HImode) != 0) return -1; return 3; case E_V2DImode: if (pattern22 (x1, E_V2DImode) != 0) return -1; return 4; case E_V4SImode: if (pattern22 (x1, E_V4SImode) != 0) return -1; return 5; case E_V8HImode: if (pattern22 (x1, E_V8HImode) != 0) return -1; return 6; case E_V16QImode: if (pattern22 (x1, E_V16QImode) != 0) return -1; return 7; default: return -1; } } static int pattern24 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[1] = x2; x3 = XEXP (x1, 1); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_V4HImode: return pattern0 (x1, E_V4HImode); /* [-1, 0] */ case E_V8QImode: if (pattern0 (x1, E_V8QImode) != 0) return -1; return 1; case E_V2DImode: if (pattern0 (x1, E_V2DImode) != 0) return -1; return 2; case E_V4SImode: if (pattern0 (x1, E_V4SImode) != 0) return -1; return 3; case E_V8HImode: if (pattern0 (x1, E_V8HImode) != 0) return -1; return 4; case E_V16QImode: if (pattern0 (x1, E_V16QImode) != 0) return -1; return 5; default: return -1; } } static int pattern25 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != 31 || GET_MODE (x2) != E_SImode) return -1; return 0; } static int pattern26 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!d_operand (operands[0], i1) || GET_MODE (x1) != i1 || !d_operand (operands[1], i1) || !const_int_operand (operands[2], i1)) return -1; return 0; } static int pattern27 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[1] = x2; x3 = XEXP (x1, 1); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_SImode: return pattern26 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern26 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern28 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern29 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_CODE (x2) != ABS) return -1; x3 = XEXP (x1, 0); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x2, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2DImode: return pattern28 (x1, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern28 (x1, E_V4SImode) != 0) return -1; return 1; case E_V8HImode: if (pattern28 (x1, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern28 (x1, E_V16QImode) != 0) return -1; return 3; default: return -1; } } static int pattern30 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[1], i1)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i3) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern31 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24, x25; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_CODE (x3) != VEC_SELECT) return -1; x4 = XEXP (x3, 1); if (GET_CODE (x4) != PARALLEL) return -1; x5 = XEXP (x1, 1); if (GET_CODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_CODE (x6) != VEC_SELECT) return -1; x7 = XEXP (x6, 1); if (GET_CODE (x7) != PARALLEL) return -1; x8 = XEXP (x3, 0); operands[1] = x8; x9 = XEXP (x6, 0); operands[2] = x9; switch (XVECLEN (x4, 0)) { case 8: x10 = XVECEXP (x4, 0, 0); if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x11 = XVECEXP (x4, 0, 1); if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x12 = XVECEXP (x4, 0, 2); if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x13 = XVECEXP (x4, 0, 3); if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x14 = XVECEXP (x4, 0, 4); if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x15 = XVECEXP (x4, 0, 5); if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x16 = XVECEXP (x4, 0, 6); if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x17 = XVECEXP (x4, 0, 7); if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || XVECLEN (x7, 0) != 8) return -1; x18 = XVECEXP (x7, 0, 0); if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x19 = XVECEXP (x7, 0, 1); if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x20 = XVECEXP (x7, 0, 2); if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x21 = XVECEXP (x7, 0, 3); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x22 = XVECEXP (x7, 0, 4); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x23 = XVECEXP (x7, 0, 5); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x24 = XVECEXP (x7, 0, 6); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x25 = XVECEXP (x7, 0, 7); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || pattern30 (x1, E_V16QImode, E_V8QImode, E_V8HImode) != 0) return -1; return 0; case 4: x10 = XVECEXP (x4, 0, 0); if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x11 = XVECEXP (x4, 0, 1); if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x12 = XVECEXP (x4, 0, 2); if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x13 = XVECEXP (x4, 0, 3); if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || XVECLEN (x7, 0) != 4) return -1; x18 = XVECEXP (x7, 0, 0); if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x19 = XVECEXP (x7, 0, 1); if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x20 = XVECEXP (x7, 0, 2); if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x21 = XVECEXP (x7, 0, 3); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || pattern30 (x1, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 1; case 2: x10 = XVECEXP (x4, 0, 0); if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x11 = XVECEXP (x4, 0, 1); if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || XVECLEN (x7, 0) != 2) return -1; x18 = XVECEXP (x7, 0, 0); if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x19 = XVECEXP (x7, 0, 1); if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || pattern30 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 2; default: return -1; } } static int pattern32 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_SImode || !register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], E_SImode)) return -1; x4 = XEXP (x2, 1); operands[2] = x4; if (!arith_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern33 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_SImode || !register_operand (operands[0], i2) || GET_MODE (x1) != i2) return -1; x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern34 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], E_DImode)) return -1; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; switch (GET_MODE (x2)) { case E_QImode: return 0; case E_HImode: return 1; default: return -1; } case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode) return -1; switch (GET_MODE (x2)) { case E_QImode: return 2; case E_HImode: return 3; default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode || GET_MODE (x2) != E_QImode) return -1; return 4; default: return -1; } } static int pattern35 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2 || !register_operand (operands[1], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern36 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_CODE (x2) != i1) return -1; x3 = XEXP (x1, 0); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x2, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_DImode: if (GET_MODE (x1) != E_DImode || pattern35 (x1, E_SImode, E_DImode) != 0) return -1; return 0; case E_TImode: if (GET_MODE (x1) != E_TImode || pattern35 (x1, E_DImode, E_TImode) != 0) return -1; return 1; default: return -1; } } static int pattern37 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern38 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_CODE (x3) != MULT) return -1; x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XEXP (x2, 1); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: return pattern37 (x1, E_SFmode); /* [-1, 0] */ case E_DFmode: if (pattern37 (x1, E_DFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern37 (x1, E_V2SFmode) != 0) return -1; return 2; default: return -1; } } static int pattern39 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; return 1; default: return -1; } } static int pattern40 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; return pattern39 (x3); /* [-1, 1] */ } static int pattern41 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern42 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; return pattern41 (x3); /* [-1, 1] */ } static int pattern43 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode)) return -1; return 0; case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode)) return -1; return 1; case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode)) return -1; return 2; default: return -1; } } static int pattern44 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DFmode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SFmode)) return -1; return 1; default: return -1; } } static int pattern45 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], i1)) return -1; return 0; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], i2)) return -1; return 1; default: return -1; } } static int pattern46 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode)) return -1; return 0; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode)) return -1; return 1; default: return -1; } } static int pattern47 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !immediate_operand (operands[2], i1)) return -1; return 0; } static int pattern48 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: return pattern47 (x3, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern47 (x3, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern49 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i1)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], i1)) return -1; return 0; } static int pattern50 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern51 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SFmode: return pattern50 (x3, E_SFmode); /* [-1, 0] */ case E_DFmode: if (pattern50 (x3, E_DFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern50 (x3, E_V2SFmode) != 0) return -1; return 2; default: return -1; } } static int pattern52 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i1)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern53 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i2)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], i1)) return -1; return 0; } static int pattern54 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i1)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!arith_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern55 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i1)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!reg_or_0_operand (operands[1], i1)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!reg_or_0_operand (operands[2], i1)) return -1; return 0; } static int pattern56 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i1)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!reg_or_0_operand (operands[1], i1)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!arith_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern57 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2SImode: return pattern50 (x3, E_V2SImode); /* [-1, 0] */ case E_V4HImode: if (pattern50 (x3, E_V4HImode) != 0) return -1; return 1; case E_V8QImode: if (pattern50 (x3, E_V8QImode) != 0) return -1; return 2; default: return -1; } } static int pattern58 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode)) return -1; return 0; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode)) return -1; return 1; case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode)) return -1; return 2; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 3; default: return -1; } } static int pattern59 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2DImode: return pattern50 (x3, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern50 (x3, E_V4SImode) != 0) return -1; return 1; case E_V8HImode: if (pattern50 (x3, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern50 (x3, E_V16QImode) != 0) return -1; return 3; default: return -1; } } static int pattern60 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || !const_uimm6_operand (operands[2], E_VOIDmode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || !const_uimm5_operand (operands[2], E_VOIDmode)) return -1; return 1; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || !const_uimm4_operand (operands[2], E_VOIDmode)) return -1; return 2; case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || !const_uimm3_operand (operands[2], E_VOIDmode)) return -1; return 3; default: return -1; } } static int pattern61 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern62 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2DImode: return pattern61 (x3, E_V2DFmode, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern61 (x3, E_V4SFmode, E_V4SImode) != 0) return -1; return 1; default: return -1; } } static int pattern63 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4SImode: return pattern50 (x3, E_V4SImode); /* [-1, 0] */ case E_V8HImode: if (pattern50 (x3, E_V8HImode) != 0) return -1; return 1; default: return -1; } } static int pattern64 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_V2SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2SFmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2SFmode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_V2SFmode)) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern65 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_DImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_V4QImode)) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!register_operand (operands[3], E_V4QImode)) return -1; return 0; } static int pattern66 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_CCDSPmode) return -1; x3 = XVECEXP (x2, 0, 2); if (GET_CODE (x3) != REG || REGNO (x3) != 186 || GET_MODE (x3) != E_CCDSPmode) return -1; x4 = XEXP (x1, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 186 || GET_MODE (x4) != E_CCDSPmode) return -1; x5 = XVECEXP (x2, 0, 0); operands[0] = x5; x6 = XVECEXP (x2, 0, 1); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_V2HImode: if (!register_operand (operands[0], E_V2HImode) || !register_operand (operands[1], E_V2HImode)) return -1; return 0; case E_V4QImode: if (!register_operand (operands[0], E_V4QImode) || !register_operand (operands[1], E_V4QImode)) return -1; return 1; default: return -1; } } static int pattern67 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], i1)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!reg_or_0_operand (operands[2], E_SImode)) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!const_int_operand (operands[3], E_SImode)) return -1; return 0; } static int pattern68 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_DImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!reg_or_0_operand (operands[2], E_V2HImode)) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!reg_or_0_operand (operands[3], E_V2HImode)) return -1; return 0; } static int pattern69 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern70 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; x6 = XVECEXP (x3, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V2DImode: return pattern69 (x3, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern69 (x3, E_V4SImode) != 0) return -1; return 1; case E_V8HImode: if (pattern69 (x3, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern69 (x3, E_V16QImode) != 0) return -1; return 3; default: return -1; } } static int pattern71 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !const_uimm4_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern72 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !const_uimm3_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern73 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; x6 = XVECEXP (x3, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || !register_operand (operands[2], E_V2DImode) || !const_uimm6_operand (operands[3], E_VOIDmode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || !register_operand (operands[2], E_V4SImode) || !const_uimm5_operand (operands[3], E_VOIDmode)) return -1; return 1; case E_V8HImode: if (pattern71 (x3, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern72 (x3, E_V16QImode) != 0) return -1; return 3; default: return -1; } } static int pattern74 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; x6 = XVECEXP (x3, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V4SImode: return pattern69 (x3, E_V4SImode); /* [-1, 0] */ case E_V8HImode: if (pattern69 (x3, E_V8HImode) != 0) return -1; return 1; default: return -1; } } static int pattern75 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_CCV4mode) || GET_MODE (x1) != E_CCV4mode) return -1; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; if (!register_operand (operands[1], E_V2SFmode)) return -1; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; if (!register_operand (operands[2], E_V2SFmode)) return -1; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; if (!register_operand (operands[3], E_V2SFmode)) return -1; x5 = XVECEXP (x1, 0, 3); operands[4] = x5; if (!register_operand (operands[4], E_V2SFmode)) return -1; x6 = XVECEXP (x1, 0, 4); operands[5] = x6; if (!const_int_operand (operands[5], E_VOIDmode)) return -1; switch (XINT (x1, 1)) { case 72: return 0; case 74: return 1; default: return -1; } } static int pattern76 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[1] = x2; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 1; case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x1) != E_V2DImode || !register_operand (operands[1], E_V2DImode)) return -1; return 2; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x1) != E_V4SImode || !register_operand (operands[1], E_V4SImode)) return -1; return 3; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x1) != E_V8HImode || !register_operand (operands[1], E_V8HImode)) return -1; return 4; case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x1) != E_V16QImode || !register_operand (operands[1], E_V16QImode)) return -1; return 5; default: return -1; } } static int pattern77 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[1])) { case E_V2DFmode: if (!register_operand (operands[1], E_V2DFmode)) return -1; return 0; case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode)) return -1; return 1; case E_V2DImode: if (!register_operand (operands[1], E_V2DImode)) return -1; return 2; case E_V4SImode: if (!register_operand (operands[1], E_V4SImode)) return -1; return 3; case E_V8HImode: if (!register_operand (operands[1], E_V8HImode)) return -1; return 4; case E_V16QImode: if (!register_operand (operands[1], E_V16QImode)) return -1; return 5; default: return -1; } } static int pattern78 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case ZERO_EXTRACT: x5 = XEXP (x4, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x6 = XEXP (x3, 1); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x7 = XEXP (x1, 0); if (GET_CODE (x7) != PC) return -1; x8 = XEXP (x4, 0); operands[1] = x8; x9 = XEXP (x4, 2); operands[2] = x9; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x10 = XEXP (x2, 1); switch (GET_CODE (x10)) { case LABEL_REF: x11 = XEXP (x2, 2); if (GET_CODE (x11) != PC) return -1; x12 = XEXP (x10, 0); operands[0] = x12; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } case PC: x11 = XEXP (x2, 2); if (GET_CODE (x11) != LABEL_REF) return -1; x13 = XEXP (x11, 0); operands[0] = x13; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 2; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 3; default: return -1; } default: return -1; } case REG: case SUBREG: operands[1] = x4; return 4; case UNSPEC: if (XVECLEN (x4, 0) != 1) return -1; x10 = XEXP (x2, 1); if (GET_CODE (x10) != LABEL_REF) return -1; x11 = XEXP (x2, 2); if (GET_CODE (x11) != PC) return -1; x7 = XEXP (x1, 0); if (GET_CODE (x7) != PC || GET_MODE (x4) != E_SImode) return -1; x14 = XVECEXP (x4, 0, 0); operands[1] = x14; x6 = XEXP (x3, 1); operands[2] = x6; if (!const_0_operand (operands[2], E_SImode)) return -1; x12 = XEXP (x10, 0); operands[0] = x12; switch (XINT (x4, 1)) { case 241: res = pattern77 (); if (res >= 0) return res + 5; /* [5, 10] */ return -1; case 240: res = pattern77 (); if (res >= 0) return res + 11; /* [11, 16] */ return -1; default: return -1; } default: return -1; } } static int pattern79 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1)) return -1; x4 = XEXP (x2, 1); if (GET_MODE (x4) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern80 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); if (GET_CODE (x4) != ABS) return -1; x5 = XEXP (x3, 1); if (GET_CODE (x5) != ABS) return -1; x6 = XEXP (x1, 0); operands[0] = x6; x7 = XEXP (x4, 0); operands[1] = x7; x8 = XEXP (x5, 0); operands[2] = x8; x9 = XEXP (x2, 1); if (!rtx_equal_p (x9, operands[1])) return -1; x10 = XEXP (x2, 2); if (!rtx_equal_p (x10, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_V2DFmode: return pattern79 (x2, E_V2DFmode); /* [-1, 0] */ case E_V4SFmode: if (pattern79 (x2, E_V4SFmode) != 0) return -1; return 1; case E_V2DImode: if (pattern79 (x2, E_V2DImode) != 0) return -1; return 2; case E_V4SImode: if (pattern79 (x2, E_V4SImode) != 0) return -1; return 3; case E_V8HImode: if (pattern79 (x2, E_V8HImode) != 0) return -1; return 4; case E_V16QImode: if (pattern79 (x2, E_V16QImode) != 0) return -1; return 5; default: return -1; } } static int pattern81 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[2] = x2; switch (GET_MODE (operands[0])) { case E_CCFmode: return pattern5 (x1, E_CCFmode); /* [-1, 1] */ case E_V2DImode: if (pattern6 (x1, E_V2DFmode, E_V2DImode) != 0) return -1; return 2; case E_V4SImode: if (pattern6 (x1, E_V4SFmode, E_V4SImode) != 0) return -1; return 3; default: return -1; } } static int pattern82 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, rtx_code i4) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x1, 1); if (GET_CODE (x3) != i4 || GET_MODE (x3) != i3 || !register_operand (operands[0], i2) || GET_MODE (x1) != i2) return -1; x4 = XEXP (x2, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XEXP (x3, 0); operands[2] = x5; if (!register_operand (operands[2], i1)) return -1; return 0; } static int pattern83 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != MULT || GET_MODE (x4) != E_SImode) return -1; x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != CLOBBER) return -1; return 0; } static int pattern84 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; return 0; } static int pattern85 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 0); operands[3] = x7; x8 = XEXP (x6, 1); x9 = XEXP (x8, 0); if (!rtx_equal_p (x9, operands[1])) return -1; x10 = XEXP (x8, 1); if (!rtx_equal_p (x10, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern84 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern84 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern86 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != i1) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 0); operands[0] = x5; return pattern85 (x1); /* [-1, 1] */ } static int pattern87 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != i1 || GET_MODE (x5) != E_SImode) return -1; x6 = XEXP (x2, 0); operands[0] = x6; if (!register_operand (operands[0], E_SImode)) return -1; x7 = XEXP (x3, 0); operands[1] = x7; if (!non_volatile_mem_operand (operands[1], E_HImode)) return -1; x8 = XEXP (x4, 0); operands[2] = x8; if (!register_operand (operands[2], E_SImode)) return -1; x9 = XEXP (x5, 0); operands[3] = x9; if (!non_volatile_mem_operand (operands[3], E_HImode)) return -1; return 0; } static int pattern88 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern89 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 2 || XINT (x3, 1) != i1 || GET_MODE (x3) != E_CCDSPmode) return -1; x4 = XEXP (x2, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 185 || GET_MODE (x4) != E_CCDSPmode) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 0); operands[0] = x6; x7 = XEXP (x5, 1); x8 = XEXP (x7, 0); operands[1] = x8; x9 = XEXP (x7, 1); operands[2] = x9; x10 = XVECEXP (x3, 0, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XVECEXP (x3, 0, 1); if (!rtx_equal_p (x11, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_UQQmode: return pattern88 (x7, E_UQQmode); /* [-1, 0] */ case E_UHQmode: if (pattern88 (x7, E_UHQmode) != 0) return -1; return 1; case E_UHAmode: if (pattern88 (x7, E_UHAmode) != 0) return -1; return 2; case E_V4UQQmode: if (pattern88 (x7, E_V4UQQmode) != 0) return -1; return 3; case E_V2UHQmode: if (pattern88 (x7, E_V2UHQmode) != 0) return -1; return 4; case E_V2UHAmode: if (pattern88 (x7, E_V2UHAmode) != 0) return -1; return 5; default: return -1; } } static int pattern90 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != UNSPEC || GET_MODE (x3) != E_CCDSPmode) return -1; x4 = XEXP (x2, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 185 || GET_MODE (x4) != E_CCDSPmode) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 0); operands[0] = x6; return 0; } static int pattern91 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1 || !lo_operand (operands[4], i1)) return -1; return 0; } static int pattern92 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 0); operands[3] = x7; x8 = XVECEXP (x1, 0, 2); x9 = XEXP (x8, 0); operands[4] = x9; x10 = XEXP (x6, 1); x11 = XEXP (x10, 0); if (!rtx_equal_p (x11, operands[1])) return -1; x12 = XEXP (x10, 1); if (!rtx_equal_p (x12, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern91 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern91 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern93 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != i1) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 0); operands[0] = x6; return pattern92 (x1); /* [-1, 1] */ } static int pattern94 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 30) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 3) return -1; x6 = XVECEXP (x1, 0, 2); if (GET_CODE (x6) != CLOBBER) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != REG || REGNO (x7) != 25) return -1; x8 = XVECEXP (x1, 0, 3); if (GET_CODE (x8) != CLOBBER) return -1; x9 = XEXP (x8, 0); if (GET_CODE (x9) != REG || REGNO (x9) != 31) return -1; return 0; } static int pattern95 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i1 || !register_operand (operands[1], i3)) return -1; x5 = XEXP (x2, 1); if (GET_MODE (x5) != i2) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[2], i3)) return -1; x7 = XEXP (x1, 1); if (GET_MODE (x7) != i2) return -1; x8 = XEXP (x7, 0); if (GET_MODE (x8) != i2) return -1; x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x7, 1); if (GET_MODE (x10) != i2) return -1; x11 = XEXP (x10, 0); if (GET_MODE (x11) != i1) return -1; return 0; } static int pattern96 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24, x25; rtx x26, x27, x28, x29, x30, x31, x32, x33; rtx x34, x35, x36, x37, x38, x39, x40, x41; rtx x42, x43, x44, x45, x46, x47, x48, x49; rtx x50, x51; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 1); if (GET_CODE (x3) != i1) return -1; x4 = XEXP (x2, 0); x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[1] = x5; if (!register_operand (operands[1], E_SImode) || !muldiv_target_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x2) != E_DImode || GET_MODE (x4) != E_DImode || GET_MODE (x3) != E_DImode) return -1; x6 = XEXP (x3, 0); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; x7 = XEXP (x1, 1); operands[3] = x7; if (!muldiv_target_operand (operands[3], E_DImode)) return -1; return 0; case VEC_SELECT: x8 = XEXP (x5, 1); if (GET_CODE (x8) != PARALLEL) return -1; x6 = XEXP (x3, 0); if (GET_CODE (x6) != VEC_SELECT) return -1; x9 = XEXP (x6, 1); if (GET_CODE (x9) != PARALLEL) return -1; x7 = XEXP (x1, 1); if (GET_CODE (x7) != MULT) return -1; x10 = XEXP (x7, 0); if (GET_CODE (x10) != i1) return -1; x11 = XEXP (x10, 0); if (GET_CODE (x11) != VEC_SELECT) return -1; x12 = XEXP (x11, 1); if (GET_CODE (x12) != PARALLEL) return -1; x13 = XEXP (x7, 1); if (GET_CODE (x13) != i1) return -1; x14 = XEXP (x13, 0); if (GET_CODE (x14) != VEC_SELECT) return -1; x15 = XEXP (x14, 1); if (GET_CODE (x15) != PARALLEL) return -1; x16 = XEXP (x5, 0); operands[1] = x16; x17 = XEXP (x6, 0); operands[2] = x17; x18 = XEXP (x11, 0); if (!rtx_equal_p (x18, operands[1])) return -1; x19 = XEXP (x14, 0); if (!rtx_equal_p (x19, operands[2])) return -1; switch (XVECLEN (x8, 0)) { case 2: x20 = XVECEXP (x8, 0, 0); if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x21 = XVECEXP (x8, 0, 1); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || XVECLEN (x9, 0) != 2) return -1; x22 = XVECEXP (x9, 0, 0); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x23 = XVECEXP (x9, 0, 1); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || XVECLEN (x12, 0) != 2) return -1; x24 = XVECEXP (x12, 0, 0); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x25 = XVECEXP (x12, 0, 1); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || XVECLEN (x15, 0) != 2) return -1; x26 = XVECEXP (x15, 0, 0); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x27 = XVECEXP (x15, 0, 1); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || pattern95 (x1, E_V2SImode, E_V2DImode, E_V4SImode) != 0) return -1; return 1; case 4: x20 = XVECEXP (x8, 0, 0); if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x21 = XVECEXP (x8, 0, 1); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x28 = XVECEXP (x8, 0, 2); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x29 = XVECEXP (x8, 0, 3); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || XVECLEN (x9, 0) != 4) return -1; x22 = XVECEXP (x9, 0, 0); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x23 = XVECEXP (x9, 0, 1); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x30 = XVECEXP (x9, 0, 2); if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x31 = XVECEXP (x9, 0, 3); if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || XVECLEN (x12, 0) != 4) return -1; x24 = XVECEXP (x12, 0, 0); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x25 = XVECEXP (x12, 0, 1); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x32 = XVECEXP (x12, 0, 2); if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x33 = XVECEXP (x12, 0, 3); if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || XVECLEN (x15, 0) != 4) return -1; x26 = XVECEXP (x15, 0, 0); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x27 = XVECEXP (x15, 0, 1); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x34 = XVECEXP (x15, 0, 2); if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x35 = XVECEXP (x15, 0, 3); if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || pattern95 (x1, E_V4HImode, E_V4SImode, E_V8HImode) != 0) return -1; return 2; case 8: x20 = XVECEXP (x8, 0, 0); if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x21 = XVECEXP (x8, 0, 1); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x28 = XVECEXP (x8, 0, 2); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x29 = XVECEXP (x8, 0, 3); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x36 = XVECEXP (x8, 0, 4); if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x37 = XVECEXP (x8, 0, 5); if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x38 = XVECEXP (x8, 0, 6); if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x39 = XVECEXP (x8, 0, 7); if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || XVECLEN (x9, 0) != 8) return -1; x22 = XVECEXP (x9, 0, 0); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x23 = XVECEXP (x9, 0, 1); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x30 = XVECEXP (x9, 0, 2); if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x31 = XVECEXP (x9, 0, 3); if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x40 = XVECEXP (x9, 0, 4); if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x41 = XVECEXP (x9, 0, 5); if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x42 = XVECEXP (x9, 0, 6); if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x43 = XVECEXP (x9, 0, 7); if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || XVECLEN (x12, 0) != 8) return -1; x24 = XVECEXP (x12, 0, 0); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x25 = XVECEXP (x12, 0, 1); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x32 = XVECEXP (x12, 0, 2); if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x33 = XVECEXP (x12, 0, 3); if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x44 = XVECEXP (x12, 0, 4); if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x45 = XVECEXP (x12, 0, 5); if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x46 = XVECEXP (x12, 0, 6); if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x47 = XVECEXP (x12, 0, 7); if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || XVECLEN (x15, 0) != 8) return -1; x26 = XVECEXP (x15, 0, 0); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x27 = XVECEXP (x15, 0, 1); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x34 = XVECEXP (x15, 0, 2); if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x35 = XVECEXP (x15, 0, 3); if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x48 = XVECEXP (x15, 0, 4); if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x49 = XVECEXP (x15, 0, 5); if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x50 = XVECEXP (x15, 0, 6); if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x51 = XVECEXP (x15, 0, 7); if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || pattern95 (x1, E_V8QImode, E_V8HImode, E_V16QImode) != 0) return -1; return 3; default: return -1; } default: return -1; } } static int pattern97 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!nonimmediate_operand (operands[1], E_SImode)) return -1; return 0; case E_QImode: if (!nonimmediate_operand (operands[1], E_QImode)) return -1; return 1; case E_HImode: if (!nonimmediate_operand (operands[1], E_HImode)) return -1; return 2; default: return -1; } case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!nonimmediate_operand (operands[1], E_QImode)) return -1; return 3; case E_HImode: if (!nonimmediate_operand (operands[1], E_HImode)) return -1; return 4; default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode || !nonimmediate_operand (operands[1], E_QImode)) return -1; return 5; default: return -1; } } static int pattern98 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (x1)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern99 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_CODE (x3) != PLUS) return -1; x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode) return -1; switch (GET_MODE (x2)) { case E_QImode: return pattern98 (x3); /* [-1, 1] */ case E_HImode: res = pattern98 (x3); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; switch (GET_MODE (x2)) { case E_QImode: res = pattern98 (x3); if (res >= 0) return res + 4; /* [4, 5] */ return -1; case E_HImode: res = pattern98 (x3); if (res >= 0) return res + 6; /* [6, 7] */ return -1; case E_SImode: res = pattern98 (x3); if (res >= 0) return res + 8; /* [8, 9] */ return -1; default: return -1; } default: return -1; } } static int pattern100 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x2, 1); if (GET_CODE (x4) != i1 || GET_MODE (x4) != E_DImode || !muldiv_target_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x2) != E_DImode) return -1; x5 = XEXP (x3, 0); operands[1] = x5; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x4, 0); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern101 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !symbol_ref_operand (operands[1], i1) || !symbol_ref_operand (operands[2], i1)) return -1; return 0; } static int pattern102 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; switch (GET_CODE (operands[2])) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } case SYMBOL_REF: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern101 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern101 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } default: return -1; } } static int pattern103 (rtx x1, unsigned int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 2); if (GET_CODE (x2) != REG || REGNO (x2) != 183 || GET_MODE (x2) != E_CCDSPmode) return -1; x3 = XVECEXP (x1, 0, 3); if (GET_CODE (x3) != REG || REGNO (x3) != i1 || GET_MODE (x3) != E_CCDSPmode) return -1; return 0; } static int pattern104 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; switch (GET_MODE (operands[1])) { case E_DFmode: if (!register_operand (operands[1], E_DFmode)) return -1; return 0; case E_SFmode: if (!register_operand (operands[1], E_SFmode)) return -1; return 1; default: return -1; } } static int pattern105 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern106 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != i1) return -1; return pattern85 (x1); /* [-1, 1] */ } static int pattern107 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x2, 1); if (GET_CODE (x4) != i1 || GET_MODE (x4) != E_DImode || !muldiv_target_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x5 = XEXP (x1, 0); operands[3] = x5; if (!muldiv_target_operand (operands[3], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x6 = XEXP (x3, 0); operands[1] = x6; if (!register_operand (operands[1], E_SImode)) return -1; x7 = XEXP (x4, 0); operands[2] = x7; if (!register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern108 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_DImode: if (!muldiv_target_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_TImode: if (!muldiv_target_operand (operands[0], E_TImode) || GET_MODE (x1) != E_TImode) return -1; switch (GET_MODE (x2)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 1; case E_DImode: if (!register_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode)) return -1; return 2; default: return -1; } default: return -1; } } static int pattern109 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_SImode: if (!nonimmediate_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !move_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!nonimmediate_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !move_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern110 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x1) != E_V2DImode || !register_operand (operands[1], E_V2DImode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x1) != E_V4SImode || !register_operand (operands[1], E_V4SImode)) return -1; return 1; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x1) != E_V8HImode || !register_operand (operands[1], E_V8HImode)) return -1; return 2; case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x1) != E_V16QImode || !register_operand (operands[1], E_V16QImode)) return -1; return 3; default: return -1; } } static int pattern111 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern112 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !uns_arith_operand (operands[2], i1)) return -1; return 0; } static int pattern113 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !reg_or_vector_same_val_operand (operands[2], i1)) return -1; return 0; } static int pattern114 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !uns_arith_operand (operands[1], i1)) return -1; return 0; } static int pattern115 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); if (!rtx_equal_p (x4, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern114 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern114 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern116 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !reg_imm10_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode) || !reg_imm10_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern117 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !arith_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode) || !arith_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern118 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x1) != E_V2DImode) return -1; switch (GET_MODE (operands[1])) { case E_V2DImode: if (!register_operand (operands[1], E_V2DImode) || !reg_or_vector_same_simm5_operand (operands[2], E_V2DImode)) return -1; return 0; case E_V2DFmode: if (!register_operand (operands[1], E_V2DFmode) || !register_operand (operands[2], E_V2DFmode)) return -1; return 1; default: return -1; } } static int pattern119 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x1) != E_V4SImode) return -1; switch (GET_MODE (operands[1])) { case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || !reg_or_vector_same_simm5_operand (operands[2], E_V4SImode)) return -1; return 0; case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || !register_operand (operands[2], E_V4SFmode)) return -1; return 1; default: return -1; } } static int pattern120 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i2)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i2) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern121 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); if (GET_CODE (x4) != i1) return -1; x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != CLOBBER) return -1; x6 = XEXP (x3, 0); x7 = XEXP (x6, 0); operands[1] = x7; x8 = XEXP (x4, 0); operands[2] = x8; x9 = XEXP (x5, 0); operands[3] = x9; switch (GET_MODE (operands[0])) { case E_DImode: return pattern120 (x3, E_DImode, E_SImode); /* [-1, 0] */ case E_TImode: if (pattern120 (x3, E_TImode, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern122 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != UNSPEC_VOLATILE || XVECLEN (x2, 0) != 1 || XINT (x2, 1) != i1) return -1; return 0; } static int pattern123 (rtx x1, unsigned int i1, unsigned int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != CLOBBER) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != i2) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != i1) return -1; return 0; } static int pattern124 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_SImode) return -1; x2 = XVECEXP (x1, 0, 2); if (GET_CODE (x2) != REG || REGNO (x2) != 182 || GET_MODE (x2) != E_CCDSPmode) return -1; return 0; } static int pattern125 (rtx x1, int i1, machine_mode i2, rtx_code i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != i3 || XVECLEN (x2, 0) != 3 || XINT (x2, 1) != i1 || GET_MODE (x2) != i2) return -1; return 0; } static int pattern126 (rtx x1, unsigned int i1, int i2, int i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (XVECLEN (x2, 0) != i3 || XINT (x2, 1) != i2 || GET_MODE (x2) != E_CCDSPmode) return -1; x3 = XEXP (x1, 0); if (GET_CODE (x3) != REG || REGNO (x3) != i1 || GET_MODE (x3) != E_CCDSPmode) return -1; return 0; } static int pattern127 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 2); if (GET_CODE (x2) != CLOBBER) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 31 || GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 3); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 28 || GET_MODE (x5) != E_SImode) return -1; return 0; } static int pattern128 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !got_disp_operand (operands[2], i1)) return -1; return 0; } static int pattern129 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != i1) return -1; return pattern92 (x1); /* [-1, 1] */ } static int pattern130 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != CLOBBER) return -1; x6 = XEXP (x5, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 3) return -1; return 0; } static int pattern131 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2)) return -1; operands[1] = x1; if (!movep_src_operand (operands[1], i2)) return -1; x2 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[2] = x3; if (!register_operand (operands[2], i1)) return -1; x4 = XEXP (x2, 1); operands[3] = x4; if (!movep_src_operand (operands[3], i1)) return -1; return 0; } static int pattern132 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !reg_or_vector_same_ximm5_operand (operands[2], i1)) return -1; return 0; } static int pattern133 (rtx x1, unsigned int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (REGNO (x2) != i1) return -1; switch (GET_MODE (x2)) { case E_SImode: x3 = XEXP (x1, 1); if (GET_MODE (x3) != E_SImode) return -1; return 0; case E_DImode: x3 = XEXP (x1, 1); if (GET_MODE (x3) != E_DImode) return -1; return 1; default: return -1; } } static int pattern134 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[1], i1)) return -1; x5 = XEXP (x3, 1); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern135 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); x4 = XEXP (x3, 1); if (GET_CODE (x4) != i1) return -1; x5 = XEXP (x3, 0); x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x4, 0); operands[2] = x7; x8 = XEXP (x2, 1); switch (XWINT (x8, 0)) { case 32L: return pattern134 (x1, E_SImode, E_DImode); /* [-1, 0] */ case 64L: if (pattern134 (x1, E_DImode, E_TImode) != 0) return -1; return 1; default: return -1; } } static int pattern136 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !const_1_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern137 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !nonimmediate_operand (operands[1], i1) || !and_operand (operands[2], i1)) return -1; return 0; } static int pattern138 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !sle_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode) || !sle_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern139 (rtx x1, machine_mode i1, unsigned int i2, int i3, int i4) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != i4 || XINT (x5, 1) != i3 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != i2 || GET_MODE (x6) != E_CCDSPmode || !register_operand (operands[0], i1)) return -1; return 0; } static int pattern140 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x3 = XEXP (x1, 1); operands[3] = x3; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern141 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i1) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i3)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i1) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i2 || !register_operand (operands[3], i3)) return -1; x8 = XEXP (x2, 1); if (GET_MODE (x8) != i1) return -1; x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x9, 0); if (GET_MODE (x10) != i2) return -1; x11 = XEXP (x8, 1); if (GET_MODE (x11) != i1) return -1; x12 = XEXP (x11, 0); if (GET_MODE (x12) != i2 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern142 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24, x25; rtx x26, x27, x28, x29, x30, x31, x32, x33; rtx x34, x35, x36, x37, x38, x39, x40, x41; rtx x42, x43, x44, x45, x46, x47, x48, x49; rtx x50, x51, x52; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_CODE (x5) != VEC_SELECT) return -1; x6 = XEXP (x5, 1); if (GET_CODE (x6) != PARALLEL) return -1; x7 = XEXP (x3, 1); if (GET_CODE (x7) != i1) return -1; x8 = XEXP (x7, 0); if (GET_CODE (x8) != VEC_SELECT) return -1; x9 = XEXP (x8, 1); if (GET_CODE (x9) != PARALLEL) return -1; x10 = XEXP (x2, 1); x11 = XEXP (x10, 0); if (GET_CODE (x11) != i1) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != VEC_SELECT) return -1; x13 = XEXP (x12, 1); if (GET_CODE (x13) != PARALLEL) return -1; x14 = XEXP (x10, 1); if (GET_CODE (x14) != i1) return -1; x15 = XEXP (x14, 0); if (GET_CODE (x15) != VEC_SELECT) return -1; x16 = XEXP (x15, 1); if (GET_CODE (x16) != PARALLEL) return -1; x17 = XEXP (x5, 0); operands[2] = x17; x18 = XEXP (x8, 0); operands[3] = x18; x19 = XEXP (x12, 0); if (!rtx_equal_p (x19, operands[2])) return -1; x20 = XEXP (x15, 0); if (!rtx_equal_p (x20, operands[3])) return -1; switch (XVECLEN (x6, 0)) { case 2: x21 = XVECEXP (x6, 0, 0); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x22 = XVECEXP (x6, 0, 1); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || XVECLEN (x9, 0) != 2) return -1; x23 = XVECEXP (x9, 0, 0); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x24 = XVECEXP (x9, 0, 1); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || XVECLEN (x13, 0) != 2) return -1; x25 = XVECEXP (x13, 0, 0); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x26 = XVECEXP (x13, 0, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || XVECLEN (x16, 0) != 2) return -1; x27 = XVECEXP (x16, 0, 0); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x28 = XVECEXP (x16, 0, 1); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || pattern141 (x1, E_V2DImode, E_V2SImode, E_V4SImode) != 0) return -1; return 0; case 4: x21 = XVECEXP (x6, 0, 0); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x22 = XVECEXP (x6, 0, 1); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x29 = XVECEXP (x6, 0, 2); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x30 = XVECEXP (x6, 0, 3); if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || XVECLEN (x9, 0) != 4) return -1; x23 = XVECEXP (x9, 0, 0); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x24 = XVECEXP (x9, 0, 1); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x31 = XVECEXP (x9, 0, 2); if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x32 = XVECEXP (x9, 0, 3); if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || XVECLEN (x13, 0) != 4) return -1; x25 = XVECEXP (x13, 0, 0); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x26 = XVECEXP (x13, 0, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x33 = XVECEXP (x13, 0, 2); if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x34 = XVECEXP (x13, 0, 3); if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || XVECLEN (x16, 0) != 4) return -1; x27 = XVECEXP (x16, 0, 0); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x28 = XVECEXP (x16, 0, 1); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x35 = XVECEXP (x16, 0, 2); if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x36 = XVECEXP (x16, 0, 3); if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || pattern141 (x1, E_V4SImode, E_V4HImode, E_V8HImode) != 0) return -1; return 1; case 8: x21 = XVECEXP (x6, 0, 0); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x22 = XVECEXP (x6, 0, 1); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x29 = XVECEXP (x6, 0, 2); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x30 = XVECEXP (x6, 0, 3); if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x37 = XVECEXP (x6, 0, 4); if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x38 = XVECEXP (x6, 0, 5); if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x39 = XVECEXP (x6, 0, 6); if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x40 = XVECEXP (x6, 0, 7); if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || XVECLEN (x9, 0) != 8) return -1; x23 = XVECEXP (x9, 0, 0); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x24 = XVECEXP (x9, 0, 1); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x31 = XVECEXP (x9, 0, 2); if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x32 = XVECEXP (x9, 0, 3); if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x41 = XVECEXP (x9, 0, 4); if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x42 = XVECEXP (x9, 0, 5); if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x43 = XVECEXP (x9, 0, 6); if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x44 = XVECEXP (x9, 0, 7); if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || XVECLEN (x13, 0) != 8) return -1; x25 = XVECEXP (x13, 0, 0); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x26 = XVECEXP (x13, 0, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x33 = XVECEXP (x13, 0, 2); if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x34 = XVECEXP (x13, 0, 3); if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x45 = XVECEXP (x13, 0, 4); if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x46 = XVECEXP (x13, 0, 5); if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x47 = XVECEXP (x13, 0, 6); if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x48 = XVECEXP (x13, 0, 7); if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || XVECLEN (x16, 0) != 8) return -1; x27 = XVECEXP (x16, 0, 0); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x28 = XVECEXP (x16, 0, 1); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x35 = XVECEXP (x16, 0, 2); if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x36 = XVECEXP (x16, 0, 3); if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x49 = XVECEXP (x16, 0, 4); if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x50 = XVECEXP (x16, 0, 5); if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x51 = XVECEXP (x16, 0, 6); if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x52 = XVECEXP (x16, 0, 7); if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || pattern141 (x1, E_V8HImode, E_V8QImode, E_V16QImode) != 0) return -1; return 2; default: return -1; } } static int pattern143 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_SImode) return -1; switch (GET_MODE (operands[1])) { case E_DFmode: if (!register_operand (operands[1], E_DFmode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 1; case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode)) return -1; return 2; case E_V2SImode: if (!register_operand (operands[1], E_V2SImode)) return -1; return 3; case E_V4HImode: if (!register_operand (operands[1], E_V4HImode)) return -1; return 4; case E_V8QImode: if (!register_operand (operands[1], E_V8QImode)) return -1; return 5; default: return -1; } } static int pattern144 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !general_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern145 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !reg_or_0_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern146 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern147 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !const_1_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern148 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !const_1_operand (operands[1], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern149 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1 || !reg_or_vector_same_val_operand (operands[2], i1)) return -1; return 0; } static int pattern150 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern151 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !const_int_operand (operands[2], i1) || !const_int_operand (operands[3], i1)) return -1; return 0; } static int pattern152 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i1)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i1) return -1; return 0; } static int pattern153 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (x1)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern154 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); return pattern153 (x2); /* [-1, 1] */ } static int pattern155 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[2])) { case E_SImode: if (!register_operand (operands[2], E_SImode) || !reg_or_0_operand (operands[3], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[2], E_DImode) || !reg_or_0_operand (operands[3], E_DImode)) return -1; return 1; default: return -1; } } static int pattern156 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: x3 = XEXP (x1, 2); if (GET_CODE (x3) != PC) return -1; x4 = XEXP (x2, 0); operands[0] = x4; return pattern155 (); /* [-1, 1] */ case PC: x3 = XEXP (x1, 2); if (GET_CODE (x3) != LABEL_REF) return -1; x5 = XEXP (x3, 0); operands[0] = x5; res = pattern155 (); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } } static int pattern157 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !reg_or_0_operand (operands[2], i1) || !reg_or_0_operand (operands[3], i1)) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern158 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != CONST_INT) return -1; x3 = XVECEXP (x1, 0, 1); if (GET_CODE (x3) != CONST_INT) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CONST_INT) return -1; x5 = XVECEXP (x1, 0, 3); if (GET_CODE (x5) != CONST_INT) return -1; x6 = XVECEXP (x1, 0, 4); if (GET_CODE (x6) != CONST_INT) return -1; x7 = XVECEXP (x1, 0, 5); if (GET_CODE (x7) != CONST_INT) return -1; x8 = XVECEXP (x1, 0, 6); if (GET_CODE (x8) != CONST_INT) return -1; x9 = XVECEXP (x1, 0, 7); if (GET_CODE (x9) != CONST_INT) return -1; return 0; } static int pattern159 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || pattern35 (x1, i1, i2) != 0) return -1; return 0; } static int pattern160 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); if (GET_MODE (x4) != E_DImode) return -1; x5 = XEXP (x3, 1); if (GET_CODE (x5) != i1 || GET_MODE (x5) != E_DImode) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != CLOBBER || !register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return -1; x7 = XEXP (x4, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x8 = XEXP (x5, 0); operands[2] = x8; if (!register_operand (operands[2], E_SImode)) return -1; x9 = XEXP (x6, 0); operands[3] = x9; if (!scratch_operand (operands[3], E_TImode)) return -1; x10 = XVECEXP (x1, 0, 2); x11 = XEXP (x10, 0); operands[4] = x11; return 0; } static int pattern161 (rtx x1, int i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i2) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 185 || GET_MODE (x6) != E_CCDSPmode) return -1; x7 = XEXP (x2, 0); operands[0] = x7; if (!register_operand (operands[0], i2)) return -1; x8 = XVECEXP (x3, 0, 0); operands[1] = x8; if (!register_operand (operands[1], i3)) return -1; x9 = XVECEXP (x3, 0, 1); operands[2] = x9; if (!register_operand (operands[2], E_V2HImode) || !scratch_operand (operands[3], E_DImode)) return -1; x10 = XVECEXP (x5, 0, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XVECEXP (x5, 0, 1); if (!rtx_equal_p (x11, operands[2])) return -1; return 0; } static int pattern162 (rtx x1, machine_mode i1, int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i2 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 185 || GET_MODE (x6) != E_CCDSPmode) return -1; x7 = XEXP (x2, 0); operands[0] = x7; if (!register_operand (operands[0], i1)) return -1; x8 = XVECEXP (x3, 0, 0); operands[1] = x8; if (!reg_or_0_operand (operands[1], i1)) return -1; x9 = XVECEXP (x3, 0, 1); operands[2] = x9; if (!reg_or_0_operand (operands[2], i1) || !scratch_operand (operands[3], E_DImode)) return -1; x10 = XVECEXP (x5, 0, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XVECEXP (x5, 0, 1); if (!rtx_equal_p (x11, operands[2])) return -1; return 0; } static int pattern163 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (XVECLEN (x1, 0) != 1 || XINT (x1, 1) != 62 || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != PLUS || GET_MODE (x2) != i1) return -1; return 0; } static int pattern164 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!d_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_SImode || !const_int_operand (operands[1], E_SImode)) return -1; return 0; } static int pattern165 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern166 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { case E_HImode: if (!register_operand (operands[1], E_V8HImode) || !const_uimm3_operand (operands[2], E_VOIDmode)) return -1; return 0; case E_QImode: if (!register_operand (operands[1], E_V16QImode) || !const_uimm4_operand (operands[2], E_VOIDmode)) return -1; return 1; default: return -1; } } static int pattern167 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i2)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[2], i3)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i2) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i1 || !register_operand (operands[3], i3)) return -1; x8 = XEXP (x2, 1); if (GET_MODE (x8) != i2) return -1; x9 = XEXP (x8, 0); if (GET_MODE (x9) != i2) return -1; x10 = XEXP (x9, 0); if (GET_MODE (x10) != i1) return -1; x11 = XEXP (x8, 1); if (GET_MODE (x11) != i2) return -1; x12 = XEXP (x11, 0); if (GET_MODE (x12) != i1) return -1; return 0; } static int pattern168 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24, x25; rtx x26, x27, x28, x29, x30, x31, x32, x33; rtx x34, x35, x36, x37, x38, x39, x40, x41; rtx x42, x43, x44, x45, x46, x47, x48, x49; rtx x50, x51, x52; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_CODE (x5) != VEC_SELECT) return -1; x6 = XEXP (x5, 1); if (GET_CODE (x6) != PARALLEL) return -1; x7 = XEXP (x3, 1); if (GET_CODE (x7) != i1) return -1; x8 = XEXP (x7, 0); if (GET_CODE (x8) != VEC_SELECT) return -1; x9 = XEXP (x8, 1); if (GET_CODE (x9) != PARALLEL) return -1; x10 = XEXP (x2, 1); x11 = XEXP (x10, 0); if (GET_CODE (x11) != i1) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != VEC_SELECT) return -1; x13 = XEXP (x12, 1); if (GET_CODE (x13) != PARALLEL) return -1; x14 = XEXP (x10, 1); if (GET_CODE (x14) != i1) return -1; x15 = XEXP (x14, 0); if (GET_CODE (x15) != VEC_SELECT) return -1; x16 = XEXP (x15, 1); if (GET_CODE (x16) != PARALLEL) return -1; x17 = XEXP (x5, 0); operands[2] = x17; x18 = XEXP (x8, 0); operands[3] = x18; x19 = XEXP (x12, 0); if (!rtx_equal_p (x19, operands[2])) return -1; x20 = XEXP (x15, 0); if (!rtx_equal_p (x20, operands[3])) return -1; switch (XVECLEN (x6, 0)) { case 2: x21 = XVECEXP (x6, 0, 0); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x22 = XVECEXP (x6, 0, 1); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || XVECLEN (x9, 0) != 2) return -1; x23 = XVECEXP (x9, 0, 0); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x24 = XVECEXP (x9, 0, 1); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 2] || XVECLEN (x13, 0) != 2) return -1; x25 = XVECEXP (x13, 0, 0); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x26 = XVECEXP (x13, 0, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || XVECLEN (x16, 0) != 2) return -1; x27 = XVECEXP (x16, 0, 0); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x28 = XVECEXP (x16, 0, 1); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 3] || pattern167 (x1, E_V2SImode, E_V2DImode, E_V4SImode) != 0) return -1; return 0; case 4: x21 = XVECEXP (x6, 0, 0); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x22 = XVECEXP (x6, 0, 1); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x29 = XVECEXP (x6, 0, 2); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x30 = XVECEXP (x6, 0, 3); if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || XVECLEN (x9, 0) != 4) return -1; x23 = XVECEXP (x9, 0, 0); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x24 = XVECEXP (x9, 0, 1); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x31 = XVECEXP (x9, 0, 2); if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x32 = XVECEXP (x9, 0, 3); if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6] || XVECLEN (x13, 0) != 4) return -1; x25 = XVECEXP (x13, 0, 0); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x26 = XVECEXP (x13, 0, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x33 = XVECEXP (x13, 0, 2); if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x34 = XVECEXP (x13, 0, 3); if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || XVECLEN (x16, 0) != 4) return -1; x27 = XVECEXP (x16, 0, 0); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x28 = XVECEXP (x16, 0, 1); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x35 = XVECEXP (x16, 0, 2); if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x36 = XVECEXP (x16, 0, 3); if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 7] || pattern167 (x1, E_V4HImode, E_V4SImode, E_V8HImode) != 0) return -1; return 1; case 8: x21 = XVECEXP (x6, 0, 0); if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x22 = XVECEXP (x6, 0, 1); if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x29 = XVECEXP (x6, 0, 2); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x30 = XVECEXP (x6, 0, 3); if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x37 = XVECEXP (x6, 0, 4); if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x38 = XVECEXP (x6, 0, 5); if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x39 = XVECEXP (x6, 0, 6); if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x40 = XVECEXP (x6, 0, 7); if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || XVECLEN (x9, 0) != 8) return -1; x23 = XVECEXP (x9, 0, 0); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x24 = XVECEXP (x9, 0, 1); if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 2]) return -1; x31 = XVECEXP (x9, 0, 2); if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x32 = XVECEXP (x9, 0, 3); if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6]) return -1; x41 = XVECEXP (x9, 0, 4); if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x42 = XVECEXP (x9, 0, 5); if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 10]) return -1; x43 = XVECEXP (x9, 0, 6); if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 12]) return -1; x44 = XVECEXP (x9, 0, 7); if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 14] || XVECLEN (x13, 0) != 8) return -1; x25 = XVECEXP (x13, 0, 0); if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x26 = XVECEXP (x13, 0, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x33 = XVECEXP (x13, 0, 2); if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x34 = XVECEXP (x13, 0, 3); if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x45 = XVECEXP (x13, 0, 4); if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x46 = XVECEXP (x13, 0, 5); if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x47 = XVECEXP (x13, 0, 6); if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x48 = XVECEXP (x13, 0, 7); if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || XVECLEN (x16, 0) != 8) return -1; x27 = XVECEXP (x16, 0, 0); if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x28 = XVECEXP (x16, 0, 1); if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 3]) return -1; x35 = XVECEXP (x16, 0, 2); if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5]) return -1; x36 = XVECEXP (x16, 0, 3); if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 7]) return -1; x49 = XVECEXP (x16, 0, 4); if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 9]) return -1; x50 = XVECEXP (x16, 0, 5); if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 11]) return -1; x51 = XVECEXP (x16, 0, 6); if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 13]) return -1; x52 = XVECEXP (x16, 0, 7); if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 15] || pattern167 (x1, E_V8QImode, E_V8HImode, E_V16QImode) != 0) return -1; return 2; default: return -1; } } static int pattern169 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern170 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern171 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!cprestore_save_slot_operand (operands[0], i1) || GET_MODE (x1) != i1 || !const_int_operand (operands[1], i1)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1) return -1; return 0; } static int pattern172 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i2) || !register_operand (operands[2], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern173 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !const_0_or_1_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern174 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !const_0_to_3_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern175 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode) || GET_MODE (x1) != E_QImode) return -1; return 0; case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode) return -1; return 1; case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode) return -1; return 2; default: return -1; } } static int pattern176 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern177 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x2 = XEXP (x1, 2); if (GET_MODE (x2) != i1 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern178 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern179 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x3 = XEXP (x1, 2); if (GET_MODE (x3) != i1 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern180 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !arith_operand (operands[1], i1)) return -1; return 0; } static int pattern181 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern182 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 2); if (GET_CODE (x3) != PC) return -1; x4 = XEXP (x1, 0); if (GET_CODE (x4) != PC) return -1; x5 = XEXP (x2, 1); x6 = XEXP (x5, 0); operands[0] = x6; switch (GET_MODE (operands[1])) { case E_CCV4mode: if (!register_operand (operands[1], E_CCV4mode)) return -1; return 0; case E_CCV2mode: if (!register_operand (operands[1], E_CCV2mode)) return -1; return 1; default: return -1; } } static int pattern183 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2 || !reg_or_0_operand (operands[1], i1)) return -1; return 0; } static int pattern184 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2 || !register_operand (operands[1], i1) || !const_0_or_1_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern185 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2 || !register_operand (operands[1], i1) || !const_0_to_3_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern186 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern187 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 2 || XINT (x3, 1) != i1 || GET_MODE (x3) != E_CCDSPmode) return -1; x4 = XEXP (x2, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 185 || GET_MODE (x4) != E_CCDSPmode) return -1; x5 = XVECEXP (x3, 0, 0); if (!rtx_equal_p (x5, operands[1])) return -1; x6 = XVECEXP (x3, 0, 1); if (!rtx_equal_p (x6, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: x7 = XVECEXP (x1, 0, 0); x8 = XEXP (x7, 1); return pattern186 (x8, E_SImode); /* [-1, 0] */ case E_V2HImode: x7 = XVECEXP (x1, 0, 0); x8 = XEXP (x7, 1); if (pattern186 (x8, E_V2HImode) != 0) return -1; return 1; case E_V4QImode: x7 = XVECEXP (x1, 0, 0); x8 = XEXP (x7, 1); if (pattern186 (x8, E_V4QImode) != 0) return -1; return 2; default: return -1; } } static int pattern188 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x2 = XVECEXP (x1, 0, 0); if (!rtx_equal_p (x2, operands[1])) return -1; x3 = XVECEXP (x1, 0, 1); if (!rtx_equal_p (x3, operands[2])) return -1; return 0; } static int pattern189 (rtx x1, int i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i2) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 185 || GET_MODE (x6) != E_CCDSPmode || !register_operand (operands[0], i2) || pattern188 (x5, i3) != 0) return -1; return 0; } static int pattern190 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1) || !register_operand (operands[2], i2)) return -1; x2 = XVECEXP (x1, 0, 0); if (!rtx_equal_p (x2, operands[1])) return -1; x3 = XVECEXP (x1, 0, 1); if (!rtx_equal_p (x3, operands[2])) return -1; return 0; } static int pattern191 (rtx x1, int *pnum_clobbers, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_V2HImode) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 185 || GET_MODE (x6) != E_CCDSPmode || !register_operand (operands[0], E_V2HImode) || pattern190 (x5, E_V4QImode, E_V2HImode) != 0) return -1; return 0; } static int pattern192 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_SImode) || !register_operand (operands[1], E_DImode) || !arith_operand (operands[2], E_SImode)) return -1; x2 = XVECEXP (x1, 0, 0); if (!rtx_equal_p (x2, operands[1])) return -1; x3 = XVECEXP (x1, 0, 1); if (!rtx_equal_p (x3, operands[2])) return -1; return 0; } static int pattern193 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 185 || GET_MODE (x6) != E_CCDSPmode || pattern192 (x5) != 0) return -1; return 0; } static int pattern194 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!reg_or_0_operand (operands[1], i1) || !reg_or_0_operand (operands[2], i1)) return -1; x2 = XVECEXP (x1, 0, 0); if (!rtx_equal_p (x2, operands[1])) return -1; x3 = XVECEXP (x1, 0, 1); if (!rtx_equal_p (x3, operands[2])) return -1; return 0; } static int pattern195 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_V2HImode) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XEXP (x4, 0); if (GET_CODE (x6) != REG || REGNO (x6) != 185 || GET_MODE (x6) != E_CCDSPmode || !register_operand (operands[0], E_V2HImode) || pattern194 (x5, E_V2HImode) != 0) return -1; return 0; } static int pattern196 (rtx x1, machine_mode i1, unsigned int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != i2 || GET_MODE (x2) != E_CCDSPmode || !register_operand (operands[0], E_SImode)) return -1; x3 = XEXP (x1, 1); return pattern194 (x3, i1); /* [-1, 0] */ } static int pattern197 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 3 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode) return -1; x6 = XVECEXP (x5, 0, 2); if (GET_CODE (x6) != REG || REGNO (x6) != 186 || GET_MODE (x6) != E_CCDSPmode || pattern196 (x4, E_V4QImode, 186) != 0) return -1; return 0; } static int pattern198 (rtx x1, int *pnum_clobbers, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 2 || XINT (x5, 1) != i1 || GET_MODE (x5) != E_CCDSPmode || pattern196 (x4, E_SImode, 185) != 0) return -1; return 0; } static int pattern199 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || !register_operand (operands[1], i1) || !memory_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern200 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern201 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; switch (GET_MODE (x1)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern202 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { case E_SImode: x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern203 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i1) || !const_0_or_1_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern204 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i1) || !const_0_to_3_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern205 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!cprestore_save_slot_operand (operands[0], i1) || GET_MODE (x1) != i1 || !const_int_operand (operands[1], i1) || !register_operand (operands[2], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern206 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[3] = x3; switch (GET_MODE (operands[0])) { case E_SImode: x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); return pattern205 (x5, E_SImode); /* [-1, 0] */ case E_DImode: x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); if (pattern205 (x5, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern207 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 0); switch (GET_MODE (x5)) { case E_SImode: x6 = XEXP (x4, 1); if (GET_MODE (x6) != E_SImode || !scratch_operand (operands[0], E_SImode)) return -1; return 0; case E_DImode: x6 = XEXP (x4, 1); if (GET_MODE (x6) != E_DImode || !scratch_operand (operands[0], E_DImode)) return -1; return 1; default: return -1; } } static int pattern208 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !non_volatile_mem_operand (operands[1], i1) || !register_operand (operands[2], i1) || !non_volatile_mem_operand (operands[3], i1)) return -1; return 0; } static int pattern209 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !reg_or_0_operand (operands[2], i1) || !reg_or_0_operand (operands[3], i1)) return -1; x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern210 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern211 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern212 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[1], i1)) return -1; x5 = XEXP (x3, 1); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern213 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); x4 = XEXP (x3, 1); if (GET_CODE (x4) != i1) return -1; x5 = XEXP (x3, 0); x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x4, 0); operands[2] = x7; x8 = XEXP (x2, 1); switch (XWINT (x8, 0)) { case 32L: return pattern212 (x1, E_SImode, E_DImode); /* [-1, 0] */ case 64L: if (pattern212 (x1, E_DImode, E_TImode) != 0) return -1; return 1; default: return -1; } } static int pattern214 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 0); if (GET_MODE (x5) != E_SImode) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_DImode) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 0); if (GET_MODE (x5) != E_DImode) return -1; return 1; default: return -1; } } static int pattern215 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (!call_insn_operand (operands[1], E_VOIDmode)) return -1; x2 = XEXP (x1, 0); operands[3] = x2; if (!register_operand (operands[3], E_VOIDmode)) return -1; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (!rtx_equal_p (x5, operands[1])) return -1; x6 = XEXP (x3, 1); if (!rtx_equal_p (x6, operands[2])) return -1; return 0; } static int pattern216 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_CODE (x2) != CALL) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_SImode || pattern215 (x1) != 0) return -1; return 0; } static int pattern217 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 31 || GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 2); x5 = XEXP (x4, 0); if (REGNO (x5) != 28) return -1; return 0; } static int pattern218 (rtx x1, int i1, int i2, rtx_code i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != i3 || XVECLEN (x2, 0) != i2 || XINT (x2, 1) != i1) return -1; return 0; } static int pattern219 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[2])) { case E_SImode: if (!register_operand (operands[2], E_SImode) || !movep_src_operand (operands[3], E_SImode)) return -1; return 0; case E_SFmode: if (!register_operand (operands[2], E_SFmode) || !movep_src_operand (operands[3], E_SFmode)) return -1; return 1; default: return -1; } } static int pattern220 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], E_VOIDmode)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x3, 1); operands[2] = x6; x7 = XVECEXP (x1, 0, 1); switch (GET_CODE (x7)) { case CONST_INT: if (XWINT (x7, 0) != 1L || !const_call_insn_operand (operands[1], E_VOIDmode)) return -1; return 0; case SET: if (pattern216 (x7) != 0) return -1; return 1; default: return -1; } } static int pattern221 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !reg_or_vector_same_val_operand (operands[3], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern222 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 1; case E_CCmode: if (!register_operand (operands[1], E_CCmode)) return -1; return 2; default: return -1; } } static int pattern223 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !equality_operator (operands[4], E_VOIDmode) || !reg_or_0_operand (operands[2], i1) || !reg_or_0_operand (operands[3], i1)) return -1; return pattern222 (); /* [-1, 2] */ } static int pattern224 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !equality_operator (operands[4], E_VOIDmode) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return pattern222 (); /* [-1, 2] */ } static int pattern225 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !const_exp_2_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern226 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !const_exp_4_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern227 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern228 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!nonimmediate_operand (operands[0], i1) || !nonimmediate_operand (operands[1], i1) || !nonimmediate_operand (operands[2], i1) || !nonimmediate_operand (operands[3], i1)) return -1; return 0; } static int pattern229 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_CCFmode || !register_operand (operands[1], E_CCFmode) || !reg_or_0_operand (operands[2], i1) || !reg_or_0_operand (operands[3], i1)) return -1; return 0; } static int pattern230 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !uns_arith_operand (operands[2], i1)) return -1; return 0; } static int pattern231 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); if (!rtx_equal_p (x4, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern230 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern230 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern232 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !uns_arith_operand (operands[2], i1)) return -1; return 0; } static int pattern233 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[2] = x2; switch (GET_MODE (operands[0])) { case E_SImode: return pattern232 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern232 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern234 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); x5 = XEXP (x4, 0); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; x6 = XEXP (x4, 1); operands[3] = x6; if (!register_operand (operands[3], E_SImode)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 0); operands[4] = x8; if (!scratch_operand (operands[4], E_SImode)) return -1; x9 = XVECEXP (x1, 0, 2); x10 = XEXP (x9, 0); operands[5] = x10; if (!scratch_operand (operands[5], E_SImode)) return -1; return 0; } static int pattern235 (rtx x1, int i1, int i2, unsigned int i3, machine_mode i4) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i4) return -1; x4 = XVECEXP (x3, 0, 2); if (GET_CODE (x4) != REG || REGNO (x4) != i3 || GET_MODE (x4) != E_CCDSPmode) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (XVECLEN (x6, 0) != i2 || XINT (x6, 1) != i1) return -1; return 0; } static int pattern236 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 2); operands[3] = x4; if (!register_operand (operands[3], i1)) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); x7 = XVECEXP (x6, 0, 0); if (!rtx_equal_p (x7, operands[1])) return -1; x8 = XVECEXP (x6, 0, 1); if (!rtx_equal_p (x8, operands[2])) return -1; x9 = XVECEXP (x6, 0, 2); if (!rtx_equal_p (x9, operands[3])) return -1; return 0; } static int pattern237 (rtx x1, int i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_DImode) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (XVECLEN (x5, 0) != 3 || XINT (x5, 1) != i1) return -1; x6 = XEXP (x4, 0); if (REGNO (x6) != 185 || !register_operand (operands[0], E_DImode) || !register_operand (operands[1], E_DImode) || !register_operand (operands[2], i2) || pattern236 (x1, i2) != 0) return -1; return 0; } static int pattern238 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_DImode) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (XVECLEN (x5, 0) != 3 || XINT (x5, 1) != i1) return -1; x6 = XEXP (x4, 0); if (REGNO (x6) != 185 || !register_operand (operands[0], E_DImode) || !register_operand (operands[1], E_DImode) || !reg_or_0_operand (operands[2], E_V2HImode)) return -1; x7 = XVECEXP (x3, 0, 2); operands[3] = x7; if (!reg_or_0_operand (operands[3], E_V2HImode)) return -1; x8 = XVECEXP (x5, 0, 0); if (!rtx_equal_p (x8, operands[1])) return -1; x9 = XVECEXP (x5, 0, 1); if (!rtx_equal_p (x9, operands[2])) return -1; x10 = XVECEXP (x5, 0, 2); if (!rtx_equal_p (x10, operands[3])) return -1; return 0; } static int pattern239 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !arith_operand (operands[2], i1)) return -1; return 0; } static int pattern240 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !reg_or_0_operand (operands[2], i1) || !arith_operand (operands[3], i1)) return -1; return 0; } static int pattern241 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !mem_noofs_operand (operands[1], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern242 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !arith_operand (operands[2], i1)) return -1; return 0; } static int pattern243 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern244 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 0); if (!rtx_equal_p (x4, operands[1])) return -1; x5 = XVECEXP (x3, 0, 1); if (!rtx_equal_p (x5, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_HQmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); return pattern88 (x7, E_HQmode); /* [-1, 0] */ case E_SQmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_SQmode) != 0) return -1; return 1; case E_HAmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_HAmode) != 0) return -1; return 2; case E_SAmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_SAmode) != 0) return -1; return 3; case E_V2HQmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_V2HQmode) != 0) return -1; return 4; case E_V2HAmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_V2HAmode) != 0) return -1; return 5; default: return -1; } } static int pattern245 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 0); if (!rtx_equal_p (x4, operands[1])) return -1; x5 = XVECEXP (x3, 0, 1); if (!rtx_equal_p (x5, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_V2HQmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); return pattern88 (x7, E_V2HQmode); /* [-1, 0] */ case E_HQmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_HQmode) != 0) return -1; return 1; case E_SQmode: x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); if (pattern88 (x7, E_SQmode) != 0) return -1; return 2; default: return -1; } } static int pattern246 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !call_insn_operand (operands[0], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x1, 0, 2); x7 = XEXP (x6, 0); if (GET_MODE (x7) != i1) return -1; return 0; } static int pattern247 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !call_insn_operand (operands[1], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x1, 0, 2); x7 = XEXP (x6, 0); if (GET_MODE (x7) != i1) return -1; x8 = XVECEXP (x1, 0, 3); x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1) return -1; return 0; } static int pattern248 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: return pattern247 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern247 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern249 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !memory_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x5, 0, 0); if (GET_MODE (x6) != i1) return -1; return 0; } static int pattern250 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 0; case E_V2HImode: if (!register_operand (operands[0], E_V2HImode) || GET_MODE (x1) != E_V2HImode || !register_operand (operands[1], E_V2HImode)) return -1; return 1; default: return -1; } } static int pattern251 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !mem_noofs_operand (operands[1], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x5, 0, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern252 (rtx x1, int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); if (XVECLEN (x3, 0) != 3 || XINT (x3, 1) != i1 || !register_operand (operands[0], E_DQmode)) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); if (GET_MODE (x5) != E_DQmode) return -1; return 0; } static int pattern253 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (!arith_operand (operands[2], i1)) return -1; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 0); x4 = XEXP (x3, 0); if (!rtx_equal_p (x4, operands[1])) return -1; x5 = XEXP (x3, 1); if (!rtx_equal_p (x5, operands[2])) return -1; x6 = XEXP (x1, 0); if (!rtx_equal_p (x6, operands[1])) return -1; return 0; } static int pattern254 (rtx x1, machine_mode i1, unsigned int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (REGNO (x2) != i2 || !register_operand (operands[0], i1)) return -1; x3 = XEXP (x1, 1); return pattern190 (x3, i1, E_SImode); /* [-1, 0] */ } static int pattern255 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; switch (GET_CODE (x1)) { case PLUS: if (GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 1); operands[4] = x2; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x3 = XEXP (x1, 0); if (!rtx_equal_p (x3, operands[0])) return -1; return 0; case MINUS: if (GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 1); operands[4] = x2; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x3 = XEXP (x1, 0); if (!rtx_equal_p (x3, operands[0])) return -1; return 1; case IOR: if (GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 1); operands[4] = x2; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x3 = XEXP (x1, 0); if (!rtx_equal_p (x3, operands[0])) return -1; return 2; case XOR: if (GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 1); operands[4] = x2; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x3 = XEXP (x1, 0); if (!rtx_equal_p (x3, operands[0])) return -1; return 3; case AND: if (GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 1); operands[4] = x2; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x3 = XEXP (x1, 0); if (!rtx_equal_p (x3, operands[0])) return -1; return 4; case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: operands[4] = x1; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; return 5; default: return -1; } } static int pattern256 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !memory_operand (operands[1], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1 || !arith_operand (operands[2], i1)) return -1; x6 = XVECEXP (x1, 0, 2); if (GET_MODE (x6) != i1) return -1; return 0; } static int pattern257 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !memory_operand (operands[1], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x5, 0, 0); if (GET_MODE (x6) != i1 || !arith_operand (operands[2], i1)) return -1; x7 = XVECEXP (x1, 0, 2); if (GET_MODE (x7) != i1) return -1; return 0; } static int pattern258 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 2); if (XWINT (x2, 0) != 5L) return -1; x3 = XVECEXP (x1, 0, 3); if (XWINT (x3, 0) != 7L) return -1; x4 = XVECEXP (x1, 0, 4); if (XWINT (x4, 0) != 9L) return -1; x5 = XVECEXP (x1, 0, 5); if (XWINT (x5, 0) != 11L) return -1; x6 = XVECEXP (x1, 0, 6); if (XWINT (x6, 0) != 13L) return -1; return 0; } static int pattern259 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 3); if (GET_MODE (x4) != E_SImode) return -1; x5 = XEXP (x4, 1); operands[4] = x5; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x6 = XEXP (x4, 0); if (!rtx_equal_p (x6, operands[0])) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); x9 = XVECEXP (x8, 0, 3); if (!rtx_equal_p (x9, operands[4])) return -1; return 0; } static int pattern260 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !memory_operand (operands[2], i1) || !reg_or_0_operand (operands[3], i1) || !register_operand (operands[1], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x1, 0, 2); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1 || !arith_operand (operands[4], i1)) return -1; x8 = XVECEXP (x1, 0, 3); if (GET_MODE (x8) != i1) return -1; return 0; } static int recog_1 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); if (GET_CODE (x4) != PLUS || GET_MODE (x4) != E_SImode || !register_operand (operands[0], E_SImode) || GET_MODE (x2) != E_SImode || GET_MODE (x3) != E_QImode) return -1; x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; switch (SUBREG_BYTE (x3)) { case 3: if (! #line 1451 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && BYTES_BIG_ENDIAN)) return -1; return 19; /* *baddu_si_eb */ case 0: if (! #line 1461 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && !BYTES_BIG_ENDIAN)) return -1; return 20; /* *baddu_si_el */ default: return -1; } } static int recog_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_DImode) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!nonimmediate_operand (operands[1], E_SImode)) return -1; if ( #line 3589 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !ISA_HAS_EXT_INS)) return 216; /* *zero_extendsidi2 */ if (! #line 3605 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_EXT_INS)) return -1; return 217; /* *zero_extendsidi2_dext */ case E_QImode: if (nonimmediate_operand (operands[1], E_QImode) && ( #line 3645 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 219; /* *zero_extendqidi2 */ if (register_operand (operands[1], E_QImode) && ( #line 3657 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 223; /* *zero_extendqidi2_mips16e */ if (!memory_operand (operands[1], E_QImode) || !( #line 3666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 227; /* *zero_extendqidi2_mips16 */ case E_HImode: if (nonimmediate_operand (operands[1], E_HImode) && ( #line 3645 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 221; /* *zero_extendhidi2 */ if (register_operand (operands[1], E_HImode) && ( #line 3657 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 225; /* *zero_extendhidi2_mips16e */ if (!memory_operand (operands[1], E_HImode) || !( #line 3666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 229; /* *zero_extendhidi2_mips16 */ default: return -1; } case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_SImode) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (nonimmediate_operand (operands[1], E_QImode) && #line 3645 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 218; /* *zero_extendqisi2 */ if (register_operand (operands[1], E_QImode) && #line 3657 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 222; /* *zero_extendqisi2_mips16e */ if (!memory_operand (operands[1], E_QImode) || ! #line 3666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 226; /* *zero_extendqisi2_mips16 */ case E_HImode: if (nonimmediate_operand (operands[1], E_HImode) && #line 3645 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 220; /* *zero_extendhisi2 */ if (register_operand (operands[1], E_HImode) && #line 3657 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 224; /* *zero_extendhisi2_mips16e */ if (!memory_operand (operands[1], E_HImode) || ! #line 3666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 228; /* *zero_extendhisi2_mips16 */ default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_HImode) return -1; if (nonimmediate_operand (operands[1], E_QImode) && #line 3687 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 230; /* *zero_extendqihi2 */ if (!memory_operand (operands[1], E_QImode) || ! #line 3697 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 231; /* *zero_extendqihi2_mips16 */ default: return -1; } } static int recog_3 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_CCV2mode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_CCV2mode)) return -1; x4 = XVECEXP (x2, 0, 0); switch (GET_CODE (x4)) { case UNORDERED: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 816; /* sunordered_ps */ case UNEQ: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 817; /* suneq_ps */ case UNLT: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 818; /* sunlt_ps */ case UNLE: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 819; /* sunle_ps */ case EQ: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 820; /* seq_ps */ case LT: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 821; /* slt_ps */ case LE: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 822; /* sle_ps */ case ORDERED: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || !( #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 996 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 823; /* sordered_ps */ case LTGT: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || !( #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 997 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 824; /* sltgt_ps */ case NE: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || !( #line 545 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 998 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 825; /* sne_ps */ case GE: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 556 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 826; /* sge_ps */ case GT: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 556 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 827; /* sgt_ps */ case UNGE: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 556 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 828; /* sunge_ps */ case UNGT: x5 = XEXP (x4, 0); operands[1] = x5; if (!register_operand (operands[1], E_V2SFmode)) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_V2SFmode) || ! #line 556 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 829; /* sungt_ps */ default: return -1; } } static int recog_4 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 0); switch (GET_CODE (x3)) { case CONST_INT: if (XWINT (x3, 0) != 0L) return -1; if (pnum_clobbers != NULL) { x4 = XEXP (x1, 0); operands[0] = x4; switch (pattern39 (x2)) { case 0: if (( #line 7568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 1; return 707; /* tls_get_tp_si */ } break; case 1: if (( #line 7568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) { *pnum_clobbers = 1; return 708; /* tls_get_tp_di */ } break; default: break; } } x4 = XEXP (x1, 0); if (GET_CODE (x4) != REG) return -1; switch (pattern133 (x1, 3)) { case 0: if (!( #line 7582 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 709; /* *tls_get_tp_si_split */ case 1: if (!( #line 7582 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 710; /* *tls_get_tp_di_split */ default: return -1; } case CONST: case REG: case SUBREG: case LABEL_REF: case SYMBOL_REF: if (pnum_clobbers == NULL) return -1; operands[1] = x3; x4 = XEXP (x1, 0); operands[0] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (register_operand (operands[0], E_SImode) && GET_MODE (x2) == E_SImode && call_insn_operand (operands[1], E_SImode) && ( #line 7613 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 3; return 711; /* tls_get_tp_mips16_si */ } break; case E_DImode: if (register_operand (operands[0], E_DImode) && GET_MODE (x2) == E_DImode && call_insn_operand (operands[1], E_DImode) && ( #line 7613 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) { *pnum_clobbers = 3; return 712; /* tls_get_tp_mips16_di */ } break; default: break; } operands[0] = x3; if (GET_CODE (x4) != REG || REGNO (x4) != 3) return -1; switch (GET_MODE (x4)) { case E_SImode: if (GET_MODE (x2) != E_SImode || !call_insn_operand (operands[0], E_SImode) || !( #line 7632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; *pnum_clobbers = 2; return 713; /* *tls_get_tp_mips16_call_si */ case E_DImode: if (GET_MODE (x2) != E_DImode || !call_insn_operand (operands[0], E_DImode) || !( #line 7632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 714; /* *tls_get_tp_mips16_call_di */ default: return -1; } default: return -1; } } static int recog_5 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !general_operand (operands[1], E_SImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 872 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 385; /* load_lowdf */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !general_operand (operands[1], E_SImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 873 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 386; /* load_lowdi */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !general_operand (operands[1], E_SImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 387; /* load_lowv2sf */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !general_operand (operands[1], E_SImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 875 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 388; /* load_lowv2si */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !general_operand (operands[1], E_SImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 876 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 389; /* load_lowv4hi */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !general_operand (operands[1], E_SImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 390; /* load_lowv8qi */ case E_TFmode: if (!register_operand (operands[0], E_TFmode) || GET_MODE (x3) != E_TFmode || !general_operand (operands[1], E_DImode) || !( #line 5402 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 878 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 391; /* load_lowtf */ default: return -1; } } static int recog_6 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); switch (GET_CODE (x4)) { case MULT: if (GET_MODE (x4) != E_DImode || !muldiv_target_operand (operands[0], E_TImode) || GET_MODE (x3) != E_TImode) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != E_DImode) return -1; x6 = XEXP (x4, 1); if (GET_MODE (x6) != E_DImode) return -1; switch (GET_CODE (x5)) { case SIGN_EXTEND: if (GET_CODE (x6) != SIGN_EXTEND) return -1; x7 = XEXP (x5, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x8 = XEXP (x6, 0); operands[2] = x8; if (!register_operand (operands[2], E_SImode) || ! #line 2213 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000)) return -1; return 57; /* mulsidi3_64bit_hilo */ case ZERO_EXTEND: if (GET_CODE (x6) != ZERO_EXTEND) return -1; x7 = XEXP (x5, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x8 = XEXP (x6, 0); operands[2] = x8; if (!register_operand (operands[2], E_SImode) || ! #line 2213 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000)) return -1; return 58; /* umulsidi3_64bit_hilo */ default: return -1; } case DIV: switch (pattern108 (x3)) { case 0: if (!( #line 3028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT))) return -1; return 143; /* divmodsi4_hilo_di */ case 1: if (!( #line 3028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 145; /* divmodsi4_hilo_ti */ case 2: if (!( #line 3028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 147; /* divmoddi4_hilo_ti */ default: return -1; } case UDIV: switch (pattern108 (x3)) { case 0: if (!( #line 3028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT))) return -1; return 144; /* udivmodsi4_hilo_di */ case 1: if (!( #line 3028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 146; /* udivmodsi4_hilo_ti */ case 2: if (!( #line 3028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 148; /* udivmoddi4_hilo_ti */ default: return -1; } default: return -1; } } static int recog_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; switch (pattern143 (x3)) { case 0: if (!( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 872 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 413; /* mfhc1df */ case 1: if (!( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 873 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 414; /* mfhc1di */ case 2: if (!( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 415; /* mfhc1v2sf */ case 3: if (!( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 875 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 416; /* mfhc1v2si */ case 4: if (!( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 876 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 417; /* mfhc1v4hi */ case 5: if (!( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 418; /* mfhc1v8qi */ default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_TFmode) || !( #line 5457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 878 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 419; /* mfhc1tf */ default: return -1; } } static int recog_8 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 0); if (GET_CODE (x3) != TRUNCATE) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XEXP (x3, 0); operands[1] = x5; if (!reg_or_0_operand (operands[1], E_DImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x2) != E_V4HImode || GET_MODE (x3) != E_HImode || ! #line 137 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1067; /* loongson_vec_init1_v4hi */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x2) != E_V8QImode || GET_MODE (x3) != E_QImode || ! #line 137 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1068; /* loongson_vec_init1_v8qi */ default: return -1; } } static int recog_9 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 2636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1654; /* msa_splat_d_f */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 2636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1655; /* msa_splat_w_f */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 2636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1656; /* msa_splat_d */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 2636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1657; /* msa_splat_w */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 2636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1658; /* msa_splat_h */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 2636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1659; /* msa_splat_b */ default: return -1; } } static int recog_10 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_DFmode: if (pattern145 (x3, E_DFmode, E_SImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 872 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 406; /* mthc1df */ case E_DImode: if (pattern145 (x3, E_DImode, E_SImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 873 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 407; /* mthc1di */ case E_V2SFmode: if (pattern145 (x3, E_V2SFmode, E_SImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 408; /* mthc1v2sf */ case E_V2SImode: if (pattern145 (x3, E_V2SImode, E_SImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 875 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 409; /* mthc1v2si */ case E_V4HImode: if (pattern145 (x3, E_V4HImode, E_SImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 876 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 410; /* mthc1v4hi */ case E_V8QImode: if (pattern145 (x3, E_V8QImode, E_SImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 411; /* mthc1v8qi */ case E_TFmode: if (pattern145 (x3, E_TFmode, E_DImode) != 0 || !( #line 5447 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 878 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 412; /* mthc1tf */ default: return -1; } } static int recog_11 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_DFmode: if (pattern144 (x3, E_DFmode, E_SImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 872 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 392; /* load_highdf */ case E_DImode: if (pattern144 (x3, E_DImode, E_SImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 873 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 393; /* load_highdi */ case E_V2SFmode: if (pattern144 (x3, E_V2SFmode, E_SImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 394; /* load_highv2sf */ case E_V2SImode: if (pattern144 (x3, E_V2SImode, E_SImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 875 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 395; /* load_highv2si */ case E_V4HImode: if (pattern144 (x3, E_V4HImode, E_SImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 876 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 396; /* load_highv4hi */ case E_V8QImode: if (pattern144 (x3, E_V8QImode, E_SImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 397; /* load_highv8qi */ case E_TFmode: if (pattern144 (x3, E_TFmode, E_DImode) != 0 || !( #line 5417 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 878 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 398; /* load_hightf */ default: return -1; } } static int recog_12 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (!nonimmediate_operand (operands[0], E_SImode)) return -1; switch (pattern143 (x3)) { case 0: if (!( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 872 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 399; /* store_worddf */ case 1: if (!( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 873 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 400; /* store_worddi */ case 2: if (!( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 401; /* store_wordv2sf */ case 3: if (!( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 875 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 402; /* store_wordv2si */ case 4: if (!( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 876 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 403; /* store_wordv4hi */ case 5: if (!( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 404; /* store_wordv8qi */ default: return -1; } case E_DImode: if (!nonimmediate_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_TFmode) || !( #line 5432 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 878 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 405; /* store_wordtf */ default: return -1; } } static int recog_13 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !reg_or_0_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode) || ! #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT)) return -1; return 382; /* mthisi_di */ case E_TImode: if (!register_operand (operands[0], E_TImode) || GET_MODE (x3) != E_TImode) return -1; if (reg_or_0_operand (operands[1], E_SImode) && register_operand (operands[2], E_SImode) && #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return 383; /* mthisi_ti */ if (!reg_or_0_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode) || ! #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 384; /* mthidi_ti */ default: return -1; } } static int recog_14 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!arith_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || ! #line 463 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 884; /* mips_shra_r_w */ case E_V2HImode: if (!register_operand (operands[0], E_V2HImode) || GET_MODE (x3) != E_V2HImode || !register_operand (operands[1], E_V2HImode) || ! #line 463 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 885; /* mips_shra_r_ph */ default: return -1; } } static int recog_15 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XEXP (x1, 0); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_BLKmode) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != SCRATCH) return -1; x5 = XVECEXP (x2, 0, 0); operands[0] = x5; if (!const_int_operand (operands[0], E_SImode)) return -1; x6 = XVECEXP (x2, 0, 1); operands[1] = x6; if (!address_operand (operands[1], E_QImode) || ! #line 5656 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CACHE)) return -1; return 441; /* mips_cache */ } static int recog_16 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != REG || REGNO (x3) != 28) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XVECEXP (x2, 0, 0); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern171 (x2, E_SImode) != 0 || !( #line 5579 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CPRESTORE_DIRECTIVE) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 431; /* cprestore_si */ case E_DImode: if (pattern171 (x2, E_DImode) != 0 || !( #line 5579 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CPRESTORE_DIRECTIVE) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 432; /* cprestore_di */ default: return -1; } } static int recog_17 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != LABEL_REF) return -1; x4 = XEXP (x1, 0); if (GET_CODE (x4) != PC) return -1; x5 = XVECEXP (x2, 0, 0); operands[0] = x5; if (!register_operand (operands[0], E_SImode)) return -1; x6 = XEXP (x3, 0); operands[1] = x6; switch (GET_MODE (x2)) { case E_SImode: if (!( #line 6509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; *pnum_clobbers = 2; return 628; /* casesi_internal_mips16_si */ case E_DImode: if (!( #line 6509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 629; /* casesi_internal_mips16_di */ default: return -1; } } static int recog_18 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!memory_operand (operands[0], E_BLKmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!memory_operand (operands[2], E_QImode)) return -1; if (reg_or_0_operand (operands[1], E_SImode) && #line 4456 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[0]))) return 287; /* mov_swl */ if (!reg_or_0_operand (operands[1], E_DImode) || !( #line 4456 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[0])) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 288; /* mov_sdl */ } static int recog_19 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!const_msa_branch_operand (operands[2], E_VOIDmode)) return -1; switch (pattern110 (x3)) { case 0: if (! #line 1193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1364; /* msa_bnegi_d */ case 1: if (! #line 1193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1365; /* msa_bnegi_w */ case 2: if (! #line 1193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1366; /* msa_bnegi_h */ case 3: if (! #line 1193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1367; /* msa_bnegi_b */ default: return -1; } } static int recog_20 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 2604 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1638; /* msa_subsus_u_d */ case 1: if (! #line 2604 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1639; /* msa_subsus_u_w */ case 2: if (! #line 2604 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1640; /* msa_subsus_u_h */ case 3: if (! #line 2604 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1641; /* msa_subsus_u_b */ default: return -1; } } static int recog_21 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 2594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1634; /* msa_subsuu_s_d */ case 1: if (! #line 2594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1635; /* msa_subsuu_s_w */ case 2: if (! #line 2594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1636; /* msa_subsuu_s_h */ case 3: if (! #line 2594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1637; /* msa_subsuu_s_b */ default: return -1; } } static int recog_22 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 2584 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1630; /* msa_subs_u_d */ case 1: if (! #line 2584 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1631; /* msa_subs_u_w */ case 2: if (! #line 2584 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1632; /* msa_subs_u_h */ case 3: if (! #line 2584 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1633; /* msa_subs_u_b */ default: return -1; } } static int recog_23 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 2574 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1626; /* msa_subs_s_d */ case 1: if (! #line 2574 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1627; /* msa_subs_s_w */ case 2: if (! #line 2574 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1628; /* msa_subs_s_h */ case 3: if (! #line 2574 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1629; /* msa_subs_s_b */ default: return -1; } } static int recog_24 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern60 (x1)) { case 0: if (! #line 2564 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1622; /* msa_srlri_d */ case 1: if (! #line 2564 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1623; /* msa_srlri_w */ case 2: if (! #line 2564 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1624; /* msa_srlri_h */ case 3: if (! #line 2564 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1625; /* msa_srlri_b */ default: return -1; } } static int recog_25 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 2554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1618; /* msa_srlr_d */ case 1: if (! #line 2554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1619; /* msa_srlr_w */ case 2: if (! #line 2554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1620; /* msa_srlr_h */ case 3: if (! #line 2554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1621; /* msa_srlr_b */ default: return -1; } } static int recog_26 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern60 (x1)) { case 0: if (! #line 2544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1614; /* msa_srari_d */ case 1: if (! #line 2544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1615; /* msa_srari_w */ case 2: if (! #line 2544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1616; /* msa_srari_h */ case 3: if (! #line 2544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1617; /* msa_srari_b */ default: return -1; } } static int recog_27 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 2534 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1610; /* msa_srar_d */ case 1: if (! #line 2534 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1611; /* msa_srar_w */ case 2: if (! #line 2534 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1612; /* msa_srar_h */ case 3: if (! #line 2534 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1613; /* msa_srar_b */ default: return -1; } } static int recog_28 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern60 (x1)) { case 0: if (! #line 2504 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1602; /* msa_sat_u_d */ case 1: if (! #line 2504 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1603; /* msa_sat_u_w */ case 2: if (! #line 2504 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1604; /* msa_sat_u_h */ case 3: if (! #line 2504 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1605; /* msa_sat_u_b */ default: return -1; } } static int recog_29 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern60 (x1)) { case 0: if (! #line 2494 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1598; /* msa_sat_s_d */ case 1: if (! #line 2494 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1599; /* msa_sat_s_w */ case 2: if (! #line 2494 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1600; /* msa_sat_s_h */ case 3: if (! #line 2494 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1601; /* msa_sat_s_b */ default: return -1; } } static int recog_30 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern146 (x3, E_V2DImode, E_V2DFmode) != 0 || ! #line 1627 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1464; /* msa_fexp2_d */ case E_V4SFmode: if (pattern146 (x3, E_V4SImode, E_V4SFmode) != 0 || ! #line 1627 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1465; /* msa_fexp2_w */ default: return -1; } } static int recog_31 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern60 (x1)) { case 0: if (! #line 1227 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1376; /* msa_bseti_d */ case 1: if (! #line 1227 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1377; /* msa_bseti_w */ case 2: if (! #line 1227 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1378; /* msa_bseti_h */ case 3: if (! #line 1227 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1379; /* msa_bseti_b */ default: return -1; } } static int recog_32 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8HImode: if (pattern61 (x3, E_V4SFmode, E_V8HImode) != 0 || ! #line 1840 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1504; /* msa_ftq_h */ case E_V4SImode: if (pattern61 (x3, E_V2DFmode, E_V4SImode) != 0 || ! #line 1851 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1505; /* msa_ftq_w */ default: return -1; } } static int recog_33 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 1217 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1372; /* msa_bset_d */ case 1: if (! #line 1217 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1373; /* msa_bset_w */ case 2: if (! #line 1217 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1374; /* msa_bset_h */ case 3: if (! #line 1217 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1375; /* msa_bset_b */ default: return -1; } } static int recog_34 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 1183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1360; /* msa_bneg_d */ case 1: if (! #line 1183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1361; /* msa_bneg_w */ case 2: if (! #line 1183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1362; /* msa_bneg_h */ case 3: if (! #line 1183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1363; /* msa_bneg_b */ default: return -1; } } static int recog_35 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern60 (x1)) { case 0: if (! #line 1102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1332; /* msa_bclri_d */ case 1: if (! #line 1102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1333; /* msa_bclri_w */ case 2: if (! #line 1102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1334; /* msa_bclri_h */ case 3: if (! #line 1102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1335; /* msa_bclri_b */ default: return -1; } } static int recog_36 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 1092 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1328; /* msa_bclr_d */ case 1: if (! #line 1092 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1329; /* msa_bclr_w */ case 2: if (! #line 1092 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1330; /* msa_bclr_h */ case 3: if (! #line 1092 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1331; /* msa_bclr_b */ default: return -1; } } static int recog_37 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (pattern59 (x1)) { case 0: if (! #line 1082 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1324; /* msa_aver_u_d */ case 1: if (! #line 1082 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1325; /* msa_aver_u_w */ case 2: if (! #line 1082 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1326; /* msa_aver_u_h */ case 3: if (! #line 1082 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1327; /* msa_aver_u_b */ default: return -1; } } static int recog_38 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (XINT (x2, 1)) { case 0: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!memory_operand (operands[1], E_BLKmode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!memory_operand (operands[2], E_QImode)) return -1; switch (pattern39 (x2)) { case 0: if (! #line 4435 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[1]))) return -1; return 283; /* mov_lwl */ case 1: if (!( #line 4435 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[1])) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 284; /* mov_ldl */ default: return -1; } case 2: return recog_18 (x1, insn, pnum_clobbers); case 28: switch (pattern48 (x1)) { case 0: if (! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 303; /* load_gotsi */ case 1: if (! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 304; /* load_gotdi */ default: return -1; } case 15: return recog_13 (x1, insn, pnum_clobbers); case 8: return recog_11 (x1, insn, pnum_clobbers); case 9: return recog_12 (x1, insn, pnum_clobbers); case 11: return recog_10 (x1, insn, pnum_clobbers); case 17: x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern102 (x2)) { case 0: if (!( #line 5475 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 420; /* loadgp_newabi_si */ case 1: if (!( #line 5475 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 421; /* loadgp_newabi_di */ case 2: if (!( #line 5518 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 425; /* loadgp_rtp_si */ case 3: if (!( #line 5518 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 426; /* loadgp_rtp_di */ default: return -1; } case 21: return recog_16 (x1, insn, pnum_clobbers); case 42: return recog_15 (x1, insn, pnum_clobbers); case 51: return recog_17 (x1, insn, pnum_clobbers); case 75: if (pattern49 (x1, E_V2SFmode) != 0 || ! #line 356 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 805; /* mips_addr_ps */ case 78: if (pattern49 (x1, E_V2SFmode) != 0 || ! #line 399 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 808; /* mips_mulr_ps */ case 81: switch (pattern51 (x1)) { case 0: if (!( #line 678 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 839; /* mips_rsqrt2_s */ case 1: if (!( #line 678 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 840; /* mips_rsqrt2_d */ case 2: if (!( #line 678 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 841; /* mips_rsqrt2_ps */ default: return -1; } case 83: switch (pattern51 (x1)) { case 0: if (!( #line 697 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 845; /* mips_recip2_s */ case 1: if (!( #line 697 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 846; /* mips_recip2_d */ case 2: if (!( #line 697 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 847; /* mips_recip2_ps */ default: return -1; } case 92: if (pattern52 (x1, E_SImode) != 0 || ! #line 208 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 860; /* mips_modsub */ case 95: if (pattern53 (x1, E_V2HImode, E_V4QImode) != 0 || ! #line 241 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 864; /* mips_precrq_qb_ph */ case 96: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode) || ! #line 251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 865; /* mips_precrq_ph_w */ case 111: if (pattern54 (x1, E_V4QImode) != 0 || ! #line 426 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 882; /* mips_shrl_qb */ case 112: if (pattern54 (x1, E_V2HImode) != 0 || ! #line 445 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 883; /* mips_shra_ph */ case 113: return recog_14 (x1, insn, pnum_clobbers); case 139: if (pattern53 (x1, E_V4QImode, E_SImode) != 0 || ! #line 831 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 914; /* mips_cmpgu_eq_qb */ case 140: if (pattern53 (x1, E_V4QImode, E_SImode) != 0 || ! #line 841 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 915; /* mips_cmpgu_lt_qb */ case 141: if (pattern53 (x1, E_V4QImode, E_SImode) != 0 || ! #line 851 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 916; /* mips_cmpgu_le_qb */ case 143: if (pattern49 (x1, E_V2HImode) != 0 || ! #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 919; /* mips_packrl_ph */ case 150: if (pattern54 (x1, E_DImode) != 0 || ! #line 1014 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 926; /* mips_shilo */ case 157: if (pattern55 (x1, E_V4QImode) != 0 || ! #line 112 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 958; /* mips_adduh_qb */ case 158: if (pattern55 (x1, E_V4QImode) != 0 || ! #line 122 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 959; /* mips_adduh_r_qb */ case 178: if (GET_MODE (x2) != E_V4QImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V4QImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!reg_or_0_operand (operands[1], E_V2HImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!reg_or_0_operand (operands[2], E_V2HImode) || ! #line 304 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 973; /* mips_precr_qb_ph */ case 182: if (pattern56 (x1, E_V4QImode) != 0 || ! #line 359 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 977; /* mips_shra_qb */ case 183: if (pattern56 (x1, E_V4QImode) != 0 || ! #line 378 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 978; /* mips_shra_r_qb */ case 184: if (pattern56 (x1, E_V2HImode) != 0 || ! #line 396 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 979; /* mips_shrl_ph */ case 187: if (pattern55 (x1, E_V4QImode) != 0 || ! #line 438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 982; /* mips_subuh_qb */ case 188: if (pattern55 (x1, E_V4QImode) != 0 || ! #line 448 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 983; /* mips_subuh_r_qb */ case 189: if (pattern55 (x1, E_V2HImode) != 0 || ! #line 458 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 984; /* mips_addqh_ph */ case 190: if (pattern55 (x1, E_V2HImode) != 0 || ! #line 468 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 985; /* mips_addqh_r_ph */ case 191: if (pattern55 (x1, E_SImode) != 0 || ! #line 478 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 986; /* mips_addqh_w */ case 192: if (pattern55 (x1, E_SImode) != 0 || ! #line 488 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 987; /* mips_addqh_r_w */ case 193: if (pattern55 (x1, E_V2HImode) != 0 || ! #line 498 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 988; /* mips_subqh_ph */ case 194: if (pattern55 (x1, E_V2HImode) != 0 || ! #line 508 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 989; /* mips_subqh_r_ph */ case 195: if (pattern55 (x1, E_SImode) != 0 || ! #line 518 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 990; /* mips_subqh_w */ case 196: if (pattern55 (x1, E_SImode) != 0 || ! #line 528 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 991; /* mips_subqh_r_w */ case 220: if (pattern49 (x1, E_DImode) != 0 || ! #line 198 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1076; /* loongson_paddd */ case 203: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern50 (x2, E_V4HImode) != 0 || ! #line 281 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1100; /* loongson_pavgh */ case E_V8QImode: if (pattern50 (x2, E_V8QImode) != 0 || ! #line 281 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1101; /* loongson_pavgb */ default: return -1; } case 204: switch (pattern57 (x1)) { case 0: if (! #line 291 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1102; /* loongson_pcmpeqw */ case 1: if (! #line 291 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1103; /* loongson_pcmpeqh */ case 2: if (! #line 291 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1104; /* loongson_pcmpeqb */ default: return -1; } case 205: switch (pattern57 (x1)) { case 0: if (! #line 301 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1105; /* loongson_pcmpgtw */ case 1: if (! #line 301 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1106; /* loongson_pcmpgth */ case 2: if (! #line 301 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1107; /* loongson_pcmpgtb */ default: return -1; } case 206: if (pattern52 (x1, E_V4HImode) != 0 || ! #line 311 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1108; /* loongson_pextrh */ case 209: if (pattern53 (x1, E_V4HImode, E_V2SImode) != 0 || ! #line 393 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1114; /* loongson_pmaddhw */ case 211: if (pattern49 (x1, E_V4HImode) != 0 || ! #line 483 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1120; /* umulv4hi3_highpart */ case 212: if (pattern49 (x1, E_V4HImode) != 0 || ! #line 493 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1121; /* smulv4hi3_highpart */ case 213: if (pattern53 (x1, E_V2SImode, E_DImode) != 0 || ! #line 512 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1123; /* loongson_pmuluw */ case 214: if (pattern49 (x1, E_V8QImode) != 0 || ! #line 522 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1124; /* loongson_pasubub */ case 216: if (pattern53 (x1, E_V8QImode, E_V4HImode) != 0 || ! #line 549 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1127; /* loongson_psadbh */ case 217: if (pattern52 (x1, E_V4HImode) != 0 || ! #line 559 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1128; /* loongson_pshufh */ case 221: if (pattern49 (x1, E_DImode) != 0 || ! #line 608 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1138; /* loongson_psubd */ case 222: switch (pattern58 (x1)) { case 0: if (! #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1155; /* vec_shl_v2si */ case 1: if (! #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1156; /* vec_shl_v4hi */ case 2: if (! #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1157; /* vec_shl_v8qi */ case 3: if (! #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1158; /* vec_shl_di */ default: return -1; } case 223: switch (pattern58 (x1)) { case 0: if (! #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1159; /* vec_shr_v2si */ case 1: if (! #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1160; /* vec_shr_v4hi */ case 2: if (! #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1161; /* vec_shr_v8qi */ case 3: if (! #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1162; /* vec_shr_di */ default: return -1; } case 224: switch (pattern59 (x1)) { case 0: if (! #line 1032 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1304; /* msa_asub_s_d */ case 1: if (! #line 1032 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1305; /* msa_asub_s_w */ case 2: if (! #line 1032 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1306; /* msa_asub_s_h */ case 3: if (! #line 1032 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1307; /* msa_asub_s_b */ default: return -1; } case 225: switch (pattern59 (x1)) { case 0: if (! #line 1042 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1308; /* msa_asub_u_d */ case 1: if (! #line 1042 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1309; /* msa_asub_u_w */ case 2: if (! #line 1042 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1310; /* msa_asub_u_h */ case 3: if (! #line 1042 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1311; /* msa_asub_u_b */ default: return -1; } case 226: switch (pattern59 (x1)) { case 0: if (! #line 1052 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1312; /* msa_ave_s_d */ case 1: if (! #line 1052 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1313; /* msa_ave_s_w */ case 2: if (! #line 1052 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1314; /* msa_ave_s_h */ case 3: if (! #line 1052 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1315; /* msa_ave_s_b */ default: return -1; } case 227: switch (pattern59 (x1)) { case 0: if (! #line 1062 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1316; /* msa_ave_u_d */ case 1: if (! #line 1062 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1317; /* msa_ave_u_w */ case 2: if (! #line 1062 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1318; /* msa_ave_u_h */ case 3: if (! #line 1062 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1319; /* msa_ave_u_b */ default: return -1; } case 228: switch (pattern59 (x1)) { case 0: if (! #line 1072 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1320; /* msa_aver_s_d */ case 1: if (! #line 1072 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1321; /* msa_aver_s_w */ case 2: if (! #line 1072 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1322; /* msa_aver_s_h */ case 3: if (! #line 1072 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1323; /* msa_aver_s_b */ default: return -1; } case 229: return recog_37 (x1, insn, pnum_clobbers); case 230: return recog_36 (x1, insn, pnum_clobbers); case 231: return recog_35 (x1, insn, pnum_clobbers); case 236: return recog_34 (x1, insn, pnum_clobbers); case 237: return recog_19 (x1, insn, pnum_clobbers); case 238: return recog_33 (x1, insn, pnum_clobbers); case 239: return recog_31 (x1, insn, pnum_clobbers); case 244: switch (pattern62 (x1)) { case 0: if (! #line 1557 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1420; /* msa_fcaf_d */ case 1: if (! #line 1557 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1421; /* msa_fcaf_w */ default: return -1; } case 246: switch (pattern62 (x1)) { case 0: if (! #line 1567 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1422; /* msa_fcune_d */ case 1: if (! #line 1567 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1423; /* msa_fcune_w */ default: return -1; } case 257: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1442; /* msa_fsaf_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1453; /* msa_fsaf_w */ default: return -1; } case 266: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1443; /* msa_fsun_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1454; /* msa_fsun_w */ default: return -1; } case 262: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1444; /* msa_fsor_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1455; /* msa_fsor_w */ default: return -1; } case 258: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1445; /* msa_fseq_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1456; /* msa_fseq_w */ default: return -1; } case 261: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1446; /* msa_fsne_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1457; /* msa_fsne_w */ default: return -1; } case 263: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1447; /* msa_fsueq_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1458; /* msa_fsueq_w */ default: return -1; } case 267: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1448; /* msa_fsune_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1459; /* msa_fsune_w */ default: return -1; } case 264: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1449; /* msa_fsule_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1460; /* msa_fsule_w */ default: return -1; } case 265: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1450; /* msa_fsult_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1461; /* msa_fsult_w */ default: return -1; } case 259: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1451; /* msa_fsle_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1462; /* msa_fsle_w */ default: return -1; } case 260: switch (pattern62 (x1)) { case 0: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1452; /* msa_fslt_d */ case 1: if (! #line 1617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1463; /* msa_fslt_w */ default: return -1; } case 248: return recog_30 (x1, insn, pnum_clobbers); case 270: return recog_32 (x1, insn, pnum_clobbers); case 275: switch (pattern63 (x1)) { case 0: if (! #line 2318 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1570; /* msa_mul_q_w */ case 1: if (! #line 2318 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1571; /* msa_mul_q_h */ default: return -1; } case 276: switch (pattern63 (x1)) { case 0: if (! #line 2328 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1572; /* msa_mulr_q_w */ case 1: if (! #line 2328 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1573; /* msa_mulr_q_h */ default: return -1; } case 278: return recog_29 (x1, insn, pnum_clobbers); case 279: return recog_28 (x1, insn, pnum_clobbers); case 284: return recog_27 (x1, insn, pnum_clobbers); case 285: return recog_26 (x1, insn, pnum_clobbers); case 286: return recog_25 (x1, insn, pnum_clobbers); case 287: return recog_24 (x1, insn, pnum_clobbers); case 288: return recog_23 (x1, insn, pnum_clobbers); case 289: return recog_22 (x1, insn, pnum_clobbers); case 290: return recog_21 (x1, insn, pnum_clobbers); case 291: return recog_20 (x1, insn, pnum_clobbers); case 282: return recog_9 (x1, insn, pnum_clobbers); case 247: if (pattern53 (x1, E_V4SFmode, E_V8HImode) != 0 || ! #line 2684 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1670; /* msa_fexdo_h */ default: return -1; } } static int recog_39 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (XINT (x2, 1)) { case 16: return recog_6 (x1, insn, pnum_clobbers); case 31: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (!d_operand (operands[0], E_SImode) || GET_MODE (x2) != E_SImode || !symbolic_operand_with_high (operands[1], E_SImode) || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 293; /* *unshifted_high */ case E_DImode: if (!d_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !symbolic_operand_with_high (operands[1], E_DImode) || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 294; /* *unshifted_high */ default: return -1; } case 14: switch (pattern40 (x1)) { case 0: switch (GET_MODE (operands[1])) { case E_DImode: if (!hilo_operand (operands[1], E_DImode) || ! #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT)) return -1; return 379; /* mfhisi_di */ case E_TImode: if (!hilo_operand (operands[1], E_TImode) || ! #line 812 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 380; /* mfhisi_ti */ default: return -1; } case 1: if (!hilo_operand (operands[1], E_TImode) || ! #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 381; /* mfhidi_ti */ default: return -1; } case 7: return recog_5 (x1, insn, pnum_clobbers); case 10: return recog_7 (x1, insn, pnum_clobbers); case 17: switch (pattern40 (x1)) { case 0: if (!( #line 5492 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 422; /* loadgp_absolute_si */ case 1: if (!( #line 5492 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 423; /* loadgp_absolute_di */ default: return -1; } case 18: switch (pattern42 (x1)) { case 0: if (!( #line 5539 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 427; /* copygp_mips16_si */ case 1: if (!( #line 5539 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 428; /* copygp_mips16_di */ default: return -1; } case 43: if (GET_MODE (x2) != E_BLKmode) return -1; x4 = XVECEXP (x2, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x3 = XEXP (x1, 0); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_BLKmode) return -1; x5 = XEXP (x3, 0); if (GET_CODE (x5) != SCRATCH || ! #line 5666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CACHE)) return -1; return 442; /* r10k_cache_barrier */ case 4: if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode) || ! #line 5914 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH)) return -1; return 466; /* wsbh */ case 5: if (GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_DImode) || ! #line 5921 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH)) return -1; return 467; /* dsbh */ case 6: if (GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_DImode) || ! #line 5928 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH)) return -1; return 468; /* dshd */ case 19: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; switch (pattern109 (x2)) { case 0: return 649; /* move_gpsi */ case 1: if (! #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 650; /* move_gpdi */ default: return -1; } case 26: if (GET_MODE (x2) != E_SImode) return -1; x4 = XVECEXP (x2, 0, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 79 || GET_MODE (x4) != E_SImode) return -1; x3 = XEXP (x1, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 79 || GET_MODE (x3) != E_SImode || ! #line 6928 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT)) return -1; return 654; /* update_got_version */ case 30: return recog_4 (x1, insn, pnum_clobbers); case 12: if (pnum_clobbers == NULL || GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 2 || GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x2, 0, 0); operands[0] = x4; if (call_insn_operand (operands[0], E_SImode) && ( #line 7673 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 2; return 716; /* mips_get_fcsr_mips16_si */ } if (!call_insn_operand (operands[0], E_DImode) || !( #line 7673 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 717; /* mips_get_fcsr_mips16_di */ case 67: if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); if (!rtx_equal_p (x4, operands[0]) || ! #line 56 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_SYNC)) return -1; return 727; /* *memory_barrier */ case 76: if (GET_MODE (x2) != E_V2SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2SFmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2SFmode) || ! #line 378 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 806; /* mips_cvt_pw_ps */ case 77: if (GET_MODE (x2) != E_V2SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2SFmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2SFmode) || ! #line 388 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 807; /* mips_cvt_ps_pw */ case 79: if (GET_MODE (x2) != E_V2SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2SFmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2SFmode) || ! #line 424 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 809; /* *mips_abs_ps */ case 85: return recog_3 (x1, insn, pnum_clobbers); case 80: switch (pattern43 (x1)) { case 0: if (!( #line 668 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 836; /* mips_rsqrt1_s */ case 1: if (!( #line 668 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 837; /* mips_rsqrt1_d */ case 2: if (!( #line 668 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 838; /* mips_rsqrt1_ps */ default: return -1; } case 82: switch (pattern43 (x1)) { case 0: if (!( #line 687 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 842; /* mips_recip1_s */ case 1: if (!( #line 687 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 843; /* mips_recip1_d */ case 2: if (!( #line 687 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 844; /* mips_recip1_ps */ default: return -1; } case 93: if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 218 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 861; /* mips_raddu_w_qb */ case 99: if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2HImode) || ! #line 288 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 868; /* mips_preceq_w_phl */ case 100: if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2HImode) || ! #line 297 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 869; /* mips_preceq_w_phr */ case 101: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 307 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 870; /* mips_precequ_ph_qbl */ case 102: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 316 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 871; /* mips_precequ_ph_qbr */ case 103: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 325 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 872; /* mips_precequ_ph_qbla */ case 104: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 334 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 873; /* mips_precequ_ph_qbra */ case 105: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 874; /* mips_preceu_ph_qbl */ case 106: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 353 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 875; /* mips_preceu_ph_qbr */ case 107: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 362 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 876; /* mips_preceu_ph_qbla */ case 108: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V4QImode) || ! #line 371 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 877; /* mips_preceu_ph_qbra */ case 132: if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode) || ! #line 744 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 904; /* mips_bitrev */ case 134: if (GET_MODE (x2) != E_V4QImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V4QImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!arith_operand (operands[1], E_SImode) || ! #line 767 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 906; /* mips_repl_qb */ case 135: if (GET_MODE (x2) != E_V2HImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V2HImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!reg_imm10_operand (operands[1], E_SImode) || ! #line 784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 907; /* mips_repl_ph */ case 208: return recog_8 (x1, insn, pnum_clobbers); case 210: if (GET_MODE (x2) != E_V8QImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V8QImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V8QImode) || ! #line 473 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1119; /* loongson_pmovmskb */ case 215: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V8QImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x2) != E_V4HImode || ! #line 531 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1125; /* loongson_biadd */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x2) != E_V8QImode || ! #line 539 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1126; /* reduc_uplus_v8qi */ default: return -1; } case 245: switch (pattern44 (x1)) { case 0: if (! #line 1547 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1418; /* msa_fclass_d */ case 1: if (! #line 1547 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1419; /* msa_fclass_w */ default: return -1; } case 251: switch (pattern45 (x1, E_V4SImode, E_V8HImode)) { case 0: if (! #line 1675 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1470; /* msa_ffql_d */ case 1: if (! #line 1675 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1471; /* msa_ffql_w */ default: return -1; } case 252: switch (pattern45 (x1, E_V4SImode, E_V8HImode)) { case 0: if (! #line 1685 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1472; /* msa_ffqr_d */ case 1: if (! #line 1685 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1473; /* msa_ffqr_w */ default: return -1; } case 253: switch (pattern46 (x1)) { case 0: if (! #line 1723 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1480; /* msa_flog2_d */ case 1: if (! #line 1723 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1481; /* msa_flog2_w */ default: return -1; } case 254: switch (pattern46 (x1)) { case 0: if (! #line 1774 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1490; /* msa_frcp_d */ case 1: if (! #line 1774 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1491; /* msa_frcp_w */ default: return -1; } case 255: switch (pattern46 (x1)) { case 0: if (! #line 1783 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1492; /* msa_frint_d */ case 1: if (! #line 1783 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1493; /* msa_frint_w */ default: return -1; } case 256: switch (pattern46 (x1)) { case 0: if (! #line 1792 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1494; /* msa_frsqrt_d */ case 1: if (! #line 1792 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1495; /* msa_frsqrt_w */ default: return -1; } case 268: switch (pattern44 (x1)) { case 0: if (! #line 1801 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1496; /* msa_ftint_s_d */ case 1: if (! #line 1801 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1497; /* msa_ftint_s_w */ default: return -1; } case 269: switch (pattern44 (x1)) { case 0: if (! #line 1811 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1498; /* msa_ftint_u_d */ case 1: if (! #line 1811 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1499; /* msa_ftint_u_w */ default: return -1; } case 277: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; switch (pattern110 (x2)) { case 0: if (! #line 2337 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1574; /* msa_nloc_d */ case 1: if (! #line 2337 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1575; /* msa_nloc_w */ case 2: if (! #line 2337 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1576; /* msa_nloc_h */ case 3: if (! #line 2337 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1577; /* msa_nloc_b */ default: return -1; } case 283: switch (pattern45 (x1, E_DFmode, E_SFmode)) { case 0: if (! #line 2656 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1666; /* msa_splati_d_f_scalar */ case 1: if (! #line 2656 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1667; /* msa_splati_w_f_scalar */ default: return -1; } case 249: if (GET_MODE (x2) != E_V4SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V4SFmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V8HImode) || ! #line 2703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1672; /* msa_fexupl_w */ case 250: if (GET_MODE (x2) != E_V4SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V4SFmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_V8HImode) || ! #line 2723 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1674; /* msa_fexupr_w */ default: return -1; } } static int recog_40 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return -1; if (absolute_symbolic_operand (operands[1], E_DImode) && #line 4500 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS)) return 291; /* *lea_high64 */ if (got_disp_operand (operands[1], E_DImode) && ( #line 4598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 296; /* *xgot_hidi */ if (!got_page_ofst_operand (operands[1], E_DImode) || !( #line 4641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 302; /* *got_pagedi */ case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; if (got_disp_operand (operands[1], E_SImode) && ( #line 4598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 295; /* *xgot_hisi */ if (!got_page_ofst_operand (operands[1], E_SImode) || !( #line 4641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 301; /* *got_pagesi */ default: return -1; } } static int recog_41 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; x3 = XEXP (x1, 0); operands[0] = x3; switch (GET_MODE (operands[0])) { case E_DImode: if (register_operand (operands[0], E_DImode)) { if (pnum_clobbers != NULL && absolute_symbolic_operand (operands[1], E_DImode) && #line 4554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS && cse_not_expected)) { *pnum_clobbers = 1; return 292; /* *lea64 */ } if (got_disp_operand (operands[1], E_DImode) && ( #line 4628 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 300; /* *got_dispdi */ } break; case E_SImode: if (register_operand (operands[0], E_SImode) && got_disp_operand (operands[1], E_SImode) && ( #line 4628 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 299; /* *got_dispsi */ break; default: break; } if (GET_CODE (x2) != LABEL_REF || GET_CODE (x3) != PC) return -1; x4 = XEXP (x2, 0); operands[0] = x4; if ( #line 6323 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_ABSOLUTE_JUMPS)) return 619; /* *jump_absolute */ if ( #line 6346 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !TARGET_ABSOLUTE_JUMPS)) return 620; /* *jump_pic */ if (! #line 6373 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 621; /* *jump_mips16 */ } static int recog_42 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 1); operands[1] = x4; if (!const_int_operand (operands[1], E_SImode)) return -1; x5 = XEXP (x2, 2); operands[2] = x5; if (!const_int_operand (operands[2], E_SImode)) return -1; x6 = XEXP (x1, 1); operands[3] = x6; switch (GET_MODE (x2)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !reg_or_0_operand (operands[3], E_SImode) || ! #line 4390 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[0], INTVAL (operands[1]), INTVAL (operands[2])))) return -1; return 279; /* *insvsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !reg_or_0_operand (operands[3], E_DImode) || !( #line 4390 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[0], INTVAL (operands[1]), INTVAL (operands[2]))) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 280; /* *insvdi */ default: return -1; } } static int recog_43 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_CODE (x3) != PLUS) return -1; x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XEXP (x1, 1); operands[0] = x6; switch (GET_MODE (x2)) { case E_SFmode: switch (pattern201 (x3, E_SFmode)) { case 0: if (!( #line 4958 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 339; /* *swxc1_si */ case 1: if (!( #line 4958 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 342; /* *swxc1_di */ default: return -1; } case E_DFmode: switch (pattern201 (x3, E_DFmode)) { case 0: if (!( #line 4958 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 340; /* *sdxc1_si */ case 1: if (!( #line 4958 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 343; /* *sdxc1_di */ default: return -1; } case E_V2SFmode: switch (pattern201 (x3, E_V2SFmode)) { case 0: if (!( #line 4958 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)))) return -1; return 341; /* *sdxc1_si */ case 1: if (!( #line 4958 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)))) return -1; return 344; /* *sdxc1_di */ default: return -1; } default: return -1; } } static int recog_44 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != PLUS) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XEXP (x3, 0); operands[1] = x5; x6 = XEXP (x3, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: switch (pattern154 (x2, E_SFmode)) { case 0: if (!( #line 4949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 333; /* *lwxc1_si */ case 1: if (!( #line 4949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 336; /* *lwxc1_di */ default: return -1; } case E_DFmode: switch (pattern154 (x2, E_DFmode)) { case 0: if (!( #line 4949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 334; /* *ldxc1_si */ case 1: if (!( #line 4949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 337; /* *ldxc1_di */ default: return -1; } case E_V2SFmode: switch (pattern154 (x2, E_V2SFmode)) { case 0: if (!( #line 4949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 335; /* *ldxc1_si */ case 1: if (!( #line 4949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 338; /* *ldxc1_di */ default: return -1; } default: return -1; } } static int recog_45 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: x3 = XEXP (x1, 0); switch (GET_CODE (x3)) { case ZERO_EXTRACT: res = recog_42 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case MEM: res = recog_43 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case PC: operands[0] = x2; switch (GET_MODE (operands[0])) { case E_SImode: if (register_operand (operands[0], E_SImode) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return 622; /* indirect_jump_si */ break; case E_DImode: if (register_operand (operands[0], E_DImode) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return 623; /* indirect_jump_di */ break; default: break; } break; default: break; } if (GET_CODE (x2) == REG && REGNO (x2) == 31) { operands[0] = x3; switch (GET_MODE (operands[0])) { case E_SImode: if (stack_operand (operands[0], E_SImode) && GET_MODE (x2) == E_SImode && #line 4747 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return 309; /* *movsi_ra */ break; case E_DImode: if (stack_operand (operands[0], E_DImode) && GET_MODE (x2) == E_DImode && ( #line 4747 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 310; /* *movdi_ra */ break; default: break; } } break; case MEM: res = recog_44 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; default: break; } operands[1] = x2; if (!nonimmediate_operand (operands[1], E_CCFmode)) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!nonimmediate_operand (operands[0], E_CCFmode) || ! #line 5132 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF)) return -1; return 367; /* movccf */ } static int recog_46 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); operands[2] = x5; x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case MULT: x7 = XEXP (x6, 1); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4]) return -1; x8 = XEXP (x6, 0); operands[1] = x8; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern202 (x3, E_SImode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 345; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 346; /* *lwxs */ default: return -1; } case E_V2HImode: switch (pattern202 (x3, E_V2HImode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 833 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 347; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 833 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 348; /* *lwxs */ default: return -1; } case E_V4QImode: switch (pattern202 (x3, E_V4QImode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 349; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 350; /* *lwxs */ default: return -1; } case E_V2HQmode: switch (pattern202 (x3, E_V2HQmode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 835 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 351; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 835 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 352; /* *lwxs */ default: return -1; } case E_V2UHQmode: switch (pattern202 (x3, E_V2UHQmode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 353; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 354; /* *lwxs */ default: return -1; } case E_V2HAmode: switch (pattern202 (x3, E_V2HAmode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 355; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 356; /* *lwxs */ default: return -1; } case E_V2UHAmode: switch (pattern202 (x3, E_V2UHAmode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 838 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 357; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 838 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 358; /* *lwxs */ default: return -1; } case E_V4QQmode: switch (pattern202 (x3, E_V4QQmode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 839 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 359; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 839 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 360; /* *lwxs */ default: return -1; } case E_V4UQQmode: switch (pattern202 (x3, E_V4UQQmode)) { case 0: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 840 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 361; /* *lwxs */ case 1: if (!( #line 4973 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 840 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 362; /* *lwxs */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[1] = x6; switch (pattern154 (x3, E_DImode)) { case 0: if (!( #line 1131 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LDX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 947; /* mips_ldx_si */ case 1: if (!( #line 1131 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LDX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 949; /* mips_ldx_di */ default: return -1; } default: return -1; } } static int recog_47 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case LABEL_REF: x4 = XEXP (x2, 2); if (GET_CODE (x4) != PC) return -1; x5 = XEXP (x1, 0); if (GET_CODE (x5) != PC) return -1; x6 = XEXP (x2, 0); operands[1] = x6; if (!equality_operator (operands[1], E_VOIDmode)) return -1; x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x3, 0); operands[0] = x8; switch (GET_MODE (operands[2])) { case E_CCmode: if (!register_operand (operands[2], E_CCmode) || !( #line 5949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF))) return -1; return 469; /* *branch_fp_cc */ case E_CCFmode: if (!register_operand (operands[2], E_CCFmode) || !( #line 5949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 470; /* *branch_fp_ccf */ default: return -1; } case PC: x4 = XEXP (x2, 2); if (GET_CODE (x4) != LABEL_REF) return -1; x5 = XEXP (x1, 0); if (GET_CODE (x5) != PC) return -1; x6 = XEXP (x2, 0); operands[1] = x6; if (!equality_operator (operands[1], E_VOIDmode)) return -1; x7 = XEXP (x6, 0); operands[2] = x7; x9 = XEXP (x4, 0); operands[0] = x9; switch (GET_MODE (operands[2])) { case E_CCmode: if (!register_operand (operands[2], E_CCmode) || !( #line 5965 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF))) return -1; return 471; /* *branch_fp_inverted_cc */ case E_CCFmode: if (!register_operand (operands[2], E_CCFmode) || !( #line 5965 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 472; /* *branch_fp_inverted_ccf */ default: return -1; } case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: operands[2] = x3; x5 = XEXP (x1, 0); operands[0] = x5; x6 = XEXP (x2, 0); operands[4] = x6; x7 = XEXP (x6, 0); operands[1] = x7; x4 = XEXP (x2, 2); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern223 (x2, E_SImode)) { case 0: if (! #line 7344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE)) return -1; return 674; /* *movsi_on_si */ case 1: if (!( #line 7344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 820 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 676; /* *movsi_on_di */ case 2: if (!( #line 7344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900))) return -1; return 678; /* *movsi_on_cc */ default: return -1; } case E_DImode: switch (pattern223 (x2, E_DImode)) { case 0: if (!( #line 7344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 675; /* *movdi_on_si */ case 1: if (!( #line 7344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 677; /* *movdi_on_di */ case 2: if (!( #line 7344 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)))) return -1; return 679; /* *movdi_on_cc */ default: return -1; } case E_SFmode: switch (pattern224 (x2, E_SFmode)) { case 0: if (!( #line 7372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 684; /* *movsf_on_si */ case 1: if (!( #line 7372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 820 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 686; /* *movsf_on_di */ case 2: if (!( #line 7372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 688; /* *movsf_on_cc */ default: return -1; } case E_DFmode: switch (pattern224 (x2, E_DFmode)) { case 0: if (!( #line 7372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 685; /* *movdf_on_si */ case 1: if (!( #line 7372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 820 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 687; /* *movdf_on_di */ case 2: if (!( #line 7372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 689; /* *movdf_on_cc */ default: return -1; } case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x2) != E_V2SFmode || !register_operand (operands[2], E_V2SFmode) || !register_operand (operands[3], E_V2SFmode)) return -1; switch (GET_MODE (operands[4])) { case E_SImode: if (!equality_operator (operands[4], E_SImode) || !register_operand (operands[1], E_SImode) || ! #line 52 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 798; /* *movcc_v2sf_si */ case E_DImode: if (!equality_operator (operands[4], E_DImode) || !register_operand (operands[1], E_DImode) || !( #line 52 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 799; /* *movcc_v2sf_di */ default: return -1; } default: return -1; } default: return -1; } } static int recog_48 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 1); if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0]) { res = recog_47 (x1, insn, pnum_clobbers); if (res >= 0) return res; } x5 = XEXP (x3, 0); operands[2] = x5; x6 = XEXP (x1, 0); if (GET_CODE (x6) != PC) return -1; operands[1] = x3; if (!equality_operator (operands[1], E_VOIDmode)) return -1; operands[3] = x4; switch (pattern156 (x2)) { case 0: if ( #line 6013 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 477; /* *branch_equalitysi */ break; case 1: if (( #line 6013 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 478; /* *branch_equalitydi */ break; case 2: if ( #line 6027 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 479; /* *branch_equalitysi_inverted */ break; case 3: if (( #line 6027 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 480; /* *branch_equalitydi_inverted */ break; default: break; } if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x7 = XEXP (x2, 1); switch (GET_CODE (x7)) { case LABEL_REF: x8 = XEXP (x2, 2); if (GET_CODE (x8) != PC) return -1; x9 = XEXP (x7, 0); operands[0] = x9; switch (GET_MODE (operands[2])) { case E_SImode: if (!register_operand (operands[2], E_SImode) || ! #line 6043 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 481; /* *branch_equalitysi_mips16 */ case E_DImode: if (!register_operand (operands[2], E_DImode) || !( #line 6043 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 482; /* *branch_equalitydi_mips16 */ default: return -1; } case PC: x8 = XEXP (x2, 2); if (GET_CODE (x8) != LABEL_REF) return -1; x10 = XEXP (x8, 0); operands[0] = x10; switch (GET_MODE (operands[2])) { case E_SImode: if (!register_operand (operands[2], E_SImode) || ! #line 6057 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 483; /* *branch_equalitysi_mips16_inverted */ case E_DImode: if (!register_operand (operands[2], E_DImode) || !( #line 6057 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 484; /* *branch_equalitydi_mips16_inverted */ default: return -1; } default: return -1; } } static int recog_49 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); if (XVECLEN (x4, 0) != 2 || XINT (x4, 1) != 84 || GET_MODE (x4) != E_CCmode) return -1; x5 = XEXP (x3, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XEXP (x1, 0); if (GET_CODE (x6) != PC) return -1; operands[1] = x3; if (!equality_operator (operands[1], E_VOIDmode)) return -1; x7 = XVECEXP (x4, 0, 0); operands[2] = x7; if (!register_operand (operands[2], E_CCV2mode)) return -1; x8 = XVECEXP (x4, 0, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x9 = XEXP (x2, 1); switch (GET_CODE (x9)) { case LABEL_REF: x10 = XEXP (x2, 2); if (GET_CODE (x10) != PC) return -1; x11 = XEXP (x9, 0); operands[0] = x11; if (! #line 629 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT)) return -1; return 834; /* *branch_upper_lower */ case PC: x10 = XEXP (x2, 2); if (GET_CODE (x10) != LABEL_REF) return -1; x12 = XEXP (x10, 0); operands[0] = x12; if (! #line 650 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT)) return -1; return 835; /* *branch_upper_lower_inverted */ default: return -1; } } static int recog_50 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_CODE (x2) != PC) return -1; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x4, 1); operands[3] = x6; switch (pattern156 (x3)) { case 0: if (! #line 5983 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 473; /* *branch_ordersi */ case 1: if (!( #line 5983 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 474; /* *branch_orderdi */ case 2: if (! #line 5997 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 475; /* *branch_ordersi_inverted */ case 3: if (!( #line 5997 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 476; /* *branch_orderdi_inverted */ default: return -1; } } static int recog_51 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); if (pattern158 (x3) != 0) return -1; x4 = XVECEXP (x3, 0, 8); if (GET_CODE (x4) != CONST_INT) return -1; x5 = XVECEXP (x3, 0, 9); if (GET_CODE (x5) != CONST_INT) return -1; x6 = XVECEXP (x3, 0, 10); if (GET_CODE (x6) != CONST_INT) return -1; x7 = XVECEXP (x3, 0, 11); if (GET_CODE (x7) != CONST_INT) return -1; x8 = XVECEXP (x3, 0, 12); if (GET_CODE (x8) != CONST_INT) return -1; x9 = XVECEXP (x3, 0, 13); if (GET_CODE (x9) != CONST_INT) return -1; x10 = XVECEXP (x3, 0, 14); if (GET_CODE (x10) != CONST_INT) return -1; x11 = XVECEXP (x3, 0, 15); if (GET_CODE (x11) != CONST_INT || pattern210 (x2, E_V16QImode, E_V32QImode) != 0) return -1; x12 = XVECEXP (x3, 0, 0); switch (XWINT (x12, 0)) { case 0L: x13 = XVECEXP (x3, 0, 1); switch (XWINT (x13, 0)) { case 16L: x14 = XVECEXP (x3, 0, 2); switch (XWINT (x14, 0)) { case 2L: x15 = XVECEXP (x3, 0, 3); if (XWINT (x15, 0) != 18L) return -1; x16 = XVECEXP (x3, 0, 4); if (XWINT (x16, 0) != 4L) return -1; x17 = XVECEXP (x3, 0, 5); if (XWINT (x17, 0) != 20L) return -1; x18 = XVECEXP (x3, 0, 6); if (XWINT (x18, 0) != 6L) return -1; x19 = XVECEXP (x3, 0, 7); if (XWINT (x19, 0) != 22L || XWINT (x4, 0) != 8L || XWINT (x5, 0) != 24L || XWINT (x6, 0) != 10L || XWINT (x7, 0) != 26L || XWINT (x8, 0) != 12L || XWINT (x9, 0) != 28L || XWINT (x10, 0) != 14L || XWINT (x11, 0) != 30L || ! #line 1927 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1518; /* msa_ilvev_b */ case 1L: x15 = XVECEXP (x3, 0, 3); if (XWINT (x15, 0) != 17L) return -1; x16 = XVECEXP (x3, 0, 4); if (XWINT (x16, 0) != 2L) return -1; x17 = XVECEXP (x3, 0, 5); if (XWINT (x17, 0) != 18L) return -1; x18 = XVECEXP (x3, 0, 6); if (XWINT (x18, 0) != 3L) return -1; x19 = XVECEXP (x3, 0, 7); if (XWINT (x19, 0) != 19L || XWINT (x4, 0) != 4L || XWINT (x5, 0) != 20L || XWINT (x6, 0) != 5L || XWINT (x7, 0) != 21L || XWINT (x8, 0) != 6L || XWINT (x9, 0) != 22L || XWINT (x10, 0) != 7L || XWINT (x11, 0) != 23L || ! #line 2131 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1532; /* msa_ilvr_b */ default: return -1; } case 2L: x14 = XVECEXP (x3, 0, 2); if (XWINT (x14, 0) != 4L) return -1; x15 = XVECEXP (x3, 0, 3); if (XWINT (x15, 0) != 6L) return -1; x16 = XVECEXP (x3, 0, 4); if (XWINT (x16, 0) != 8L) return -1; x17 = XVECEXP (x3, 0, 5); if (XWINT (x17, 0) != 10L) return -1; x18 = XVECEXP (x3, 0, 6); if (XWINT (x18, 0) != 12L) return -1; x19 = XVECEXP (x3, 0, 7); if (XWINT (x19, 0) != 14L || XWINT (x4, 0) != 16L || XWINT (x5, 0) != 18L || XWINT (x6, 0) != 20L || XWINT (x7, 0) != 22L || XWINT (x8, 0) != 24L || XWINT (x9, 0) != 26L || XWINT (x10, 0) != 28L || XWINT (x11, 0) != 30L || ! #line 2375 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1586; /* msa_pckev_b */ default: return -1; } case 8L: x13 = XVECEXP (x3, 0, 1); if (XWINT (x13, 0) != 24L) return -1; x14 = XVECEXP (x3, 0, 2); if (XWINT (x14, 0) != 9L) return -1; x15 = XVECEXP (x3, 0, 3); if (XWINT (x15, 0) != 25L) return -1; x16 = XVECEXP (x3, 0, 4); if (XWINT (x16, 0) != 10L) return -1; x17 = XVECEXP (x3, 0, 5); if (XWINT (x17, 0) != 26L) return -1; x18 = XVECEXP (x3, 0, 6); if (XWINT (x18, 0) != 11L) return -1; x19 = XVECEXP (x3, 0, 7); if (XWINT (x19, 0) != 27L || XWINT (x4, 0) != 12L || XWINT (x5, 0) != 28L || XWINT (x6, 0) != 13L || XWINT (x7, 0) != 29L || XWINT (x8, 0) != 14L || XWINT (x9, 0) != 30L || XWINT (x10, 0) != 15L || XWINT (x11, 0) != 31L || ! #line 1987 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1522; /* msa_ilvl_b */ case 1L: if (XWINT (x11, 0) != 31L) return -1; x13 = XVECEXP (x3, 0, 1); switch (XWINT (x13, 0)) { case 17L: x14 = XVECEXP (x3, 0, 2); if (XWINT (x14, 0) != 3L) return -1; x15 = XVECEXP (x3, 0, 3); if (XWINT (x15, 0) != 19L) return -1; x16 = XVECEXP (x3, 0, 4); if (XWINT (x16, 0) != 5L) return -1; x17 = XVECEXP (x3, 0, 5); if (XWINT (x17, 0) != 21L) return -1; x18 = XVECEXP (x3, 0, 6); if (XWINT (x18, 0) != 7L) return -1; x19 = XVECEXP (x3, 0, 7); if (XWINT (x19, 0) != 23L || XWINT (x4, 0) != 9L || XWINT (x5, 0) != 25L || XWINT (x6, 0) != 11L || XWINT (x7, 0) != 27L || XWINT (x8, 0) != 13L || XWINT (x9, 0) != 29L || XWINT (x10, 0) != 15L || ! #line 2071 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1528; /* msa_ilvod_b */ case 3L: if (pattern258 (x3) != 0) return -1; x19 = XVECEXP (x3, 0, 7); if (XWINT (x19, 0) != 15L || XWINT (x4, 0) != 17L || XWINT (x5, 0) != 19L || XWINT (x6, 0) != 21L || XWINT (x7, 0) != 23L || XWINT (x8, 0) != 25L || XWINT (x9, 0) != 27L || XWINT (x10, 0) != 29L || ! #line 2435 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1590; /* msa_pckod_b */ default: return -1; } default: return -1; } } static int recog_52 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XEXP (x2, 1); switch (XVECLEN (x6, 0)) { case 2: x7 = XVECEXP (x6, 0, 0); if (GET_CODE (x7) != CONST_INT) return -1; operands[3] = x7; if (const_0_or_1_operand (operands[3], E_SImode) && pattern210 (x2, E_V2SFmode, E_V4SFmode) == 0) { x8 = XVECEXP (x6, 0, 1); operands[4] = x8; if (const_2_or_3_operand (operands[4], E_SImode) && #line 100 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return 801; /* vec_perm_const_ps */ } x8 = XVECEXP (x6, 0, 1); if (GET_CODE (x8) != CONST_INT) return -1; switch (XWINT (x7, 0)) { case 1L: if (XWINT (x8, 0) != 3L) return -1; switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern210 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 678 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1146; /* loongson_punpckhwd */ case E_V2DImode: if (pattern210 (x2, E_V2DImode, E_V4DImode) != 0 || ! #line 2040 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1526; /* msa_ilvl_d */ case E_V2DFmode: if (pattern210 (x2, E_V2DFmode, E_V4DFmode) != 0 || ! #line 2052 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1527; /* msa_ilvl_d_f */ default: return -1; } case 0L: if (XWINT (x8, 0) != 2L) return -1; switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern210 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 756 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1152; /* loongson_punpcklwd */ case E_V2DImode: if (pattern210 (x2, E_V2DImode, E_V4DImode) != 0 || ! #line 2184 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1536; /* msa_ilvr_d */ case E_V2DFmode: if (pattern210 (x2, E_V2DFmode, E_V4DFmode) != 0 || ! #line 2196 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1537; /* msa_ilvr_d_f */ default: return -1; } default: return -1; } case 4: x7 = XVECEXP (x6, 0, 0); if (GET_CODE (x7) != CONST_INT) return -1; x8 = XVECEXP (x6, 0, 1); if (GET_CODE (x8) != CONST_INT) return -1; x9 = XVECEXP (x6, 0, 2); if (GET_CODE (x9) != CONST_INT) return -1; x10 = XVECEXP (x6, 0, 3); if (GET_CODE (x10) != CONST_INT) return -1; switch (XWINT (x7, 0)) { case 4L: if (XWINT (x8, 0) != 1L || XWINT (x9, 0) != 2L || XWINT (x10, 0) != 3L || pattern210 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1109; /* loongson_pinsrh_0 */ case 0L: switch (XWINT (x8, 0)) { case 4L: switch (XWINT (x9, 0)) { case 2L: switch (XWINT (x10, 0)) { case 3L: if (pattern210 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 336 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1110; /* loongson_pinsrh_1 */ case 6L: switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern210 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 1955 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1520; /* msa_ilvev_w */ case E_V4SFmode: if (pattern210 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 1968 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1521; /* msa_ilvev_w_f */ default: return -1; } default: return -1; } case 1L: if (XWINT (x10, 0) != 5L) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern210 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 731 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1150; /* loongson_punpcklhw */ case E_V4SImode: if (pattern210 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2159 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1534; /* msa_ilvr_w */ case E_V4SFmode: if (pattern210 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2172 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1535; /* msa_ilvr_w_f */ default: return -1; } default: return -1; } case 1L: if (pattern210 (x2, E_V4HImode, E_V8HImode) != 0) return -1; switch (XWINT (x9, 0)) { case 4L: switch (XWINT (x10, 0)) { case 3L: if (! #line 348 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1111; /* loongson_pinsrh_2 */ case 5L: if (! #line 782 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1154; /* *loongson_punpcklwd_hi */ default: return -1; } case 2L: if (XWINT (x10, 0) != 4L || ! #line 360 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1112; /* loongson_pinsrh_3 */ default: return -1; } case 2L: if (XWINT (x9, 0) != 4L || XWINT (x10, 0) != 6L) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern210 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2403 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1588; /* msa_pckev_w */ case E_V4SFmode: if (pattern210 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2416 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1589; /* msa_pckev_w_f */ default: return -1; } default: return -1; } case 2L: if (XWINT (x10, 0) != 7L) return -1; switch (XWINT (x8, 0)) { case 6L: if (XWINT (x9, 0) != 3L) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern210 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 653 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1144; /* loongson_punpckhhw */ case E_V4SImode: if (pattern210 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2015 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1524; /* msa_ilvl_w */ case E_V4SFmode: if (pattern210 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2028 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1525; /* msa_ilvl_w_f */ default: return -1; } case 3L: if (XWINT (x9, 0) != 6L || pattern210 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 704 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1148; /* loongson_punpckhwd_hi */ default: return -1; } case 1L: if (XWINT (x10, 0) != 7L) return -1; switch (XWINT (x8, 0)) { case 5L: if (XWINT (x9, 0) != 3L) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern210 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2099 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1530; /* msa_ilvod_w */ case E_V4SFmode: if (pattern210 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2112 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1531; /* msa_ilvod_w_f */ default: return -1; } case 3L: if (XWINT (x9, 0) != 5L) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern210 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2463 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1592; /* msa_pckod_w */ case E_V4SFmode: if (pattern210 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2476 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1593; /* msa_pckod_w_f */ default: return -1; } default: return -1; } default: return -1; } case 8: if (pattern158 (x6) != 0) return -1; x7 = XVECEXP (x6, 0, 0); switch (XWINT (x7, 0)) { case 4L: x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 15L) return -1; x8 = XVECEXP (x6, 0, 1); switch (XWINT (x8, 0)) { case 12L: x9 = XVECEXP (x6, 0, 2); if (XWINT (x9, 0) != 5L) return -1; x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 13L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 6L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 14L) return -1; x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 7L) return -1; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern210 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1143; /* loongson_punpckhbh */ case E_V8HImode: if (pattern210 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 2002 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1523; /* msa_ilvl_h */ default: return -1; } case 5L: x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 14L || pattern210 (x2, E_V8QImode, E_V16QImode) != 0) return -1; x9 = XVECEXP (x6, 0, 2); switch (XWINT (x9, 0)) { case 12L: x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 13L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 6L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 7L || ! #line 667 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1145; /* loongson_punpckhhw_qi */ case 6L: x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 7L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 12L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 13L || ! #line 692 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1147; /* loongson_punpckhwd_qi */ default: return -1; } default: return -1; } case 0L: x8 = XVECEXP (x6, 0, 1); switch (XWINT (x8, 0)) { case 8L: x9 = XVECEXP (x6, 0, 2); switch (XWINT (x9, 0)) { case 1L: x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 9L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 2L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 10L) return -1; x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 3L) return -1; x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 11L) return -1; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern210 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 719 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1149; /* loongson_punpcklbh */ case E_V8HImode: if (pattern210 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 2146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1533; /* msa_ilvr_h */ default: return -1; } case 2L: x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 10L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 4L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 12L) return -1; x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 6L) return -1; x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 14L || pattern210 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 1942 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1519; /* msa_ilvev_h */ default: return -1; } case 1L: x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 10L) return -1; x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 11L || pattern210 (x2, E_V8QImode, E_V16QImode) != 0) return -1; x9 = XVECEXP (x6, 0, 2); switch (XWINT (x9, 0)) { case 8L: x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 9L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 2L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 3L || ! #line 745 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1151; /* *loongson_punpcklhw_qi */ case 2L: x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 3L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 8L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 9L || ! #line 770 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1153; /* *loongson_punpcklwd_qi */ default: return -1; } case 2L: x9 = XVECEXP (x6, 0, 2); if (XWINT (x9, 0) != 4L) return -1; x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 6L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 8L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 10L) return -1; x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 12L) return -1; x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 14L || pattern210 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 2390 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1587; /* msa_pckev_h */ default: return -1; } case 1L: x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 15L || pattern210 (x2, E_V8HImode, E_V16HImode) != 0) return -1; x8 = XVECEXP (x6, 0, 1); switch (XWINT (x8, 0)) { case 9L: x9 = XVECEXP (x6, 0, 2); if (XWINT (x9, 0) != 3L) return -1; x10 = XVECEXP (x6, 0, 3); if (XWINT (x10, 0) != 11L) return -1; x12 = XVECEXP (x6, 0, 4); if (XWINT (x12, 0) != 5L) return -1; x13 = XVECEXP (x6, 0, 5); if (XWINT (x13, 0) != 13L) return -1; x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 7L || ! #line 2086 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1529; /* msa_ilvod_h */ case 3L: if (pattern258 (x6) != 0 || ! #line 2450 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1591; /* msa_pckod_h */ default: return -1; } default: return -1; } case 16: return recog_51 (x1, insn, pnum_clobbers); default: return -1; } } static int recog_53 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (XVECLEN (x2, 0)) { case 1: return recog_39 (x1, insn, pnum_clobbers); case 2: return recog_38 (x1, insn, pnum_clobbers); case 3: switch (XINT (x2, 1)) { case 1: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!memory_operand (operands[1], E_BLKmode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!memory_operand (operands[2], E_QImode)) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x2) != E_SImode || !register_operand (operands[3], E_SImode) || ! #line 4446 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[1]))) return -1; return 285; /* mov_lwr */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !register_operand (operands[3], E_DImode) || !( #line 4446 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[1])) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 286; /* mov_ldr */ default: return -1; } case 3: if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!memory_operand (operands[0], E_BLKmode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!memory_operand (operands[2], E_QImode)) return -1; x6 = XVECEXP (x2, 0, 2); if (!rtx_equal_p (x6, operands[0])) return -1; if (reg_or_0_operand (operands[1], E_SImode) && #line 4467 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[0]))) return 289; /* mov_swr */ if (!reg_or_0_operand (operands[1], E_DImode) || !( #line 4467 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[0])) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 290; /* mov_sdr */ case 27: x6 = XVECEXP (x2, 0, 2); if (GET_CODE (x6) != REG || REGNO (x6) != 79 || GET_MODE (x6) != E_SImode) return -1; switch (pattern48 (x1)) { case 0: if (!( #line 6913 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 651; /* load_callsi */ case 1: if (!( #line 6913 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 652; /* load_calldi */ default: return -1; } case 71: if (pattern64 (x1, E_CCV2mode) != 0 || ! #line 65 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 800; /* mips_cond_move_tf_ps */ case 73: if (pattern64 (x1, E_SImode) != 0 || ! #line 345 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 804; /* mips_alnv_ps */ case 74: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_CCmode: if (!register_operand (operands[0], E_CCmode) || GET_MODE (x2) != E_CCmode) return -1; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode) || !register_operand (operands[2], E_SFmode) || !( #line 439 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 810; /* mips_cabs_cond_s */ case E_DFmode: if (!register_operand (operands[1], E_DFmode) || !register_operand (operands[2], E_DFmode) || !( #line 439 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 811; /* mips_cabs_cond_d */ default: return -1; } case E_CCV2mode: if (pattern61 (x2, E_V2SFmode, E_CCV2mode) != 0 || ! #line 529 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 815; /* mips_cabs_cond_ps */ default: return -1; } case 72: if (pattern53 (x1, E_V2SFmode, E_CCV2mode) != 0) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!const_int_operand (operands[3], E_VOIDmode) || ! #line 518 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 814; /* mips_c_cond_ps */ case 119: if (pattern65 (x1) != 0 || ! #line 553 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 891; /* mips_dpau_h_qbl */ case 120: if (pattern65 (x1) != 0 || ! #line 565 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 892; /* mips_dpau_h_qbr */ case 121: if (pattern65 (x1) != 0 || ! #line 578 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 893; /* mips_dpsu_h_qbl */ case 122: if (pattern65 (x1) != 0 || ! #line 590 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 894; /* mips_dpsu_h_qbr */ case 136: switch (pattern66 (x1)) { case 0: if (! #line 799 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 908; /* mips_cmp_eq_ph */ case 1: if (! #line 799 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 909; /* mips_cmpu_eq_qb */ default: return -1; } case 137: switch (pattern66 (x1)) { case 0: if (! #line 810 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 910; /* mips_cmp_lt_ph */ case 1: if (! #line 810 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 911; /* mips_cmpu_lt_qb */ default: return -1; } case 138: switch (pattern66 (x1)) { case 0: if (! #line 821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 912; /* mips_cmp_le_ph */ case 1: if (! #line 821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 913; /* mips_cmpu_le_qb */ default: return -1; } case 142: x6 = XVECEXP (x2, 0, 2); if (GET_CODE (x6) != REG || REGNO (x6) != 186 || GET_MODE (x6) != E_CCDSPmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2HImode: if (pattern50 (x2, E_V2HImode) != 0 || ! #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 917; /* mips_pick_ph */ case E_V4QImode: if (pattern50 (x2, E_V4QImode) != 0 || ! #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 918; /* mips_pick_qb */ default: return -1; } case 159: if (pattern67 (x1, E_SImode) != 0 || ! #line 133 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 960; /* mips_append */ case 160: if (pattern67 (x1, E_SImode) != 0 || ! #line 148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 961; /* mips_balign */ case 164: if (pattern68 (x1) != 0 || ! #line 205 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 965; /* mips_dpa_w_ph */ case 165: if (pattern68 (x1) != 0 || ! #line 217 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 966; /* mips_dps_w_ph */ case 175: if (pattern68 (x1) != 0 || ! #line 293 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 972; /* mips_mulsa_w_ph */ case 179: if (pattern67 (x1, E_V2HImode) != 0 || ! #line 315 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 974; /* mips_precr_sra_ph_w */ case 180: if (pattern67 (x1, E_V2HImode) != 0 || ! #line 330 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 975; /* mips_precr_sra_r_ph_w */ case 181: if (pattern67 (x1, E_SImode) != 0 || ! #line 345 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 976; /* mips_prepend */ case 197: if (pattern68 (x1) != 0 || ! #line 539 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 992; /* mips_dpax_w_ph */ case 198: if (pattern68 (x1) != 0 || ! #line 551 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 993; /* mips_dpsx_w_ph */ case 207: if (pattern52 (x1, E_V4HImode) != 0) return -1; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!const_0_to_3_operand (operands[3], E_SImode) || ! #line 370 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1113; /* *vec_setv4hi */ case 292: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern172 (x2, E_V2DImode, E_V2DFmode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1198; /* vec_permv2df */ case E_V4SFmode: if (pattern172 (x2, E_V4SImode, E_V4SFmode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1199; /* vec_permv4sf */ case E_V2DImode: if (pattern69 (x2, E_V2DImode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1200; /* vec_permv2di */ case E_V4SImode: if (pattern69 (x2, E_V4SImode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1201; /* vec_permv4si */ case E_V8HImode: if (pattern69 (x2, E_V8HImode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1202; /* vec_permv8hi */ case E_V16QImode: if (pattern69 (x2, E_V16QImode) != 0 || ! #line 641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1203; /* vec_permv16qi */ default: return -1; } case 232: switch (pattern70 (x1)) { case 0: if (! #line 1113 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1336; /* msa_binsl_d */ case 1: if (! #line 1113 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1337; /* msa_binsl_w */ case 2: if (! #line 1113 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1338; /* msa_binsl_h */ case 3: if (! #line 1113 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1339; /* msa_binsl_b */ default: return -1; } case 233: switch (pattern73 (x1)) { case 0: if (! #line 1124 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1340; /* msa_binsli_d */ case 1: if (! #line 1124 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1341; /* msa_binsli_w */ case 2: if (! #line 1124 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1342; /* msa_binsli_h */ case 3: if (! #line 1124 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1343; /* msa_binsli_b */ default: return -1; } case 234: switch (pattern70 (x1)) { case 0: if (! #line 1135 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1344; /* msa_binsr_d */ case 1: if (! #line 1135 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1345; /* msa_binsr_w */ case 2: if (! #line 1135 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1346; /* msa_binsr_h */ case 3: if (! #line 1135 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1347; /* msa_binsr_b */ default: return -1; } case 235: switch (pattern73 (x1)) { case 0: if (! #line 1146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1348; /* msa_binsri_d */ case 1: if (! #line 1146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1349; /* msa_binsri_w */ case 2: if (! #line 1146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1350; /* msa_binsri_h */ case 3: if (! #line 1146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1351; /* msa_binsri_b */ default: return -1; } case 271: switch (pattern74 (x1)) { case 0: if (! #line 2207 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1538; /* msa_madd_q_w */ case 1: if (! #line 2207 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1539; /* msa_madd_q_h */ default: return -1; } case 272: switch (pattern74 (x1)) { case 0: if (! #line 2218 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1540; /* msa_maddr_q_w */ case 1: if (! #line 2218 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1541; /* msa_maddr_q_h */ default: return -1; } case 273: switch (pattern74 (x1)) { case 0: if (! #line 2297 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1566; /* msa_msub_q_w */ case 1: if (! #line 2297 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1567; /* msa_msub_q_h */ default: return -1; } case 274: switch (pattern74 (x1)) { case 0: if (! #line 2308 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1568; /* msa_msubr_q_w */ case 1: if (! #line 2308 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1569; /* msa_msubr_q_h */ default: return -1; } case 280: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern50 (x2, E_V2DFmode) != 0 || ! #line 2615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1642; /* msa_sld_d_f */ case E_V4SFmode: if (pattern50 (x2, E_V4SFmode) != 0 || ! #line 2615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1643; /* msa_sld_w_f */ case E_V2DImode: if (pattern50 (x2, E_V2DImode) != 0 || ! #line 2615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1644; /* msa_sld_d */ case E_V4SImode: if (pattern50 (x2, E_V4SImode) != 0 || ! #line 2615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1645; /* msa_sld_w */ case E_V8HImode: if (pattern50 (x2, E_V8HImode) != 0 || ! #line 2615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1646; /* msa_sld_h */ case E_V16QImode: if (pattern50 (x2, E_V16QImode) != 0 || ! #line 2615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1647; /* msa_sld_b */ default: return -1; } case 281: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern173 (x2, E_V2DFmode) != 0 || ! #line 2626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1648; /* msa_sldi_d_f */ case E_V4SFmode: if (pattern174 (x2, E_V4SFmode) != 0 || ! #line 2626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1649; /* msa_sldi_w_f */ case E_V2DImode: if (pattern173 (x2, E_V2DImode) != 0 || ! #line 2626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1650; /* msa_sldi_d */ case E_V4SImode: if (pattern174 (x2, E_V4SImode) != 0 || ! #line 2626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1651; /* msa_sldi_w */ case E_V8HImode: if (pattern72 (x2, E_V8HImode) != 0 || ! #line 2626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1652; /* msa_sldi_h */ case E_V16QImode: if (pattern71 (x2, E_V16QImode) != 0 || ! #line 2626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1653; /* msa_sldi_b */ default: return -1; } default: return -1; } case 5: x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern75 (x2)) { case 0: if (! #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 812; /* mips_c_cond_4s */ case 1: if (! #line 486 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 813; /* mips_cabs_cond_4s */ default: return -1; } case 4: if (XINT (x2, 1) != 133 || GET_MODE (x2) != E_SImode || pattern103 (x2, 182) != 0) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode) || ! #line 757 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 905; /* mips_insv */ case 7: if (XINT (x2, 1) != 153 || GET_MODE (x2) != E_SImode) return -1; x5 = XVECEXP (x2, 0, 1); if (GET_CODE (x5) != REG || REGNO (x5) != 182 || GET_MODE (x5) != E_CCDSPmode || pattern103 (x2, 184) != 0) return -1; x7 = XVECEXP (x2, 0, 4); if (GET_CODE (x7) != REG || REGNO (x7) != 185 || GET_MODE (x7) != E_CCDSPmode) return -1; x8 = XVECEXP (x2, 0, 5); if (GET_CODE (x8) != REG || REGNO (x8) != 186 || GET_MODE (x8) != E_CCDSPmode) return -1; x9 = XVECEXP (x2, 0, 6); if (GET_CODE (x9) != REG || REGNO (x9) != 187 || GET_MODE (x9) != E_CCDSPmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!const_uimm6_operand (operands[1], E_SImode) || ! #line 1074 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 929; /* mips_rddsp */ default: return -1; } } static int recog_54 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern0 (x3, E_SFmode) != 0 || ! #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 10; /* addsf3 */ case E_DFmode: if (pattern0 (x3, E_DFmode) != 0 || ! #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 11; /* adddf3 */ case E_V2SFmode: if (pattern0 (x3, E_V2SFmode) != 0 || ! #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 12; /* addv2sf3 */ case E_SImode: if (pattern19 (x3, E_SImode) != 0) return -1; if ( #line 1272 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 13; /* *addsi3 */ if (! #line 1288 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 15; /* *addsi3_mips16 */ case E_DImode: if (pattern19 (x3, E_DImode) != 0) return -1; if (( #line 1272 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 14; /* *adddi3 */ if (!( #line 1288 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 16; /* *adddi3_mips16 */ case E_QQmode: if (pattern0 (x3, E_QQmode) != 0) return -1; return 998; /* addqq3 */ case E_HQmode: if (pattern0 (x3, E_HQmode) != 0) return -1; return 999; /* addhq3 */ case E_SQmode: if (pattern0 (x3, E_SQmode) != 0) return -1; return 1000; /* addsq3 */ case E_DQmode: if (pattern0 (x3, E_DQmode) != 0 || ! #line 22 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1001; /* adddq3 */ case E_UQQmode: if (pattern0 (x3, E_UQQmode) != 0) return -1; return 1002; /* adduqq3 */ case E_UHQmode: if (pattern0 (x3, E_UHQmode) != 0) return -1; return 1003; /* adduhq3 */ case E_USQmode: if (pattern0 (x3, E_USQmode) != 0) return -1; return 1004; /* addusq3 */ case E_UDQmode: if (pattern0 (x3, E_UDQmode) != 0 || ! #line 23 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1005; /* addudq3 */ case E_HAmode: if (pattern0 (x3, E_HAmode) != 0) return -1; return 1006; /* addha3 */ case E_SAmode: if (pattern0 (x3, E_SAmode) != 0) return -1; return 1007; /* addsa3 */ case E_DAmode: if (pattern0 (x3, E_DAmode) != 0 || ! #line 24 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1008; /* addda3 */ case E_UHAmode: if (pattern0 (x3, E_UHAmode) != 0) return -1; return 1009; /* adduha3 */ case E_USAmode: if (pattern0 (x3, E_USAmode) != 0) return -1; return 1010; /* addusa3 */ case E_UDAmode: if (pattern0 (x3, E_UDAmode) != 0 || ! #line 25 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1011; /* adduda3 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1073; /* addv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1074; /* addv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1075; /* addv8qi3 */ case E_V2DImode: if (pattern132 (x3, E_V2DImode) != 0 || ! #line 717 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1210; /* addv2di3 */ case E_V4SImode: if (pattern132 (x3, E_V4SImode) != 0 || ! #line 717 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1211; /* addv4si3 */ case E_V8HImode: if (pattern132 (x3, E_V8HImode) != 0 || ! #line 717 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1212; /* addv8hi3 */ case E_V16QImode: if (pattern132 (x3, E_V16QImode) != 0 || ! #line 717 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1213; /* addv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 929 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1274; /* addv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 929 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1275; /* addv4sf3 */ default: return -1; } case MULT: x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[1] = x6; x7 = XEXP (x4, 1); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || GET_MODE (x4) != E_SImode || !register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; if (pnum_clobbers != NULL) { x5 = XEXP (x3, 1); operands[3] = x5; if (register_operand (operands[3], E_SImode)) { if ( #line 1762 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB && !TARGET_MIPS16)) { *pnum_clobbers = 2; return 42; /* *mul_acc_si */ } if ( #line 1791 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS3900 && !TARGET_MIPS16)) { *pnum_clobbers = 2; return 43; /* *mul_acc_si_r3900 */ } if ( #line 1834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC)) { *pnum_clobbers = 1; return 44; /* *macc */ } } } x5 = XEXP (x3, 1); if (!rtx_equal_p (x5, operands[0]) || ! #line 2533 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MAD)) return -1; return 81; /* madsi */ case E_SFmode: if (pattern140 (x3, E_SFmode) != 0 || !( #line 2719 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 111; /* *madd4sf */ case E_DFmode: if (pattern140 (x3, E_DFmode) != 0 || !( #line 2719 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 112; /* *madd4df */ case E_V2SFmode: if (pattern140 (x3, E_V2SFmode) != 0 || !( #line 2719 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 113; /* *madd4v2sf */ case E_V2DImode: if (pattern140 (x3, E_V2DImode) != 0 || ! #line 767 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1222; /* msa_maddv_d */ case E_V4SImode: if (pattern140 (x3, E_V4SImode) != 0 || ! #line 767 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1223; /* msa_maddv_w */ case E_V8HImode: if (pattern140 (x3, E_V8HImode) != 0 || ! #line 767 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1224; /* msa_maddv_h */ case E_V16QImode: if (pattern140 (x3, E_V16QImode) != 0 || ! #line 767 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1225; /* msa_maddv_b */ default: return -1; } case SIGN_EXTEND: switch (pattern96 (x3, SIGN_EXTEND)) { case 0: if (! #line 2547 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ((TARGET_MAD || ISA_HAS_MACC || GENERATE_MADD_MSUB || ISA_HAS_DSP) && !TARGET_64BIT)) return -1; return 82; /* maddsidi4 */ case 1: if (! #line 1286 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1400; /* msa_dotp_s_d */ case 2: if (! #line 1314 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1402; /* msa_dotp_s_w */ case 3: if (! #line 1350 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1404; /* msa_dotp_s_h */ default: return -1; } case ZERO_EXTEND: switch (pattern96 (x3, ZERO_EXTEND)) { case 0: if (! #line 2547 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ((TARGET_MAD || ISA_HAS_MACC || GENERATE_MADD_MSUB || ISA_HAS_DSP) && !TARGET_64BIT)) return -1; return 83; /* umaddsidi4 */ case 1: if (! #line 1286 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1401; /* msa_dotp_u_d */ case 2: if (! #line 1314 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1403; /* msa_dotp_u_w */ case 3: if (! #line 1350 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1405; /* msa_dotp_u_h */ default: return -1; } default: return -1; } case ASHIFT: x6 = XEXP (x4, 0); operands[1] = x6; x7 = XEXP (x4, 1); operands[2] = x7; if (!const_immlsa_operand (operands[2], E_VOIDmode)) return -1; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern165 (x3, E_SImode) != 0 || ! #line 5778 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_LSA)) return -1; return 455; /* lsa */ case E_DImode: if (pattern165 (x3, E_DImode) != 0 || !( #line 5778 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DLSA) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 456; /* dlsa */ default: return -1; } case ABS: switch (pattern29 (x3)) { case 0: if (! #line 994 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1288; /* msa_add_a_d */ case 1: if (! #line 994 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1289; /* msa_add_a_w */ case 2: if (! #line 994 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1290; /* msa_add_a_h */ case 3: if (! #line 994 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1291; /* msa_add_a_b */ default: return -1; } case PLUS: x6 = XEXP (x4, 0); if (GET_CODE (x6) != MULT) return -1; x7 = XEXP (x4, 1); if (GET_CODE (x7) != MULT) return -1; x5 = XEXP (x3, 1); operands[1] = x5; x8 = XEXP (x6, 0); switch (GET_CODE (x8)) { case SIGN_EXTEND: switch (pattern142 (x3, SIGN_EXTEND)) { case 0: if (! #line 1376 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1406; /* msa_dpadd_s_d */ case 1: if (! #line 1406 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1408; /* msa_dpadd_s_w */ case 2: if (! #line 1444 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1410; /* msa_dpadd_s_h */ default: return -1; } case ZERO_EXTEND: switch (pattern142 (x3, ZERO_EXTEND)) { case 0: if (! #line 1376 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1407; /* msa_dpadd_u_d */ case 1: if (! #line 1406 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1409; /* msa_dpadd_u_w */ case 2: if (! #line 1444 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1411; /* msa_dpadd_u_h */ default: return -1; } default: return -1; } case SIGN_EXTEND: switch (pattern31 (x3, SIGN_EXTEND)) { case 0: if (! #line 1874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1506; /* msa_hadd_s_h */ case 1: if (! #line 1892 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1510; /* msa_hadd_s_w */ case 2: if (! #line 1908 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1514; /* msa_hadd_s_d */ default: return -1; } case ZERO_EXTEND: switch (pattern31 (x3, ZERO_EXTEND)) { case 0: if (! #line 1874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1507; /* msa_hadd_u_h */ case 1: if (! #line 1892 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1511; /* msa_hadd_u_w */ case 2: if (! #line 1908 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1515; /* msa_hadd_u_d */ default: return -1; } default: return -1; } } static int recog_55 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case HIGH: res = recog_40 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case CONST: case LABEL_REF: case SYMBOL_REF: res = recog_41 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: case MEM: res = recog_45 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; default: break; } operands[1] = x2; x3 = XEXP (x1, 0); operands[0] = x3; switch (GET_MODE (operands[0])) { case E_DImode: if (nonimmediate_operand (operands[0], E_DImode) && move_operand (operands[1], E_DImode)) { if ( #line 4755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], DImode) || reg_or_0_operand (operands[1], DImode)))) return 311; /* *movdi_32bit */ if ( #line 4768 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], DImode) || register_operand (operands[1], DImode)))) return 312; /* *movdi_32bit_mips16 */ if ( #line 4778 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], DImode) || reg_or_0_operand (operands[1], DImode)))) return 313; /* *movdi_64bit */ if ( #line 4788 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], DImode) || register_operand (operands[1], DImode)))) return 314; /* *movdi_64bit_mips16 */ } break; case E_SImode: if (nonimmediate_operand (operands[0], E_SImode) && move_operand (operands[1], E_SImode)) { if ( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], SImode) || reg_or_0_operand (operands[1], SImode)))) return 315; /* *movsi_internal */ if ( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], SImode) || register_operand (operands[1], SImode)))) return 324; /* *movsi_mips16 */ } break; case E_V2HImode: if (nonimmediate_operand (operands[0], E_V2HImode) && move_operand (operands[1], E_V2HImode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2HImode) || reg_or_0_operand (operands[1], V2HImode))) && #line 833 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 316; /* *movv2hi_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2HImode) || register_operand (operands[1], V2HImode))) && #line 833 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 325; /* *movv2hi_mips16 */ } break; case E_V4QImode: if (nonimmediate_operand (operands[0], E_V4QImode) && move_operand (operands[1], E_V4QImode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V4QImode) || reg_or_0_operand (operands[1], V4QImode))) && #line 834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 317; /* *movv4qi_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V4QImode) || register_operand (operands[1], V4QImode))) && #line 834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 326; /* *movv4qi_mips16 */ } break; case E_V2HQmode: if (nonimmediate_operand (operands[0], E_V2HQmode) && move_operand (operands[1], E_V2HQmode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2HQmode) || reg_or_0_operand (operands[1], V2HQmode))) && #line 835 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 318; /* *movv2hq_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2HQmode) || register_operand (operands[1], V2HQmode))) && #line 835 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 327; /* *movv2hq_mips16 */ } break; case E_V2UHQmode: if (nonimmediate_operand (operands[0], E_V2UHQmode) && move_operand (operands[1], E_V2UHQmode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2UHQmode) || reg_or_0_operand (operands[1], V2UHQmode))) && #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 319; /* *movv2uhq_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2UHQmode) || register_operand (operands[1], V2UHQmode))) && #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 328; /* *movv2uhq_mips16 */ } break; case E_V2HAmode: if (nonimmediate_operand (operands[0], E_V2HAmode) && move_operand (operands[1], E_V2HAmode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2HAmode) || reg_or_0_operand (operands[1], V2HAmode))) && #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 320; /* *movv2ha_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2HAmode) || register_operand (operands[1], V2HAmode))) && #line 837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 329; /* *movv2ha_mips16 */ } break; case E_V2UHAmode: if (nonimmediate_operand (operands[0], E_V2UHAmode) && move_operand (operands[1], E_V2UHAmode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2UHAmode) || reg_or_0_operand (operands[1], V2UHAmode))) && #line 838 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 321; /* *movv2uha_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2UHAmode) || register_operand (operands[1], V2UHAmode))) && #line 838 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 330; /* *movv2uha_mips16 */ } break; case E_V4QQmode: if (nonimmediate_operand (operands[0], E_V4QQmode) && move_operand (operands[1], E_V4QQmode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V4QQmode) || reg_or_0_operand (operands[1], V4QQmode))) && #line 839 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 322; /* *movv4qq_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V4QQmode) || register_operand (operands[1], V4QQmode))) && #line 839 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 331; /* *movv4qq_mips16 */ } break; case E_V4UQQmode: if (nonimmediate_operand (operands[0], E_V4UQQmode) && move_operand (operands[1], E_V4UQQmode)) { if (( #line 4856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V4UQQmode) || reg_or_0_operand (operands[1], V4UQQmode))) && #line 840 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 323; /* *movv4uqq_internal */ if (( #line 4867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V4UQQmode) || register_operand (operands[1], V4UQQmode))) && #line 840 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 332; /* *movv4uqq_mips16 */ } break; case E_HImode: if (nonimmediate_operand (operands[0], E_HImode) && move_operand (operands[1], E_HImode)) { if ( #line 4997 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], HImode) || reg_or_0_operand (operands[1], HImode)))) return 363; /* *movhi_internal */ if ( #line 5008 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], HImode) || register_operand (operands[1], HImode)))) return 364; /* *movhi_mips16 */ } break; case E_QImode: if (nonimmediate_operand (operands[0], E_QImode) && move_operand (operands[1], E_QImode)) { if ( #line 5073 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], QImode) || reg_or_0_operand (operands[1], QImode)))) return 365; /* *movqi_internal */ if ( #line 5084 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], QImode) || register_operand (operands[1], QImode)))) return 366; /* *movqi_mips16 */ } break; case E_SFmode: if (nonimmediate_operand (operands[0], E_SFmode) && move_operand (operands[1], E_SFmode)) { if ( #line 5139 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && (register_operand (operands[0], SFmode) || reg_or_0_operand (operands[1], SFmode)))) return 368; /* *movsf_hardfloat */ if ( #line 5149 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SOFT_FLOAT && !TARGET_MIPS16 && (register_operand (operands[0], SFmode) || reg_or_0_operand (operands[1], SFmode)))) return 369; /* *movsf_softfloat */ if ( #line 5159 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], SFmode) || register_operand (operands[1], SFmode)))) return 370; /* *movsf_mips16 */ } break; case E_DFmode: if (nonimmediate_operand (operands[0], E_DFmode) && move_operand (operands[1], E_DFmode)) { if ( #line 5180 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && (register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)))) return 371; /* *movdf_hardfloat */ if ( #line 5190 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ((TARGET_SOFT_FLOAT || TARGET_SINGLE_FLOAT) && !TARGET_MIPS16 && (register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)))) return 372; /* *movdf_softfloat */ if ( #line 5200 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], DFmode) || register_operand (operands[1], DFmode)))) return 373; /* *movdf_mips16 */ } break; case E_TImode: if (nonimmediate_operand (operands[0], E_TImode) && move_operand (operands[1], E_TImode)) { if ( #line 5221 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], TImode) || reg_or_0_operand (operands[1], TImode)))) return 374; /* *movti */ if ( #line 5235 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], TImode) || register_operand (operands[1], TImode)))) return 375; /* *movti_mips16 */ } break; case E_TFmode: if (nonimmediate_operand (operands[0], E_TFmode) && move_operand (operands[1], E_TFmode)) { if ( #line 5258 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], TFmode) || reg_or_0_operand (operands[1], TFmode)))) return 376; /* *movtf */ if ( #line 5269 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], TFmode) || register_operand (operands[1], TFmode)))) return 377; /* *movtf_mips16 */ } break; case E_V2SFmode: if (nonimmediate_operand (operands[0], E_V2SFmode) && move_operand (operands[1], E_V2SFmode) && #line 5326 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT && (register_operand (operands[0], V2SFmode) || reg_or_0_operand (operands[1], V2SFmode)))) return 378; /* *movv2sf */ break; case E_V2SImode: if (nonimmediate_operand (operands[0], E_V2SImode) && move_operand (operands[1], E_V2SImode) && #line 114 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1064; /* movv2si_internal */ break; case E_V4HImode: if (nonimmediate_operand (operands[0], E_V4HImode) && move_operand (operands[1], E_V4HImode) && #line 114 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1065; /* movv4hi_internal */ break; case E_V8QImode: if (nonimmediate_operand (operands[0], E_V8QImode) && move_operand (operands[1], E_V8QImode) && #line 114 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1066; /* movv8qi_internal */ break; case E_V2DFmode: if (nonimmediate_operand (operands[0], E_V2DFmode) && move_operand (operands[1], E_V2DFmode) && #line 669 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1204; /* movv2df_msa */ break; case E_V4SFmode: if (nonimmediate_operand (operands[0], E_V4SFmode) && move_operand (operands[1], E_V4SFmode) && #line 669 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1205; /* movv4sf_msa */ break; case E_V2DImode: if (nonimmediate_operand (operands[0], E_V2DImode) && move_operand (operands[1], E_V2DImode) && #line 669 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1206; /* movv2di_msa */ break; case E_V4SImode: if (nonimmediate_operand (operands[0], E_V4SImode) && move_operand (operands[1], E_V4SImode) && #line 669 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1207; /* movv4si_msa */ break; case E_V8HImode: if (nonimmediate_operand (operands[0], E_V8HImode) && move_operand (operands[1], E_V8HImode) && #line 669 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1208; /* movv8hi_msa */ break; case E_V16QImode: if (nonimmediate_operand (operands[0], E_V16QImode) && move_operand (operands[1], E_V16QImode) && #line 669 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1209; /* movv16qi_msa */ break; default: break; } operands[0] = x2; if (pattern17 (x3, E_DImode) == 0 && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return 434; /* use_cprestore_di */ if (GET_CODE (x2) != MEM) return -1; x4 = XEXP (x2, 0); if (GET_CODE (x4) == PLUS) { res = recog_46 (x1, insn, pnum_clobbers); if (res >= 0) return res; } operands[0] = x2; if (pattern17 (x3, E_SImode) == 0 && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return 433; /* use_cprestore_si */ if (GET_MODE (x2) != E_SImode || GET_CODE (x4) != PLUS) return -1; operands[0] = x3; if (!register_operand (operands[0], E_SImode)) return -1; x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (pattern153 (x4)) { case 0: if (!( #line 1131 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 946; /* mips_lwx_si */ case 1: if (!( #line 1131 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 948; /* mips_lwx_di */ default: return -1; } } static int recog_56 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_VECTOR: case REG: case SUBREG: operands[2] = x5; operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern0 (x3, E_SFmode) != 0 || ! #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 23; /* subsf3 */ case E_DFmode: if (pattern0 (x3, E_DFmode) != 0 || ! #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 24; /* subdf3 */ case E_V2SFmode: if (pattern0 (x3, E_V2SFmode) != 0 || ! #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 25; /* subv2sf3 */ case E_SImode: if (pattern0 (x3, E_SImode) != 0) return -1; return 26; /* subsi3 */ case E_DImode: if (pattern0 (x3, E_DImode) != 0 || ! #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 27; /* subdi3 */ case E_QQmode: if (pattern0 (x3, E_QQmode) != 0) return -1; return 1024; /* subqq3 */ case E_HQmode: if (pattern0 (x3, E_HQmode) != 0) return -1; return 1025; /* subhq3 */ case E_SQmode: if (pattern0 (x3, E_SQmode) != 0) return -1; return 1026; /* subsq3 */ case E_DQmode: if (pattern0 (x3, E_DQmode) != 0 || ! #line 22 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1027; /* subdq3 */ case E_UQQmode: if (pattern0 (x3, E_UQQmode) != 0) return -1; return 1028; /* subuqq3 */ case E_UHQmode: if (pattern0 (x3, E_UHQmode) != 0) return -1; return 1029; /* subuhq3 */ case E_USQmode: if (pattern0 (x3, E_USQmode) != 0) return -1; return 1030; /* subusq3 */ case E_UDQmode: if (pattern0 (x3, E_UDQmode) != 0 || ! #line 23 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1031; /* subudq3 */ case E_HAmode: if (pattern0 (x3, E_HAmode) != 0) return -1; return 1032; /* subha3 */ case E_SAmode: if (pattern0 (x3, E_SAmode) != 0) return -1; return 1033; /* subsa3 */ case E_DAmode: if (pattern0 (x3, E_DAmode) != 0 || ! #line 24 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1034; /* subda3 */ case E_UHAmode: if (pattern0 (x3, E_UHAmode) != 0) return -1; return 1035; /* subuha3 */ case E_USAmode: if (pattern0 (x3, E_USAmode) != 0) return -1; return 1036; /* subusa3 */ case E_UDAmode: if (pattern0 (x3, E_UDAmode) != 0 || ! #line 25 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1037; /* subuda3 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 595 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1135; /* subv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 595 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1136; /* subv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 595 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1137; /* subv8qi3 */ case E_V2DImode: if (pattern12 (x3, E_V2DImode) != 0 || ! #line 745 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1214; /* subv2di3 */ case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0 || ! #line 745 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1215; /* subv4si3 */ case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0 || ! #line 745 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1216; /* subv8hi3 */ case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0 || ! #line 745 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1217; /* subv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 938 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1276; /* subv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 938 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1277; /* subv4sf3 */ default: return -1; } case MULT: x6 = XEXP (x5, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[2] = x6; operands[1] = x4; x7 = XEXP (x5, 1); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_SImode: if (pnum_clobbers == NULL || pattern200 (x3, E_SImode) != 0) return -1; if ( #line 1856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MSAC)) { *pnum_clobbers = 1; return 45; /* *msac */ } if ( #line 1877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MSAC)) { *pnum_clobbers = 2; return 46; /* *msac_using_macc */ } if (! #line 2020 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB)) return -1; *pnum_clobbers = 2; return 49; /* *mul_sub_si */ case E_SFmode: if (pattern200 (x3, E_SFmode) != 0 || !( #line 2796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 126; /* *nmsub4sf_fastmath */ case E_DFmode: if (pattern200 (x3, E_DFmode) != 0 || !( #line 2796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 127; /* *nmsub4df_fastmath */ case E_V2SFmode: if (pattern200 (x3, E_V2SFmode) != 0 || !( #line 2796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 128; /* *nmsub4v2sf_fastmath */ case E_V2DImode: if (pattern200 (x3, E_V2DImode) != 0 || ! #line 777 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1226; /* msa_msubv_d */ case E_V4SImode: if (pattern200 (x3, E_V4SImode) != 0 || ! #line 777 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1227; /* msa_msubv_w */ case E_V8HImode: if (pattern200 (x3, E_V8HImode) != 0 || ! #line 777 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1228; /* msa_msubv_h */ case E_V16QImode: if (pattern200 (x3, E_V16QImode) != 0 || ! #line 777 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1229; /* msa_msubv_b */ default: return -1; } case SIGN_EXTEND: if (pattern107 (x3, SIGN_EXTEND) != 0 || ! #line 2264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && (ISA_HAS_MSAC || GENERATE_MADD_MSUB || ISA_HAS_DSP))) return -1; return 63; /* msubsidi4 */ case ZERO_EXTEND: if (pattern107 (x3, ZERO_EXTEND) != 0 || ! #line 2264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && (ISA_HAS_MSAC || GENERATE_MADD_MSUB || ISA_HAS_DSP))) return -1; return 64; /* umsubsidi4 */ default: return -1; } case PLUS: x6 = XEXP (x5, 0); if (GET_CODE (x6) != MULT) return -1; x7 = XEXP (x5, 1); if (GET_CODE (x7) != MULT) return -1; operands[1] = x4; x8 = XEXP (x6, 0); switch (GET_CODE (x8)) { case SIGN_EXTEND: switch (pattern168 (x3, SIGN_EXTEND)) { case 0: if (! #line 1470 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1412; /* msa_dpsub_s_d */ case 1: if (! #line 1500 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1414; /* msa_dpsub_s_w */ case 2: if (! #line 1538 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1416; /* msa_dpsub_s_h */ default: return -1; } case ZERO_EXTEND: switch (pattern168 (x3, ZERO_EXTEND)) { case 0: if (! #line 1470 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1413; /* msa_dpsub_u_d */ case 1: if (! #line 1500 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1415; /* msa_dpsub_u_w */ case 2: if (! #line 1538 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1417; /* msa_dpsub_u_h */ default: return -1; } default: return -1; } default: return -1; } case MULT: x9 = XEXP (x4, 1); operands[2] = x9; x5 = XEXP (x3, 1); operands[3] = x5; x10 = XEXP (x4, 0); switch (GET_CODE (x10)) { case REG: case SUBREG: operands[1] = x10; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern169 (x3, E_SFmode) != 0 || !( #line 2729 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 114; /* *msub4sf */ case E_DFmode: if (pattern169 (x3, E_DFmode) != 0 || !( #line 2729 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 115; /* *msub4df */ case E_V2SFmode: if (pattern169 (x3, E_V2SFmode) != 0 || !( #line 2729 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 116; /* *msub4v2sf */ default: return -1; } case NEG: x11 = XEXP (x10, 0); operands[1] = x11; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern170 (x3, E_SFmode) != 0 || !( #line 2780 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 123; /* *nmadd4sf_fastmath */ case E_DFmode: if (pattern170 (x3, E_DFmode) != 0 || !( #line 2780 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 124; /* *nmadd4df_fastmath */ case E_V2SFmode: if (pattern170 (x3, E_V2SFmode) != 0 || !( #line 2780 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 125; /* *nmadd4v2sf_fastmath */ default: return -1; } default: return -1; } case SIGN_EXTEND: switch (pattern31 (x3, SIGN_EXTEND)) { case 0: if (! #line 1874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1508; /* msa_hsub_s_h */ case 1: if (! #line 1892 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1512; /* msa_hsub_s_w */ case 2: if (! #line 1908 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1516; /* msa_hsub_s_d */ default: return -1; } case ZERO_EXTEND: switch (pattern31 (x3, ZERO_EXTEND)) { case 0: if (! #line 1874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1509; /* msa_hsub_u_h */ case 1: if (! #line 1892 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1513; /* msa_hsub_u_w */ case 2: if (! #line 1908 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1517; /* msa_hsub_u_d */ default: return -1; } default: return -1; } } static int recog_57 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case NE: case EQ: x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: res = recog_48 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case UNSPEC: res = recog_49 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; default: break; } switch (GET_CODE (x3)) { case EQ: switch (pattern78 (x1)) { case 0: if (! #line 6108 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 485; /* *branch_bit0si */ case 1: if (!( #line 6108 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 487; /* *branch_bit0di */ case 2: if (! #line 6128 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 489; /* *branch_bit0si_inverted */ case 3: if (!( #line 6128 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 491; /* *branch_bit0di_inverted */ case 4: x5 = XEXP (x3, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XEXP (x1, 0); operands[0] = x6; x7 = XEXP (x2, 1); operands[2] = x7; x8 = XEXP (x2, 2); operands[3] = x8; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern209 (x2, E_SImode)) { case 0: if (! #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode)))) return -1; return 690; /* *seleqsi_using_si */ case 1: if (!( #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode))) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 694; /* *seleqsi_using_di */ default: return -1; } case E_DImode: switch (pattern209 (x2, E_DImode)) { case 0: if (!( #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 692; /* *seleqdi_using_si */ case 1: if (!( #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 696; /* *seleqdi_using_di */ default: return -1; } default: return -1; } case 5: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1676; /* msa_bz_d_f */ case 6: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1678; /* msa_bz_w_f */ case 7: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1680; /* msa_bz_d */ case 8: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1682; /* msa_bz_w */ case 9: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1684; /* msa_bz_h */ case 10: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1686; /* msa_bz_b */ case 11: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1688; /* msa_bz_v_d_f */ case 12: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1690; /* msa_bz_v_w_f */ case 13: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1692; /* msa_bz_v_d */ case 14: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1694; /* msa_bz_v_w */ case 15: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1696; /* msa_bz_v_h */ case 16: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1698; /* msa_bz_v_b */ default: return -1; } case NE: switch (pattern78 (x1)) { case 0: if (! #line 6108 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 486; /* *branch_bit1si */ case 1: if (!( #line 6108 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 488; /* *branch_bit1di */ case 2: if (! #line 6128 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 490; /* *branch_bit1si_inverted */ case 3: if (!( #line 6128 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 492; /* *branch_bit1di_inverted */ case 4: x5 = XEXP (x3, 1); if (GET_CODE (x5) != CONST_INT) return -1; switch (XWINT (x5, 0)) { case 0L: x7 = XEXP (x2, 1); switch (GET_CODE (x7)) { case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: operands[2] = x7; x6 = XEXP (x1, 0); operands[0] = x6; x8 = XEXP (x2, 2); operands[3] = x8; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern209 (x2, E_SImode)) { case 0: if (! #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode)))) return -1; return 691; /* *selnesi_using_si */ case 1: if (!( #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode))) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 695; /* *selnesi_using_di */ default: return -1; } case E_DImode: switch (pattern209 (x2, E_DImode)) { case 0: if (!( #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 693; /* *selnedi_using_si */ case 1: if (!( #line 7386 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 697; /* *selnedi_using_di */ default: return -1; } case E_SFmode: if (pattern229 (x2, E_SFmode) != 0 || !( #line 7406 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 698; /* *selsf */ case E_DFmode: if (pattern229 (x2, E_DFmode) != 0 || !( #line 7406 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 699; /* *seldf */ default: return -1; } case LABEL_REF: switch (pattern182 (x1)) { case 0: if (! #line 572 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 830; /* bc1any4t */ case 1: if (! #line 594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 832; /* bc1any2t */ default: return -1; } default: return -1; } case -1L: x7 = XEXP (x2, 1); if (GET_CODE (x7) != LABEL_REF) return -1; switch (pattern182 (x1)) { case 0: if (! #line 583 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 831; /* bc1any4f */ case 1: if (! #line 605 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 833; /* bc1any2f */ default: return -1; } default: return -1; } case 5: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1677; /* msa_bnz_d_f */ case 6: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1679; /* msa_bnz_w_f */ case 7: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1681; /* msa_bnz_d */ case 8: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1683; /* msa_bnz_w */ case 9: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1685; /* msa_bnz_h */ case 10: if (! #line 2755 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1687; /* msa_bnz_b */ case 11: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1689; /* msa_bnz_v_d_f */ case 12: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1691; /* msa_bnz_v_w_f */ case 13: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1693; /* msa_bnz_v_d */ case 14: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1695; /* msa_bnz_v_w */ case 15: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1697; /* msa_bnz_v_h */ case 16: if (! #line 2776 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1699; /* msa_bnz_v_b */ default: return -1; } default: return -1; } case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: operands[1] = x3; if (order_operator (operands[1], E_VOIDmode)) { res = recog_50 (x1, insn, pnum_clobbers); if (res >= 0) return res; } switch (GET_CODE (x3)) { case GE: x4 = XEXP (x3, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 182 || GET_MODE (x4) != E_CCDSPmode) return -1; x7 = XEXP (x2, 1); if (GET_CODE (x7) != LABEL_REF) return -1; x8 = XEXP (x2, 2); if (GET_CODE (x8) != PC) return -1; x6 = XEXP (x1, 0); if (GET_CODE (x6) != PC) return -1; x5 = XEXP (x3, 1); operands[1] = x5; if (!immediate_operand (operands[1], E_SImode)) return -1; x9 = XEXP (x7, 0); operands[0] = x9; if (! #line 1154 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 954; /* mips_bposge */ case GT: switch (pattern80 (x1)) { case 0: if (! #line 1744 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1484; /* msa_fmax_a_d */ case 1: if (! #line 1744 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1485; /* msa_fmax_a_w */ case 2: if (! #line 2230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1542; /* msa_max_a_d */ case 3: if (! #line 2230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1543; /* msa_max_a_w */ case 4: if (! #line 2230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1544; /* msa_max_a_h */ case 5: if (! #line 2230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1545; /* msa_max_a_b */ default: return -1; } case LT: switch (pattern80 (x1)) { case 0: if (! #line 1765 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1488; /* msa_fmin_a_d */ case 1: if (! #line 1765 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1489; /* msa_fmin_a_w */ case 2: if (! #line 2264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1554; /* msa_min_a_d */ case 3: if (! #line 2264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1555; /* msa_min_a_w */ case 4: if (! #line 2264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1556; /* msa_min_a_h */ case 5: if (! #line 2264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1557; /* msa_min_a_b */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[1] = x3; x6 = XEXP (x1, 0); operands[0] = x6; x7 = XEXP (x2, 1); operands[2] = x7; x8 = XEXP (x2, 2); operands[3] = x8; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern157 (x2, E_SImode)) { case 0: if (! #line 7357 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE)) return -1; return 680; /* *movsi_on_si_ne */ case 1: if (!( #line 7357 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 682; /* *movsi_on_di_ne */ default: return -1; } case E_DImode: switch (pattern157 (x2, E_DImode)) { case 0: if (!( #line 7357 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 681; /* *movdi_on_si_ne */ case 1: if (!( #line 7357 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 683; /* *movdi_on_di_ne */ default: return -1; } default: return -1; } default: return -1; } } static int recog_58 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (XVECLEN (x2, 0)) { case 1: switch (XINT (x2, 1)) { case 39: x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x4 = XEXP (x1, 0); operands[0] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !( #line 5634 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 437; /* rdhwr_synci_step_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !( #line 5634 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 438; /* rdhwr_synci_step_di */ default: return -1; } case 48: switch (pattern42 (x1)) { case 0: if (! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 642; /* mips_rdpgpr_si */ case 1: if (! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 643; /* mips_rdpgpr_di */ default: return -1; } case 49: if (GET_MODE (x2) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_SImode)) return -1; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; if (!register_operand (operands[1], E_SImode)) return -1; return 644; /* cop0_move */ case 22: if (pnum_clobbers == NULL) return -1; x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XEXP (x1, 0); if (GET_CODE (x4) != REG) return -1; switch (pattern133 (x1, 28)) { case 0: if (!( #line 6832 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; *pnum_clobbers = 1; return 647; /* restore_gp_si */ case 1: if (!( #line 6832 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 1; return 648; /* restore_gp_di */ default: return -1; } case 25: if (GET_MODE (x2) != E_SImode) return -1; x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XEXP (x1, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 79 || GET_MODE (x4) != E_SImode || ! #line 6921 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT)) return -1; return 653; /* set_got_version */ case 12: if (GET_MODE (x2) != E_SImode) return -1; x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_SImode) || ! #line 7663 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 715; /* *mips_get_fcsr */ case 61: x4 = XEXP (x1, 0); operands[0] = x4; x3 = XVECEXP (x2, 0, 0); switch (GET_CODE (x3)) { case PLUS: x5 = XEXP (x3, 1); operands[1] = x5; x6 = XEXP (x3, 0); if (!rtx_equal_p (x6, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern180 (x2, E_SImode) != 0 || ! #line 114 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 731; /* sync_addsi */ case E_DImode: if (pattern180 (x2, E_DImode) != 0 || !( #line 114 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 732; /* sync_adddi */ default: return -1; } case MINUS: x5 = XEXP (x3, 1); operands[1] = x5; x6 = XEXP (x3, 0); if (!rtx_equal_p (x6, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern181 (x2, E_SImode) != 0 || ! #line 368 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 751; /* sync_subsi */ case E_DImode: if (pattern181 (x2, E_DImode) != 0 || !( #line 368 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 752; /* sync_subdi */ default: return -1; } case IOR: switch (pattern115 (x2)) { case 0: if (! #line 443 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 761; /* sync_iorsi */ case 1: if (!( #line 443 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 764; /* sync_iordi */ default: return -1; } case XOR: switch (pattern115 (x2)) { case 0: if (! #line 443 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 762; /* sync_xorsi */ case 1: if (!( #line 443 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 765; /* sync_xordi */ default: return -1; } case AND: switch (pattern115 (x2)) { case 0: if (! #line 443 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 763; /* sync_andsi */ case 1: if (!( #line 443 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 766; /* sync_anddi */ default: return -1; } case CONST_INT: case REG: case SUBREG: operands[1] = x3; switch (GET_MODE (operands[0])) { case E_SImode: if (!memory_operand (operands[0], E_SImode) || GET_MODE (x2) != E_SImode || !uns_arith_operand (operands[1], E_SImode) || ! #line 484 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 779; /* sync_nandsi */ case E_DImode: if (!memory_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !uns_arith_operand (operands[1], E_DImode) || !( #line 484 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 780; /* sync_nanddi */ default: return -1; } default: return -1; } case 242: if (GET_MODE (x2) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_SImode)) return -1; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; if (!const_uimm5_operand (operands[1], E_VOIDmode) || ! #line 2665 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1668; /* msa_cfcmsa */ default: return -1; } case 2: if (XINT (x2, 1) != 52) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; x7 = XVECEXP (x2, 0, 1); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern50 (x2, E_SImode) != 0 || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 631; /* probe_stack_range_si */ case E_DImode: if (pattern50 (x2, E_DImode) != 0 || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 632; /* probe_stack_range_di */ default: return -1; } case 3: if (pattern18 (x1, pnum_clobbers) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (GET_MODE (x8) != E_SImode) return -1; switch (GET_CODE (x8)) { case PLUS: x9 = XEXP (x8, 1); operands[3] = x9; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 733; /* sync_add_12 */ case MINUS: x9 = XEXP (x8, 1); operands[3] = x9; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 734; /* sync_sub_12 */ case IOR: x9 = XEXP (x8, 1); operands[3] = x9; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 735; /* sync_ior_12 */ case XOR: x9 = XEXP (x8, 1); operands[3] = x9; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 736; /* sync_xor_12 */ case AND: x9 = XEXP (x8, 1); operands[3] = x9; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 737; /* sync_and_12 */ default: return -1; } case 4: if (pattern18 (x1, pnum_clobbers) != 0) return -1; x11 = XVECEXP (x2, 0, 3); operands[3] = x11; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x8 = XVECEXP (x2, 0, 2); if (!rtx_equal_p (x8, operands[0]) || ! #line 268 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 748; /* sync_nand_12 */ default: return -1; } } static int recog_59 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; if (uns_arith_operand (operands[2], E_SImode) && #line 3394 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 189; /* *iorsi3 */ if (!register_operand (operands[2], E_SImode) || ! #line 3407 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 191; /* *iorsi3_mips16 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; if (uns_arith_operand (operands[2], E_DImode) && ( #line 3394 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 190; /* *iordi3 */ if (!register_operand (operands[2], E_DImode) || !( #line 3407 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 192; /* *iordi3_mips16 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 244 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1088; /* iorv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 244 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1089; /* iorv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 244 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1090; /* iorv8qi3 */ case E_V2DImode: if (pattern113 (x3, E_V2DImode) != 0 || ! #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1250; /* iorv2di3 */ case E_V4SImode: if (pattern113 (x3, E_V4SImode) != 0 || ! #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1251; /* iorv4si3 */ case E_V8HImode: if (pattern113 (x3, E_V8HImode) != 0 || ! #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1252; /* iorv8hi3 */ case E_V16QImode: if (pattern113 (x3, E_V16QImode) != 0 || ! #line 836 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1253; /* iorv16qi3 */ default: return -1; } case AND: x5 = XEXP (x3, 1); if (GET_CODE (x5) != AND) return -1; x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[2] = x6; x7 = XEXP (x5, 0); if (GET_CODE (x7) != NOT) return -1; x8 = XEXP (x4, 1); operands[3] = x8; x9 = XEXP (x5, 1); operands[1] = x9; x10 = XEXP (x7, 0); if (!rtx_equal_p (x10, operands[3])) return -1; switch (GET_MODE (operands[0])) { case E_V2DImode: if (pattern221 (x3, E_V2DImode) != 0 || ! #line 1157 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1352; /* msa_bmnz_d */ case E_V4SImode: if (pattern221 (x3, E_V4SImode) != 0 || ! #line 1157 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1353; /* msa_bmnz_w */ case E_V8HImode: if (pattern221 (x3, E_V8HImode) != 0 || ! #line 1157 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1354; /* msa_bmnz_h */ case E_V16QImode: if (pattern221 (x3, E_V16QImode) != 0 || ! #line 1157 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1355; /* msa_bmnz_b */ default: return -1; } case NOT: x8 = XEXP (x4, 1); operands[2] = x8; switch (GET_MODE (operands[0])) { case E_V2DImode: if (pattern152 (x3, E_V2DImode) != 0) return -1; x11 = XEXP (x6, 0); operands[3] = x11; if (reg_or_vector_same_val_operand (operands[3], E_V2DImode)) { x7 = XEXP (x5, 0); operands[1] = x7; if (register_operand (operands[1], E_V2DImode)) { x9 = XEXP (x5, 1); if (rtx_equal_p (x9, operands[3]) && #line 1171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1356; /* msa_bmz_d */ } } operands[1] = x11; if (!register_operand (operands[1], E_V2DImode)) return -1; x9 = XEXP (x5, 1); operands[3] = x9; if (!reg_or_vector_same_val_operand (operands[3], E_V2DImode)) return -1; x7 = XEXP (x5, 0); if (!rtx_equal_p (x7, operands[1]) || ! #line 1205 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1368; /* msa_bsel_d */ case E_V4SImode: if (pattern152 (x3, E_V4SImode) != 0) return -1; x11 = XEXP (x6, 0); operands[3] = x11; if (reg_or_vector_same_val_operand (operands[3], E_V4SImode)) { x7 = XEXP (x5, 0); operands[1] = x7; if (register_operand (operands[1], E_V4SImode)) { x9 = XEXP (x5, 1); if (rtx_equal_p (x9, operands[3]) && #line 1171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1357; /* msa_bmz_w */ } } operands[1] = x11; if (!register_operand (operands[1], E_V4SImode)) return -1; x9 = XEXP (x5, 1); operands[3] = x9; if (!reg_or_vector_same_val_operand (operands[3], E_V4SImode)) return -1; x7 = XEXP (x5, 0); if (!rtx_equal_p (x7, operands[1]) || ! #line 1205 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1369; /* msa_bsel_w */ case E_V8HImode: if (pattern152 (x3, E_V8HImode) != 0) return -1; x11 = XEXP (x6, 0); operands[3] = x11; if (reg_or_vector_same_val_operand (operands[3], E_V8HImode)) { x7 = XEXP (x5, 0); operands[1] = x7; if (register_operand (operands[1], E_V8HImode)) { x9 = XEXP (x5, 1); if (rtx_equal_p (x9, operands[3]) && #line 1171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1358; /* msa_bmz_h */ } } operands[1] = x11; if (!register_operand (operands[1], E_V8HImode)) return -1; x9 = XEXP (x5, 1); operands[3] = x9; if (!reg_or_vector_same_val_operand (operands[3], E_V8HImode)) return -1; x7 = XEXP (x5, 0); if (!rtx_equal_p (x7, operands[1]) || ! #line 1205 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1370; /* msa_bsel_h */ case E_V16QImode: if (pattern152 (x3, E_V16QImode) != 0) return -1; x11 = XEXP (x6, 0); operands[3] = x11; if (reg_or_vector_same_val_operand (operands[3], E_V16QImode)) { x7 = XEXP (x5, 0); operands[1] = x7; if (register_operand (operands[1], E_V16QImode)) { x9 = XEXP (x5, 1); if (rtx_equal_p (x9, operands[3]) && #line 1171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1359; /* msa_bmz_b */ } } operands[1] = x11; if (!register_operand (operands[1], E_V16QImode)) return -1; x9 = XEXP (x5, 1); operands[3] = x9; if (!reg_or_vector_same_val_operand (operands[3], E_V16QImode)) return -1; x7 = XEXP (x5, 0); if (!rtx_equal_p (x7, operands[1]) || ! #line 1205 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1371; /* msa_bsel_b */ default: return -1; } default: return -1; } default: return -1; } } static int recog_60 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case LSHIFTRT: x5 = XEXP (x4, 1); if (GET_CODE (x5) != CONST_INT) return -1; x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case MULT: x7 = XEXP (x6, 0); switch (GET_CODE (x7)) { case SIGN_EXTEND: switch (pattern135 (x3, SIGN_EXTEND)) { case 0: if ( #line 2311 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6MUL)) return 65; /* smulsi3_highpart_r6 */ if (pnum_clobbers == NULL) return -1; if ( #line 2324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)) { *pnum_clobbers = 1; return 67; /* smulsi3_highpart_internal */ } if (! #line 2372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; *pnum_clobbers = 1; return 69; /* smulsi3_highpart_mulhi_internal */ case 1: if ( #line 2425 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6DMUL)) return 73; /* smuldi3_highpart_r6 */ if (pnum_clobbers == NULL || ! #line 2438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; *pnum_clobbers = 1; return 75; /* smuldi3_highpart_internal */ default: return -1; } case ZERO_EXTEND: switch (pattern135 (x3, ZERO_EXTEND)) { case 0: if ( #line 2311 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6MUL)) return 66; /* umulsi3_highpart_r6 */ if (pnum_clobbers == NULL) return -1; if ( #line 2324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)) { *pnum_clobbers = 1; return 68; /* umulsi3_highpart_internal */ } if (! #line 2372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; *pnum_clobbers = 1; return 70; /* umulsi3_highpart_mulhi_internal */ case 1: if ( #line 2425 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6DMUL)) return 74; /* umuldi3_highpart_r6 */ if (pnum_clobbers == NULL || ! #line 2438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; *pnum_clobbers = 1; return 76; /* umuldi3_highpart_internal */ default: return -1; } default: return -1; } case NEG: if (pnum_clobbers == NULL || GET_MODE (x6) != E_DImode) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != MULT || GET_MODE (x7) != E_DImode || XWINT (x5, 0) != 32L || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || GET_MODE (x4) != E_DImode) return -1; x8 = XEXP (x7, 0); if (GET_MODE (x8) != E_DImode) return -1; x9 = XEXP (x7, 1); if (GET_MODE (x9) != E_DImode) return -1; switch (GET_CODE (x8)) { case SIGN_EXTEND: if (GET_CODE (x9) != SIGN_EXTEND) return -1; x10 = XEXP (x8, 0); operands[1] = x10; if (!register_operand (operands[1], E_SImode)) return -1; x11 = XEXP (x9, 0); operands[2] = x11; if (!register_operand (operands[2], E_SImode) || ! #line 2387 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; *pnum_clobbers = 1; return 71; /* *smulsi3_highpart_neg_mulhi_internal */ case ZERO_EXTEND: if (GET_CODE (x9) != ZERO_EXTEND) return -1; x10 = XEXP (x8, 0); operands[1] = x10; if (!register_operand (operands[1], E_SImode)) return -1; x11 = XEXP (x9, 0); operands[2] = x11; if (!register_operand (operands[2], E_SImode) || ! #line 2387 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; *pnum_clobbers = 1; return 72; /* *umulsi3_highpart_neg_mulhi_internal */ default: return -1; } case REG: case SUBREG: operands[1] = x6; if (!register_operand (operands[1], E_DImode) || GET_MODE (x4) != E_DImode) return -1; if (XWINT (x5, 0) == 32L) { switch (pattern175 (x3)) { case 0: if ( #line 3513 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 206; /* *lshr32_truncqi */ break; case 1: if ( #line 3513 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 207; /* *lshr32_trunchi */ break; case 2: if ( #line 3513 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 208; /* *lshr32_truncsi */ break; default: break; } } operands[2] = x5; if (!const_arith_operand (operands[2], E_DImode)) return -1; switch (pattern175 (x3)) { case 0: if (! #line 3526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 210; /* *lshr_truncqi_exts */ case 1: if (! #line 3526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 212; /* *lshr_trunchi_exts */ case 2: if (! #line 3526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 214; /* *lshr_truncsi_exts */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_DImode)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!nonimmediate_operand (operands[0], E_QImode) || GET_MODE (x3) != E_QImode || ! #line 3489 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 200; /* truncdiqi2 */ case E_HImode: if (!nonimmediate_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || ! #line 3489 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 201; /* truncdihi2 */ case E_SImode: if (!nonimmediate_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || ! #line 3489 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 202; /* truncdisi2 */ default: return -1; } case ASHIFTRT: if (GET_MODE (x4) != E_DImode) return -1; x6 = XEXP (x4, 0); operands[1] = x6; if (!register_operand (operands[1], E_DImode)) return -1; x5 = XEXP (x4, 1); operands[2] = x5; if (!const_arith_operand (operands[2], E_DImode)) return -1; switch (pattern175 (x3)) { case 0: if ( #line 3503 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && IN_RANGE (INTVAL (operands[2]), 32, 63))) return 203; /* *ashr_truncqi */ if (! #line 3526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 209; /* *ashr_truncqi_exts */ case 1: if ( #line 3503 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && IN_RANGE (INTVAL (operands[2]), 32, 63))) return 204; /* *ashr_trunchi */ if (! #line 3526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 211; /* *ashr_trunchi_exts */ case 2: if ( #line 3503 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && IN_RANGE (INTVAL (operands[2]), 32, 63))) return 205; /* *ashr_truncsi */ if (! #line 3526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 213; /* *ashr_truncsi_exts */ default: return -1; } case ZERO_EXTRACT: if (GET_MODE (x4) != E_DImode || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; x6 = XEXP (x4, 0); operands[1] = x6; if (!register_operand (operands[1], E_DImode)) return -1; x5 = XEXP (x4, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x12 = XEXP (x4, 2); operands[3] = x12; if (!const_int_operand (operands[3], E_VOIDmode) || ! #line 4352 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && IN_RANGE (INTVAL (operands[2]), 32, 63))) return -1; return 278; /* *extzv_truncsi_exts */ default: return -1; } } static int recog_61 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern0 (x3, E_SFmode) != 0) return -1; if (( #line 1531 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_4300_MUL_FIX) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 29; /* *mulsf3 */ if (!( #line 1544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_4300_MUL_FIX) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 31; /* *mulsf3_r4300 */ case E_DFmode: if (pattern0 (x3, E_DFmode) != 0) return -1; if (( #line 1531 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_4300_MUL_FIX) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 30; /* *muldf3 */ if (!( #line 1544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_4300_MUL_FIX) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 32; /* *muldf3_r4300 */ case E_V2SFmode: if (pattern0 (x3, E_V2SFmode) != 0 || ! #line 1554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 33; /* mulv2sf3 */ case E_SImode: if (GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; if (register_operand (operands[0], E_SImode)) { if ( #line 1636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6MUL)) return 34; /* mulsi3_mul3_nohilo */ if (pnum_clobbers != NULL && #line 1653 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MUL3)) { *pnum_clobbers = 1; return 36; /* mulsi3_mul3 */ } } if (muldiv_target_operand (operands[0], E_SImode) && #line 1691 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !TARGET_FIX_R4000)) return 38; /* mulsi3_internal */ if (pnum_clobbers == NULL || !register_operand (operands[0], E_SImode) || ! #line 1701 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && TARGET_FIX_R4000)) return -1; *pnum_clobbers = 1; return 40; /* mulsi3_r4000 */ case E_DImode: if (GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode)) return -1; if (register_operand (operands[0], E_DImode)) { if (( #line 1636 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DMUL) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 35; /* muldi3_mul3_nohilo */ if (pnum_clobbers != NULL && ( #line 1653 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) { *pnum_clobbers = 1; return 37; /* muldi3_mul3 */ } } if (muldiv_target_operand (operands[0], E_DImode) && ( #line 1691 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_FIX_R4000) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 39; /* muldi3_internal */ if (pnum_clobbers == NULL || !register_operand (operands[0], E_DImode) || !( #line 1701 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; *pnum_clobbers = 1; return 41; /* muldi3_r4000 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 502 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1122; /* mulv4hi3 */ case E_V2DImode: if (pattern0 (x3, E_V2DImode) != 0 || ! #line 757 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1218; /* mulv2di3 */ case E_V4SImode: if (pattern0 (x3, E_V4SImode) != 0 || ! #line 757 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1219; /* mulv4si3 */ case E_V8HImode: if (pattern0 (x3, E_V8HImode) != 0 || ! #line 757 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1220; /* mulv8hi3 */ case E_V16QImode: if (pattern0 (x3, E_V16QImode) != 0 || ! #line 757 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1221; /* mulv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 947 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1278; /* mulv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 947 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1279; /* mulv4sf3 */ default: return -1; } case SIGN_EXTEND: switch (pattern36 (x3, SIGN_EXTEND)) { case 0: if (muldiv_target_operand (operands[0], E_DImode) && #line 2118 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && (!TARGET_FIX_R4000 || ISA_HAS_DSP) && ISA_HAS_MULT)) return 51; /* mulsidi3_32bit */ if (!register_operand (operands[0], E_DImode)) return -1; if (pnum_clobbers != NULL) { if ( #line 2133 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_FIX_R4000 && !ISA_HAS_DSP && ISA_HAS_MULT)) { *pnum_clobbers = 1; return 53; /* mulsidi3_32bit_r4000 */ } if ( #line 2145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT)) { *pnum_clobbers = 2; return 55; /* mulsidi3_64bit */ } if ( #line 2224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3)) { *pnum_clobbers = 1; return 59; /* mulsidi3_64bit_dmul */ } } if (! #line 2233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6DMUL)) return -1; return 60; /* mulsidi3_64bit_r6dmul */ case 1: if (muldiv_target_operand (operands[0], E_TImode) && #line 2505 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_FIX_R4000 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return 77; /* mulditi3_internal */ if (pnum_clobbers == NULL || !register_operand (operands[0], E_TImode) || ! #line 2517 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; *pnum_clobbers = 1; return 79; /* mulditi3_r4000 */ default: return -1; } case ZERO_EXTEND: switch (pattern36 (x3, ZERO_EXTEND)) { case 0: if (muldiv_target_operand (operands[0], E_DImode) && #line 2118 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && (!TARGET_FIX_R4000 || ISA_HAS_DSP) && ISA_HAS_MULT)) return 52; /* umulsidi3_32bit */ if (pnum_clobbers == NULL || !register_operand (operands[0], E_DImode)) return -1; if ( #line 2133 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_FIX_R4000 && !ISA_HAS_DSP && ISA_HAS_MULT)) { *pnum_clobbers = 1; return 54; /* umulsidi3_32bit_r4000 */ } if (! #line 2145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT)) return -1; *pnum_clobbers = 2; return 56; /* umulsidi3_64bit */ case 1: if (muldiv_target_operand (operands[0], E_TImode) && #line 2505 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_FIX_R4000 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return 78; /* umulditi3_internal */ if (pnum_clobbers == NULL || !register_operand (operands[0], E_TImode) || ! #line 2517 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; *pnum_clobbers = 1; return 80; /* umulditi3_r4000 */ default: return -1; } default: return -1; } } static int recog_62 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case PLUS: if (pattern32 (x3) != 0) return -1; if ( #line 1420 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 17; /* *addsi3_extended */ if (! #line 1434 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 18; /* *addsi3_extended_mips16 */ case MINUS: if (pattern33 (x3, E_SImode, E_DImode) != 0) return -1; x5 = XEXP (x4, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode) || ! #line 1507 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 28; /* *subsi3_extended */ case REG: case SUBREG: case MEM: operands[1] = x4; switch (pattern97 (x3)) { case 0: if ( #line 3751 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return 237; /* extendsidi2 */ break; case 1: if (( #line 3773 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 239; /* *extendqidi2_mips16e */ if (( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 243; /* *extendqidi2 */ if (( #line 3803 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 247; /* *extendqidi2_seb */ break; case 2: if (( #line 3773 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 241; /* *extendhidi2_mips16e */ if (( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 245; /* *extendhidi2 */ if (( #line 3803 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 249; /* *extendhidi2_seh */ break; case 3: if ( #line 3773 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 238; /* *extendqisi2_mips16e */ if ( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E)) return 242; /* *extendqisi2 */ if ( #line 3803 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH)) return 246; /* *extendqisi2_seb */ break; case 4: if ( #line 3773 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 240; /* *extendhisi2_mips16e */ if ( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E)) return 244; /* *extendhisi2 */ if ( #line 3803 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH)) return 248; /* *extendhisi2_seh */ break; case 5: if ( #line 3818 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 250; /* *extendqihi2_mips16e */ if ( #line 3829 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E)) return 251; /* *extendqihi2 */ if ( #line 3849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH)) return 252; /* *extendqihi2_seb */ break; default: break; } if (GET_CODE (x4) != MEM) return -1; switch (pattern99 (x3)) { case 0: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 930; /* mips_lbx_extsi_si */ case 1: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 938; /* mips_lbx_extsi_di */ case 2: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 934; /* mips_lhx_extsi_si */ case 3: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 942; /* mips_lhx_extsi_di */ case 4: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 932; /* mips_lbx_extdi_si */ case 5: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 940; /* mips_lbx_extdi_di */ case 6: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 936; /* mips_lhx_extdi_si */ case 7: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 944; /* mips_lhx_extdi_di */ case 8: if (!( #line 1141 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX && TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 950; /* *mips_lwx_si_ext */ case 9: if (!( #line 1141 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX && TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 952; /* *mips_lwx_di_ext */ default: return -1; } case TRUNCATE: switch (pattern34 (x3)) { case 0: if ( #line 3863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 253; /* *extenddi_truncateqi */ if (!( #line 3922 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 259; /* *extenddi_truncateqi_exts */ case 1: if ( #line 3863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 254; /* *extenddi_truncatehi */ if (!( #line 3922 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 261; /* *extenddi_truncatehi_exts */ case 2: if ( #line 3883 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 255; /* *extendsi_truncateqi */ if (! #line 3922 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS)) return -1; return 258; /* *extendsi_truncateqi_exts */ case 3: if ( #line 3883 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 256; /* *extendsi_truncatehi */ if (! #line 3922 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS)) return -1; return 260; /* *extendsi_truncatehi_exts */ case 4: if ( #line 3903 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 257; /* *extendhi_truncateqi */ if (! #line 3934 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS)) return -1; return 262; /* *extendhi_truncateqi_exts */ default: return -1; } case ASHIFT: if (pattern32 (x3) != 0 || ! #line 5747 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 449; /* *ashlsi3_extend */ case ASHIFTRT: if (pattern32 (x3) != 0 || ! #line 5747 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 450; /* *ashrsi3_extend */ case LSHIFTRT: if (pattern32 (x3) != 0 || ! #line 5747 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 451; /* *lshrsi3_extend */ case VEC_SELECT: x5 = XEXP (x4, 1); if (GET_CODE (x5) != PARALLEL || XVECLEN (x5, 0) != 1) return -1; x6 = XEXP (x4, 0); operands[1] = x6; x7 = XVECEXP (x5, 0, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern166 (x3)) { case 0: if (! #line 533 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1185; /* msa_copy_s_h */ case 1: if (! #line 533 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1187; /* msa_copy_s_b */ default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !const_0_to_3_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 555 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA && TARGET_64BIT)) return -1; return 1190; /* msa_copy_s_w_64bit */ case E_SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 555 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA && TARGET_64BIT)) return -1; return 1191; /* msa_copy_s_w_f_64bit */ default: return -1; } default: return -1; } default: return -1; } } static int recog_63 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != VEC_DUPLICATE) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XEXP (x2, 1); operands[2] = x5; x6 = XEXP (x2, 2); operands[3] = x6; x7 = XEXP (x3, 0); switch (GET_CODE (x7)) { case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: operands[1] = x7; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x2) != E_V2DFmode || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[2], E_V2DFmode) || !const_exp_2_operand (operands[3], E_VOIDmode)) return -1; if (reg_or_0_operand (operands[1], E_DFmode) && #line 471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1171; /* msa_insert_d_f */ if (!register_operand (operands[1], E_DFmode) || ! #line 522 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1183; /* msa_insve_d_f_scalar */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x2) != E_V4SFmode || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[2], E_V4SFmode) || !const_exp_4_operand (operands[3], E_VOIDmode)) return -1; if (reg_or_0_operand (operands[1], E_SFmode) && #line 471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1172; /* msa_insert_w_f */ if (!register_operand (operands[1], E_SFmode) || ! #line 522 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1184; /* msa_insve_w_f_scalar */ case E_V2DImode: if (pattern183 (x2, E_DImode, E_V2DImode) != 0 || !register_operand (operands[2], E_V2DImode) || !const_exp_2_operand (operands[3], E_VOIDmode) || ! #line 471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1173; /* msa_insert_d */ case E_V4SImode: if (pattern183 (x2, E_SImode, E_V4SImode) != 0 || !register_operand (operands[2], E_V4SImode) || !const_exp_4_operand (operands[3], E_VOIDmode) || ! #line 471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1174; /* msa_insert_w */ case E_V8HImode: if (pattern183 (x2, E_HImode, E_V8HImode) != 0 || !register_operand (operands[2], E_V8HImode) || !const_exp_8_operand (operands[3], E_VOIDmode) || ! #line 471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1175; /* msa_insert_h */ case E_V16QImode: if (pattern183 (x2, E_QImode, E_V16QImode) != 0 || !register_operand (operands[2], E_V16QImode) || !const_exp_16_operand (operands[3], E_VOIDmode) || ! #line 471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1176; /* msa_insert_b */ default: return -1; } case VEC_SELECT: x8 = XEXP (x7, 1); if (GET_CODE (x8) != PARALLEL || XVECLEN (x8, 0) != 1) return -1; x9 = XVECEXP (x8, 0, 0); if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x10 = XEXP (x7, 0); operands[1] = x10; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern225 (x2, E_V2DFmode, E_DFmode) != 0 || ! #line 509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1177; /* msa_insve_d_f */ case E_V4SFmode: if (pattern226 (x2, E_V4SFmode, E_SFmode) != 0 || ! #line 509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1178; /* msa_insve_w_f */ case E_V2DImode: if (pattern225 (x2, E_V2DImode, E_DImode) != 0 || ! #line 509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1179; /* msa_insve_d */ case E_V4SImode: if (pattern226 (x2, E_V4SImode, E_SImode) != 0 || ! #line 509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1180; /* msa_insve_w */ case E_V8HImode: if (pattern227 (x2, E_V8HImode, E_HImode) != 0 || !register_operand (operands[2], E_V8HImode) || !const_exp_8_operand (operands[3], E_VOIDmode) || ! #line 509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1181; /* msa_insve_h */ case E_V16QImode: if (pattern227 (x2, E_V16QImode, E_QImode) != 0 || !register_operand (operands[2], E_V16QImode) || !const_exp_16_operand (operands[3], E_VOIDmode) || ! #line 509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1182; /* msa_insve_b */ default: return -1; } default: return -1; } } static int recog_64 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); if (GET_CODE (x3) != PARALLEL) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XEXP (x2, 0); switch (GET_CODE (x5)) { case VEC_CONCAT: return recog_52 (x1, insn, pnum_clobbers); case REG: case SUBREG: operands[1] = x5; if (XVECLEN (x3, 0) == 1) { x6 = XVECEXP (x3, 0, 0); if (GET_CODE (x6) == CONST_INT) { operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern203 (x2, E_V2SFmode, E_SFmode) == 0 && #line 277 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return 803; /* vec_extractv2sfsf */ break; case E_SImode: if (pattern204 (x2, E_V4SImode, E_SImode) == 0 && #line 565 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1192; /* msa_copy_s_w */ break; case E_DImode: if (pattern203 (x2, E_V2DImode, E_DImode) == 0 && #line 575 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1194; /* msa_copy_s_d */ break; default: break; } if (XWINT (x6, 0) == 0L) { switch (GET_MODE (operands[0])) { case E_SImode: if (register_operand (operands[0], E_SImode) && GET_MODE (x2) == E_SImode && register_operand (operands[1], E_V2SImode) && #line 846 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1163; /* vec_loongson_extract_lo_v2si */ break; case E_HImode: if (register_operand (operands[0], E_HImode) && GET_MODE (x2) == E_HImode && register_operand (operands[1], E_V4HImode) && #line 846 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1164; /* vec_loongson_extract_lo_v4hi */ break; case E_QImode: if (register_operand (operands[0], E_QImode) && GET_MODE (x2) == E_QImode && register_operand (operands[1], E_V8QImode) && #line 846 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1165; /* vec_loongson_extract_lo_v8qi */ break; case E_DFmode: if (register_operand (operands[0], E_DFmode) && GET_MODE (x2) == E_DFmode && register_operand (operands[1], E_V2DFmode) && #line 369 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1169; /* msa_vec_extract_d_f */ break; case E_SFmode: if (register_operand (operands[0], E_SFmode) && GET_MODE (x2) == E_SFmode && register_operand (operands[1], E_V4SFmode) && #line 369 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1170; /* msa_vec_extract_w_f */ break; default: break; } } operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern204 (x2, E_V4SFmode, E_SFmode) == 0 && #line 565 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1193; /* msa_copy_s_w_f */ break; case E_DFmode: if (pattern203 (x2, E_V2DFmode, E_DFmode) == 0 && #line 575 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1195; /* msa_copy_s_d_f */ break; default: break; } } } operands[2] = x3; if (!par_const_vector_shf_set_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x2) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 2514 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1606; /* msa_shf_w */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x2) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 2514 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1607; /* msa_shf_h */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x2) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 2514 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1608; /* msa_shf_b */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x2) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 2514 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1609; /* msa_shf_w_f */ default: return -1; } default: return -1; } } static int recog_65 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: case MEM: operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern137 (x3, E_SImode) != 0) return -1; if ( #line 3317 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && and_operands_ok (SImode, operands[1], operands[2]))) return 185; /* *andsi3 */ if (! #line 3356 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && and_operands_ok (SImode, operands[1], operands[2]))) return -1; return 187; /* *andsi3_mips16 */ case E_DImode: if (pattern137 (x3, E_DImode) != 0) return -1; if (( #line 3317 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && and_operands_ok (DImode, operands[1], operands[2])) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 186; /* *anddi3 */ if (!( #line 3356 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && and_operands_ok (DImode, operands[1], operands[2])) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 188; /* *anddi3_mips16 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 235 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1085; /* andv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 235 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1086; /* andv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 235 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1087; /* andv8qi3 */ case E_V2DImode: if (pattern113 (x3, E_V2DImode) != 0 || ! #line 849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1254; /* andv2di3 */ case E_V4SImode: if (pattern113 (x3, E_V4SImode) != 0 || ! #line 849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1255; /* andv4si3 */ case E_V8HImode: if (pattern113 (x3, E_V8HImode) != 0 || ! #line 849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1256; /* andv8hi3 */ case E_V16QImode: if (pattern113 (x3, E_V16QImode) != 0 || ! #line 849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1257; /* andv16qi3 */ default: return -1; } case NOT: x6 = XEXP (x4, 0); operands[1] = x6; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case NOT: x7 = XEXP (x5, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern28 (x3, E_SImode) != 0 || ! #line 3450 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 197; /* *norsi3 */ case E_DImode: if (pattern28 (x3, E_DImode) != 0 || !( #line 3450 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 198; /* *nordi3 */ case E_V2SImode: if (pattern28 (x3, E_V2SImode) != 0 || ! #line 263 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1094; /* *loongson_nor */ case E_V4HImode: if (pattern28 (x3, E_V4HImode) != 0 || ! #line 263 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1095; /* *loongson_nor */ case E_V8QImode: if (pattern28 (x3, E_V8QImode) != 0 || ! #line 263 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1096; /* *loongson_nor */ case E_V2DImode: if (pattern149 (x3, E_V2DImode) != 0 || ! #line 2354 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1582; /* msa_nor_d */ case E_V4SImode: if (pattern149 (x3, E_V4SImode) != 0 || ! #line 2354 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1583; /* msa_nor_w */ case E_V8HImode: if (pattern149 (x3, E_V8HImode) != 0 || ! #line 2354 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1584; /* msa_nor_h */ case E_V16QImode: if (pattern149 (x3, E_V16QImode) != 0 || ! #line 2354 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1585; /* msa_nor_b */ default: return -1; } case REG: case SUBREG: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern150 (x3, E_V2SImode) != 0 || ! #line 226 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1081; /* loongson_pandn_w */ case E_V4HImode: if (pattern150 (x3, E_V4HImode) != 0 || ! #line 226 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1082; /* loongson_pandn_h */ case E_V8QImode: if (pattern150 (x3, E_V8QImode) != 0 || ! #line 226 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1083; /* loongson_pandn_b */ case E_DImode: if (pattern150 (x3, E_DImode) != 0 || ! #line 226 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1084; /* loongson_pandn_d */ default: return -1; } default: return -1; } case ASHIFT: x6 = XEXP (x4, 0); operands[1] = x6; x8 = XEXP (x4, 1); operands[2] = x8; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern151 (x3, E_SImode) != 0 || ! #line 4408 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CINS && mask_low_and_shift_p (SImode, operands[3], operands[2], 32))) return -1; return 281; /* *cinssi */ case E_DImode: if (pattern151 (x3, E_DImode) != 0 || !( #line 4408 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CINS && mask_low_and_shift_p (DImode, operands[3], operands[2], 32)) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 282; /* *cinsdi */ default: return -1; } default: return -1; } } static int recog_66 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 1); operands[2] = x4; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[1] = x5; x6 = XEXP (x3, 2); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[3] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern176 (x3, E_SFmode) != 0) return -1; if (( #line 2578 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 84; /* *fmasf4_madd3 */ if (( #line 2588 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 87; /* *fmasf4_madd4 */ if (!( #line 2598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADDF) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 90; /* *fmasf4_maddf */ case E_DFmode: if (pattern176 (x3, E_DFmode) != 0) return -1; if (( #line 2578 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 85; /* *fmadf4_madd3 */ if (( #line 2588 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 88; /* *fmadf4_madd4 */ if (!( #line 2598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADDF) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 91; /* *fmadf4_maddf */ case E_V2SFmode: if (pattern176 (x3, E_V2SFmode) != 0) return -1; if (( #line 2578 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 86; /* *fmav2sf4_madd3 */ if (( #line 2588 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 89; /* *fmav2sf4_madd4 */ if (!( #line 2598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADDF) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 92; /* *fmav2sf4_maddf */ case E_V2DFmode: if (pattern176 (x3, E_V2DFmode) != 0 || ! #line 966 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1282; /* fmav2df4 */ case E_V4SFmode: if (pattern176 (x3, E_V4SFmode) != 0 || ! #line 966 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1283; /* fmav4sf4 */ default: return -1; } case NEG: x7 = XEXP (x6, 0); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern177 (x3, E_SFmode) != 0) return -1; if (( #line 2622 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 93; /* *fmssf4_msub3 */ if (!( #line 2632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 96; /* *fmssf4_msub4 */ case E_DFmode: if (pattern177 (x3, E_DFmode) != 0) return -1; if (( #line 2622 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 94; /* *fmsdf4_msub3 */ if (!( #line 2632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 97; /* *fmsdf4_msub4 */ case E_V2SFmode: if (pattern177 (x3, E_V2SFmode) != 0) return -1; if (( #line 2622 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 95; /* *fmsv2sf4_msub3 */ if (!( #line 2632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 98; /* *fmsv2sf4_msub4 */ default: return -1; } default: return -1; } case NEG: x8 = XEXP (x5, 0); operands[1] = x8; x6 = XEXP (x3, 2); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[3] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern178 (x3, E_SFmode) != 0) return -1; if (( #line 2656 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 99; /* *fnmasf4_nmsub3 */ if (!( #line 2666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 102; /* *fnmasf4_nmsub4 */ case E_DFmode: if (pattern178 (x3, E_DFmode) != 0) return -1; if (( #line 2656 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 100; /* *fnmadf4_nmsub3 */ if (!( #line 2666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 103; /* *fnmadf4_nmsub4 */ case E_V2SFmode: if (pattern178 (x3, E_V2SFmode) != 0) return -1; if (( #line 2656 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 101; /* *fnmav2sf4_nmsub3 */ if (!( #line 2666 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 104; /* *fnmav2sf4_nmsub4 */ case E_V2DFmode: if (pattern178 (x3, E_V2DFmode) != 0 || ! #line 976 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1284; /* fnmav2df4 */ case E_V4SFmode: if (pattern178 (x3, E_V4SFmode) != 0 || ! #line 976 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1285; /* fnmav4sf4 */ default: return -1; } case NEG: x7 = XEXP (x6, 0); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern179 (x3, E_SFmode) != 0) return -1; if (( #line 2692 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 105; /* *fnmssf4_nmadd3 */ if (!( #line 2703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 108; /* *fnmssf4_nmadd4 */ case E_DFmode: if (pattern179 (x3, E_DFmode) != 0) return -1; if (( #line 2692 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 106; /* *fnmsdf4_nmadd3 */ if (!( #line 2703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 109; /* *fnmsdf4_nmadd4 */ case E_V2SFmode: if (pattern179 (x3, E_V2SFmode) != 0) return -1; if (( #line 2692 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 107; /* *fnmsv2sf4_nmadd3 */ if (!( #line 2703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 110; /* *fnmsv2sf4_nmadd4 */ default: return -1; } default: return -1; } default: return -1; } } static int recog_67 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: case MEM: if (GET_CODE (x4) == SUBREG) { res = recog_1 (x1, insn, pnum_clobbers); if (res >= 0) return res; } operands[1] = x4; res = recog_2 (x1, insn, pnum_clobbers); if (res >= 0) return res; if (GET_CODE (x4) != MEM) return -1; switch (pattern99 (x3)) { case 0: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 931; /* mips_lbux_extsi_si */ case 1: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 939; /* mips_lbux_extsi_di */ case 2: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 935; /* mips_lhux_extsi_si */ case 3: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 943; /* mips_lhux_extsi_di */ case 4: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 933; /* mips_lbux_extdi_si */ case 5: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 941; /* mips_lbux_extdi_di */ case 6: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 937; /* mips_lhux_extdi_si */ case 7: if (!( #line 1098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && ((( #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 945; /* mips_lhux_extdi_di */ case 8: if (!( #line 1141 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWUX && TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 951; /* *mips_lwux_si_ext */ case 9: if (!( #line 1141 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWUX && TARGET_64BIT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 953; /* *mips_lwux_di_ext */ default: return -1; } case TRUNCATE: x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case PLUS: if (GET_MODE (x5) != E_DImode || GET_MODE (x4) != E_QImode) return -1; x6 = XEXP (x5, 0); operands[1] = x6; if (!register_operand (operands[1], E_DImode)) return -1; x7 = XEXP (x5, 1); operands[2] = x7; if (!register_operand (operands[2], E_DImode)) return -1; switch (pattern39 (x3)) { case 0: if (! #line 1471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && TARGET_64BIT)) return -1; return 21; /* *baddu_disi */ case 1: if (!( #line 1471 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && TARGET_64BIT) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 22; /* *baddu_didi */ default: return -1; } case REG: case SUBREG: operands[1] = x5; if (!register_operand (operands[1], E_DImode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; switch (GET_MODE (x4)) { case E_QImode: if (! #line 3708 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 232; /* *zero_extendsi_truncqi */ case E_HImode: if (! #line 3708 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 234; /* *zero_extendsi_trunchi */ default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return -1; switch (GET_MODE (x4)) { case E_QImode: if (!( #line 3708 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 233; /* *zero_extenddi_truncqi */ case E_HImode: if (!( #line 3708 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 235; /* *zero_extenddi_trunchi */ default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || GET_MODE (x4) != E_QImode || ! #line 3720 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 236; /* *zero_extendhi_truncqi */ default: return -1; } default: return -1; } case VEC_SELECT: x8 = XEXP (x4, 1); if (GET_CODE (x8) != PARALLEL || XVECLEN (x8, 0) != 1) return -1; x5 = XEXP (x4, 0); operands[1] = x5; x9 = XVECEXP (x8, 0, 0); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern166 (x3)) { case 0: if (! #line 533 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1186; /* msa_copy_u_h */ case 1: if (! #line 533 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1188; /* msa_copy_u_b */ default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || GET_MODE (x4) != E_SImode || !register_operand (operands[1], E_V4SImode) || !const_0_to_3_operand (operands[2], E_VOIDmode) || ! #line 544 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA && TARGET_64BIT)) return -1; return 1189; /* msa_copy_u_w */ default: return -1; } default: return -1; } } static int recog_68 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !reg_or_0_operand (operands[1], E_DFmode) || ! #line 1695 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1474; /* msa_fill_d_f */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !reg_or_0_operand (operands[1], E_SFmode) || ! #line 1695 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1475; /* msa_fill_w_f */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !reg_or_0_operand (operands[1], E_DImode) || ! #line 1695 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1476; /* msa_fill_d */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !reg_or_0_operand (operands[1], E_SImode) || ! #line 1695 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1477; /* msa_fill_w */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !reg_or_0_operand (operands[1], E_HImode) || ! #line 1695 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1478; /* msa_fill_h */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !reg_or_0_operand (operands[1], E_QImode) || ! #line 1695 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1479; /* msa_fill_b */ default: return -1; } case VEC_SELECT: x5 = XEXP (x4, 1); if (GET_CODE (x5) != PARALLEL || XVECLEN (x5, 0) != 1) return -1; x6 = XEXP (x4, 0); operands[1] = x6; x7 = XVECEXP (x5, 0, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern184 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 2647 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1660; /* msa_splati_d_f */ case E_V4SFmode: if (pattern185 (x3, E_V4SFmode, E_SFmode) != 0 || ! #line 2647 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1661; /* msa_splati_w_f */ case E_V2DImode: if (pattern184 (x3, E_V2DImode, E_DImode) != 0 || ! #line 2647 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1662; /* msa_splati_d */ case E_V4SImode: if (pattern185 (x3, E_V4SImode, E_SImode) != 0 || ! #line 2647 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1663; /* msa_splati_w */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || GET_MODE (x4) != E_HImode || !register_operand (operands[1], E_V8HImode) || !const_uimm3_operand (operands[2], E_VOIDmode) || ! #line 2647 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1664; /* msa_splati_h */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || GET_MODE (x4) != E_QImode || !register_operand (operands[1], E_V16QImode) || !const_uimm4_operand (operands[2], E_VOIDmode) || ! #line 2647 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1665; /* msa_splati_b */ default: return -1; } default: return -1; } } static int recog_69 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case MULT: x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: if (pnum_clobbers == NULL) return -1; operands[1] = x5; if (!register_operand (operands[1], E_SImode) || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || GET_MODE (x4) != E_SImode) return -1; x6 = XEXP (x4, 1); operands[2] = x6; if (!register_operand (operands[2], E_SImode) || ! #line 2061 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULS)) return -1; *pnum_clobbers = 1; return 50; /* *muls */ case SIGN_EXTEND: if (pattern100 (x3, SIGN_EXTEND) != 0 || ! #line 2245 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && ISA_HAS_MULS)) return -1; return 61; /* *muls_di */ case ZERO_EXTEND: if (pattern100 (x3, ZERO_EXTEND) != 0 || ! #line 2245 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && ISA_HAS_MULS)) return -1; return 62; /* *mulsu_di */ default: return -1; } case PLUS: switch (pattern38 (x3)) { case 0: if (!( #line 2748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 117; /* *nmadd4sf */ case 1: if (!( #line 2748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 118; /* *nmadd4df */ case 2: if (!( #line 2748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 119; /* *nmadd4v2sf */ default: return -1; } case MINUS: switch (pattern38 (x3)) { case 0: if (!( #line 2759 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 120; /* *nmsub4sf */ case 1: if (!( #line 2759 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 121; /* *nmsub4df */ case 2: if (!( #line 2759 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 122; /* *nmsub4v2sf */ default: return -1; } case REG: case SUBREG: operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 178; /* negsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 3244 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 179; /* negdi2 */ case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || !( #line 3257 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 180; /* negsf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || !( #line 3257 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 181; /* negdf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || !( #line 3257 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 182; /* negv2sf2 */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1196; /* negv2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1197; /* negv4sf2 */ default: return -1; } default: return -1; } } static int recog_70 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_CODE (operands[1])) { case REG: case SUBREG: x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern0 (x3, E_SFmode) != 0 || !( #line 2838 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_FIX_SB1 || flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 129; /* *divsf3 */ case E_DFmode: if (pattern0 (x3, E_DFmode) != 0 || ! #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 130; /* *divdf3 */ case E_V2SFmode: if (pattern0 (x3, E_V2SFmode) != 0 || !( #line 2838 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SB1 && (!TARGET_FIX_SB1 || flag_unsafe_math_optimizations)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 131; /* *divv2sf3 */ case E_SImode: if (pattern0 (x3, E_SImode) != 0 || ! #line 3039 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DIV)) return -1; return 149; /* divsi3 */ case E_DImode: if (pattern0 (x3, E_DImode) != 0 || !( #line 3039 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 151; /* divdi3 */ case E_V2DImode: if (pattern0 (x3, E_V2DImode) != 0 || ! #line 786 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1230; /* divv2di3 */ case E_V4SImode: if (pattern0 (x3, E_V4SImode) != 0 || ! #line 786 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1231; /* divv4si3 */ case E_V8HImode: if (pattern0 (x3, E_V8HImode) != 0 || ! #line 786 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1232; /* divv8hi3 */ case E_V16QImode: if (pattern0 (x3, E_V16QImode) != 0 || ! #line 786 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1233; /* divv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 956 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1280; /* divv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 956 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1281; /* divv4sf3 */ default: return -1; } case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern147 (x3, E_SFmode) != 0 || !( #line 2856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (SFmode) && flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 132; /* *recipsf3 */ case E_DFmode: if (pattern147 (x3, E_DFmode) != 0 || !( #line 2856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (DFmode) && flag_unsafe_math_optimizations) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 133; /* *recipdf3 */ case E_V2SFmode: if (pattern147 (x3, E_V2SFmode) != 0 || !( #line 2856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (V2SFmode) && flag_unsafe_math_optimizations) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 134; /* *recipv2sf3 */ default: return -1; } case SQRT: x6 = XEXP (x5, 0); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern148 (x3, E_SFmode) != 0 || !( #line 3098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (SFmode) && flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 160; /* *rsqrtsfa */ case E_DFmode: if (pattern148 (x3, E_DFmode) != 0 || !( #line 3098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (DFmode) && flag_unsafe_math_optimizations) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 161; /* *rsqrtdfa */ case E_V2SFmode: if (pattern148 (x3, E_V2SFmode) != 0 || !( #line 3098 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (V2SFmode) && flag_unsafe_math_optimizations) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 162; /* *rsqrtv2sfa */ default: return -1; } default: return -1; } default: return -1; } } static int recog_71 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: if (XWINT (x5, 0) == 0L) { switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern105 (x3, E_SImode)) { case 0: if ( #line 6162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE)) return 493; /* *seq_zero_sisi */ if ( #line 6171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE)) return 497; /* *seq_zero_sisi_mips16 */ break; case 1: if (( #line 6162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 494; /* *seq_zero_disi */ if (( #line 6171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 498; /* *seq_zero_disi_mips16 */ break; default: break; } break; case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (( #line 6162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 495; /* *seq_zero_sidi */ if (( #line 6171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 499; /* *seq_zero_sidi_mips16 */ break; case 1: if (( #line 6162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 496; /* *seq_zero_didi */ if (( #line 6171 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 500; /* *seq_zero_didi_mips16 */ break; default: break; } break; default: break; } } break; case CONST_VECTOR: case REG: case SUBREG: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_CCmode: switch (pattern5 (x3, E_CCmode)) { case 0: if ((( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 573; /* seq_sf_using_cc */ break; case 1: if ((( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 580; /* seq_df_using_cc */ break; default: break; } break; case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if ((( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 587; /* seq_sf_using_ccf */ break; case 1: if ((( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 597; /* seq_df_using_ccf */ break; default: break; } break; case E_V2DImode: switch (pattern118 (x3)) { case 0: if ( #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1380; /* msa_ceq_d */ break; case 1: if ( #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1426; /* msa_fceq_d */ break; default: break; } break; case E_V4SImode: switch (pattern119 (x3)) { case 0: if ( #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1385; /* msa_ceq_w */ break; case 1: if ( #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1435; /* msa_fceq_w */ break; default: break; } break; case E_V8HImode: if (pattern10 (x3, E_V8HImode) == 0 && #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1390; /* msa_ceq_h */ break; case E_V16QImode: if (pattern10 (x3, E_V16QImode) == 0 && #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1395; /* msa_ceq_b */ break; default: break; } break; default: break; } operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern116 (x3, E_SImode)) { case 0: if (! #line 6181 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE)) return -1; return 501; /* *seq_sisi_seq */ case 1: if (!( #line 6181 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 502; /* *seq_disi_seq */ default: return -1; } case E_DImode: switch (pattern116 (x3, E_DImode)) { case 0: if (!( #line 6181 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 503; /* *seq_sidi_seq */ case 1: if (!( #line 6181 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 504; /* *seq_didi_seq */ default: return -1; } default: return -1; } } static int recog_72 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 183; /* one_cmplsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 184; /* one_cmpldi2 */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 271 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1097; /* one_cmplv2si2 */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 271 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1098; /* one_cmplv4hi2 */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 271 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1099; /* one_cmplv8qi2 */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1258; /* one_cmplv2di2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1259; /* one_cmplv4si2 */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1260; /* one_cmplv8hi2 */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 874 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1261; /* one_cmplv16qi2 */ default: return -1; } } static int recog_73 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_CODE (operands[2])) { case CONST_INT: switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern138 (x3, E_SImode)) { case 0: if ( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 553; /* *sle_sisi */ if (! #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 561; /* *sle_sisi_mips16 */ case 1: if (( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 555; /* *sle_disi */ if (!( #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 563; /* *sle_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern138 (x3, E_DImode)) { case 0: if (( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 557; /* *sle_sidi */ if (!( #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 565; /* *sle_sidi_mips16 */ case 1: if (( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 559; /* *sle_didi */ if (!( #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 567; /* *sle_didi_mips16 */ default: return -1; } default: return -1; } case CONST_VECTOR: case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_CCmode: switch (pattern5 (x3, E_CCmode)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 575; /* sle_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 582; /* sle_df_using_cc */ default: return -1; } case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 589; /* sle_sf_using_ccf */ case 1: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 599; /* sle_df_using_ccf */ default: return -1; } case E_V2DImode: switch (pattern118 (x3)) { case 0: if (! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1381; /* msa_cle_s_d */ case 1: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1428; /* msa_fcle_d */ default: return -1; } case E_V4SImode: switch (pattern119 (x3)) { case 0: if (! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1386; /* msa_cle_s_w */ case 1: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1437; /* msa_fcle_w */ default: return -1; } case E_V8HImode: if (pattern10 (x3, E_V8HImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1391; /* msa_cle_s_h */ case E_V16QImode: if (pattern10 (x3, E_V16QImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1396; /* msa_cle_s_b */ default: return -1; } default: return -1; } } static int recog_74 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || !( #line 3080 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_MIPS1) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 157; /* sqrtsf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || !( #line 3080 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_MIPS1) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 158; /* sqrtdf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || !( #line 3080 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SB1) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 159; /* sqrtv2sf2 */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 984 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1286; /* sqrtv2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 984 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1287; /* sqrtv4sf2 */ default: return -1; } case DIV: x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern136 (x3, E_SFmode) != 0 || !( #line 3116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (SFmode) && flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 163; /* *rsqrtsfb */ case E_DFmode: if (pattern136 (x3, E_DFmode) != 0 || !( #line 3116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (DFmode) && flag_unsafe_math_optimizations) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 164; /* *rsqrtdfb */ case E_V2SFmode: if (pattern136 (x3, E_V2SFmode) != 0 || !( #line 3116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (V2SFmode) && flag_unsafe_math_optimizations) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 165; /* *rsqrtv2sfb */ default: return -1; } default: return -1; } } static int recog_75 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern117 (x3, E_SImode)) { case 0: if ( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 537; /* *slt_sisi */ if (! #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 545; /* *slt_sisi_mips16 */ case 1: if (( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 539; /* *slt_disi */ if (!( #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 547; /* *slt_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern117 (x3, E_DImode)) { case 0: if (( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 541; /* *slt_sidi */ if (!( #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 549; /* *slt_sidi_mips16 */ case 1: if (( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 543; /* *slt_didi */ if (!( #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 551; /* *slt_didi_mips16 */ default: return -1; } case E_CCmode: switch (pattern5 (x3, E_CCmode)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 574; /* slt_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 581; /* slt_df_using_cc */ default: return -1; } case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 588; /* slt_sf_using_ccf */ case 1: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 598; /* slt_df_using_ccf */ default: return -1; } case E_V2DImode: switch (pattern118 (x3)) { case 0: if (! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1383; /* msa_clt_s_d */ case 1: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1429; /* msa_fclt_d */ default: return -1; } case E_V4SImode: switch (pattern119 (x3)) { case 0: if (! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1388; /* msa_clt_s_w */ case 1: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1438; /* msa_fclt_w */ default: return -1; } case E_V8HImode: if (pattern10 (x3, E_V8HImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1393; /* msa_clt_s_h */ case E_V16QImode: if (pattern10 (x3, E_V16QImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1398; /* msa_clt_s_b */ default: return -1; } } static int recog_76 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern105 (x3, E_SImode)) { case 0: if (reg_or_0_operand (operands[2], E_SImode) && #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 513; /* *sgt_sisi */ if (!register_operand (operands[2], E_SImode) || ! #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 521; /* *sgt_sisi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 515; /* *sgt_disi */ if (!register_operand (operands[2], E_DImode) || !( #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 523; /* *sgt_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (reg_or_0_operand (operands[2], E_SImode) && ( #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 517; /* *sgt_sidi */ if (!register_operand (operands[2], E_SImode) || !( #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 525; /* *sgt_sidi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 519; /* *sgt_didi */ if (!register_operand (operands[2], E_DImode) || !( #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 527; /* *sgt_didi_mips16 */ default: return -1; } case E_CCmode: switch (pattern5 (x3, E_CCmode)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 604; /* sgt_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 608; /* sgt_df_using_cc */ default: return -1; } case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 612; /* sgt_sf_using_ccf */ case 1: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 616; /* sgt_df_using_ccf */ default: return -1; } default: return -1; } } static int recog_77 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; if (register_operand (operands[1], E_SImode) && arith_operand (operands[2], E_SImode)) { if ( #line 5730 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 445; /* *lshrsi3 */ if ( #line 5761 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return 454; /* *lshrsi3_mips16 */ } if (!memory_operand (operands[1], E_SImode) || !immediate_operand (operands[2], E_SImode) || ! #line 5856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 460; /* *mips.md:5852 */ case E_DImode: if (pattern20 (x3) != 0) return -1; if (( #line 5730 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 448; /* *lshrdi3 */ if (! #line 5820 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 459; /* *lshrdi3_mips16 */ case E_V2SImode: if (pattern21 (x3, E_V2SImode) != 0 || ! #line 586 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1133; /* lshrv2si3 */ case E_V4HImode: if (pattern21 (x3, E_V4HImode) != 0 || ! #line 586 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1134; /* lshrv4hi3 */ case E_V2DImode: if (pattern22 (x3, E_V2DImode) != 0 || ! #line 884 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1262; /* vlshrv2di3 */ case E_V4SImode: if (pattern22 (x3, E_V4SImode) != 0 || ! #line 884 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1263; /* vlshrv4si3 */ case E_V8HImode: if (pattern22 (x3, E_V8HImode) != 0 || ! #line 884 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1264; /* vlshrv8hi3 */ case E_V16QImode: if (pattern22 (x3, E_V16QImode) != 0 || ! #line 884 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1265; /* vlshrv16qi3 */ default: return -1; } } static int recog_78 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2SFmode: if (pattern6 (x3, E_SFmode, E_V2SFmode) != 0 || ! #line 258 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 802; /* vec_concatv2sf */ case E_V2SImode: if (pattern6 (x3, E_SImode, E_V2SImode) != 0 || ! #line 148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1069; /* *vec_concatv2si */ default: return -1; } case SS_TRUNCATE: x5 = XEXP (x3, 1); if (GET_CODE (x5) != SS_TRUNCATE) return -1; x6 = XEXP (x4, 0); operands[1] = x6; x7 = XEXP (x5, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern159 (x3, E_V2SImode, E_V2HImode, E_V4HImode) != 0 || ! #line 162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1070; /* vec_pack_ssat_v2si */ case E_V8QImode: if (pattern159 (x3, E_V4HImode, E_V4QImode, E_V8QImode) != 0 || ! #line 162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1071; /* vec_pack_ssat_v4hi */ default: return -1; } case US_TRUNCATE: if (pattern82 (x3, E_V4HImode, E_V8QImode, E_V4QImode, US_TRUNCATE) != 0 || ! #line 174 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1072; /* vec_pack_usat_v4hi */ case TRUNCATE: x5 = XEXP (x3, 1); if (GET_CODE (x5) != TRUNCATE) return -1; x6 = XEXP (x4, 0); operands[1] = x6; x7 = XEXP (x5, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern159 (x3, E_V2DImode, E_V2SImode, E_V4SImode) != 0 || ! #line 255 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1166; /* vec_pack_trunc_v2di */ case E_V8HImode: if (pattern159 (x3, E_V4SImode, E_V4HImode, E_V8HImode) != 0 || ! #line 255 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1167; /* vec_pack_trunc_v4si */ case E_V16QImode: if (pattern159 (x3, E_V8HImode, E_V8QImode, E_V16QImode) != 0 || ! #line 255 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1168; /* vec_pack_trunc_v8hi */ default: return -1; } case FLOAT_TRUNCATE: if (pattern82 (x3, E_V2DFmode, E_V4SFmode, E_V2SFmode, FLOAT_TRUNCATE) != 0 || ! #line 2694 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1671; /* vec_pack_trunc_v2df */ default: return -1; } } static int recog_79 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_CODE (operands[2])) { case CONST_INT: switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern138 (x3, E_SImode)) { case 0: if ( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 554; /* *sleu_sisi */ if (! #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 562; /* *sleu_sisi_mips16 */ case 1: if (( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 556; /* *sleu_disi */ if (!( #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 564; /* *sleu_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern138 (x3, E_DImode)) { case 0: if (( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 558; /* *sleu_sidi */ if (!( #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 566; /* *sleu_sidi_mips16 */ case 1: if (( #line 6261 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 560; /* *sleu_didi */ if (!( #line 6273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 568; /* *sleu_didi_mips16 */ default: return -1; } default: return -1; } case CONST_VECTOR: case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_V2DImode: if (pattern12 (x3, E_V2DImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1382; /* msa_cle_u_d */ case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1387; /* msa_cle_u_w */ case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1392; /* msa_cle_u_h */ case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1397; /* msa_cle_u_b */ default: return -1; } default: return -1; } } static int recog_80 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: if (XWINT (x5, 0) == 0L) { switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern105 (x3, E_SImode)) { case 0: if ( #line 6193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE)) return 505; /* *sne_zero_sisi */ break; case 1: if (( #line 6193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 506; /* *sne_zero_disi */ break; default: break; } break; case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (( #line 6193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 507; /* *sne_zero_sidi */ break; case 1: if (( #line 6193 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 508; /* *sne_zero_didi */ break; default: break; } break; default: break; } } break; case REG: case SUBREG: switch (pattern81 (x3)) { case 0: if ((( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 592; /* sne_sf_using_ccf */ break; case 1: if ((( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 602; /* sne_df_using_ccf */ break; case 2: if ( #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1427; /* msa_fcne_d */ break; case 3: if ( #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1436; /* msa_fcne_w */ break; default: break; } break; default: break; } operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern116 (x3, E_SImode)) { case 0: if (! #line 6203 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE)) return -1; return 509; /* *sne_sisi_sne */ case 1: if (!( #line 6203 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 510; /* *sne_disi_sne */ default: return -1; } case E_DImode: switch (pattern116 (x3, E_DImode)) { case 0: if (!( #line 6203 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 511; /* *sne_sidi_sne */ case 1: if (!( #line 6203 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 512; /* *sne_didi_sne */ default: return -1; } default: return -1; } } static int recog_81 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern112 (x3, E_SImode) != 0) return -1; if ( #line 3423 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 193; /* *xorsi3 */ if (! #line 3436 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 195; /* *xorsi3_mips16 */ case E_DImode: if (pattern112 (x3, E_DImode) != 0) return -1; if (( #line 3423 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 194; /* *xordi3 */ if (!( #line 3436 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 196; /* *xordi3_mips16 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 253 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1091; /* xorv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 253 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1092; /* xorv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 253 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1093; /* xorv8qi3 */ case E_V2DImode: if (pattern113 (x3, E_V2DImode) != 0 || ! #line 823 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1246; /* xorv2di3 */ case E_V4SImode: if (pattern113 (x3, E_V4SImode) != 0 || ! #line 823 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1247; /* xorv4si3 */ case E_V8HImode: if (pattern113 (x3, E_V8HImode) != 0 || ! #line 823 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1248; /* xorv8hi3 */ case E_V16QImode: if (pattern113 (x3, E_V16QImode) != 0 || ! #line 823 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1249; /* xorv16qi3 */ default: return -1; } } static int recog_82 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case TRUNCATE: if (GET_MODE (x4) != E_SImode) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != ASHIFT || GET_MODE (x5) != E_DImode || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; x6 = XEXP (x5, 0); operands[1] = x6; if (!register_operand (operands[1], E_DImode)) return -1; x7 = XEXP (x5, 1); operands[2] = x7; if (!const_arith_operand (operands[2], E_DImode)) return -1; x8 = XEXP (x3, 1); operands[3] = x8; if (!const_arith_operand (operands[3], E_DImode) || ! #line 3541 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ((ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32 && UINTVAL (operands[3]) < 32 && UINTVAL (operands[3]) >= UINTVAL (operands[2])))) return -1; return 215; /* *mips.md:3534 */ case REG: case SUBREG: switch (pattern23 (x3)) { case 0: if ( #line 5730 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 444; /* *ashrsi3 */ if (! #line 5761 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 453; /* *ashrsi3_mips16 */ case 1: if (( #line 5730 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 447; /* *ashrdi3 */ if (! #line 5805 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 458; /* *ashrdi3_mips16 */ case 2: if (! #line 577 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1131; /* ashrv2si3 */ case 3: if (! #line 577 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1132; /* ashrv4hi3 */ case 4: if (! #line 899 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1266; /* vashrv2di3 */ case 5: if (! #line 899 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1267; /* vashrv4si3 */ case 6: if (! #line 899 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1268; /* vashrv8hi3 */ case 7: if (! #line 899 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1269; /* vashrv16qi3 */ default: return -1; } default: return -1; } } static int recog_83 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern117 (x3, E_SImode)) { case 0: if ( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 538; /* *sltu_sisi */ if (! #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 546; /* *sltu_sisi_mips16 */ case 1: if (( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 540; /* *sltu_disi */ if (!( #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 548; /* *sltu_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern117 (x3, E_DImode)) { case 0: if (( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 542; /* *sltu_sidi */ if (!( #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 550; /* *sltu_sidi_mips16 */ case 1: if (( #line 6242 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 544; /* *sltu_didi */ if (!( #line 6251 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 552; /* *sltu_didi_mips16 */ default: return -1; } case E_V2DImode: if (pattern12 (x3, E_V2DImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1384; /* msa_clt_u_d */ case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1389; /* msa_clt_u_w */ case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1394; /* msa_clt_u_h */ case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0 || ! #line 1260 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1399; /* msa_clt_u_b */ default: return -1; } } static int recog_84 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern105 (x3, E_SImode)) { case 0: if (reg_or_0_operand (operands[2], E_SImode) && #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 514; /* *sgtu_sisi */ if (!register_operand (operands[2], E_SImode) || ! #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 522; /* *sgtu_sisi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 516; /* *sgtu_disi */ if (!register_operand (operands[2], E_DImode) || !( #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 524; /* *sgtu_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (reg_or_0_operand (operands[2], E_SImode) && ( #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 518; /* *sgtu_sidi */ if (!register_operand (operands[2], E_SImode) || !( #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 526; /* *sgtu_sidi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6215 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 520; /* *sgtu_didi */ if (!register_operand (operands[2], E_DImode) || !( #line 6224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 528; /* *sgtu_didi_mips16 */ default: return -1; } default: return -1; } } static int recog_85 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern104 (x3, E_SImode)) { case 0: if ( #line 3970 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && ISA_HAS_TRUNC_W)) return 264; /* fix_truncdfsi2_insn */ if (pnum_clobbers == NULL || ! #line 3980 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && !ISA_HAS_TRUNC_W)) return -1; *pnum_clobbers = 1; return 265; /* fix_truncdfsi2_macro */ case 1: if ( #line 4007 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_TRUNC_W)) return 266; /* fix_truncsfsi2_insn */ if (pnum_clobbers == NULL || ! #line 4017 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !ISA_HAS_TRUNC_W)) return -1; *pnum_clobbers = 1; return 267; /* fix_truncsfsi2_macro */ default: return -1; } case E_DImode: switch (pattern104 (x3, E_DImode)) { case 0: if (! #line 4033 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 268; /* fix_truncdfdi2 */ case 1: if (! #line 4043 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 269; /* fix_truncsfdi2 */ default: return -1; } case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DFmode) || ! #line 1820 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1500; /* fix_truncv2dfv2di2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SFmode) || ! #line 1820 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1501; /* fix_truncv4sfv4si2 */ default: return -1; } } static int recog_86 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_SFmode) || !register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || ! #line 3942 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 263; /* extendsfdf2 */ case VEC_SELECT: if (GET_MODE (x4) != E_V2SFmode) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != PARALLEL || XVECLEN (x5, 0) != 2) return -1; x6 = XVECEXP (x5, 0, 0); if (GET_CODE (x6) != CONST_INT) return -1; x7 = XVECEXP (x5, 0, 1); if (GET_CODE (x7) != CONST_INT || !register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode) return -1; x8 = XEXP (x4, 0); operands[1] = x8; if (!register_operand (operands[1], E_V4SFmode)) return -1; switch (XWINT (x6, 0)) { case 2L: if (XWINT (x7, 0) != 3L || ! #line 2714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1673; /* msa_fexupl_d */ case 0L: if (XWINT (x7, 0) != 1L || ! #line 2734 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1675; /* msa_fexupr_d */ default: return -1; } default: return -1; } } static int recog_87 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_DFmode: switch (pattern105 (x3, E_DFmode)) { case 0: if (! #line 4053 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 270; /* floatsidf2 */ case 1: if (! #line 4063 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 271; /* floatdidf2 */ default: return -1; } case E_SFmode: switch (pattern105 (x3, E_SFmode)) { case 0: if (! #line 4073 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 272; /* floatsisf2 */ case 1: if (! #line 4083 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 273; /* floatdisf2 */ default: return -1; } case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DImode) || ! #line 1651 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1466; /* floatv2div2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SImode) || ! #line 1651 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1467; /* floatv4siv4sf2 */ default: return -1; } } static int recog_88 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: if (XWINT (x5, 0) != 1L) return -1; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern105 (x3, E_SImode)) { case 0: if (! #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 529; /* *sge_sisi */ case 1: if (!( #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 531; /* *sge_disi */ default: return -1; } case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (!( #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 533; /* *sge_sidi */ case 1: if (!( #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 535; /* *sge_didi */ default: return -1; } default: return -1; } case REG: case SUBREG: switch (pattern8 (x3)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 603; /* sge_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 607; /* sge_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 611; /* sge_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 615; /* sge_df_using_ccf */ default: return -1; } default: return -1; } } static int recog_89 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: switch (pattern24 (x3)) { case 0: if (! #line 207 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1077; /* ssaddv4hi3 */ case 1: if (! #line 207 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1078; /* ssaddv8qi3 */ case 2: if (! #line 1013 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1296; /* ssaddv2di3 */ case 3: if (! #line 1013 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1297; /* ssaddv4si3 */ case 4: if (! #line 1013 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1298; /* ssaddv8hi3 */ case 5: if (! #line 1013 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1299; /* ssaddv16qi3 */ default: return -1; } case ABS: switch (pattern29 (x3)) { case 0: if (! #line 1004 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1292; /* msa_adds_a_d */ case 1: if (! #line 1004 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1293; /* msa_adds_a_w */ case 2: if (! #line 1004 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1294; /* msa_adds_a_h */ case 3: if (! #line 1004 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1295; /* msa_adds_a_b */ default: return -1; } default: return -1; } } static int recog_90 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !register_operand (operands[1], E_HImode) || ! #line 5885 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH)) return -1; return 463; /* bswaphi2 */ case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || ! #line 5892 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH && ISA_HAS_ROR)) return -1; return 464; /* bswapsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 5903 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH)) return -1; return 465; /* bswapdi2 */ default: return -1; } } static int recog_91 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: switch (pattern76 (x3)) { case 0: if (! #line 3164 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CLZ_CLO)) return -1; return 169; /* clzsi2 */ case 1: if (!( #line 3164 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CLZ_CLO) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 170; /* clzdi2 */ case 2: if (! #line 2345 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1578; /* clzv2di2 */ case 3: if (! #line 2345 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1579; /* clzv4si2 */ case 4: if (! #line 2345 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1580; /* clzv8hi2 */ case 5: if (! #line 2345 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1581; /* clzv16qi2 */ default: return -1; } case NOT: x5 = XEXP (x4, 0); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern111 (x3, E_SImode) != 0 || ! #line 3173 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CLZ_CLO)) return -1; return 171; /* *closi2 */ case E_DImode: if (pattern111 (x3, E_DImode) != 0 || !( #line 3173 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CLZ_CLO) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 172; /* *clodi2 */ default: return -1; } default: return -1; } } static int recog_92 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || !( #line 3148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (SFmode)) && #line 862 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 166; /* abssf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || !( #line 3148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (DFmode)) && #line 863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 167; /* absdf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || !( #line 3148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (V2SFmode)) && #line 864 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 168; /* absv2sf2 */ default: return -1; } } static int recog_93 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 1); switch (XVECLEN (x4, 0)) { case 2: x5 = XVECEXP (x4, 0, 0); operands[1] = x5; x6 = XVECEXP (x4, 0, 1); operands[2] = x6; switch (XINT (x4, 1)) { case 20: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return -1; switch (pattern206 (x1)) { case 0: if (!( #line 5558 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_CPRESTORE_DIRECTIVE || operands[2] == pic_offset_table_rtx) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 429; /* potential_cprestore_si */ case 1: if (!( #line 5558 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_CPRESTORE_DIRECTIVE || operands[2] == pic_offset_table_rtx) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 430; /* potential_cprestore_di */ default: return -1; } case 87: switch (pattern187 (x1, 87)) { case 0: if (! #line 146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 850; /* mips_addq_s_w */ case 1: if (! #line 146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 851; /* mips_addq_s_ph */ case 2: if (! #line 146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 852; /* mips_addu_s_qb */ default: return -1; } case 89: switch (pattern187 (x1, 89)) { case 0: if (! #line 170 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 855; /* mips_subq_s_w */ case 1: if (! #line 170 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 856; /* mips_subq_s_ph */ case 2: if (! #line 170 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 857; /* mips_subu_s_qb */ default: return -1; } case 90: if (pattern139 (x1, E_SImode, 184, 90, 2) != 0) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (pattern188 (x8, E_SImode) != 0 || ! #line 183 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 858; /* mips_addsc */ case 97: if (pattern189 (x1, 97, E_V2HImode, E_SImode) != 0 || ! #line 264 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 866; /* mips_precrq_rs_ph_w */ case 98: if (pattern189 (x1, 98, E_V4QImode, E_V2HImode) != 0 || ! #line 278 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 867; /* mips_precrqu_s_qb_ph */ case 109: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC || pattern126 (x7, 185, 109, 2) != 0 || !arith_operand (operands[2], E_SImode)) return -1; x9 = XVECEXP (x8, 0, 0); if (!rtx_equal_p (x9, operands[1])) return -1; x10 = XVECEXP (x8, 0, 1); if (!rtx_equal_p (x10, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_V2HImode: if (!register_operand (operands[0], E_V2HImode) || GET_MODE (x4) != E_V2HImode || !register_operand (operands[1], E_V2HImode) || ! #line 385 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 878; /* mips_shll_ph */ case E_V4QImode: if (!register_operand (operands[0], E_V4QImode) || GET_MODE (x4) != E_V4QImode || !register_operand (operands[1], E_V4QImode) || ! #line 385 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 879; /* mips_shll_qb */ default: return -1; } case 110: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC || pattern126 (x7, 185, 110, 2) != 0 || !arith_operand (operands[2], E_SImode)) return -1; x9 = XVECEXP (x8, 0, 0); if (!rtx_equal_p (x9, operands[1])) return -1; x10 = XVECEXP (x8, 0, 1); if (!rtx_equal_p (x10, operands[2])) return -1; switch (pattern250 (x4)) { case 0: if (! #line 406 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 880; /* mips_shll_s_w */ case 1: if (! #line 406 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 881; /* mips_shll_s_ph */ default: return -1; } case 114: if (pattern191 (x1, pnum_clobbers, 114) != 0 || ! #line 487 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 886; /* mips_muleu_s_ph_qbl */ case 115: if (pattern191 (x1, pnum_clobbers, 115) != 0 || ! #line 500 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 887; /* mips_muleu_s_ph_qbr */ case 116: if (pnum_clobbers == NULL || pattern189 (x1, 116, E_V2HImode, E_V2HImode) != 0 || ! #line 514 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 888; /* mips_mulq_rs_ph */ case 117: if (pnum_clobbers == NULL || pattern189 (x1, 117, E_SImode, E_V2HImode) != 0 || ! #line 528 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 889; /* mips_muleq_s_w_phl */ case 118: if (pnum_clobbers == NULL || pattern189 (x1, 118, E_SImode, E_V2HImode) != 0 || ! #line 541 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 890; /* mips_muleq_s_w_phr */ case 144: if (pattern193 (x1, 144) != 0 || ! #line 888 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 920; /* mips_extr_w */ case 145: if (pattern193 (x1, 145) != 0 || ! #line 908 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 921; /* mips_extr_r_w */ case 146: if (pattern193 (x1, 146) != 0 || ! #line 928 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 922; /* mips_extr_rs_w */ case 147: if (pattern193 (x1, 147) != 0 || ! #line 949 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 923; /* mips_extr_s_h */ case 156: if (pattern195 (x1, 156) != 0 || ! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 957; /* mips_addu_s_ph */ case 161: if (pattern197 (x1, 161) != 0 || ! #line 166 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 962; /* mips_cmpgdu_eq_qb */ case 162: if (pattern197 (x1, 162) != 0 || ! #line 180 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 963; /* mips_cmpgdu_lt_qb */ case 163: if (pattern197 (x1, 163) != 0 || ! #line 194 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 964; /* mips_cmpgdu_le_qb */ case 171: if (pnum_clobbers == NULL || pattern195 (x1, 171) != 0 || ! #line 243 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 968; /* mips_mul_s_ph */ case 172: if (pattern198 (x1, pnum_clobbers, 172) != 0 || ! #line 256 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 969; /* mips_mulq_rs_w */ case 173: if (pnum_clobbers == NULL || pattern195 (x1, 173) != 0 || ! #line 269 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 970; /* mips_mulq_s_ph */ case 174: if (pattern198 (x1, pnum_clobbers, 174) != 0 || ! #line 282 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 971; /* mips_mulq_s_w */ case 185: if (pattern195 (x1, 185) != 0 || ! #line 416 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 980; /* mips_subu_ph */ case 186: if (pattern195 (x1, 186) != 0 || ! #line 428 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 981; /* mips_subu_s_ph */ default: return -1; } case 1: switch (XINT (x4, 1)) { case 30: if (pattern130 (x1) != 0) return -1; switch (pattern214 (x1)) { case 0: if (!( #line 7568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 707; /* tls_get_tp_si */ case 1: if (!( #line 7568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 708; /* tls_get_tp_di */ default: return -1; } case 94: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC || XVECLEN (x8, 0) != 1 || XINT (x8, 1) != 94 || GET_MODE (x8) != E_CCDSPmode) return -1; x11 = XEXP (x7, 0); if (GET_CODE (x11) != REG || REGNO (x11) != 185 || GET_MODE (x11) != E_CCDSPmode) return -1; x5 = XVECEXP (x4, 0, 0); operands[1] = x5; x9 = XVECEXP (x8, 0, 0); if (!rtx_equal_p (x9, operands[1])) return -1; switch (pattern250 (x4)) { case 0: if (! #line 230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 862; /* mips_absq_s_w */ case 1: if (! #line 230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 863; /* mips_absq_s_ph */ default: return -1; } case 154: if (pattern139 (x1, E_V4QImode, 185, 154, 1) != 0) return -1; x5 = XVECEXP (x4, 0, 0); operands[1] = x5; if (!reg_or_0_operand (operands[1], E_V4QImode)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); x9 = XVECEXP (x8, 0, 0); if (!rtx_equal_p (x9, operands[1]) || ! #line 79 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 955; /* mips_absq_s_qb */ default: return -1; } case 3: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC || GET_MODE (x8) != E_CCDSPmode) return -1; x11 = XEXP (x7, 0); if (GET_CODE (x11) != REG || GET_MODE (x11) != E_CCDSPmode) return -1; x5 = XVECEXP (x4, 0, 0); operands[1] = x5; x6 = XVECEXP (x4, 0, 1); operands[2] = x6; switch (XINT (x4, 1)) { case 91: if (pattern235 (x1, 91, 2, 184, E_SImode) != 0 || pattern254 (x7, E_SImode, 185) != 0 || ! #line 197 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 859; /* mips_addwc */ case 123: if (pattern237 (x1, 123, E_V2HImode) != 0 || ! #line 606 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 895; /* mips_dpaq_s_w_ph */ case 124: if (pattern237 (x1, 124, E_V2HImode) != 0 || ! #line 622 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 896; /* mips_dpsq_s_w_ph */ case 125: if (pattern237 (x1, 125, E_V2HImode) != 0 || ! #line 638 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 897; /* mips_mulsaq_s_w_ph */ case 126: if (pattern237 (x1, 126, E_SImode) != 0 || ! #line 654 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 898; /* mips_dpaq_sa_l_w */ case 127: if (pattern237 (x1, 127, E_SImode) != 0 || ! #line 670 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 899; /* mips_dpsq_sa_l_w */ case 128: if (pattern237 (x1, 128, E_V2HImode) != 0 || ! #line 686 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 900; /* mips_maq_s_w_phl */ case 129: if (pattern237 (x1, 129, E_V2HImode) != 0 || ! #line 701 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 901; /* mips_maq_s_w_phr */ case 130: if (pattern237 (x1, 130, E_V2HImode) != 0 || ! #line 717 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 902; /* mips_maq_sa_w_phl */ case 131: if (pattern237 (x1, 131, E_V2HImode) != 0 || ! #line 732 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 903; /* mips_maq_sa_w_phr */ case 148: if (pattern124 (x4) != 0 || XVECLEN (x8, 0) != 2 || XINT (x8, 1) != 148 || REGNO (x11) != 187 || pattern192 (x8) != 0 || ! #line 971 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 924; /* mips_extp */ case 151: if (pattern235 (x1, 151, 3, 182, E_DImode) != 0) return -1; x12 = XVECEXP (x8, 0, 2); if (GET_CODE (x12) != REG || REGNO (x12) != 182 || GET_MODE (x12) != E_CCDSPmode || pattern254 (x7, E_DImode, 182) != 0 || ! #line 1037 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 927; /* mips_mthlip */ case 199: if (pattern238 (x1, 199) != 0 || ! #line 566 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 994; /* mips_dpaqx_s_w_ph */ case 200: if (pattern238 (x1, 200) != 0 || ! #line 581 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 995; /* mips_dpaqx_sa_w_ph */ case 201: if (pattern238 (x1, 201) != 0 || ! #line 596 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 996; /* mips_dpsqx_s_w_ph */ case 202: if (pattern238 (x1, 202) != 0 || ! #line 611 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 997; /* mips_dpsqx_sa_w_ph */ default: return -1; } default: return -1; } } static int recog_94 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case PC: x4 = XVECEXP (x1, 0, 1); switch (GET_CODE (x4)) { case SET: x5 = XEXP (x2, 1); operands[1] = x5; x6 = XEXP (x4, 0); operands[0] = x6; x7 = XEXP (x4, 1); operands[2] = x7; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !register_operand (operands[0], E_SImode) || !register_operand (operands[2], E_SImode) || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 624; /* indirect_jump_and_restore_si */ case E_DImode: if (!register_operand (operands[1], E_DImode) || !register_operand (operands[0], E_DImode) || !register_operand (operands[2], E_DImode) || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 625; /* indirect_jump_and_restore_di */ default: return -1; } case USE: x6 = XEXP (x4, 0); if (GET_CODE (x6) != LABEL_REF) return -1; x5 = XEXP (x2, 1); operands[0] = x5; x8 = XEXP (x6, 0); operands[1] = x8; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 626; /* tablejump_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || ! #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 627; /* tablejump_di */ default: return -1; } default: return -1; } case REG: case SUBREG: case MEM: operands[0] = x3; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != SET) return -1; x5 = XEXP (x2, 1); operands[1] = x5; x7 = XEXP (x4, 1); switch (GET_CODE (x7)) { case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: case MEM: operands[3] = x7; x6 = XEXP (x4, 0); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_HImode: if (pattern228 (E_HImode) != 0 || ! #line 7714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 721; /* *join2_load_storehi */ case E_SImode: if (pattern228 (E_SImode) != 0 || ! #line 7714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 722; /* *join2_load_storesi */ case E_SFmode: if (nonimmediate_operand (operands[0], E_SFmode) && nonimmediate_operand (operands[1], E_SFmode) && nonimmediate_operand (operands[2], E_SFmode) && nonimmediate_operand (operands[3], E_SFmode) && ( #line 7714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed) && #line 806 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 723; /* *join2_load_storesf */ if (!register_operand (operands[0], E_SFmode) || !movep_src_operand (operands[1], E_SFmode)) return -1; switch (pattern219 ()) { case 0: if (! #line 127 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1062; /* *movepsfsi */ case 1: if (! #line 127 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1063; /* *movepsfsf */ default: return -1; } case E_DFmode: if (pattern228 (E_DFmode) != 0 || !( #line 7714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed) && #line 807 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 724; /* *join2_load_storedf */ default: return -1; } case UNSPEC_VOLATILE: x6 = XEXP (x4, 0); if (!rtx_equal_p (x6, operands[1])) return -1; switch (XVECLEN (x7, 0)) { case 2: if (XINT (x7, 1) != 59) return -1; x9 = XVECEXP (x7, 0, 0); operands[2] = x9; x10 = XVECEXP (x7, 0, 1); operands[3] = x10; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern240 (x7, E_SImode) != 0 || ! #line 67 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 728; /* sync_compare_and_swapsi */ case E_DImode: if (pattern240 (x7, E_DImode) != 0 || !( #line 67 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 729; /* sync_compare_and_swapdi */ default: return -1; } case 4: if (XINT (x7, 1) != 60 || GET_MODE (x7) != E_SImode || !register_operand (operands[0], E_SImode) || !memory_operand (operands[1], E_SImode)) return -1; x9 = XVECEXP (x7, 0, 0); operands[2] = x9; if (!register_operand (operands[2], E_SImode)) return -1; x10 = XVECEXP (x7, 0, 1); operands[3] = x10; if (!register_operand (operands[3], E_SImode)) return -1; x11 = XVECEXP (x7, 0, 2); operands[4] = x11; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x12 = XVECEXP (x7, 0, 3); operands[5] = x12; if (!reg_or_0_operand (operands[5], E_SImode) || ! #line 99 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 730; /* compare_and_swap_12 */ case 3: if (!register_operand (operands[0], E_SImode) || !memory_operand (operands[1], E_SImode) || GET_MODE (x7) != E_SImode) return -1; x9 = XVECEXP (x7, 0, 0); operands[2] = x9; if (!register_operand (operands[2], E_SImode)) return -1; x10 = XVECEXP (x7, 0, 1); operands[3] = x10; if (!register_operand (operands[3], E_SImode)) return -1; switch (XINT (x7, 1)) { case 64: if (pnum_clobbers == NULL) return -1; x11 = XVECEXP (x7, 0, 2); switch (pattern255 (x11)) { case 0: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 738; /* sync_old_add_12 */ case 1: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 739; /* sync_old_sub_12 */ case 2: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 740; /* sync_old_ior_12 */ case 3: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 741; /* sync_old_xor_12 */ case 4: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 742; /* sync_old_and_12 */ case 5: if (! #line 307 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 749; /* sync_old_nand_12 */ default: return -1; } case 66: x11 = XVECEXP (x7, 0, 2); operands[4] = x11; if (!reg_or_0_operand (operands[4], E_SImode) || ! #line 555 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 787; /* test_and_set_12 */ default: return -1; } case 1: switch (XINT (x7, 1)) { case 61: x9 = XVECEXP (x7, 0, 0); switch (GET_CODE (x9)) { case PLUS: x13 = XEXP (x9, 1); operands[2] = x13; x14 = XEXP (x9, 0); if (!rtx_equal_p (x14, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern242 (x7, E_SImode) != 0 || ! #line 383 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 753; /* sync_old_addsi */ case E_DImode: if (pattern242 (x7, E_DImode) != 0 || !( #line 383 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 754; /* sync_old_adddi */ default: return -1; } case MINUS: x13 = XEXP (x9, 1); operands[2] = x13; x14 = XEXP (x9, 0); if (!rtx_equal_p (x14, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern243 (x7, E_SImode) != 0 || ! #line 398 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 755; /* sync_old_subsi */ case E_DImode: if (pattern243 (x7, E_DImode) != 0 || !( #line 398 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 756; /* sync_old_subdi */ default: return -1; } case IOR: switch (pattern231 (x7)) { case 0: if (! #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 767; /* sync_old_iorsi */ case 1: if (!( #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 770; /* sync_old_iordi */ default: return -1; } case XOR: switch (pattern231 (x7)) { case 0: if (! #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 768; /* sync_old_xorsi */ case 1: if (!( #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 771; /* sync_old_xordi */ default: return -1; } case AND: switch (pattern231 (x7)) { case 0: if (! #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 769; /* sync_old_andsi */ case 1: if (!( #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 772; /* sync_old_anddi */ default: return -1; } case CONST_INT: case REG: case SUBREG: switch (pattern233 (x7)) { case 0: if (! #line 497 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 781; /* sync_old_nandsi */ case 1: if (!( #line 497 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 782; /* sync_old_nanddi */ default: return -1; } default: return -1; } case 62: x9 = XVECEXP (x7, 0, 0); switch (GET_CODE (x9)) { case IOR: switch (pattern231 (x7)) { case 0: if (! #line 472 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 773; /* sync_new_iorsi */ case 1: if (!( #line 472 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 776; /* sync_new_iordi */ default: return -1; } case XOR: switch (pattern231 (x7)) { case 0: if (! #line 472 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 774; /* sync_new_xorsi */ case 1: if (!( #line 472 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 777; /* sync_new_xordi */ default: return -1; } case AND: switch (pattern231 (x7)) { case 0: if (! #line 472 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 775; /* sync_new_andsi */ case 1: if (!( #line 472 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 778; /* sync_new_anddi */ default: return -1; } case CONST_INT: case REG: case SUBREG: switch (pattern233 (x7)) { case 0: if (! #line 511 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 783; /* sync_new_nandsi */ case 1: if (!( #line 511 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 784; /* sync_new_nanddi */ default: return -1; } default: return -1; } case 65: x9 = XVECEXP (x7, 0, 0); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern239 (x7, E_SImode) != 0 || ! #line 526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 785; /* sync_lock_test_and_setsi */ case E_DImode: if (pattern239 (x7, E_DImode) != 0 || !( #line 526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 786; /* sync_lock_test_and_setdi */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_95 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); switch (XVECLEN (x3, 0)) { case 1: switch (XINT (x3, 1)) { case 22: x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x2, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 28) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != CLOBBER) return -1; switch (pattern207 (x1)) { case 0: if (!( #line 6832 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 647; /* restore_gp_si */ case 1: if (!( #line 6832 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 648; /* restore_gp_di */ default: return -1; } case 69: x6 = XVECEXP (x1, 0, 1); if (pattern122 (x6, 69) != 0) return -1; x5 = XEXP (x2, 0); operands[0] = x5; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x7 = XEXP (x6, 1); x8 = XVECEXP (x7, 0, 0); operands[2] = x8; x9 = XEXP (x6, 0); if (!rtx_equal_p (x9, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern241 (x1, E_SImode) != 0 || ! #line 655 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (ISA_HAS_SWAP)) return -1; return 792; /* atomic_exchangesi_swap */ case E_DImode: if (pattern241 (x1, E_DImode) != 0 || !( #line 655 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (ISA_HAS_SWAP) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 793; /* atomic_exchangedi_swap */ default: return -1; } case 70: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x7 = XEXP (x6, 1); if (GET_CODE (x7) != UNSPEC_VOLATILE || XVECLEN (x7, 0) != 1 || XINT (x7, 1) != 70) return -1; x8 = XVECEXP (x7, 0, 0); if (GET_CODE (x8) != PLUS) return -1; x5 = XEXP (x2, 0); operands[0] = x5; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x10 = XEXP (x8, 1); operands[2] = x10; x11 = XEXP (x8, 0); if (!rtx_equal_p (x11, operands[1])) return -1; x9 = XEXP (x6, 0); if (!rtx_equal_p (x9, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern251 (x1, E_SImode) != 0 || ! #line 714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (ISA_HAS_LDADD)) return -1; return 796; /* atomic_fetch_addsi_ldadd */ case E_DImode: if (pattern251 (x1, E_DImode) != 0 || !( #line 714 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (ISA_HAS_LDADD) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 797; /* atomic_fetch_adddi_ldadd */ default: return -1; } default: return -1; } case 3: if (XINT (x3, 1) != 64 || GET_MODE (x3) != E_SImode) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; if (!memory_operand (operands[0], E_SImode)) return -1; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode)) return -1; x12 = XVECEXP (x3, 0, 1); operands[2] = x12; if (!register_operand (operands[2], E_SImode)) return -1; x13 = XVECEXP (x3, 0, 2); if (GET_MODE (x13) != E_SImode) return -1; x9 = XEXP (x6, 0); operands[4] = x9; if (!scratch_operand (operands[4], E_SImode)) return -1; switch (GET_CODE (x13)) { case PLUS: x14 = XEXP (x13, 1); operands[3] = x14; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x15 = XEXP (x13, 0); if (!rtx_equal_p (x15, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 733; /* sync_add_12 */ case MINUS: x14 = XEXP (x13, 1); operands[3] = x14; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x15 = XEXP (x13, 0); if (!rtx_equal_p (x15, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 734; /* sync_sub_12 */ case IOR: x14 = XEXP (x13, 1); operands[3] = x14; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x15 = XEXP (x13, 0); if (!rtx_equal_p (x15, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 735; /* sync_ior_12 */ case XOR: x14 = XEXP (x13, 1); operands[3] = x14; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x15 = XEXP (x13, 0); if (!rtx_equal_p (x15, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 736; /* sync_xor_12 */ case AND: x14 = XEXP (x13, 1); operands[3] = x14; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x15 = XEXP (x13, 0); if (!rtx_equal_p (x15, operands[0]) || ! #line 145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 737; /* sync_and_12 */ default: return -1; } case 4: x5 = XEXP (x2, 0); operands[0] = x5; if (GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x12 = XVECEXP (x3, 0, 1); operands[2] = x12; if (!register_operand (operands[2], E_SImode)) return -1; switch (XINT (x3, 1)) { case 63: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x7 = XEXP (x6, 1); if (GET_CODE (x7) != UNSPEC_VOLATILE || XVECLEN (x7, 0) != 4 || XINT (x7, 1) != 63 || GET_MODE (x7) != E_SImode || !register_operand (operands[0], E_SImode) || !memory_operand (operands[1], E_SImode) || pattern236 (x1, E_SImode) != 0) return -1; x9 = XEXP (x6, 0); if (!rtx_equal_p (x9, operands[1])) return -1; x16 = XVECEXP (x3, 0, 3); switch (GET_CODE (x16)) { case PLUS: if (pattern259 (x1) != 0 || ! #line 232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 743; /* sync_new_add_12 */ case MINUS: if (pattern259 (x1) != 0 || ! #line 232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 744; /* sync_new_sub_12 */ case IOR: if (pattern259 (x1) != 0 || ! #line 232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 745; /* sync_new_ior_12 */ case XOR: if (pattern259 (x1) != 0 || ! #line 232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 746; /* sync_new_xor_12 */ case AND: if (pattern259 (x1) != 0 || ! #line 232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 747; /* sync_new_and_12 */ case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: operands[4] = x16; if (!reg_or_0_operand (operands[4], E_SImode)) return -1; x17 = XVECEXP (x7, 0, 3); if (!rtx_equal_p (x17, operands[4]) || ! #line 351 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 750; /* sync_new_nand_12 */ default: return -1; } case 64: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != CLOBBER || !memory_operand (operands[0], E_SImode) || !register_operand (operands[1], E_SImode)) return -1; x16 = XVECEXP (x3, 0, 3); operands[3] = x16; if (!reg_or_0_operand (operands[3], E_SImode)) return -1; x9 = XEXP (x6, 0); operands[4] = x9; if (!scratch_operand (operands[4], E_SImode)) return -1; x13 = XVECEXP (x3, 0, 2); if (!rtx_equal_p (x13, operands[0]) || ! #line 268 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 748; /* sync_nand_12 */ default: return -1; } default: return -1; } } static int recog_96 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 1); x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case MULT: if (GET_MODE (x5) != E_SImode || GET_MODE (x4) != E_SImode) return -1; x6 = XEXP (x5, 0); operands[1] = x6; if (!register_operand (operands[1], E_SImode)) return -1; x7 = XEXP (x5, 1); operands[2] = x7; if (!register_operand (operands[2], E_SImode)) return -1; x8 = XVECEXP (x1, 0, 1); switch (GET_CODE (x8)) { case CLOBBER: if (!register_operand (operands[0], E_SImode)) return -1; x9 = XEXP (x4, 1); operands[3] = x9; if (!register_operand (operands[3], E_SImode)) return -1; x10 = XEXP (x8, 0); operands[4] = x10; if (!scratch_operand (operands[4], E_SImode) || ! #line 1834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC)) return -1; return 44; /* *macc */ case SET: x11 = XEXP (x8, 1); if (GET_CODE (x11) != PLUS || GET_MODE (x11) != E_SImode) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != MULT || GET_MODE (x12) != E_SImode || !muldiv_target_operand (operands[0], E_SImode)) return -1; x10 = XEXP (x8, 0); operands[3] = x10; if (!register_operand (operands[3], E_SImode)) return -1; x9 = XEXP (x4, 1); if (!rtx_equal_p (x9, operands[0])) return -1; x13 = XEXP (x12, 0); if (!rtx_equal_p (x13, operands[1])) return -1; x14 = XEXP (x12, 1); if (!rtx_equal_p (x14, operands[2])) return -1; x15 = XEXP (x11, 1); if (!rtx_equal_p (x15, operands[0]) || ! #line 1904 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && reload_completed)) return -1; return 47; /* *macc2 */ default: return -1; } case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: case MEM: operands[1] = x5; x8 = XVECEXP (x1, 0, 1); if (GET_CODE (x8) != SET) return -1; x9 = XEXP (x4, 1); operands[2] = x9; x11 = XEXP (x8, 1); switch (GET_CODE (x11)) { case UNSPEC_VOLATILE: if (pattern163 (x11, E_DImode) != 0 || !register_operand (operands[0], E_DImode) || GET_MODE (x4) != E_DImode || !memory_operand (operands[1], E_DImode) || pattern253 (x8, E_DImode) != 0 || !( #line 413 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 758; /* sync_new_adddi */ case UNSPEC: if (XVECLEN (x11, 0) != 2) return -1; x10 = XEXP (x8, 0); if (GET_CODE (x10) != REG || REGNO (x10) != 185 || GET_MODE (x10) != E_CCDSPmode || GET_MODE (x11) != E_CCDSPmode) return -1; x16 = XVECEXP (x11, 0, 0); if (!rtx_equal_p (x16, operands[1])) return -1; x17 = XVECEXP (x11, 0, 1); if (!rtx_equal_p (x17, operands[2])) return -1; switch (XINT (x11, 1)) { case 86: switch (GET_MODE (operands[0])) { case E_V2HImode: if (pattern88 (x4, E_V2HImode) != 0 || ! #line 134 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 848; /* addv2hi3 */ case E_V4QImode: if (pattern88 (x4, E_V4QImode) != 0 || ! #line 134 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 849; /* addv4qi3 */ default: return -1; } case 155: if (!register_operand (operands[0], E_V2HImode) || GET_MODE (x4) != E_V2HImode || !reg_or_0_operand (operands[1], E_V2HImode) || !reg_or_0_operand (operands[2], E_V2HImode) || ! #line 90 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 956; /* mips_addu_ph */ default: return -1; } default: return -1; } default: return -1; } } static int recog_97 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 1); x5 = XEXP (x4, 1); switch (GET_CODE (x5)) { case MULT: if (GET_MODE (x5) != E_SImode || GET_MODE (x4) != E_SImode) return -1; x6 = XEXP (x5, 0); if (!register_operand (x6, E_SImode)) return -1; x7 = XEXP (x5, 1); if (!register_operand (x7, E_SImode)) return -1; x8 = XVECEXP (x1, 0, 1); switch (GET_CODE (x8)) { case CLOBBER: if (!register_operand (operands[0], E_SImode)) return -1; x9 = XEXP (x4, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; operands[2] = x6; operands[3] = x7; x10 = XEXP (x8, 0); operands[4] = x10; if (!scratch_operand (operands[4], E_SImode) || ! #line 1856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MSAC)) return -1; return 45; /* *msac */ case SET: x11 = XEXP (x8, 1); if (GET_CODE (x11) != MINUS || GET_MODE (x11) != E_SImode) return -1; x12 = XEXP (x11, 1); if (GET_CODE (x12) != MULT || GET_MODE (x12) != E_SImode || !muldiv_target_operand (operands[0], E_SImode)) return -1; operands[1] = x6; operands[2] = x7; x10 = XEXP (x8, 0); operands[3] = x10; if (!register_operand (operands[3], E_SImode)) return -1; x9 = XEXP (x4, 0); if (!rtx_equal_p (x9, operands[0])) return -1; x13 = XEXP (x11, 0); if (!rtx_equal_p (x13, operands[0])) return -1; x14 = XEXP (x12, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XEXP (x12, 1); if (!rtx_equal_p (x15, operands[2]) || ! #line 1919 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MSAC && reload_completed)) return -1; return 48; /* *msac2 */ default: return -1; } case REG: case SUBREG: operands[2] = x5; x8 = XVECEXP (x1, 0, 1); if (GET_CODE (x8) != SET) return -1; x9 = XEXP (x4, 0); operands[1] = x9; x11 = XEXP (x8, 1); switch (GET_CODE (x11)) { case UNSPEC_VOLATILE: if (XVECLEN (x11, 0) != 1 || XINT (x11, 1) != 62) return -1; x16 = XVECEXP (x11, 0, 0); if (GET_CODE (x16) != MINUS) return -1; x17 = XEXP (x16, 0); if (!rtx_equal_p (x17, operands[1])) return -1; x18 = XEXP (x16, 1); if (!rtx_equal_p (x18, operands[2])) return -1; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern249 (x1, E_SImode) != 0 || ! #line 429 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 759; /* sync_new_subsi */ case E_DImode: if (pattern249 (x1, E_DImode) != 0 || !( #line 429 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 760; /* sync_new_subdi */ default: return -1; } case UNSPEC: if (pattern126 (x8, 185, 88, 2) != 0) return -1; x16 = XVECEXP (x11, 0, 0); if (!rtx_equal_p (x16, operands[1])) return -1; x19 = XVECEXP (x11, 0, 1); if (!rtx_equal_p (x19, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_V2HImode: if (pattern88 (x4, E_V2HImode) != 0 || ! #line 158 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 853; /* subv2hi3 */ case E_V4QImode: if (pattern88 (x4, E_V4QImode) != 0 || ! #line 158 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 854; /* subv4qi3 */ default: return -1; } default: return -1; } default: return -1; } } static int recog_98 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case MULT: x4 = XEXP (x2, 0); operands[0] = x4; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[1] = x5; x6 = XEXP (x3, 1); operands[2] = x6; x7 = XVECEXP (x1, 0, 1); switch (GET_CODE (x7)) { case CLOBBER: x8 = XEXP (x7, 0); operands[3] = x8; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern211 (x3, E_SImode) != 0) return -1; if ( #line 1653 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MUL3)) return 36; /* mulsi3_mul3 */ if (! #line 1701 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && TARGET_FIX_R4000)) return -1; return 40; /* mulsi3_r4000 */ case E_DImode: if (pattern211 (x3, E_DImode) != 0) return -1; if (( #line 1653 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 37; /* muldi3_mul3 */ if (!( #line 1701 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 41; /* muldi3_r4000 */ default: return -1; } case SET: if (pnum_clobbers == NULL) return -1; x9 = XEXP (x7, 1); if (GET_CODE (x9) != UNSPEC || pattern126 (x7, 185, 170, 2) != 0 || pattern88 (x3, E_V2HImode) != 0) return -1; x10 = XVECEXP (x9, 0, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XVECEXP (x9, 0, 1); if (!rtx_equal_p (x11, operands[2]) || ! #line 230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 967; /* mulv2hi3 */ default: return -1; } case SIGN_EXTEND: switch (pattern121 (x1, SIGN_EXTEND)) { case 0: if ( #line 2133 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_FIX_R4000 && !ISA_HAS_DSP && ISA_HAS_MULT)) return 53; /* mulsidi3_32bit_r4000 */ if (! #line 2224 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3)) return -1; return 59; /* mulsidi3_64bit_dmul */ case 1: if (! #line 2517 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; return 79; /* mulditi3_r4000 */ default: return -1; } case ZERO_EXTEND: switch (pattern121 (x1, ZERO_EXTEND)) { case 0: if (! #line 2133 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_FIX_R4000 && !ISA_HAS_DSP && ISA_HAS_MULT)) return -1; return 54; /* umulsidi3_32bit_r4000 */ case 1: if (! #line 2517 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; return 80; /* umulditi3_r4000 */ default: return -1; } default: return -1; } case PLUS: return recog_96 (x1, insn, pnum_clobbers); case MINUS: return recog_97 (x1, insn, pnum_clobbers); case NEG: if (pattern83 (x1) != 0) return -1; x4 = XEXP (x2, 0); operands[0] = x4; if (!register_operand (operands[0], E_SImode)) return -1; x5 = XEXP (x3, 0); x12 = XEXP (x5, 0); operands[1] = x12; if (!register_operand (operands[1], E_SImode)) return -1; x13 = XEXP (x5, 1); operands[2] = x13; if (!register_operand (operands[2], E_SImode)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 0); operands[3] = x8; if (!scratch_operand (operands[3], E_SImode) || ! #line 2061 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULS)) return -1; return 50; /* *muls */ case TRUNCATE: x5 = XEXP (x3, 0); if (GET_CODE (x5) != LSHIFTRT) return -1; x13 = XEXP (x5, 1); if (GET_CODE (x13) != CONST_INT) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return -1; x4 = XEXP (x2, 0); operands[0] = x4; x8 = XEXP (x7, 0); operands[3] = x8; x12 = XEXP (x5, 0); switch (GET_CODE (x12)) { case MULT: x14 = XEXP (x12, 0); switch (GET_CODE (x14)) { case SIGN_EXTEND: switch (pattern213 (x3, SIGN_EXTEND)) { case 0: if ( #line 2324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)) return 67; /* smulsi3_highpart_internal */ if (! #line 2372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; return 69; /* smulsi3_highpart_mulhi_internal */ case 1: if (! #line 2438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; return 75; /* smuldi3_highpart_internal */ default: return -1; } case ZERO_EXTEND: switch (pattern213 (x3, ZERO_EXTEND)) { case 0: if ( #line 2324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)) return 68; /* umulsi3_highpart_internal */ if (! #line 2372 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; return 70; /* umulsi3_highpart_mulhi_internal */ case 1: if (! #line 2438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120))) return -1; return 76; /* umuldi3_highpart_internal */ default: return -1; } default: return -1; } case NEG: if (GET_MODE (x12) != E_DImode) return -1; x14 = XEXP (x12, 0); if (GET_CODE (x14) != MULT || GET_MODE (x14) != E_DImode || XWINT (x13, 0) != 32L || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || GET_MODE (x5) != E_DImode) return -1; x15 = XEXP (x14, 0); if (GET_MODE (x15) != E_DImode) return -1; x16 = XEXP (x14, 1); if (GET_MODE (x16) != E_DImode || !scratch_operand (operands[3], E_SImode)) return -1; switch (GET_CODE (x15)) { case SIGN_EXTEND: if (GET_CODE (x16) != SIGN_EXTEND) return -1; x17 = XEXP (x15, 0); operands[1] = x17; if (!register_operand (operands[1], E_SImode)) return -1; x18 = XEXP (x16, 0); operands[2] = x18; if (!register_operand (operands[2], E_SImode) || ! #line 2387 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; return 71; /* *smulsi3_highpart_neg_mulhi_internal */ case ZERO_EXTEND: if (GET_CODE (x16) != ZERO_EXTEND) return -1; x17 = XEXP (x15, 0); operands[1] = x17; if (!register_operand (operands[1], E_SImode)) return -1; x18 = XEXP (x16, 0); operands[2] = x18; if (!register_operand (operands[2], E_SImode) || ! #line 2387 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; return 72; /* *umulsi3_highpart_neg_mulhi_internal */ default: return -1; } default: return -1; } case DIV: switch (pattern86 (x1, MOD)) { case 0: if (! #line 2898 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16)) return -1; return 135; /* *divmodsi4 */ case 1: if (!( #line 2898 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 136; /* *divmoddi4 */ default: return -1; } case UDIV: switch (pattern86 (x1, UMOD)) { case 0: if (! #line 2963 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_MIPS16)) return -1; return 139; /* *udivmodsi4 */ case 1: if (!( #line 2963 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 140; /* *udivmoddi4 */ default: return -1; } case FIX: if (GET_MODE (x3) != E_SImode) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return -1; x4 = XEXP (x2, 0); operands[0] = x4; if (!register_operand (operands[0], E_SImode)) return -1; x5 = XEXP (x3, 0); operands[1] = x5; x8 = XEXP (x7, 0); operands[2] = x8; switch (GET_MODE (operands[1])) { case E_DFmode: if (!register_operand (operands[1], E_DFmode) || !scratch_operand (operands[2], E_DFmode) || ! #line 3980 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && !ISA_HAS_TRUNC_W)) return -1; return 265; /* fix_truncdfsi2_macro */ case E_SFmode: if (!register_operand (operands[1], E_SFmode) || !scratch_operand (operands[2], E_SFmode) || ! #line 4017 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !ISA_HAS_TRUNC_W)) return -1; return 267; /* fix_truncsfsi2_macro */ default: return -1; } case CONST: case LABEL_REF: case SYMBOL_REF: operands[1] = x3; if (!absolute_symbolic_operand (operands[1], E_DImode)) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return -1; x4 = XEXP (x2, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode)) return -1; x8 = XEXP (x7, 0); operands[2] = x8; if (!scratch_operand (operands[2], E_DImode) || ! #line 4554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS && cse_not_expected)) return -1; return 292; /* *lea64 */ case UNSPEC: return recog_93 (x1, insn, pnum_clobbers); case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: case MEM: return recog_94 (x1, insn, pnum_clobbers); case UNSPEC_VOLATILE: return recog_95 (x1, insn, pnum_clobbers); case CALL: x5 = XEXP (x3, 0); if (GET_CODE (x5) != MEM || GET_MODE (x5) != E_SImode) return -1; x4 = XEXP (x2, 0); operands[0] = x4; if (!register_operand (operands[0], E_VOIDmode)) return -1; x12 = XEXP (x5, 0); operands[1] = x12; x6 = XEXP (x3, 1); operands[2] = x6; x7 = XVECEXP (x1, 0, 1); switch (GET_CODE (x7)) { case SET: if (pattern216 (x7) != 0) return -1; if ( #line 6993 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SIBCALLS && SIBLING_CALL_P (insn))) return 657; /* sibcall_value_multiple_internal */ if (pnum_clobbers == NULL) return -1; *pnum_clobbers = 1; return 666; /* call_value_multiple_internal */ case CLOBBER: x8 = XEXP (x7, 0); if (GET_CODE (x8) != REG || REGNO (x8) != 31 || GET_MODE (x8) != E_SImode || !call_insn_operand (operands[1], E_VOIDmode)) return -1; return 662; /* call_value_internal */ case CONST_INT: if (pnum_clobbers == NULL || XWINT (x7, 0) != 1L || !const_call_insn_operand (operands[1], E_VOIDmode)) return -1; *pnum_clobbers = 1; return 664; /* call_value_internal_direct */ default: return -1; } case SIGN_EXTEND: if (pattern87 (x1, SIGN_EXTEND) != 0 || ! #line 7777 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 725; /* *join2_loadhi */ case ZERO_EXTEND: if (pattern87 (x1, ZERO_EXTEND) != 0 || ! #line 7777 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 726; /* *join2_loadhi */ case US_PLUS: switch (pattern89 (x1, 87)) { case 0: if (! #line 34 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1012; /* usadduqq3 */ case 1: if (! #line 34 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1013; /* usadduhq3 */ case 2: if (! #line 35 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1014; /* usadduha3 */ case 3: if (! #line 35 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1015; /* usaddv4uqq3 */ case 4: if (! #line 36 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1016; /* usaddv2uhq3 */ case 5: if (! #line 36 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1017; /* usaddv2uha3 */ default: return -1; } case SS_PLUS: if (pattern90 (x1) != 0) return -1; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[1] = x5; x7 = XVECEXP (x1, 0, 1); x9 = XEXP (x7, 1); if (XVECLEN (x9, 0) != 2 || XINT (x9, 1) != 87) return -1; x6 = XEXP (x3, 1); operands[2] = x6; switch (pattern244 (x1)) { case 0: if (! #line 71 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1018; /* ssaddhq3 */ case 1: if (! #line 71 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1019; /* ssaddsq3 */ case 2: if (! #line 71 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1020; /* ssaddha3 */ case 3: if (! #line 71 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1021; /* ssaddsa3 */ case 4: if (! #line 71 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1022; /* ssaddv2hq3 */ case 5: if (! #line 71 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1023; /* ssaddv2ha3 */ default: return -1; } case SS_MULT: if (GET_MODE (x5) != E_DQmode) return -1; x12 = XEXP (x5, 0); if (GET_CODE (x12) != SAT_FRACT || GET_MODE (x12) != E_DQmode) return -1; x13 = XEXP (x5, 1); if (GET_CODE (x13) != SAT_FRACT || GET_MODE (x13) != E_DQmode || pattern252 (x1, 126) != 0) return -1; x14 = XEXP (x12, 0); operands[1] = x14; if (!register_operand (operands[1], E_SQmode)) return -1; x19 = XEXP (x13, 0); operands[2] = x19; if (!register_operand (operands[2], E_SQmode)) return -1; x6 = XEXP (x3, 1); operands[3] = x6; if (!register_operand (operands[3], E_DQmode)) return -1; x7 = XVECEXP (x1, 0, 1); x9 = XEXP (x7, 1); x10 = XVECEXP (x9, 0, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XVECEXP (x9, 0, 1); if (!rtx_equal_p (x11, operands[2])) return -1; x20 = XVECEXP (x9, 0, 2); if (!rtx_equal_p (x20, operands[3]) || ! #line 130 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 1053; /* ssmaddsqdq4 */ default: return -1; } case US_MINUS: switch (pattern89 (x1, 89)) { case 0: if (! #line 34 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1038; /* ussubuqq3 */ case 1: if (! #line 34 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1039; /* ussubuhq3 */ case 2: if (! #line 35 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1040; /* ussubuha3 */ case 3: if (! #line 35 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1041; /* ussubv4uqq3 */ case 4: if (! #line 36 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1042; /* ussubv2uhq3 */ case 5: if (! #line 36 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1043; /* ussubv2uha3 */ default: return -1; } case SS_MINUS: if (pattern90 (x1) != 0) return -1; x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[2] = x6; x7 = XVECEXP (x1, 0, 1); x9 = XEXP (x7, 1); if (XVECLEN (x9, 0) != 2 || XINT (x9, 1) != 89) return -1; x5 = XEXP (x3, 0); operands[1] = x5; switch (pattern244 (x1)) { case 0: if (! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1044; /* sssubhq3 */ case 1: if (! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1045; /* sssubsq3 */ case 2: if (! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1046; /* sssubha3 */ case 3: if (! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1047; /* sssubsa3 */ case 4: if (! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1048; /* sssubv2hq3 */ case 5: if (! #line 102 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1049; /* sssubv2ha3 */ default: return -1; } case SS_MULT: if (GET_MODE (x6) != E_DQmode) return -1; x21 = XEXP (x6, 0); if (GET_CODE (x21) != SAT_FRACT || GET_MODE (x21) != E_DQmode) return -1; x22 = XEXP (x6, 1); if (GET_CODE (x22) != SAT_FRACT || GET_MODE (x22) != E_DQmode || pattern252 (x1, 127) != 0) return -1; x5 = XEXP (x3, 0); operands[3] = x5; if (!register_operand (operands[3], E_DQmode)) return -1; x23 = XEXP (x21, 0); operands[1] = x23; if (!register_operand (operands[1], E_SQmode)) return -1; x24 = XEXP (x22, 0); operands[2] = x24; if (!register_operand (operands[2], E_SQmode)) return -1; x7 = XVECEXP (x1, 0, 1); x9 = XEXP (x7, 1); x10 = XVECEXP (x9, 0, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XVECEXP (x9, 0, 1); if (!rtx_equal_p (x11, operands[2])) return -1; x20 = XVECEXP (x9, 0, 2); if (!rtx_equal_p (x20, operands[3]) || ! #line 146 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 1054; /* ssmsubsqdq4 */ default: return -1; } case SS_MULT: if (pnum_clobbers == NULL) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x9 = XEXP (x7, 1); if (GET_CODE (x9) != UNSPEC || pattern126 (x7, 185, 116, 2) != 0) return -1; x4 = XEXP (x2, 0); operands[0] = x4; x5 = XEXP (x3, 0); operands[1] = x5; x6 = XEXP (x3, 1); operands[2] = x6; switch (pattern245 (x1)) { case 0: if (! #line 41 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 1050; /* ssmulv2hq3 */ case 1: if (! #line 41 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 1051; /* ssmulhq3 */ case 2: if (! #line 42 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 1052; /* ssmulsq3 */ default: return -1; } default: return -1; } } static int recog_99 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case SET: return recog_98 (x1, insn, pnum_clobbers); case UNSPEC_VOLATILE: if (XVECLEN (x2, 0) != 1 || XINT (x2, 1) != 38) return -1; x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 31) return -1; switch (GET_MODE (x5)) { case E_SImode: if (!( #line 5640 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 439; /* clear_hazard_si */ case E_DImode: if (!( #line 5640 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 440; /* clear_hazard_di */ default: return -1; } case RETURN: x4 = XVECEXP (x1, 0, 1); switch (GET_CODE (x4)) { case UNSPEC_VOLATILE: if (XVECLEN (x4, 0) != 1) return -1; switch (XINT (x4, 1)) { case 54: x6 = XVECEXP (x4, 0, 0); operands[0] = x6; if (!pmode_register_operand (operands[0], E_VOIDmode)) return -1; return 635; /* mips_hb_return_internal */ case 44: x6 = XVECEXP (x4, 0, 0); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 638; /* mips_eret */ case 45: x6 = XVECEXP (x4, 0, 0); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 639; /* mips_deret */ default: return -1; } case USE: x5 = XEXP (x4, 0); operands[0] = x5; if (!pmode_register_operand (operands[0], E_VOIDmode)) return -1; return 636; /* return_internal */ default: return -1; } case SIMPLE_RETURN: x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != USE) return -1; x5 = XEXP (x4, 0); operands[0] = x5; if (!pmode_register_operand (operands[0], E_VOIDmode)) return -1; return 637; /* simple_return_internal */ case UNSPEC: if (XVECLEN (x2, 0) != 1 || XINT (x2, 1) != 23) return -1; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != CLOBBER) return -1; x3 = XVECEXP (x2, 0, 0); operands[0] = x3; x5 = XEXP (x4, 0); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !scratch_operand (operands[1], E_SImode) || ! #line 6783 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (! TARGET_64BIT)) return -1; return 645; /* eh_set_lr_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !scratch_operand (operands[1], E_DImode) || ! #line 6789 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 646; /* eh_set_lr_di */ default: return -1; } case CALL: x7 = XEXP (x2, 0); if (GET_CODE (x7) != MEM || GET_MODE (x7) != E_SImode) return -1; x8 = XEXP (x7, 0); operands[0] = x8; x9 = XEXP (x2, 1); operands[1] = x9; x4 = XVECEXP (x1, 0, 1); switch (GET_CODE (x4)) { case CLOBBER: x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 31 || GET_MODE (x5) != E_SImode || !call_insn_operand (operands[0], E_VOIDmode)) return -1; return 658; /* call_internal */ case CONST_INT: if (pnum_clobbers == NULL || XWINT (x4, 0) != 1L || !const_call_insn_operand (operands[0], E_VOIDmode)) return -1; *pnum_clobbers = 1; return 660; /* call_internal_direct */ default: return -1; } default: return -1; } } static int recog_100 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24, x25; rtx x26; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case PLUS: if (pattern83 (x1) != 0) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; if (!register_operand (operands[0], E_SImode)) return -1; x6 = XEXP (x3, 0); x7 = XEXP (x6, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x8 = XEXP (x6, 1); operands[2] = x8; if (!register_operand (operands[2], E_SImode)) return -1; x9 = XEXP (x3, 1); operands[3] = x9; if (!register_operand (operands[3], E_SImode)) return -1; x10 = XVECEXP (x1, 0, 1); x11 = XEXP (x10, 0); operands[4] = x11; if (!scratch_operand (operands[4], E_SImode)) return -1; x12 = XEXP (x4, 0); operands[5] = x12; if (!scratch_operand (operands[5], E_SImode)) return -1; if ( #line 1762 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB && !TARGET_MIPS16)) return 42; /* *mul_acc_si */ if (! #line 1791 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS3900 && !TARGET_MIPS16)) return -1; return 43; /* *mul_acc_si_r3900 */ case MINUS: if (GET_MODE (x3) != E_SImode) return -1; x9 = XEXP (x3, 1); if (GET_CODE (x9) != MULT || GET_MODE (x9) != E_SImode) return -1; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != CLOBBER) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; if (!register_operand (operands[0], E_SImode)) return -1; x6 = XEXP (x3, 0); operands[1] = x6; if (!register_operand (operands[1], E_SImode) || pattern234 (x1) != 0) return -1; if ( #line 1877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MSAC)) return 46; /* *msac_using_macc */ if (! #line 2020 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB)) return -1; return 49; /* *mul_sub_si */ case MULT: x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; x12 = XEXP (x4, 0); if (!scratch_operand (x12, E_DImode)) return -1; x6 = XEXP (x3, 0); switch (GET_CODE (x6)) { case SIGN_EXTEND: if (pattern160 (x1, SIGN_EXTEND) != 0 || ! #line 2145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT)) return -1; return 55; /* mulsidi3_64bit */ case ZERO_EXTEND: if (pattern160 (x1, ZERO_EXTEND) != 0 || ! #line 2145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT)) return -1; return 56; /* umulsidi3_64bit */ case REG: case SUBREG: operands[1] = x6; if (!register_operand (operands[1], E_V2HImode)) return -1; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != SET) return -1; x13 = XEXP (x10, 1); if (GET_CODE (x13) != UNSPEC || pattern126 (x10, 185, 170, 2) != 0 || !register_operand (operands[0], E_V2HImode) || GET_MODE (x3) != E_V2HImode) return -1; x9 = XEXP (x3, 1); operands[2] = x9; if (!register_operand (operands[2], E_V2HImode)) return -1; operands[3] = x12; x14 = XVECEXP (x13, 0, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XVECEXP (x13, 0, 1); if (!rtx_equal_p (x15, operands[2]) || ! #line 230 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 967; /* mulv2hi3 */ default: return -1; } case DIV: switch (pattern93 (x1, MOD)) { case 0: if (! #line 2924 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && TARGET_MIPS16)) return -1; return 137; /* divmodsi4_mips16 */ case 1: if (!( #line 2924 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 138; /* divmoddi4_mips16 */ default: return -1; } case UDIV: switch (pattern93 (x1, UMOD)) { case 0: if (! #line 2984 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && TARGET_MIPS16)) return -1; return 141; /* udivmodsi4_mips16 */ case 1: if (!( #line 2984 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 142; /* udivmoddi4_mips16 */ default: return -1; } case UNSPEC: switch (XVECLEN (x3, 0)) { case 2: x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x12 = XEXP (x4, 0); operands[3] = x12; switch (XINT (x3, 1)) { case 51: x16 = XVECEXP (x3, 0, 1); if (GET_CODE (x16) != LABEL_REF) return -1; x5 = XEXP (x2, 0); if (GET_CODE (x5) != PC) return -1; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != CLOBBER) return -1; x17 = XVECEXP (x3, 0, 0); operands[0] = x17; if (!register_operand (operands[0], E_SImode)) return -1; x18 = XEXP (x16, 0); operands[1] = x18; x11 = XEXP (x10, 0); operands[2] = x11; switch (GET_MODE (x3)) { case E_SImode: if (!scratch_operand (operands[2], E_SImode) || !scratch_operand (operands[3], E_SImode) || !( #line 6509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 628; /* casesi_internal_mips16_si */ case E_DImode: if (!scratch_operand (operands[2], E_DImode) || !scratch_operand (operands[3], E_DImode) || !( #line 6509 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 629; /* casesi_internal_mips16_di */ default: return -1; } case 114: if (pattern161 (x1, 114, E_V2HImode, E_V4QImode) != 0 || ! #line 487 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 886; /* mips_muleu_s_ph_qbl */ case 115: if (pattern161 (x1, 115, E_V2HImode, E_V4QImode) != 0 || ! #line 500 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 887; /* mips_muleu_s_ph_qbr */ case 116: if (pattern161 (x1, 116, E_V2HImode, E_V2HImode) != 0 || ! #line 514 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 888; /* mips_mulq_rs_ph */ case 117: if (pattern161 (x1, 117, E_SImode, E_V2HImode) != 0 || ! #line 528 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 889; /* mips_muleq_s_w_phl */ case 118: if (pattern161 (x1, 118, E_SImode, E_V2HImode) != 0 || ! #line 541 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 890; /* mips_muleq_s_w_phr */ case 171: if (pattern162 (x1, E_V2HImode, 171) != 0 || ! #line 243 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 968; /* mips_mul_s_ph */ case 172: if (pattern162 (x1, E_SImode, 172) != 0 || ! #line 256 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 969; /* mips_mulq_rs_w */ case 173: if (pattern162 (x1, E_V2HImode, 173) != 0 || ! #line 269 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 970; /* mips_mulq_s_ph */ case 174: if (pattern162 (x1, E_SImode, 174) != 0 || ! #line 282 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 971; /* mips_mulq_s_w */ default: return -1; } case 1: x5 = XEXP (x2, 0); if (GET_CODE (x5) != REG || pattern123 (x1, 31, 25) != 0) return -1; x17 = XVECEXP (x3, 0, 0); operands[0] = x17; switch (XINT (x3, 1)) { case 30: if (REGNO (x5) != 3) return -1; switch (GET_MODE (x5)) { case E_SImode: if (pattern246 (x1, E_SImode) != 0 || !( #line 7632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 713; /* *tls_get_tp_mips16_call_si */ case E_DImode: if (pattern246 (x1, E_DImode) != 0 || !( #line 7632 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 714; /* *tls_get_tp_mips16_call_di */ default: return -1; } case 12: if (GET_MODE (x3) != E_SImode || REGNO (x5) != 2 || GET_MODE (x5) != E_SImode) return -1; if (call_insn_operand (operands[0], E_SImode)) { x10 = XVECEXP (x1, 0, 1); x11 = XEXP (x10, 0); if (GET_MODE (x11) == E_SImode) { x4 = XVECEXP (x1, 0, 2); x12 = XEXP (x4, 0); if (GET_MODE (x12) == E_SImode && ( #line 7673 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 716; /* mips_get_fcsr_mips16_si */ } } if (!call_insn_operand (operands[0], E_DImode)) return -1; x10 = XVECEXP (x1, 0, 1); x11 = XEXP (x10, 0); if (GET_MODE (x11) != E_DImode) return -1; x4 = XVECEXP (x1, 0, 2); x12 = XEXP (x4, 0); if (GET_MODE (x12) != E_DImode || !( #line 7673 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 717; /* mips_get_fcsr_mips16_di */ default: return -1; } case 3: if (XINT (x3, 1) != 149 || pattern124 (x3) != 0) return -1; x10 = XVECEXP (x1, 0, 1); if (pattern125 (x10, 149, E_CCDSPmode, UNSPEC) != 0) return -1; x13 = XEXP (x10, 1); x19 = XVECEXP (x13, 0, 2); if (GET_CODE (x19) != REG || REGNO (x19) != 182 || GET_MODE (x19) != E_CCDSPmode) return -1; x11 = XEXP (x10, 0); if (GET_CODE (x11) != REG || REGNO (x11) != 182 || GET_MODE (x11) != E_CCDSPmode) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != SET) return -1; x20 = XEXP (x4, 1); if (GET_CODE (x20) != UNSPEC || XVECLEN (x20, 0) != 2 || XINT (x20, 1) != 149 || GET_MODE (x20) != E_CCDSPmode) return -1; x12 = XEXP (x4, 0); if (GET_CODE (x12) != REG || REGNO (x12) != 187 || GET_MODE (x12) != E_CCDSPmode) return -1; x5 = XEXP (x2, 0); operands[0] = x5; if (!register_operand (operands[0], E_SImode)) return -1; x17 = XVECEXP (x3, 0, 0); operands[1] = x17; if (!register_operand (operands[1], E_DImode)) return -1; x16 = XVECEXP (x3, 0, 1); operands[2] = x16; if (!arith_operand (operands[2], E_SImode)) return -1; x14 = XVECEXP (x13, 0, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XVECEXP (x13, 0, 1); if (!rtx_equal_p (x15, operands[2])) return -1; x21 = XVECEXP (x20, 0, 0); if (!rtx_equal_p (x21, operands[1])) return -1; x22 = XVECEXP (x20, 0, 1); if (!rtx_equal_p (x22, operands[2]) || ! #line 995 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 925; /* mips_extpdp */ default: return -1; } case CALL: x6 = XEXP (x3, 0); if (GET_CODE (x6) != MEM || GET_MODE (x6) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x12 = XEXP (x4, 0); if (GET_CODE (x12) != REG || GET_MODE (x12) != E_SImode) return -1; x5 = XEXP (x2, 0); operands[0] = x5; if (!register_operand (operands[0], E_VOIDmode)) return -1; x7 = XEXP (x6, 0); operands[1] = x7; x9 = XEXP (x3, 1); operands[2] = x9; x10 = XVECEXP (x1, 0, 1); switch (GET_CODE (x10)) { case CLOBBER: if (pattern217 (x1) != 0 || !call_insn_operand (operands[1], E_VOIDmode) || ! #line 7145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 663; /* call_value_split */ case CONST_INT: if (XWINT (x10, 0) != 1L || REGNO (x12) != 31 || !const_call_insn_operand (operands[1], E_VOIDmode)) return -1; return 664; /* call_value_internal_direct */ case SET: x13 = XEXP (x10, 1); if (GET_CODE (x13) != CALL) return -1; x23 = XEXP (x13, 0); if (GET_CODE (x23) != MEM || GET_MODE (x23) != E_SImode || REGNO (x12) != 31 || pattern215 (x10) != 0) return -1; return 666; /* call_value_multiple_internal */ default: return -1; } case SUBREG: case MEM: operands[1] = x3; if (!memory_operand (operands[1], E_SImode)) return -1; x10 = XVECEXP (x1, 0, 1); if (pattern125 (x10, 64, E_SImode, UNSPEC_VOLATILE) != 0) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; if (!register_operand (operands[0], E_SImode)) return -1; x13 = XEXP (x10, 1); x14 = XVECEXP (x13, 0, 0); operands[2] = x14; if (!register_operand (operands[2], E_SImode)) return -1; x15 = XVECEXP (x13, 0, 1); operands[3] = x15; if (!register_operand (operands[3], E_SImode)) return -1; x12 = XEXP (x4, 0); operands[5] = x12; if (!scratch_operand (operands[5], E_SImode)) return -1; x11 = XEXP (x10, 0); if (!rtx_equal_p (x11, operands[1])) return -1; x19 = XVECEXP (x13, 0, 2); switch (pattern255 (x19)) { case 0: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 738; /* sync_old_add_12 */ case 1: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 739; /* sync_old_sub_12 */ case 2: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 740; /* sync_old_ior_12 */ case 3: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 741; /* sync_old_xor_12 */ case 4: if (! #line 186 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 742; /* sync_old_and_12 */ case 5: if (! #line 307 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 749; /* sync_old_nand_12 */ default: return -1; } case UNSPEC_VOLATILE: if (XVECLEN (x3, 0) != 1) return -1; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != SET) return -1; x13 = XEXP (x10, 1); if (GET_CODE (x13) != UNSPEC_VOLATILE || XVECLEN (x13, 0) != 1) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != UNSPEC_VOLATILE || XVECLEN (x4, 0) != 1) return -1; x5 = XEXP (x2, 0); operands[0] = x5; x17 = XVECEXP (x3, 0, 0); operands[1] = x17; x24 = XVECEXP (x4, 0, 0); operands[3] = x24; if (!const_int_operand (operands[3], E_SImode)) return -1; x11 = XEXP (x10, 0); if (!rtx_equal_p (x11, operands[1])) return -1; switch (XINT (x3, 1)) { case 69: if (XINT (x13, 1) != 69 || XINT (x4, 1) != 69) return -1; x14 = XVECEXP (x13, 0, 0); operands[2] = x14; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern256 (x1, E_SImode) != 0 || ! #line 639 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_SWAP)) return -1; return 790; /* atomic_exchangesi_llsc */ case E_DImode: if (pattern256 (x1, E_DImode) != 0 || !( #line 639 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_SWAP) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 791; /* atomic_exchangedi_llsc */ default: return -1; } case 70: if (XINT (x13, 1) != 70) return -1; x14 = XVECEXP (x13, 0, 0); if (GET_CODE (x14) != PLUS || XINT (x4, 1) != 70) return -1; x25 = XEXP (x14, 1); operands[2] = x25; x26 = XEXP (x14, 0); if (!rtx_equal_p (x26, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern257 (x1, E_SImode) != 0 || ! #line 696 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_LDADD)) return -1; return 794; /* atomic_fetch_addsi_llsc */ case E_DImode: if (pattern257 (x1, E_DImode) != 0 || !( #line 696 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_LDADD) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 795; /* atomic_fetch_adddi_llsc */ default: return -1; } default: return -1; } case SS_MULT: x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != SET) return -1; x13 = XEXP (x10, 1); if (GET_CODE (x13) != UNSPEC || pattern126 (x10, 185, 116, 2) != 0) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; x6 = XEXP (x3, 0); operands[1] = x6; x9 = XEXP (x3, 1); operands[2] = x9; x12 = XEXP (x4, 0); operands[3] = x12; if (!scratch_operand (operands[3], E_DImode)) return -1; switch (pattern245 (x1)) { case 0: if (! #line 41 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1050; /* ssmulv2hq3 */ case 1: if (! #line 41 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1051; /* ssmulhq3 */ case 2: if (! #line 42 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1052; /* ssmulsq3 */ default: return -1; } default: return -1; } } static int recog_101 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case SET: return recog_100 (x1, insn, pnum_clobbers); case CALL: x3 = XEXP (x2, 0); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || GET_MODE (x5) != E_SImode) return -1; x6 = XEXP (x3, 0); operands[0] = x6; x7 = XEXP (x2, 1); operands[1] = x7; x8 = XVECEXP (x1, 0, 1); switch (GET_CODE (x8)) { case CLOBBER: if (pattern217 (x1) != 0 || !call_insn_operand (operands[0], E_VOIDmode) || ! #line 7067 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 659; /* call_split */ case CONST_INT: if (XWINT (x8, 0) != 1L || REGNO (x5) != 31 || !const_call_insn_operand (operands[0], E_VOIDmode)) return -1; return 660; /* call_internal_direct */ default: return -1; } case UNSPEC_VOLATILE: if (XVECLEN (x2, 0) != 2 || XINT (x2, 1) != 13 || GET_MODE (x2) != E_SImode) return -1; x9 = XVECEXP (x2, 0, 1); if (GET_CODE (x9) != REG || REGNO (x9) != 4 || GET_MODE (x9) != E_SImode || pattern123 (x1, 31, 25) != 0) return -1; x10 = XVECEXP (x2, 0, 0); operands[0] = x10; if (call_insn_operand (operands[0], E_SImode)) { x8 = XVECEXP (x1, 0, 1); x11 = XEXP (x8, 0); if (GET_MODE (x11) == E_SImode) { x4 = XVECEXP (x1, 0, 2); x5 = XEXP (x4, 0); if (GET_MODE (x5) == E_SImode && ( #line 7703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 719; /* mips_set_fcsr_mips16_si */ } } if (!call_insn_operand (operands[0], E_DImode)) return -1; x8 = XVECEXP (x1, 0, 1); x11 = XEXP (x8, 0); if (GET_MODE (x11) != E_DImode) return -1; x4 = XVECEXP (x1, 0, 2); x5 = XEXP (x4, 0); if (GET_MODE (x5) != E_DImode || !( #line 7703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 720; /* mips_set_fcsr_mips16_di */ case RETURN: x8 = XVECEXP (x1, 0, 1); if (pattern25 (x8, USE) != 0) return -1; x4 = XVECEXP (x1, 0, 2); if (GET_CODE (x4) != SET) return -1; x12 = XEXP (x4, 1); if (GET_CODE (x12) != PLUS || GET_MODE (x12) != E_SImode) return -1; x13 = XEXP (x12, 0); if (GET_CODE (x13) != REG || REGNO (x13) != 29 || GET_MODE (x13) != E_SImode) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 29 || GET_MODE (x5) != E_SImode) return -1; x14 = XEXP (x12, 1); operands[0] = x14; if (!uw5_operand (operands[0], E_VOIDmode) || ! #line 104 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS)) return -1; return 1059; /* jraddiusp */ default: return -1; } } static int recog_102 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case CALL: x3 = XEXP (x2, 0); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_SImode) return -1; x4 = XVECEXP (x1, 0, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1] || pattern127 (x1) != 0) return -1; x5 = XEXP (x3, 0); operands[0] = x5; if (!const_call_insn_operand (operands[0], E_VOIDmode)) return -1; x6 = XEXP (x2, 1); operands[1] = x6; if (! #line 7101 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 661; /* call_direct_split */ case SET: x3 = XEXP (x2, 0); operands[0] = x3; x6 = XEXP (x2, 1); switch (GET_CODE (x6)) { case CALL: x7 = XEXP (x6, 0); if (GET_CODE (x7) != MEM || GET_MODE (x7) != E_SImode || pattern127 (x1) != 0) return -1; switch (pattern220 (x1)) { case 0: if (! #line 7179 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 665; /* call_value_direct_split */ case 1: if (! #line 7217 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 667; /* call_value_multiple_split */ default: return -1; } case UNSPEC: if (pattern94 (x1) != 0) return -1; switch (pattern248 (x1)) { case 0: if (!( #line 7613 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 711; /* tls_get_tp_mips16_si */ case 1: if (!( #line 7613 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 712; /* tls_get_tp_mips16_di */ default: return -1; } case UNSPEC_VOLATILE: if (XVECLEN (x6, 0) != 2 || XINT (x6, 1) != 68) return -1; x4 = XVECEXP (x1, 0, 1); if (pattern122 (x4, 68) != 0) return -1; x8 = XVECEXP (x1, 0, 2); if (pattern218 (x8, 68, 3, UNSPEC_VOLATILE) != 0) return -1; x9 = XVECEXP (x1, 0, 3); if (GET_CODE (x9) != UNSPEC_VOLATILE || XVECLEN (x9, 0) != 3 || XINT (x9, 1) != 68) return -1; x10 = XVECEXP (x6, 0, 0); operands[2] = x10; x11 = XVECEXP (x6, 0, 1); operands[3] = x11; x12 = XEXP (x4, 0); operands[1] = x12; x13 = XEXP (x8, 1); x14 = XVECEXP (x13, 0, 2); operands[4] = x14; x15 = XVECEXP (x9, 0, 0); operands[5] = x15; if (!const_int_operand (operands[5], E_SImode)) return -1; x16 = XVECEXP (x9, 0, 1); operands[6] = x16; if (!const_int_operand (operands[6], E_SImode)) return -1; x17 = XVECEXP (x9, 0, 2); operands[7] = x17; if (!const_int_operand (operands[7], E_SImode)) return -1; x18 = XEXP (x4, 1); x19 = XVECEXP (x18, 0, 0); if (!rtx_equal_p (x19, operands[2])) return -1; x20 = XVECEXP (x13, 0, 0); if (!rtx_equal_p (x20, operands[2])) return -1; x21 = XVECEXP (x13, 0, 1); if (!rtx_equal_p (x21, operands[3])) return -1; x22 = XEXP (x8, 0); if (!rtx_equal_p (x22, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern260 (x1, E_SImode) != 0 || ! #line 594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 788; /* atomic_compare_and_swapsi */ case E_DImode: if (pattern260 (x1, E_DImode) != 0 || !( #line 594 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 789; /* atomic_compare_and_swapdi */ default: return -1; } default: return -1; } default: return -1; } } static int recog_103 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21, x22, x23, x24, x25; rtx x26, x27, x28, x29, x30; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); if (pattern15 (x2, 152, 2) != 0) return -1; x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_CCDSPmode) return -1; x4 = XEXP (x2, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 182 || GET_MODE (x4) != E_CCDSPmode) return -1; x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != SET) return -1; x6 = XEXP (x5, 1); if (GET_CODE (x6) != UNSPEC || pattern126 (x5, 183, 152, 2) != 0) return -1; x7 = XVECEXP (x1, 0, 2); if (pattern218 (x7, 152, 2, UNSPEC) != 0) return -1; x8 = XEXP (x7, 1); if (GET_MODE (x8) != E_CCDSPmode) return -1; x9 = XEXP (x7, 0); if (GET_CODE (x9) != REG || REGNO (x9) != 184 || GET_MODE (x9) != E_CCDSPmode) return -1; x10 = XVECEXP (x1, 0, 3); if (GET_CODE (x10) != SET) return -1; x11 = XEXP (x10, 1); if (GET_CODE (x11) != UNSPEC || XVECLEN (x11, 0) != 2 || XINT (x11, 1) != 152 || GET_MODE (x11) != E_CCDSPmode) return -1; x12 = XEXP (x10, 0); if (GET_CODE (x12) != REG || REGNO (x12) != 185 || GET_MODE (x12) != E_CCDSPmode) return -1; x13 = XVECEXP (x1, 0, 4); if (GET_CODE (x13) != SET) return -1; x14 = XEXP (x13, 1); if (GET_CODE (x14) != UNSPEC || XVECLEN (x14, 0) != 2 || XINT (x14, 1) != 152 || GET_MODE (x14) != E_CCDSPmode) return -1; x15 = XEXP (x13, 0); if (GET_CODE (x15) != REG || REGNO (x15) != 186 || GET_MODE (x15) != E_CCDSPmode) return -1; x16 = XVECEXP (x1, 0, 5); if (GET_CODE (x16) != SET) return -1; x17 = XEXP (x16, 1); if (GET_CODE (x17) != UNSPEC || XVECLEN (x17, 0) != 2 || XINT (x17, 1) != 152 || GET_MODE (x17) != E_CCDSPmode) return -1; x18 = XEXP (x16, 0); if (GET_CODE (x18) != REG || REGNO (x18) != 187 || GET_MODE (x18) != E_CCDSPmode) return -1; x19 = XVECEXP (x3, 0, 0); operands[0] = x19; if (!register_operand (operands[0], E_SImode)) return -1; x20 = XVECEXP (x3, 0, 1); operands[1] = x20; if (!const_uimm6_operand (operands[1], E_SImode)) return -1; x21 = XVECEXP (x6, 0, 0); if (!rtx_equal_p (x21, operands[0])) return -1; x22 = XVECEXP (x6, 0, 1); if (!rtx_equal_p (x22, operands[1])) return -1; x23 = XVECEXP (x8, 0, 0); if (!rtx_equal_p (x23, operands[0])) return -1; x24 = XVECEXP (x8, 0, 1); if (!rtx_equal_p (x24, operands[1])) return -1; x25 = XVECEXP (x11, 0, 0); if (!rtx_equal_p (x25, operands[0])) return -1; x26 = XVECEXP (x11, 0, 1); if (!rtx_equal_p (x26, operands[1])) return -1; x27 = XVECEXP (x14, 0, 0); if (!rtx_equal_p (x27, operands[0])) return -1; x28 = XVECEXP (x14, 0, 1); if (!rtx_equal_p (x28, operands[1])) return -1; x29 = XVECEXP (x17, 0, 0); if (!rtx_equal_p (x29, operands[0])) return -1; x30 = XVECEXP (x17, 0, 1); if (!rtx_equal_p (x30, operands[1]) || ! #line 1058 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 928; /* mips_wrdsp */ } static int recog_104 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); switch (GET_CODE (x4)) { case PLUS: if (GET_MODE (x4) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; x5 = XEXP (x4, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_SImode)) return -1; x6 = XEXP (x4, 0); if (!rtx_equal_p (x6, operands[1]) || ! #line 7543 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (operands[1] == stack_pointer_rtx && mips16e_save_restore_pattern_p (operands[0], INTVAL (operands[2]), NULL))) return -1; return 706; /* *mips16e_save_restore */ case REG: case SUBREG: case MEM: operands[2] = x4; if (register_operand (operands[2], E_SImode) && memory_operand (operands[1], E_SImode) && #line 24 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_save_restore_pattern_p (true, operands[0]))) return 1055; /* *store_word_multiple */ if (!memory_operand (operands[2], E_SImode) || !register_operand (operands[1], E_SImode) || ! #line 35 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_save_restore_pattern_p (false, operands[0]))) return -1; return 1056; /* *load_word_multiple */ default: return -1; } } static int recog_105 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case PLUS: return recog_54 (x1, insn, pnum_clobbers); case SIGN_EXTEND: return recog_62 (x1, insn, pnum_clobbers); case ZERO_EXTEND: return recog_67 (x1, insn, pnum_clobbers); case MINUS: return recog_56 (x1, insn, pnum_clobbers); case MULT: return recog_61 (x1, insn, pnum_clobbers); case NEG: return recog_69 (x1, insn, pnum_clobbers); case UNSPEC: return recog_53 (x1, insn, pnum_clobbers); case TRUNCATE: return recog_60 (x1, insn, pnum_clobbers); case FMA: return recog_66 (x1, insn, pnum_clobbers); case DIV: return recog_70 (x1, insn, pnum_clobbers); case UDIV: switch (pattern1 (x1)) { case 0: if (! #line 3039 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DIV)) return -1; return 150; /* udivsi3 */ case 1: if (!( #line 3039 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 152; /* udivdi3 */ case 2: if (! #line 795 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1234; /* udivv2di3 */ case 3: if (! #line 795 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1235; /* udivv4si3 */ case 4: if (! #line 795 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1236; /* udivv8hi3 */ case 5: if (! #line 795 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1237; /* udivv16qi3 */ default: return -1; } case MOD: switch (pattern1 (x1)) { case 0: if (! #line 3055 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DIV)) return -1; return 153; /* modsi3 */ case 1: if (!( #line 3055 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 155; /* moddi3 */ case 2: if (! #line 804 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1238; /* modv2di3 */ case 3: if (! #line 804 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1239; /* modv4si3 */ case 4: if (! #line 804 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1240; /* modv8hi3 */ case 5: if (! #line 804 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1241; /* modv16qi3 */ default: return -1; } case UMOD: switch (pattern1 (x1)) { case 0: if (! #line 3055 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DIV)) return -1; return 154; /* umodsi3 */ case 1: if (!( #line 3055 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 156; /* umoddi3 */ case 2: if (! #line 813 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1242; /* umodv2di3 */ case 3: if (! #line 813 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1243; /* umodv4si3 */ case 4: if (! #line 813 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1244; /* umodv8hi3 */ case 5: if (! #line 813 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1245; /* umodv16qi3 */ default: return -1; } case SQRT: return recog_74 (x1, insn, pnum_clobbers); case ABS: return recog_92 (x1, insn, pnum_clobbers); case CLZ: return recog_91 (x1, insn, pnum_clobbers); case CTZ: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; switch (pattern2 (x2)) { case 0: if (! #line 3189 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CTZ_CTO)) return -1; return 173; /* ctzsi2 */ case 1: if (!( #line 3189 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CTZ_CTO) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 174; /* ctzdi2 */ default: return -1; } case POPCOUNT: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: switch (pattern76 (x2)) { case 0: if (! #line 3206 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_POP)) return -1; return 175; /* popcountsi2 */ case 1: if (!( #line 3206 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_POP) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 176; /* popcountdi2 */ case 2: if (! #line 2484 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1594; /* popcountv2di2 */ case 3: if (! #line 2484 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1595; /* popcountv4si2 */ case 4: if (! #line 2484 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1596; /* popcountv8hi2 */ case 5: if (! #line 2484 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1597; /* popcountv16qi2 */ default: return -1; } case TRUNCATE: if (pattern33 (x2, E_DImode, E_SImode) != 0 || ! #line 3216 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_POP && TARGET_64BIT)) return -1; return 177; /* *popcountdi2_trunc */ default: return -1; } case NOT: return recog_72 (x1, insn, pnum_clobbers); case AND: return recog_65 (x1, insn, pnum_clobbers); case IOR: return recog_59 (x1, insn, pnum_clobbers); case XOR: return recog_81 (x1, insn, pnum_clobbers); case FLOAT_TRUNCATE: if (GET_MODE (x2) != E_SFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_SFmode)) return -1; x4 = XEXP (x2, 0); operands[1] = x4; if (!register_operand (operands[1], E_DFmode) || ! #line 3467 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 199; /* truncdfsf2 */ case ASHIFTRT: return recog_82 (x1, insn, pnum_clobbers); case FLOAT_EXTEND: return recog_86 (x1, insn, pnum_clobbers); case FIX: return recog_85 (x1, insn, pnum_clobbers); case FLOAT: return recog_87 (x1, insn, pnum_clobbers); case SIGN_EXTRACT: switch (pattern3 (x1)) { case 0: if (! #line 4302 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && UINTVAL (operands[2]) <= 32)) return -1; return 274; /* *extvsi */ case 1: if (!( #line 4302 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && UINTVAL (operands[2]) <= 32) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 275; /* *extvdi */ default: return -1; } case ZERO_EXTRACT: switch (pattern3 (x1)) { case 0: if (! #line 4340 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[1], INTVAL (operands[2]), INTVAL (operands[3])))) return -1; return 276; /* *extzvsi */ case 1: if (!( #line 4340 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[1], INTVAL (operands[2]), INTVAL (operands[3]))) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 277; /* *extzvdi */ default: return -1; } case LO_SUM: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[2] = x5; switch (pattern2 (x2)) { case 0: if (got_disp_operand (operands[2], E_SImode) && ( #line 4614 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 297; /* *xgot_losi */ if (!immediate_operand (operands[2], E_SImode)) return -1; if (( #line 4676 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 305; /* *lowsi */ if (!( #line 4685 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 307; /* *lowsi_mips16 */ case 1: if (got_disp_operand (operands[2], E_DImode) && ( #line 4614 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 298; /* *xgot_lodi */ if (!immediate_operand (operands[2], E_DImode)) return -1; if (( #line 4676 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 306; /* *lowdi */ if (!( #line 4685 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 308; /* *lowdi_mips16 */ default: return -1; } case CONST_INT: case CONST_WIDE_INT: case CONST_POLY_INT: case CONST_FIXED: case CONST_DOUBLE: case CONST_VECTOR: case CONST: case REG: case SUBREG: case MEM: case LABEL_REF: case SYMBOL_REF: case HIGH: return recog_55 (x1, insn, pnum_clobbers); case UNSPEC_VOLATILE: return recog_58 (x1, insn, pnum_clobbers); case ASHIFT: x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern23 (x2)) { case 0: if ( #line 5730 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 443; /* *ashlsi3 */ if (! #line 5761 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 452; /* *ashlsi3_mips16 */ case 1: if (( #line 5730 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 446; /* *ashldi3 */ if (! #line 5789 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 457; /* *ashldi3_mips16 */ case 2: if (! #line 568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1129; /* ashlv2si3 */ case 3: if (! #line 568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1130; /* ashlv4hi3 */ case 4: if (! #line 914 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1270; /* vashlv2di3 */ case 5: if (! #line 914 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1271; /* vashlv4si3 */ case 6: if (! #line 914 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1272; /* vashlv8hi3 */ case 7: if (! #line 914 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1273; /* vashlv16qi3 */ default: return -1; } case LSHIFTRT: return recog_77 (x1, insn, pnum_clobbers); case ROTATERT: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[2] = x5; if (!arith_operand (operands[2], E_SImode)) return -1; switch (pattern2 (x2)) { case 0: if (! #line 5871 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_ROR)) return -1; return 461; /* rotrsi3 */ case 1: if (!( #line 5871 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_ROR) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 462; /* rotrdi3 */ default: return -1; } case BSWAP: return recog_90 (x1, insn, pnum_clobbers); case IF_THEN_ELSE: return recog_57 (x1, insn, pnum_clobbers); case EQ: return recog_71 (x1, insn, pnum_clobbers); case NE: return recog_80 (x1, insn, pnum_clobbers); case GT: return recog_76 (x1, insn, pnum_clobbers); case GTU: return recog_84 (x1, insn, pnum_clobbers); case GE: return recog_88 (x1, insn, pnum_clobbers); case GEU: x5 = XEXP (x2, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern105 (x2, E_SImode)) { case 0: if (! #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 530; /* *sgeu_sisi */ case 1: if (!( #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 532; /* *sgeu_disi */ default: return -1; } case E_DImode: switch (pattern105 (x2, E_DImode)) { case 0: if (!( #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 534; /* *sgeu_sidi */ case 1: if (!( #line 6233 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 800 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 536; /* *sgeu_didi */ default: return -1; } default: return -1; } case LT: return recog_75 (x1, insn, pnum_clobbers); case LTU: return recog_83 (x1, insn, pnum_clobbers); case LE: return recog_73 (x1, insn, pnum_clobbers); case LEU: return recog_79 (x1, insn, pnum_clobbers); case UNORDERED: switch (pattern7 (x1)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 569; /* sunordered_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 576; /* sunordered_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 583; /* sunordered_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 593; /* sunordered_df_using_ccf */ case 4: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1424; /* msa_fcun_d */ case 5: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1433; /* msa_fcun_w */ default: return -1; } case UNEQ: switch (pattern7 (x1)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 570; /* suneq_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 577; /* suneq_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 584; /* suneq_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 594; /* suneq_df_using_ccf */ case 4: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1430; /* msa_fcueq_d */ case 5: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1439; /* msa_fcueq_w */ default: return -1; } case UNLT: switch (pattern7 (x1)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 571; /* sunlt_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 578; /* sunlt_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 585; /* sunlt_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 595; /* sunlt_df_using_ccf */ case 4: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1432; /* msa_fcult_d */ case 5: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1441; /* msa_fcult_w */ default: return -1; } case UNLE: switch (pattern7 (x1)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 572; /* sunle_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 579; /* sunle_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 586; /* sunle_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 596; /* sunle_df_using_ccf */ case 4: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1431; /* msa_fcule_d */ case 5: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1440; /* msa_fcule_w */ default: return -1; } case ORDERED: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; switch (pattern81 (x2)) { case 0: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 590; /* sordered_sf_using_ccf */ case 1: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 600; /* sordered_df_using_ccf */ case 2: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1425; /* msa_fcor_d */ case 3: if (! #line 1607 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1434; /* msa_fcor_w */ default: return -1; } case LTGT: if (GET_MODE (x2) != E_CCFmode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_CCFmode)) return -1; x4 = XEXP (x2, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[2] = x5; switch (pattern4 ()) { case 0: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 591; /* sltgt_sf_using_ccf */ case 1: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 601; /* sltgt_df_using_ccf */ default: return -1; } case UNGE: switch (pattern9 (x1)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 605; /* sunge_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 609; /* sunge_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 613; /* sunge_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 617; /* sunge_df_using_ccf */ default: return -1; } case UNGT: switch (pattern9 (x1)) { case 0: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 606; /* sungt_sf_using_cc */ case 1: if (!(( #line 827 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 610; /* sungt_df_using_cc */ case 2: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 867 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 614; /* sungt_sf_using_ccf */ case 3: if (!(( #line 828 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 868 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 618; /* sungt_df_using_ccf */ default: return -1; } case CALL: x4 = XEXP (x2, 0); if (GET_CODE (x4) != MEM || GET_MODE (x4) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_VOIDmode)) return -1; x6 = XEXP (x4, 0); operands[1] = x6; if (!call_insn_operand (operands[1], E_VOIDmode)) return -1; x5 = XEXP (x2, 1); operands[2] = x5; if ( #line 6981 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SIBCALLS && SIBLING_CALL_P (insn))) return 656; /* sibcall_value_internal */ if (pnum_clobbers == NULL) return -1; *pnum_clobbers = 1; return 662; /* call_value_internal */ case VEC_SELECT: return recog_64 (x1, insn, pnum_clobbers); case VEC_CONCAT: return recog_78 (x1, insn, pnum_clobbers); case SS_PLUS: return recog_89 (x1, insn, pnum_clobbers); case US_PLUS: x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern24 (x2)) { case 0: if (! #line 216 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1079; /* usaddv4hi3 */ case 1: if (! #line 216 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1080; /* usaddv8qi3 */ case 2: if (! #line 1022 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1300; /* usaddv2di3 */ case 3: if (! #line 1022 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1301; /* usaddv4si3 */ case 4: if (! #line 1022 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1302; /* usaddv8hi3 */ case 5: if (! #line 1022 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1303; /* usaddv16qi3 */ default: return -1; } case SMAX: switch (pattern11 (x1)) { case 0: if (! #line 415 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1115; /* smaxv4hi3 */ case 1: if (! #line 1732 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1482; /* smaxv2df3 */ case 2: if (! #line 1732 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1483; /* smaxv4sf3 */ case 3: if (! #line 2239 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1546; /* smaxv2di3 */ case 4: if (! #line 2239 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1547; /* smaxv4si3 */ case 5: if (! #line 2239 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1548; /* smaxv8hi3 */ case 6: if (! #line 2239 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1549; /* smaxv16qi3 */ default: return -1; } case UMAX: switch (pattern13 (x1)) { case 0: if (! #line 435 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1116; /* umaxv8qi3 */ case 1: if (! #line 2250 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1550; /* umaxv2di3 */ case 2: if (! #line 2250 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1551; /* umaxv4si3 */ case 3: if (! #line 2250 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1552; /* umaxv8hi3 */ case 4: if (! #line 2250 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1553; /* umaxv16qi3 */ default: return -1; } case SMIN: switch (pattern11 (x1)) { case 0: if (! #line 444 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1117; /* sminv4hi3 */ case 1: if (! #line 1753 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1486; /* sminv2df3 */ case 2: if (! #line 1753 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1487; /* sminv4sf3 */ case 3: if (! #line 2273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1558; /* sminv2di3 */ case 4: if (! #line 2273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1559; /* sminv4si3 */ case 5: if (! #line 2273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1560; /* sminv8hi3 */ case 6: if (! #line 2273 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1561; /* sminv16qi3 */ default: return -1; } case UMIN: switch (pattern13 (x1)) { case 0: if (! #line 464 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1118; /* uminv8qi3 */ case 1: if (! #line 2284 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1562; /* uminv2di3 */ case 2: if (! #line 2284 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1563; /* uminv4si3 */ case 3: if (! #line 2284 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1564; /* uminv8hi3 */ case 4: if (! #line 2284 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1565; /* uminv16qi3 */ default: return -1; } case SS_MINUS: switch (pattern14 (x1)) { case 0: if (! #line 617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1139; /* sssubv4hi3 */ case 1: if (! #line 617 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1140; /* sssubv8qi3 */ default: return -1; } case US_MINUS: switch (pattern14 (x1)) { case 0: if (! #line 626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1141; /* ussubv4hi3 */ case 1: if (! #line 626 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1142; /* ussubv8qi3 */ default: return -1; } case VEC_MERGE: return recog_63 (x1, insn, pnum_clobbers); case UNSIGNED_FLOAT: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x2) != E_V2DFmode || !register_operand (operands[1], E_V2DImode) || ! #line 1661 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1468; /* floatunsv2div2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x2) != E_V4SFmode || !register_operand (operands[1], E_V4SImode) || ! #line 1661 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1469; /* floatunsv4siv4sf2 */ default: return -1; } case VEC_DUPLICATE: return recog_68 (x1, insn, pnum_clobbers); case UNSIGNED_FIX: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x2) != E_V2DImode || !register_operand (operands[1], E_V2DFmode) || ! #line 1829 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1502; /* fixuns_truncv2dfv2di2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x2) != E_V4SImode || !register_operand (operands[1], E_V4SFmode) || ! #line 1829 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1503; /* fixuns_truncv4sfv4si2 */ default: return -1; } default: return -1; } } int recog (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14; int res ATTRIBUTE_UNUSED; recog_data.insn = NULL; switch (GET_CODE (x1)) { case UNSPEC: if (XVECLEN (x1, 0) != 1) return -1; switch (XINT (x1, 1)) { case 55: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 107 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 1; /* ls2_alu1_turn_enabled_insn */ case 56: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 118 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 2; /* ls2_alu2_turn_enabled_insn */ case 57: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 129 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 3; /* ls2_falu1_turn_enabled_insn */ case 58: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 140 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 4; /* ls2_falu2_turn_enabled_insn */ case 23: if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 0); operands[0] = x2; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || ! #line 6783 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (! TARGET_64BIT)) return -1; *pnum_clobbers = 1; return 645; /* eh_set_lr_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || ! #line 6789 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; *pnum_clobbers = 1; return 646; /* eh_set_lr_di */ default: return -1; } default: return -1; } case TRAP_IF: x3 = XEXP (x1, 1); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XEXP (x1, 0); switch (GET_CODE (x4)) { case CONST_INT: if (XWINT (x4, 0) != 1L) return -1; return 5; /* trap */ case NE: case EQ: case GE: case LT: case GEU: case LTU: operands[0] = x4; x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SImode: if (!trap_comparison_operator (operands[0], E_SImode) || !reg_or_0_operand (operands[1], E_SImode)) return -1; if (reg_or_0_operand (operands[2], E_SImode) && #line 1232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_COND_TRAP && !ISA_HAS_COND_TRAPI)) return 6; /* *conditional_trap_regsi */ if (!arith_operand (operands[2], E_SImode) || ! #line 1241 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_COND_TRAPI)) return -1; return 8; /* *conditional_trapsi */ case E_DImode: if (!trap_comparison_operator (operands[0], E_DImode) || !reg_or_0_operand (operands[1], E_DImode)) return -1; if (reg_or_0_operand (operands[2], E_DImode) && ( #line 1232 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_COND_TRAP && !ISA_HAS_COND_TRAPI) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 7; /* *conditional_trap_regdi */ if (!arith_operand (operands[2], E_DImode) || !( #line 1241 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_COND_TRAPI) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 9; /* *conditional_trapdi */ default: return -1; } default: return -1; } case SET: return recog_105 (x1, insn, pnum_clobbers); case PARALLEL: switch (XVECLEN (x1, 0)) { case 2: res = recog_99 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case 3: res = recog_101 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case 4: res = recog_102 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case 6: res = recog_103 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; default: break; } if (XVECLEN (x1, 0) >= 1) { operands[0] = x1; res = recog_104 (x1, insn, pnum_clobbers); if (res >= 0) return res; } if (XVECLEN (x1, 0) != 2) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x2, 0); operands[0] = x8; x9 = XEXP (x2, 1); switch (GET_CODE (x9)) { case PLUS: if (GET_MODE (x9) != E_SImode) return -1; x10 = XEXP (x7, 1); if (GET_CODE (x10) != UNSPEC_VOLATILE || pattern163 (x10, E_SImode) != 0 || !register_operand (operands[0], E_SImode)) return -1; x11 = XEXP (x9, 0); operands[1] = x11; if (!memory_operand (operands[1], E_SImode)) return -1; x12 = XEXP (x9, 1); operands[2] = x12; if (pattern253 (x7, E_SImode) != 0 || ! #line 413 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 757; /* sync_new_addsi */ case SUBREG: case MEM: operands[1] = x9; if (!non_volatile_mem_operand (operands[1], E_SImode) || !d_operand (operands[0], E_SImode)) return -1; x13 = XEXP (x7, 0); operands[2] = x13; if (!d_operand (operands[2], E_SImode)) return -1; x10 = XEXP (x7, 1); operands[3] = x10; if (!non_volatile_mem_operand (operands[3], E_SImode) || ! #line 60 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_load_store_pair_p (true, operands))) return -1; return 1057; /* *lwp */ case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: operands[1] = x9; if (d_operand (operands[1], E_SImode) && non_volatile_mem_operand (operands[0], E_SImode)) { x13 = XEXP (x7, 0); operands[2] = x13; if (non_volatile_mem_operand (operands[2], E_SImode)) { x10 = XEXP (x7, 1); operands[3] = x10; if (d_operand (operands[3], E_SImode) && #line 87 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_load_store_pair_p (false, operands))) return 1058; /* *swp */ } } if (!movep_src_operand (operands[1], E_SImode) || !register_operand (operands[0], E_SImode)) return -1; x13 = XEXP (x7, 0); operands[2] = x13; x10 = XEXP (x7, 1); operands[3] = x10; switch (pattern219 ()) { case 0: if (! #line 127 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1060; /* *movepsisi */ case 1: if (! #line 127 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1061; /* *movepsisf */ default: return -1; } default: return -1; } case UNSPEC_VOLATILE: switch (XVECLEN (x1, 0)) { case 1: switch (XINT (x1, 1)) { case 37: x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case REG: if (REGNO (x2) != 28 || GET_MODE (x2) != E_SImode) return -1; return 424; /* loadgp_blockage */ case CONST_INT: if (XWINT (x2, 0) != 0L) return -1; return 630; /* blockage */ default: return -1; } case 41: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 5621 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (GENERATE_SYNC)) return -1; return 435; /* sync */ case 40: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!pmode_register_operand (operands[0], E_VOIDmode) || ! #line 5627 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SYNCI)) return -1; return 436; /* synci */ case 38: if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; if (( #line 5640 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 1; return 439; /* clear_hazard_si */ } if (!( #line 5640 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 1; return 440; /* clear_hazard_di */ case 46: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 640; /* mips_di */ case 47: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 641; /* mips_ehb */ case 53: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 673; /* insn_pseudo */ case 33: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!const_int_operand (operands[0], E_VOIDmode)) return -1; return 700; /* consttable */ case 34: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!const_int_operand (operands[0], E_VOIDmode)) return -1; return 701; /* consttable_end */ case 36: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!consttable_operand (operands[0], E_VOIDmode) || ! #line 7507 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 704; /* consttable_float */ case 32: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!const_int_operand (operands[0], E_VOIDmode)) return -1; return 705; /* align */ case 13: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!register_operand (operands[0], E_SImode) || ! #line 7694 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 718; /* *mips_set_fcsr */ default: return -1; } case 2: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; switch (XINT (x1, 1)) { case 35: x7 = XVECEXP (x1, 0, 1); operands[1] = x7; if (!const_int_operand (operands[1], E_VOIDmode)) return -1; if (tls_reloc_operand (operands[0], E_VOIDmode) && #line 7487 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_PCREL_LOADS)) return 702; /* consttable_tls_reloc */ if (!consttable_operand (operands[0], E_VOIDmode) || ! #line 7495 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 703; /* consttable_int */ case 13: if (pnum_clobbers == NULL || GET_MODE (x1) != E_SImode) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != REG || REGNO (x7) != 4 || GET_MODE (x7) != E_SImode) return -1; if (call_insn_operand (operands[0], E_SImode) && ( #line 7703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 2; return 719; /* mips_set_fcsr_mips16_si */ } if (!call_insn_operand (operands[0], E_DImode) || !( #line 7703 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 720; /* mips_set_fcsr_mips16_di */ case 243: if (!const_uimm5_operand (operands[0], E_VOIDmode)) return -1; x7 = XVECEXP (x1, 0, 1); operands[1] = x7; if (!register_operand (operands[1], E_SImode) || ! #line 2674 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1669; /* msa_ctcmsa */ default: return -1; } default: return -1; } case RETURN: return 633; /* *return */ case SIMPLE_RETURN: return 634; /* *simple_return */ case CALL: x4 = XEXP (x1, 0); if (GET_CODE (x4) != MEM || GET_MODE (x4) != E_SImode) return -1; x5 = XEXP (x4, 0); operands[0] = x5; if (!call_insn_operand (operands[0], E_VOIDmode)) return -1; x3 = XEXP (x1, 1); operands[1] = x3; if ( #line 6960 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_SIBCALLS && SIBLING_CALL_P (insn))) return 655; /* sibcall_internal */ if (pnum_clobbers == NULL) return -1; *pnum_clobbers = 1; return 658; /* call_internal */ case PREFETCH: x3 = XEXP (x1, 1); if (!const_int_operand (x3, E_VOIDmode)) return -1; operands[1] = x3; x4 = XEXP (x1, 0); operands[0] = x4; if (address_operand (operands[0], E_QImode)) { x14 = XEXP (x1, 2); operands[2] = x14; if (const_int_operand (operands[2], E_VOIDmode) && #line 7258 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_PREFETCH && TARGET_EXPLICIT_RELOCS)) return 668; /* prefetch */ } operands[2] = x3; if (GET_CODE (x4) != PLUS) return -1; x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); operands[1] = x6; x14 = XEXP (x1, 2); operands[3] = x14; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !register_operand (operands[1], E_SImode) || !( #line 7285 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_PREFETCHX && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 669; /* *prefetch_indexed_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !register_operand (operands[1], E_DImode) || !( #line 7285 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_PREFETCHX && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 670; /* *prefetch_indexed_di */ default: return -1; } case CONST_INT: switch (XWINT (x1, 0)) { case 0L: return 671; /* nop */ case 1L: return 672; /* hazard_nop */ default: return -1; } default: return -1; } } static rtx_insn * split_1 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; switch (GET_MODE (operands[0])) { case E_SImode: if (register_operand (operands[0], E_SImode) && got_disp_operand (operands[1], E_SImode) && (( #line 4628 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4630 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_44 (insn, operands); break; case E_DImode: if (register_operand (operands[0], E_DImode) && got_disp_operand (operands[1], E_DImode) && (( #line 4628 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4630 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_45 (insn, operands); break; default: break; } if (GET_CODE (x2) != CONST) return NULL; x3 = XEXP (x2, 0); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 24) return NULL; x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return NULL; switch (GET_MODE (operands[0])) { case E_SImode: if (!d_operand (operands[0], E_SImode) || GET_MODE (x2) != E_SImode || GET_MODE (x3) != E_SImode || ! #line 4696 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && TARGET_USE_GOT && reload_completed)) return NULL; return gen_split_48 (insn, operands); case E_DImode: if (!d_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || GET_MODE (x3) != E_DImode || !( #line 4696 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && TARGET_USE_GOT && reload_completed) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_49 (insn, operands); default: return NULL; } } static rtx_insn * split_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != PLUS) return NULL; x4 = XEXP (x3, 1); operands[1] = x4; x5 = XEXP (x3, 0); if (!rtx_equal_p (x5, operands[0])) return NULL; switch (GET_MODE (operands[0])) { case E_DImode: if (!d_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || GET_MODE (x3) != E_DImode || !const_int_operand (operands[1], E_DImode) || ! #line 4803 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && ((INTVAL (operands[1]) < 0 && INTVAL (operands[1]) >= -0x10) || (INTVAL (operands[1]) >= 32 * 8 && INTVAL (operands[1]) <= 31 * 8 + 0x8) || (INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) < 32 * 8 && (INTVAL (operands[1]) & 7) != 0)))) return NULL; return gen_split_54 (insn, operands); case E_SImode: if (pattern164 (x2, E_SImode) != 0 || ! #line 4882 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && ((INTVAL (operands[1]) < 0 && INTVAL (operands[1]) >= -0x80) || (INTVAL (operands[1]) >= 32 * 4 && INTVAL (operands[1]) <= 31 * 4 + 0x7c) || (INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) < 32 * 4 && (INTVAL (operands[1]) & 3) != 0)))) return NULL; return gen_split_55 (insn, operands); case E_HImode: if (pattern164 (x2, E_HImode) != 0 || ! #line 5023 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && ((INTVAL (operands[1]) < 0 && INTVAL (operands[1]) >= -0x80) || (INTVAL (operands[1]) >= 32 * 2 && INTVAL (operands[1]) <= 31 * 2 + 0x7e) || (INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) < 32 * 2 && (INTVAL (operands[1]) & 1) != 0)))) return NULL; return gen_split_57 (insn, operands); case E_QImode: if (pattern164 (x2, E_QImode) != 0 || ! #line 5099 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && ((INTVAL (operands[1]) < 0 && INTVAL (operands[1]) >= -0x80) || (INTVAL (operands[1]) >= 32 && INTVAL (operands[1]) <= 31 + 0x7f)))) return NULL; return gen_split_58 (insn, operands); default: return NULL; } } static rtx_insn * split_3 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); switch (GET_CODE (x3)) { case PLUS: switch (GET_MODE (operands[0])) { case E_SImode: if (!d_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return NULL; x4 = XEXP (x3, 1); if (!const_int_operand (x4, E_SImode)) return NULL; operands[1] = x4; x5 = XEXP (x3, 0); if (rtx_equal_p (x5, operands[0]) && #line 1313 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && ((INTVAL (operands[1]) > 0x7f && INTVAL (operands[1]) <= 0x7f + 0x7f) || (INTVAL (operands[1]) < - 0x80 && INTVAL (operands[1]) >= - 0x80 - 0x80)))) return gen_split_1 (insn, operands); operands[2] = x4; operands[1] = x5; if (!d_operand (operands[1], E_SImode) || ! #line 1339 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && REGNO (operands[0]) != REGNO (operands[1]) && ((INTVAL (operands[2]) > 0x7 && INTVAL (operands[2]) <= 0x7 + 0x7f) || (INTVAL (operands[2]) < - 0x8 && INTVAL (operands[2]) >= - 0x8 - 0x80)))) return NULL; return gen_split_2 (insn, operands); case E_DImode: if (!d_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return NULL; x4 = XEXP (x3, 1); if (!const_int_operand (x4, E_DImode)) return NULL; operands[1] = x4; x5 = XEXP (x3, 0); if (rtx_equal_p (x5, operands[0]) && #line 1366 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && TARGET_64BIT && reload_completed && !TARGET_DEBUG_D_MODE && ((INTVAL (operands[1]) > 0xf && INTVAL (operands[1]) <= 0xf + 0xf) || (INTVAL (operands[1]) < - 0x10 && INTVAL (operands[1]) >= - 0x10 - 0x10)))) return gen_split_3 (insn, operands); operands[2] = x4; operands[1] = x5; if (!d_operand (operands[1], E_DImode) || ! #line 1392 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && TARGET_64BIT && reload_completed && !TARGET_DEBUG_D_MODE && REGNO (operands[0]) != REGNO (operands[1]) && ((INTVAL (operands[2]) > 0x7 && INTVAL (operands[2]) <= 0x7 + 0xf) || (INTVAL (operands[2]) < - 0x8 && INTVAL (operands[2]) >= - 0x8 - 0x10)))) return NULL; return gen_split_4 (insn, operands); default: return NULL; } case SIGN_EXTEND: x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case PLUS: if (pattern32 (x3) != 0 || !( #line 1434 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16) && #line 1436 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_5 (insn, operands); case REG: case SUBREG: case MEM: operands[1] = x5; switch (pattern97 (x3)) { case 0: if (!( #line 3751 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 3756 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && register_operand (operands[1], VOIDmode)))) return NULL; return gen_split_25 (insn, operands); case 1: if (!(( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 3788 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && REG_P (operands[1])))) return NULL; return gen_split_27 (insn, operands); case 2: if (!(( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 3788 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && REG_P (operands[1])))) return NULL; return gen_split_29 (insn, operands); case 3: if (!( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 3788 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && REG_P (operands[1])))) return NULL; return gen_split_26 (insn, operands); case 4: if (!( #line 3784 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 3788 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && REG_P (operands[1])))) return NULL; return gen_split_28 (insn, operands); case 5: if (!( #line 3829 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 3833 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && REG_P (operands[1])))) return NULL; return gen_split_30 (insn, operands); default: return NULL; } case TRUNCATE: switch (pattern34 (x3)) { case 0: if (!( #line 3863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3865 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_31 (insn, operands); case 1: if (!( #line 3863 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3865 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_32 (insn, operands); case 2: if (!( #line 3883 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3885 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_33 (insn, operands); case 3: if (!( #line 3883 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3885 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_34 (insn, operands); case 4: if (!( #line 3903 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3905 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_35 (insn, operands); default: return NULL; } default: return NULL; } case ZERO_EXTEND: if (GET_MODE (x3) != E_DImode || !register_operand (operands[0], E_DImode)) return NULL; x5 = XEXP (x3, 0); operands[1] = x5; if (!nonimmediate_operand (operands[1], E_SImode) || !( #line 3589 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !ISA_HAS_EXT_INS) && #line 3593 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && REG_P (operands[1])))) return NULL; return gen_split_23 (insn, operands); case AND: if (GET_MODE (x3) != E_DImode) return NULL; x4 = XEXP (x3, 1); if (GET_CODE (x4) != CONST_INT || XWINT (x4, 0) != 4294967295L || !register_operand (operands[0], E_DImode)) return NULL; x5 = XEXP (x3, 0); operands[1] = x5; if (!register_operand (operands[1], E_DImode) || ! #line 3619 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !ISA_HAS_EXT_INS && reload_completed)) return NULL; return gen_split_24 (insn, operands); case LO_SUM: x5 = XEXP (x3, 0); operands[1] = x5; x4 = XEXP (x3, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern128 (x3, E_SImode) != 0 || !(( #line 4614 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4616 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_42 (insn, operands); case E_DImode: if (pattern128 (x3, E_DImode) != 0 || !(( #line 4614 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4616 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_43 (insn, operands); default: return NULL; } case CONST_INT: case CONST_WIDE_INT: case CONST_POLY_INT: case CONST_FIXED: case CONST_DOUBLE: case CONST_VECTOR: case CONST: case REG: case SUBREG: case MEM: case LABEL_REF: case SYMBOL_REF: case HIGH: switch (GET_CODE (x3)) { case HIGH: x5 = XEXP (x3, 0); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_DImode: if (GET_MODE (x3) == E_DImode) { if (register_operand (operands[0], E_DImode) && absolute_symbolic_operand (operands[1], E_DImode) && ( #line 4500 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS) && #line 4502 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( epilogue_completed))) return gen_split_36 (insn, operands); if (d_operand (operands[0], E_DImode) && symbolic_operand_with_high (operands[1], E_DImode) && ( #line 4581 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return gen_split_39 (insn, operands); if (register_operand (operands[0], E_DImode)) { if (got_disp_operand (operands[1], E_DImode) && (( #line 4598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4600 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_41 (insn, operands); if (got_page_ofst_operand (operands[1], E_DImode) && (( #line 4641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4643 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_47 (insn, operands); } } break; case E_SImode: if (GET_MODE (x3) == E_SImode) { if (d_operand (operands[0], E_SImode) && symbolic_operand_with_high (operands[1], E_SImode) && ( #line 4581 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return gen_split_38 (insn, operands); if (register_operand (operands[0], E_SImode)) { if (got_disp_operand (operands[1], E_SImode) && (( #line 4598 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4600 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_40 (insn, operands); if (got_page_ofst_operand (operands[1], E_SImode) && (( #line 4641 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4643 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_46 (insn, operands); } } break; default: break; } break; case CONST: case LABEL_REF: case SYMBOL_REF: res = split_1 (x1, insn); if (res != NULL_RTX) return res; break; case MEM: res = split_2 (x1, insn); if (res != NULL_RTX) return res; break; case CONST_INT: operands[1] = x3; if (const_int_operand (operands[1], E_SImode) && d_operand (operands[0], E_SImode) && #line 4920 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[1]) >= 0x100 && INTVAL (operands[1]) <= 0xff + 0x7f)) return gen_split_56 (insn, operands); break; default: break; } operands[1] = x3; switch (GET_MODE (operands[0])) { case E_DImode: if (nonimmediate_operand (operands[0], E_DImode) && move_operand (operands[1], E_DImode) && #line 5280 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn))) return gen_split_59 (insn, operands); break; case E_DFmode: if (nonimmediate_operand (operands[0], E_DFmode) && move_operand (operands[1], E_DFmode) && #line 5280 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn))) return gen_split_60 (insn, operands); break; case E_V2SFmode: if (nonimmediate_operand (operands[0], E_V2SFmode) && move_operand (operands[1], E_V2SFmode) && ( #line 5280 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 845 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return gen_split_61 (insn, operands); break; case E_V2SImode: if (nonimmediate_operand (operands[0], E_V2SImode) && move_operand (operands[1], E_V2SImode) && ( #line 5280 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 846 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI))) return gen_split_62 (insn, operands); break; case E_V4HImode: if (nonimmediate_operand (operands[0], E_V4HImode) && move_operand (operands[1], E_V4HImode) && ( #line 5280 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 847 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI))) return gen_split_63 (insn, operands); break; case E_V8QImode: if (nonimmediate_operand (operands[0], E_V8QImode) && move_operand (operands[1], E_V8QImode) && ( #line 5280 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 848 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI))) return gen_split_64 (insn, operands); break; case E_TImode: if (nonimmediate_operand (operands[0], E_TImode) && move_operand (operands[1], E_TImode) && #line 5290 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn))) return gen_split_65 (insn, operands); break; case E_TFmode: if (nonimmediate_operand (operands[0], E_TFmode) && move_operand (operands[1], E_TFmode) && #line 5290 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn))) return gen_split_66 (insn, operands); break; default: break; } if (!const_int_operand (operands[1], E_VOIDmode) || !d_operand (operands[0], E_VOIDmode) || ! #line 5302 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && INTVAL (operands[1]) < 0)) return NULL; return gen_split_67 (insn, operands); case UNSPEC: switch (XVECLEN (x3, 0)) { case 2: if (XINT (x3, 1) != 17) return NULL; switch (pattern102 (x3)) { case 0: if (!(( #line 5475 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5477 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_68 (insn, operands); case 1: if (!(( #line 5475 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5477 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_69 (insn, operands); case 2: if (!(( #line 5518 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5520 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_72 (insn, operands); case 3: if (!(( #line 5518 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5520 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_73 (insn, operands); default: return NULL; } case 1: x6 = XVECEXP (x3, 0, 0); operands[1] = x6; switch (XINT (x3, 1)) { case 17: switch (pattern39 (x3)) { case 0: if (!(( #line 5492 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5494 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_70 (insn, operands); case 1: if (!(( #line 5492 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5494 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_71 (insn, operands); default: return NULL; } case 18: switch (pattern41 (x3)) { case 0: if (!(( #line 5539 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5541 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_74 (insn, operands); case 1: if (!(( #line 5539 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5541 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_75 (insn, operands); default: return NULL; } case 19: switch (pattern109 (x3)) { case 0: if (! #line 6849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ())) return NULL; return gen_split_90 (insn, operands); case 1: if (!( #line 6849 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ()) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_91 (insn, operands); default: return NULL; } default: return NULL; } default: return NULL; } case ASHIFT: switch (pattern27 (x3)) { case 0: if (! #line 5837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16)) return NULL; return gen_split_78 (insn, operands); case 1: if (!( #line 5837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_81 (insn, operands); default: return NULL; } case ASHIFTRT: switch (pattern27 (x3)) { case 0: if (! #line 5837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16)) return NULL; return gen_split_79 (insn, operands); case 1: if (!( #line 5837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_82 (insn, operands); default: return NULL; } case LSHIFTRT: x5 = XEXP (x3, 0); operands[1] = x5; x4 = XEXP (x3, 1); operands[2] = x4; switch (GET_CODE (operands[1])) { case REG: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern26 (x3, E_SImode) != 0 || ! #line 5837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16)) return NULL; return gen_split_80 (insn, operands); case E_DImode: if (pattern26 (x3, E_DImode) != 0 || !( #line 5837 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_83 (insn, operands); default: return NULL; } case SUBREG: case MEM: if (!memory_operand (operands[1], E_SImode) || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !immediate_operand (operands[2], E_SImode) || !( #line 5856 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 5858 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( 1))) return NULL; return gen_split_84 (insn, operands); default: return NULL; } case BSWAP: x5 = XEXP (x3, 0); operands[1] = x5; switch (pattern2 (x3)) { case 0: if (!( #line 5892 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH && ISA_HAS_ROR) && #line 5894 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( 1))) return NULL; return gen_split_85 (insn, operands); case 1: if (!( #line 5903 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH) && #line 5905 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( 1))) return NULL; return gen_split_86 (insn, operands); default: return NULL; } default: return NULL; } } static rtx_insn * split_4 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); if (GET_CODE (x4) != LSHIFTRT) return NULL; x5 = XEXP (x4, 0); if (GET_CODE (x5) != MULT) return NULL; x6 = XEXP (x4, 1); if (GET_CODE (x6) != CONST_INT) return NULL; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return NULL; x8 = XEXP (x7, 0); operands[3] = x8; x9 = XEXP (x5, 0); switch (GET_CODE (x9)) { case SIGN_EXTEND: switch (pattern213 (x3, SIGN_EXTEND)) { case 0: if (!( #line 2324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16) && #line 2326 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && !TARGET_FIX_R4000))) return NULL; return gen_split_11 (insn, operands); case 1: if (!( #line 2438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120)) && #line 2442 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && !TARGET_FIX_R4000))) return NULL; return gen_split_13 (insn, operands); default: return NULL; } case ZERO_EXTEND: switch (pattern213 (x3, ZERO_EXTEND)) { case 0: if (!( #line 2324 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16) && #line 2326 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && !TARGET_FIX_R4000))) return NULL; return gen_split_12 (insn, operands); case 1: if (!( #line 2438 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120)) && #line 2442 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed && !TARGET_FIX_R4000))) return NULL; return gen_split_14 (insn, operands); default: return NULL; } default: return NULL; } } static rtx_insn * split_5 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (XVECLEN (x3, 0) != 2 || XINT (x3, 1) != 20) return NULL; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != CLOBBER) return NULL; x5 = XVECEXP (x3, 0, 0); operands[1] = x5; x6 = XVECEXP (x3, 0, 1); operands[2] = x6; switch (pattern206 (x1)) { case 0: if (!( #line 5560 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ()) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return NULL; return gen_split_76 (insn, operands); case 1: if (!( #line 5560 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ()) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return NULL; return gen_split_77 (insn, operands); default: return NULL; } } static rtx_insn * split_6 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case TRUNCATE: res = split_4 (x1, insn); if (res != NULL_RTX) return res; break; case DIV: switch (pattern106 (x1, MOD)) { case 0: if (( #line 2898 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16) && #line 2900 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_15 (insn, operands); break; case 1: if ((( #line 2898 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 2900 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_16 (insn, operands); break; default: break; } break; case UDIV: switch (pattern106 (x1, UMOD)) { case 0: if ( #line 2965 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed)) return gen_split_19 (insn, operands); break; case 1: if (( #line 2965 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return gen_split_20 (insn, operands); break; default: break; } break; case CONST: case LABEL_REF: case SYMBOL_REF: operands[1] = x3; if (absolute_symbolic_operand (operands[1], E_DImode)) { x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) == CLOBBER && register_operand (operands[0], E_DImode)) { x5 = XEXP (x4, 0); operands[2] = x5; if (scratch_operand (operands[2], E_DImode) && ( #line 4554 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS && cse_not_expected) && #line 4559 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_37 (insn, operands); } } break; case CONST_INT: operands[1] = x3; x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) == CLOBBER) { x5 = XEXP (x4, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (register_operand (operands[0], E_SImode) && splittable_const_int_operand (operands[1], E_SImode) && register_operand (operands[2], E_SImode)) return gen_split_50 (insn, operands); break; case E_DImode: if (register_operand (operands[0], E_DImode) && splittable_const_int_operand (operands[1], E_DImode) && register_operand (operands[2], E_DImode) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return gen_split_51 (insn, operands); break; default: break; } } break; case UNSPEC: res = split_5 (x1, insn); if (res != NULL_RTX) return res; break; default: break; } x4 = XVECEXP (x1, 0, 1); if (GET_CODE (x4) != CLOBBER) return NULL; operands[1] = x3; x5 = XEXP (x4, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !register_operand (operands[2], E_SImode) || !( #line 4718 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_split_symbol (operands[2], operands[1], MAX_MACHINE_MODE, NULL)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return NULL; return gen_split_52 (insn, operands); case E_DImode: if (!register_operand (operands[0], E_DImode) || !register_operand (operands[2], E_DImode) || !( #line 4718 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (mips_split_symbol (operands[2], operands[1], MAX_MACHINE_MODE, NULL)) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return NULL; return gen_split_53 (insn, operands); default: return NULL; } } static rtx_insn * split_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15, x16, x17; rtx_insn *res ATTRIBUTE_UNUSED; switch (XVECLEN (x1, 0)) { case 3: x2 = XVECEXP (x1, 0, 2); if (GET_CODE (x2) != CLOBBER) return NULL; x3 = XVECEXP (x1, 0, 0); switch (GET_CODE (x3)) { case SET: x4 = XEXP (x3, 0); operands[0] = x4; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case PLUS: if (pattern83 (x1) != 0 || !d_operand (operands[0], E_SImode)) return NULL; x6 = XEXP (x5, 0); x7 = XEXP (x6, 0); operands[1] = x7; if (!d_operand (operands[1], E_SImode)) return NULL; x8 = XEXP (x6, 1); operands[2] = x8; if (!d_operand (operands[2], E_SImode)) return NULL; x9 = XEXP (x5, 1); operands[3] = x9; if (!d_operand (operands[3], E_SImode)) return NULL; x10 = XVECEXP (x1, 0, 1); x11 = XEXP (x10, 0); operands[4] = x11; if (!lo_operand (operands[4], E_SImode)) return NULL; x12 = XEXP (x2, 0); operands[5] = x12; if (!d_operand (operands[5], E_SImode) || ! #line 1821 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed)) return NULL; return gen_split_6 (insn, operands); case MINUS: if (GET_MODE (x5) != E_SImode) return NULL; x9 = XEXP (x5, 1); if (GET_CODE (x9) != MULT || GET_MODE (x9) != E_SImode) return NULL; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != CLOBBER) return NULL; x6 = XEXP (x5, 0); operands[1] = x6; if (register_operand (operands[1], E_SImode) && register_operand (operands[0], E_SImode) && pattern234 (x1) == 0 && ( #line 1877 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MSAC) && #line 1879 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_7 (insn, operands); if (!d_operand (operands[1], E_SImode) || !d_operand (operands[0], E_SImode)) return NULL; x13 = XEXP (x9, 0); operands[2] = x13; if (!d_operand (operands[2], E_SImode)) return NULL; x14 = XEXP (x9, 1); operands[3] = x14; if (!d_operand (operands[3], E_SImode)) return NULL; x11 = XEXP (x10, 0); operands[4] = x11; if (!lo_operand (operands[4], E_SImode)) return NULL; x12 = XEXP (x2, 0); operands[5] = x12; if (!d_operand (operands[5], E_SImode) || ! #line 2049 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed)) return NULL; return gen_split_8 (insn, operands); case MULT: if (GET_MODE (x5) != E_DImode) return NULL; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != CLOBBER || !register_operand (operands[0], E_DImode)) return NULL; x6 = XEXP (x5, 0); if (GET_MODE (x6) != E_DImode) return NULL; x9 = XEXP (x5, 1); if (GET_MODE (x9) != E_DImode) return NULL; x11 = XEXP (x10, 0); operands[3] = x11; if (!scratch_operand (operands[3], E_TImode)) return NULL; x12 = XEXP (x2, 0); operands[4] = x12; if (!scratch_operand (operands[4], E_DImode)) return NULL; switch (GET_CODE (x6)) { case SIGN_EXTEND: if (GET_CODE (x9) != SIGN_EXTEND) return NULL; x7 = XEXP (x6, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return NULL; x13 = XEXP (x9, 0); operands[2] = x13; if (!register_operand (operands[2], E_SImode) || !( #line 2145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT) && #line 2148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_9 (insn, operands); case ZERO_EXTEND: if (GET_CODE (x9) != ZERO_EXTEND) return NULL; x7 = XEXP (x6, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return NULL; x13 = XEXP (x9, 0); operands[2] = x13; if (!register_operand (operands[2], E_SImode) || !( #line 2145 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT) && #line 2148 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_10 (insn, operands); default: return NULL; } case DIV: switch (pattern129 (x1, MOD)) { case 0: if (!( #line 2924 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && #line 2926 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( cse_not_expected))) return NULL; return gen_split_17 (insn, operands); case 1: if (!(( #line 2924 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 2926 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( cse_not_expected))) return NULL; return gen_split_18 (insn, operands); default: return NULL; } case UDIV: switch (pattern129 (x1, UMOD)) { case 0: if (! #line 2986 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (cse_not_expected)) return NULL; return gen_split_21 (insn, operands); case 1: if (!( #line 2986 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (cse_not_expected) && #line 796 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_22 (insn, operands); default: return NULL; } case CALL: x6 = XEXP (x5, 0); if (GET_CODE (x6) != MEM || GET_MODE (x6) != E_SImode) return NULL; x12 = XEXP (x2, 0); if (GET_CODE (x12) != REG || REGNO (x12) != 31 || GET_MODE (x12) != E_SImode) return NULL; switch (pattern220 (x1)) { case 0: if (! #line 7162 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && TARGET_SPLIT_CALLS)) return NULL; return gen_split_95 (insn, operands); case 1: if (! #line 7198 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && TARGET_SPLIT_CALLS)) return NULL; return gen_split_96 (insn, operands); default: return NULL; } default: return NULL; } case CALL: x4 = XEXP (x3, 0); if (GET_CODE (x4) != MEM || GET_MODE (x4) != E_SImode) return NULL; x10 = XVECEXP (x1, 0, 1); if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return NULL; x12 = XEXP (x2, 0); if (GET_CODE (x12) != REG || REGNO (x12) != 31 || GET_MODE (x12) != E_SImode) return NULL; x15 = XEXP (x4, 0); operands[0] = x15; if (!const_call_insn_operand (operands[0], E_VOIDmode)) return NULL; x5 = XEXP (x3, 1); operands[1] = x5; if (! #line 7086 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && TARGET_SPLIT_CALLS)) return NULL; return gen_split_93 (insn, operands); default: return NULL; } case 2: x3 = XVECEXP (x1, 0, 0); switch (GET_CODE (x3)) { case SET: x4 = XEXP (x3, 0); operands[0] = x4; res = split_6 (x1, insn); if (res != NULL_RTX) return res; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != CLOBBER) return NULL; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case UNSPEC_VOLATILE: if (XVECLEN (x5, 0) != 1 || XINT (x5, 1) != 22) return NULL; x16 = XVECEXP (x5, 0, 0); if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_CODE (x4) != REG || REGNO (x4) != 28) return NULL; switch (pattern207 (x1)) { case 0: if (!(( #line 6832 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 6834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( epilogue_completed))) return NULL; return gen_split_88 (insn, operands); case 1: if (!(( #line 6832 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 6834 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( epilogue_completed))) return NULL; return gen_split_89 (insn, operands); default: return NULL; } case CALL: x6 = XEXP (x5, 0); if (GET_CODE (x6) != MEM || GET_MODE (x6) != E_SImode) return NULL; x11 = XEXP (x10, 0); if (GET_CODE (x11) != REG || REGNO (x11) != 31 || GET_MODE (x11) != E_SImode) return NULL; operands[0] = x4; if (!register_operand (operands[0], E_VOIDmode)) return NULL; x7 = XEXP (x6, 0); operands[1] = x7; if (!call_insn_operand (operands[1], E_VOIDmode)) return NULL; x9 = XEXP (x5, 1); operands[2] = x9; if (! #line 7129 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && TARGET_SPLIT_CALLS)) return NULL; return gen_split_94 (insn, operands); default: return NULL; } case UNSPEC: if (XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 23) return NULL; x10 = XVECEXP (x1, 0, 1); if (GET_CODE (x10) != CLOBBER) return NULL; x17 = XVECEXP (x3, 0, 0); operands[0] = x17; if (!register_operand (operands[0], E_VOIDmode)) return NULL; x11 = XEXP (x10, 0); operands[1] = x11; if (!scratch_operand (operands[1], E_VOIDmode) || ! #line 6795 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed)) return NULL; return gen_split_87 (insn, operands); case CALL: x4 = XEXP (x3, 0); if (GET_CODE (x4) != MEM || GET_MODE (x4) != E_SImode) return NULL; x10 = XVECEXP (x1, 0, 1); if (pattern25 (x10, CLOBBER) != 0) return NULL; x15 = XEXP (x4, 0); operands[0] = x15; if (!call_insn_operand (operands[0], E_VOIDmode)) return NULL; x5 = XEXP (x3, 1); operands[1] = x5; if (! #line 7054 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed && TARGET_SPLIT_CALLS)) return NULL; return gen_split_92 (insn, operands); default: return NULL; } default: return NULL; } } rtx_insn * split_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; rtx_insn *res ATTRIBUTE_UNUSED; recog_data.insn = NULL; switch (GET_CODE (x1)) { case SET: res = split_3 (x1, insn); if (res != NULL_RTX) return res; break; case PARALLEL: res = split_7 (x1, insn); if (res != NULL_RTX) return res; break; default: break; } operands[0] = x1; if (small_data_pattern (operands[0], E_VOIDmode) && #line 7526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (reload_completed)) return gen_split_97 (insn, operands); switch (GET_CODE (x1)) { case PARALLEL: switch (XVECLEN (x1, 0)) { case 2: x2 = XVECEXP (x1, 0, 0); if (pattern15 (x2, 30, 1) != 0 || pattern130 (x1) != 0) return NULL; x3 = XEXP (x2, 0); operands[0] = x3; switch (pattern214 (x1)) { case 0: if (!(( #line 7568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 7570 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_98 (insn, operands); case 1: if (!(( #line 7568 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 7570 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_99 (insn, operands); default: return NULL; } case 4: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return NULL; x4 = XEXP (x2, 1); if (GET_CODE (x4) != UNSPEC || pattern94 (x1) != 0) return NULL; x3 = XEXP (x2, 0); operands[0] = x3; switch (pattern248 (x1)) { case 0: if (!(( #line 7613 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 7615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_100 (insn, operands); case 1: if (!(( #line 7613 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 816 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 7615 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_101 (insn, operands); default: return NULL; } default: return NULL; } case SET: x5 = XEXP (x1, 0); operands[0] = x5; x6 = XEXP (x1, 1); switch (GET_CODE (x6)) { case UNSPEC: if (XVECLEN (x6, 0) != 5) return NULL; switch (pattern75 (x6)) { case 0: if (!( #line 457 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 459 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" ( reload_completed))) return NULL; return gen_split_102 (insn, operands); case 1: if (!( #line 486 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 488 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-ps-3d.md" ( reload_completed))) return NULL; return gen_split_103 (insn, operands); default: return NULL; } case VEC_SELECT: x7 = XEXP (x6, 1); if (GET_CODE (x7) != PARALLEL || XVECLEN (x7, 0) != 1) return NULL; x8 = XVECEXP (x7, 0, 0); if (GET_CODE (x8) != CONST_INT) return NULL; x9 = XEXP (x6, 0); operands[1] = x9; if (XWINT (x8, 0) == 0L) { switch (GET_MODE (operands[0])) { case E_DFmode: if (register_operand (operands[0], E_DFmode) && GET_MODE (x6) == E_DFmode && register_operand (operands[1], E_V2DFmode) && ( #line 369 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA) && #line 371 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" ( reload_completed))) return gen_split_104 (insn, operands); break; case E_SFmode: if (register_operand (operands[0], E_SFmode) && GET_MODE (x6) == E_SFmode && register_operand (operands[1], E_V4SFmode) && ( #line 369 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA) && #line 371 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" ( reload_completed))) return gen_split_105 (insn, operands); break; default: break; } } operands[2] = x8; if (!const_0_or_1_operand (operands[2], E_VOIDmode)) return NULL; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x6) != E_DImode || !register_operand (operands[1], E_V2DImode) || ! #line 582 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && !TARGET_64BIT)) return NULL; return gen_split_108 (insn, operands); case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x6) != E_DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 582 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && !TARGET_64BIT)) return NULL; return gen_split_109 (insn, operands); default: return NULL; } case VEC_MERGE: x9 = XEXP (x6, 0); if (GET_CODE (x9) != VEC_DUPLICATE) return NULL; x10 = XEXP (x9, 0); operands[1] = x10; x7 = XEXP (x6, 1); operands[2] = x7; x11 = XEXP (x6, 2); operands[3] = x11; if (!const_exp_2_operand (operands[3], E_VOIDmode)) return NULL; switch (GET_MODE (operands[0])) { case E_V2DImode: if (pattern183 (x6, E_DImode, E_V2DImode) != 0 || !register_operand (operands[2], E_V2DImode) || ! #line 491 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && !TARGET_64BIT)) return NULL; return gen_split_106 (insn, operands); case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x6) != E_V2DFmode || GET_MODE (x9) != E_V2DFmode || !register_operand (operands[1], E_DFmode) || !register_operand (operands[2], E_V2DFmode) || ! #line 491 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && !TARGET_64BIT)) return NULL; return gen_split_107 (insn, operands); default: return NULL; } case CONST_INT: case CONST_WIDE_INT: case CONST_POLY_INT: case CONST_FIXED: case CONST_DOUBLE: case CONST_VECTOR: case CONST: case REG: case SUBREG: case MEM: case LABEL_REF: case SYMBOL_REF: case HIGH: operands[1] = x6; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (!nonimmediate_operand (operands[0], E_V2DFmode) || !move_operand (operands[1], E_V2DFmode) || ! #line 677 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && mips_split_move_insn_p (operands[0], operands[1], insn))) return NULL; return gen_split_110 (insn, operands); case E_V4SFmode: if (!nonimmediate_operand (operands[0], E_V4SFmode) || !move_operand (operands[1], E_V4SFmode) || ! #line 677 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && mips_split_move_insn_p (operands[0], operands[1], insn))) return NULL; return gen_split_111 (insn, operands); case E_V2DImode: if (!nonimmediate_operand (operands[0], E_V2DImode) || !move_operand (operands[1], E_V2DImode) || ! #line 677 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && mips_split_move_insn_p (operands[0], operands[1], insn))) return NULL; return gen_split_112 (insn, operands); case E_V4SImode: if (!nonimmediate_operand (operands[0], E_V4SImode) || !move_operand (operands[1], E_V4SImode) || ! #line 677 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && mips_split_move_insn_p (operands[0], operands[1], insn))) return NULL; return gen_split_113 (insn, operands); case E_V8HImode: if (!nonimmediate_operand (operands[0], E_V8HImode) || !move_operand (operands[1], E_V8HImode) || ! #line 677 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && mips_split_move_insn_p (operands[0], operands[1], insn))) return NULL; return gen_split_114 (insn, operands); case E_V16QImode: if (!nonimmediate_operand (operands[0], E_V16QImode) || !move_operand (operands[1], E_V16QImode) || ! #line 677 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && mips_split_move_insn_p (operands[0], operands[1], insn))) return NULL; return gen_split_115 (insn, operands); default: return NULL; } case VEC_DUPLICATE: x9 = XEXP (x6, 0); operands[1] = x9; switch (GET_MODE (operands[0])) { case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x6) != E_V2DImode || !register_operand (operands[1], E_DImode) || ! #line 1712 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && !TARGET_64BIT)) return NULL; return gen_split_116 (insn, operands); case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x6) != E_V2DFmode || !register_operand (operands[1], E_DFmode) || ! #line 1712 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips-msa.md" (reload_completed && ISA_HAS_MSA && !TARGET_64BIT)) return NULL; return gen_split_117 (insn, operands); default: return NULL; } default: return NULL; } default: return NULL; } } static rtx_insn * peephole2_1 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[2] = x2; if (!d_operand (operands[2], E_SImode)) return NULL; x3 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x3) != PARALLEL || XVECLEN (x3, 0) != 2) return NULL; x4 = XVECEXP (x3, 0, 0); if (GET_CODE (x4) != SET) return NULL; x5 = XVECEXP (x3, 0, 1); if (GET_CODE (x5) != CLOBBER) return NULL; x6 = XEXP (x4, 1); if (!macc_msac_operand (x6, E_SImode)) return NULL; x7 = XEXP (x5, 0); switch (GET_CODE (x7)) { case REG: if (!rtx_equal_p (x7, operands[1])) return NULL; x8 = XEXP (x4, 0); operands[3] = x8; if (!d_operand (operands[3], E_SImode)) return NULL; operands[4] = x6; if (! #line 1967 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MUL3 && peep2_reg_dead_p (2, operands[1]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_4 (insn, operands); case SCRATCH: if (peep2_current_count < 3 || GET_MODE (x7) != E_SImode) return NULL; operands[3] = x6; x8 = XEXP (x4, 0); if (!rtx_equal_p (x8, operands[1])) return NULL; x9 = PATTERN (peep2_next_insn (2)); if (GET_CODE (x9) != SET) return NULL; x10 = XEXP (x9, 0); operands[4] = x10; if (!d_operand (operands[4], E_SImode)) return NULL; x11 = XEXP (x9, 1); if (!rtx_equal_p (x11, operands[1]) || ! #line 2000 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MUL3 && peep2_reg_dead_p (3, operands[1]))) return NULL; *pmatch_len_ = 2; return gen_peephole2_5 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; x3 = XEXP (x1, 0); operands[0] = x3; x4 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x4) != SET) return NULL; x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x4, 1); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_HImode: if (pattern208 (E_HImode) != 0 || ! #line 7748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, HImode, true))) return NULL; *pmatch_len_ = 1; return gen_peephole2_7 (insn, operands); case E_SImode: if (!non_volatile_mem_operand (operands[1], E_SImode) || !non_volatile_mem_operand (operands[3], E_SImode)) return NULL; if (register_operand (operands[0], E_SImode) && register_operand (operands[2], E_SImode) && #line 7748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, SImode, true))) { *pmatch_len_ = 1; res = gen_peephole2_8 (insn, operands); if (res != NULL_RTX) return res; } if (!d_operand (operands[0], E_SImode) || !d_operand (operands[2], E_SImode) || ! #line 48 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_load_store_pair_p (true, operands))) return NULL; *pmatch_len_ = 1; return gen_peephole2_17 (insn, operands); case E_SFmode: if (pattern208 (E_SFmode) != 0 || !( #line 7748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, SFmode, true)) && #line 806 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return NULL; *pmatch_len_ = 1; return gen_peephole2_9 (insn, operands); case E_DFmode: if (pattern208 (E_DFmode) != 0 || !( #line 7748 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, DFmode, true)) && #line 807 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return NULL; *pmatch_len_ = 1; return gen_peephole2_10 (insn, operands); default: return NULL; } } rtx_insn * peephole2_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13, x14, x15; rtx_insn *res ATTRIBUTE_UNUSED; recog_data.insn = NULL; switch (GET_CODE (x1)) { case PARALLEL: if (peep2_current_count < 2 || XVECLEN (x1, 0) != 2) return NULL; x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return NULL; x3 = XVECEXP (x1, 0, 1); if (GET_CODE (x3) != CLOBBER) return NULL; x4 = XEXP (x3, 0); if (GET_CODE (x4) != SCRATCH || GET_MODE (x4) != E_SImode) return NULL; x5 = XEXP (x2, 0); operands[0] = x5; if (!lo_operand (operands[0], E_SImode)) return NULL; x6 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x6) != SET) return NULL; x7 = XEXP (x6, 0); if (!d_operand (x7, E_SImode)) return NULL; x8 = XEXP (x6, 1); if (!rtx_equal_p (x8, operands[0])) return NULL; x9 = XEXP (x2, 1); switch (GET_CODE (x9)) { case MULT: if (GET_MODE (x9) != E_SImode) return NULL; x10 = XEXP (x9, 0); operands[1] = x10; if (!d_operand (operands[1], E_SImode)) return NULL; x11 = XEXP (x9, 1); operands[2] = x11; if (!d_operand (operands[2], E_SImode)) return NULL; operands[3] = x7; if (! #line 1680 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MUL3 && peep2_reg_dead_p (2, operands[0]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_1 (insn, operands); case PLUS: case MINUS: operands[1] = x9; if (!macc_msac_operand (operands[1], E_SImode)) return NULL; operands[2] = x7; *pmatch_len_ = 1; return gen_peephole2_3 (insn, operands); default: return NULL; } case SET: x12 = XEXP (x1, 1); switch (GET_CODE (x12)) { case MULT: if (peep2_current_count < 2 || GET_MODE (x12) != E_SImode) return NULL; x13 = XEXP (x1, 0); operands[0] = x13; if (!lo_operand (operands[0], E_SImode)) return NULL; x14 = XEXP (x12, 0); operands[1] = x14; if (!d_operand (operands[1], E_SImode)) return NULL; x15 = XEXP (x12, 1); operands[2] = x15; if (!d_operand (operands[2], E_SImode)) return NULL; x6 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x6) != SET) return NULL; x7 = XEXP (x6, 0); operands[3] = x7; if (!d_operand (operands[3], E_SImode)) return NULL; x8 = XEXP (x6, 1); if (!rtx_equal_p (x8, operands[0]) || ! #line 1721 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MUL3)) return NULL; *pmatch_len_ = 1; return gen_peephole2_2 (insn, operands); case HIGH: if (GET_MODE (x12) != E_DImode) return NULL; x13 = XEXP (x1, 0); operands[1] = x13; if (!d_operand (operands[1], E_DImode)) return NULL; x14 = XEXP (x12, 0); operands[2] = x14; if (!absolute_symbolic_operand (operands[2], E_DImode) || ! #line 4526 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS)) return NULL; *pmatch_len_ = 0; return gen_peephole2_6 (insn, operands); case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: case MEM: if (peep2_current_count < 2) return NULL; switch (GET_CODE (x12)) { case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: x13 = XEXP (x1, 0); switch (GET_MODE (x13)) { case E_SImode: operands[1] = x13; if (lo_operand (operands[1], E_SImode)) { res = peephole2_1 (x1, insn, pmatch_len_); if (res != NULL_RTX) return res; } operands[0] = x13; if (pattern131 (x12, E_SFmode, E_SImode) == 0 && #line 116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) { *pmatch_len_ = 1; res = gen_peephole2_20 (insn, operands); if (res != NULL_RTX) return res; } break; case E_SFmode: operands[0] = x13; if (pattern131 (x12, E_SImode, E_SFmode) == 0 && #line 116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) { *pmatch_len_ = 1; res = gen_peephole2_21 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } break; case SUBREG: case MEM: res = peephole2_2 (x1, insn, pmatch_len_); if (res != NULL_RTX) return res; break; default: break; } operands[1] = x12; x13 = XEXP (x1, 0); operands[0] = x13; x6 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x6) != SET) return NULL; x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x6, 1); operands[3] = x8; switch (GET_MODE (operands[0])) { case E_HImode: if (pattern199 (E_HImode) != 0 || ! #line 7763 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, HImode, false))) return NULL; *pmatch_len_ = 1; return gen_peephole2_11 (insn, operands); case E_SImode: if (memory_operand (operands[0], E_SImode) && register_operand (operands[1], E_SImode) && memory_operand (operands[2], E_SImode) && register_operand (operands[3], E_SImode) && #line 7763 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, SImode, false))) { *pmatch_len_ = 1; res = gen_peephole2_12 (insn, operands); if (res != NULL_RTX) return res; } if (non_volatile_mem_operand (operands[0], E_SImode) && d_operand (operands[1], E_SImode) && non_volatile_mem_operand (operands[2], E_SImode) && d_operand (operands[3], E_SImode) && #line 76 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_load_store_pair_p (false, operands))) { *pmatch_len_ = 1; res = gen_peephole2_18 (insn, operands); if (res != NULL_RTX) return res; } if (!register_operand (operands[0], E_SImode) || !movep_src_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode) || !movep_src_operand (operands[3], E_SImode) || ! #line 116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_19 (insn, operands); case E_SFmode: if (memory_operand (operands[0], E_SFmode) && register_operand (operands[1], E_SFmode) && memory_operand (operands[2], E_SFmode) && register_operand (operands[3], E_SFmode) && ( #line 7763 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, SFmode, false)) && #line 806 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) { *pmatch_len_ = 1; res = gen_peephole2_13 (insn, operands); if (res != NULL_RTX) return res; } if (!register_operand (operands[0], E_SFmode) || !movep_src_operand (operands[1], E_SFmode) || !register_operand (operands[2], E_SFmode) || !movep_src_operand (operands[3], E_SFmode) || ! #line 116 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_22 (insn, operands); case E_DFmode: if (pattern199 (E_DFmode) != 0 || !( #line 7763 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, DFmode, false)) && #line 807 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return NULL; *pmatch_len_ = 1; return gen_peephole2_14 (insn, operands); default: return NULL; } case SIGN_EXTEND: if (pattern16 (x1, SIGN_EXTEND) != 0 || ! #line 7805 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, HImode, true))) return NULL; *pmatch_len_ = 1; return gen_peephole2_15 (insn, operands); case ZERO_EXTEND: if (pattern16 (x1, ZERO_EXTEND) != 0 || ! #line 7805 "/home/user/openwrt2305/build_dir/toolchain-mips_24kc_gcc-13.3.0_musl/gcc-13.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, HImode, true))) return NULL; *pmatch_len_ = 1; return gen_peephole2_16 (insn, operands); default: return NULL; } default: return NULL; } }