/* 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) { 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 pattern18 (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 pattern19 (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) != 63 || 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 pattern20 (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 pattern21 (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 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) || !register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern23 (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 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_SImode: return pattern20 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern21 (x1) != 0) return -1; return 1; case E_V2SImode: if (pattern22 (x1, E_V2SImode) != 0) return -1; return 2; case E_V4HImode: if (pattern22 (x1, E_V4HImode) != 0) return -1; return 3; case E_V2DImode: if (pattern23 (x1, E_V2DImode) != 0) return -1; return 4; case E_V4SImode: if (pattern23 (x1, E_V4SImode) != 0) return -1; return 5; case E_V8HImode: if (pattern23 (x1, E_V8HImode) != 0) return -1; return 6; case E_V16QImode: if (pattern23 (x1, E_V16QImode) != 0) return -1; return 7; default: return -1; } } static int pattern25 (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 pattern26 (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 pattern27 (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 pattern28 (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 pattern27 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern27 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern29 (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 pattern30 (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 pattern29 (x1, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern29 (x1, E_V4SImode) != 0) return -1; return 1; case E_V8HImode: if (pattern29 (x1, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern29 (x1, E_V16QImode) != 0) return -1; return 3; default: return -1; } } static int pattern31 (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 pattern32 (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] || pattern31 (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] || pattern31 (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] || pattern31 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 2; default: return -1; } } static int pattern33 (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 pattern34 (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 pattern35 (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 pattern36 (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 pattern37 (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 || pattern36 (x1, E_SImode, E_DImode) != 0) return -1; return 0; case E_TImode: if (GET_MODE (x1) != E_TImode || pattern36 (x1, E_DImode, E_TImode) != 0) return -1; return 1; default: return -1; } } static int pattern38 (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 pattern39 (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 pattern38 (x1, E_SFmode); /* [-1, 0] */ case E_DFmode: if (pattern38 (x1, E_DFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern38 (x1, E_V2SFmode) != 0) return -1; return 2; default: return -1; } } static int pattern40 (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 pattern41 (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 pattern40 (x3); /* [-1, 1] */ } static int pattern42 (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 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; return pattern42 (x3); /* [-1, 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_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 pattern45 (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 pattern46 (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 pattern47 (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 pattern48 (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 pattern49 (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 pattern48 (x3, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern48 (x3, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern50 (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 pattern51 (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 pattern52 (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 pattern51 (x3, E_SFmode); /* [-1, 0] */ case E_DFmode: if (pattern51 (x3, E_DFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern51 (x3, E_V2SFmode) != 0) return -1; return 2; default: return -1; } } static int pattern53 (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 pattern54 (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 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 (!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 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 (!reg_or_0_operand (operands[2], i1)) return -1; return 0; } static int pattern57 (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 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; switch (GET_MODE (operands[0])) { case E_V2SImode: return pattern51 (x3, E_V2SImode); /* [-1, 0] */ case E_V4HImode: if (pattern51 (x3, E_V4HImode) != 0) return -1; return 1; case E_V8QImode: if (pattern51 (x3, E_V8QImode) != 0) return -1; return 2; 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; 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 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: return pattern51 (x3, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern51 (x3, E_V4SImode) != 0) return -1; return 1; case E_V8HImode: if (pattern51 (x3, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern51 (x3, E_V16QImode) != 0) return -1; return 3; default: return -1; } } static int pattern61 (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 pattern62 (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 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_V2DImode: return pattern62 (x3, E_V2DFmode, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern62 (x3, E_V4SFmode, E_V4SImode) != 0) return -1; return 1; default: return -1; } } static int pattern64 (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 pattern51 (x3, E_V4SImode); /* [-1, 0] */ case E_V8HImode: if (pattern51 (x3, E_V8HImode) != 0) return -1; return 1; default: return -1; } } static int pattern65 (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 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_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 pattern67 (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 pattern68 (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 pattern69 (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 pattern70 (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 pattern71 (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 pattern70 (x3, E_V2DImode); /* [-1, 0] */ case E_V4SImode: if (pattern70 (x3, E_V4SImode) != 0) return -1; return 1; case E_V8HImode: if (pattern70 (x3, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern70 (x3, E_V16QImode) != 0) return -1; return 3; default: return -1; } } 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_uimm4_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern73 (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 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_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 (pattern72 (x3, E_V8HImode) != 0) return -1; return 2; case E_V16QImode: if (pattern73 (x3, E_V16QImode) != 0) return -1; return 3; 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; 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 pattern70 (x3, E_V4SImode); /* [-1, 0] */ case E_V8HImode: if (pattern70 (x3, E_V8HImode) != 0) return -1; return 1; default: return -1; } } static int pattern76 (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 71: return 0; case 73: return 1; 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 240: res = pattern77 (); if (res >= 0) return res + 5; /* [5, 10] */ return -1; case 239: 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]; 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 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) || !reg_or_vector_same_val_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]; 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 pattern114 (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 pattern113 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern113 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern115 (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 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) || !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 pattern117 (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 pattern118 (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 pattern119 (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 pattern120 (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 pattern119 (x3, E_DImode, E_SImode); /* [-1, 0] */ case E_TImode: if (pattern119 (x3, E_TImode, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern121 (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 pattern122 (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 pattern123 (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 pattern124 (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 pattern125 (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 pattern126 (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 pattern127 (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 pattern128 (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 pattern129 (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 pattern130 (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 pattern131 (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 pattern132 (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 pattern133 (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 pattern134 (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 pattern133 (x1, E_SImode, E_DImode); /* [-1, 0] */ case 64L: if (pattern133 (x1, E_DImode, E_TImode) != 0) return -1; return 1; default: return -1; } } static int pattern135 (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 pattern136 (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 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) 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 pattern138 (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 pattern139 (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 pattern140 (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 pattern141 (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] || pattern140 (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] || pattern140 (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] || pattern140 (x1, E_V8HImode, E_V8QImode, E_V16QImode) != 0) return -1; return 2; default: return -1; } } static int pattern142 (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 pattern143 (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 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 || !reg_or_0_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], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern146 (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 pattern147 (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 pattern148 (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 pattern149 (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 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) || !const_int_operand (operands[2], i1) || !const_int_operand (operands[3], i1)) return -1; return 0; } static int pattern151 (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 pattern152 (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 pattern153 (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 pattern152 (x2); /* [-1, 1] */ } static int pattern154 () { 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 pattern155 (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 pattern154 (); /* [-1, 1] */ case PC: x3 = XEXP (x1, 2); if (GET_CODE (x3) != LABEL_REF) return -1; x5 = XEXP (x3, 0); operands[0] = x5; res = pattern154 (); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } } static int pattern156 (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 pattern157 (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 pattern158 (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 || pattern36 (x1, i1, i2) != 0) return -1; return 0; } static int pattern159 (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 pattern160 (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 pattern161 (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 pattern162 (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) != 61 || 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 pattern163 (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 pattern164 (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 pattern165 (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 pattern166 (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 pattern167 (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] || pattern166 (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] || pattern166 (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] || pattern166 (x1, E_V8QImode, E_V8HImode, E_V16QImode) != 0) return -1; return 2; default: return -1; } } static int pattern168 (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 pattern169 (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 pattern170 (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 pattern171 (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 pattern172 (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 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_to_3_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern174 (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 pattern175 (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 pattern176 (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 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) 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 pattern178 (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 pattern179 (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 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 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern181 (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 pattern182 (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 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], 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 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_to_3_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern185 (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 pattern186 (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 pattern185 (x8, E_SImode); /* [-1, 0] */ case E_V2HImode: x7 = XVECEXP (x1, 0, 0); x8 = XEXP (x7, 1); if (pattern185 (x8, E_V2HImode) != 0) return -1; return 1; case E_V4QImode: x7 = XVECEXP (x1, 0, 0); x8 = XEXP (x7, 1); if (pattern185 (x8, E_V4QImode) != 0) return -1; return 2; default: return -1; } } static int pattern187 (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 pattern188 (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) || pattern187 (x5, i3) != 0) return -1; return 0; } static int pattern189 (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 pattern190 (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) || pattern189 (x5, E_V4QImode, E_V2HImode) != 0) return -1; return 0; } static int pattern191 (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 pattern192 (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 || pattern191 (x5) != 0) return -1; return 0; } static int pattern193 (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 pattern194 (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) || pattern193 (x5, E_V2HImode) != 0) return -1; return 0; } static int pattern195 (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 pattern193 (x3, i1); /* [-1, 0] */ } static int pattern196 (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 || pattern195 (x4, E_V4QImode, 186) != 0) return -1; return 0; } static int pattern197 (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 || pattern195 (x4, E_SImode, 185) != 0) return -1; return 0; } static int pattern198 (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 pattern199 (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 pattern200 (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 pattern201 (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 pattern202 (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 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_to_3_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern204 (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 pattern205 (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 pattern204 (x5, E_SImode); /* [-1, 0] */ case E_DImode: x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); if (pattern204 (x5, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern206 (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 pattern207 (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 pattern208 (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 pattern209 (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 pattern210 (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 pattern211 (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 pattern212 (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 pattern211 (x1, E_SImode, E_DImode); /* [-1, 0] */ case 64L: if (pattern211 (x1, E_DImode, E_TImode) != 0) return -1; return 1; default: return -1; } } static int pattern213 (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 pattern214 (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 pattern215 (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 || pattern214 (x1) != 0) return -1; return 0; } static int pattern216 (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 pattern217 (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 pattern218 () { 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 pattern219 (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 (pattern215 (x7) != 0) return -1; return 1; default: return -1; } } static int pattern220 (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 pattern221 () { 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 pattern222 (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 pattern221 (); /* [-1, 2] */ } 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) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return pattern221 (); /* [-1, 2] */ } static int pattern224 (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 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_4_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)) return -1; return 0; } static int pattern227 (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 pattern228 (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 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) || !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 pattern230 (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 pattern229 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern229 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern231 (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 pattern232 (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 pattern231 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern231 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern233 (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 pattern234 (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 pattern235 (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 pattern236 (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) || pattern235 (x1, i2) != 0) return -1; return 0; } static int pattern237 (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 pattern238 (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 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 || !reg_or_0_operand (operands[2], i1) || !arith_operand (operands[3], i1)) return -1; return 0; } static int pattern240 (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 pattern241 (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 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 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern243 (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 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_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 pattern245 (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 pattern246 (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 pattern247 (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 pattern246 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern246 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern248 (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 pattern249 (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 pattern250 (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 pattern251 (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 pattern252 (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 pattern253 (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 pattern189 (x3, i1, E_SImode); /* [-1, 0] */ } static int pattern254 (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 pattern255 (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 pattern256 (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 pattern257 (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 pattern258 (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 pattern259 (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 1450 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && BYTES_BIG_ENDIAN)) return -1; return 19; /* *baddu_si_eb */ case 0: if (! #line 1460 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3579 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !ISA_HAS_EXT_INS)) return 214; /* *zero_extendsidi2 */ if (! #line 3595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_EXT_INS)) return -1; return 215; /* *zero_extendsidi2_dext */ case E_QImode: if (nonimmediate_operand (operands[1], E_QImode) && ( #line 3635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 217; /* *zero_extendqidi2 */ if (register_operand (operands[1], E_QImode) && ( #line 3647 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 221; /* *zero_extendqidi2_mips16e */ if (!memory_operand (operands[1], E_QImode) || !( #line 3656 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 225; /* *zero_extendqidi2_mips16 */ case E_HImode: if (nonimmediate_operand (operands[1], E_HImode) && ( #line 3635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 219; /* *zero_extendhidi2 */ if (register_operand (operands[1], E_HImode) && ( #line 3647 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 223; /* *zero_extendhidi2_mips16e */ if (!memory_operand (operands[1], E_HImode) || !( #line 3656 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 227; /* *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 3635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 216; /* *zero_extendqisi2 */ if (register_operand (operands[1], E_QImode) && #line 3647 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 220; /* *zero_extendqisi2_mips16e */ if (!memory_operand (operands[1], E_QImode) || ! #line 3656 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 224; /* *zero_extendqisi2_mips16 */ case E_HImode: if (nonimmediate_operand (operands[1], E_HImode) && #line 3635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 218; /* *zero_extendhisi2 */ if (register_operand (operands[1], E_HImode) && #line 3647 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 222; /* *zero_extendhisi2_mips16e */ if (!memory_operand (operands[1], E_HImode) || ! #line 3656 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 226; /* *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 3677 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 228; /* *zero_extendqihi2 */ if (!memory_operand (operands[1], E_QImode) || ! #line 3687 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 229; /* *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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 813; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 814; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 815; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 816; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 817; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 818; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 819; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 995 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 820; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 996 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 821; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 997 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 822; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 823; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 824; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 825; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 826; /* 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 (pattern40 (x2)) { case 0: if (( #line 7544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 1; return 704; /* tls_get_tp_si */ } break; case 1: if (( #line 7544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) { *pnum_clobbers = 1; return 705; /* tls_get_tp_di */ } break; default: break; } } x4 = XEXP (x1, 0); if (GET_CODE (x4) != REG) return -1; switch (pattern132 (x1, 3)) { case 0: if (!( #line 7558 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 706; /* *tls_get_tp_si_split */ case 1: if (!( #line 7558 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 707; /* *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 7589 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 3; return 708; /* 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 7589 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) { *pnum_clobbers = 3; return 709; /* 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 7608 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; *pnum_clobbers = 2; return 710; /* *tls_get_tp_mips16_call_si */ case E_DImode: if (GET_MODE (x2) != E_DImode || !call_insn_operand (operands[0], E_DImode) || !( #line 7608 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 711; /* *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 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 871 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 383; /* load_lowdf */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !general_operand (operands[1], E_SImode) || !( #line 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 384; /* load_lowdi */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !general_operand (operands[1], E_SImode) || !( #line 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 385; /* load_lowv2sf */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !general_operand (operands[1], E_SImode) || !( #line 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 874 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 386; /* load_lowv2si */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !general_operand (operands[1], E_SImode) || !( #line 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 387; /* load_lowv4hi */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !general_operand (operands[1], E_SImode) || !( #line 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 388; /* load_lowv8qi */ case E_TFmode: if (!register_operand (operands[0], E_TFmode) || GET_MODE (x3) != E_TFmode || !general_operand (operands[1], E_DImode) || !( #line 5392 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 877 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 389; /* 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 2212 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2212 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3027 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT))) return -1; return 143; /* divmodsi4_hilo_di */ case 1: if (!( #line 3027 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 145; /* divmodsi4_hilo_ti */ case 2: if (!( #line 3027 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV) && #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3027 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT))) return -1; return 144; /* udivmodsi4_hilo_di */ case 1: if (!( #line 3027 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV) && #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 146; /* udivmodsi4_hilo_ti */ case 2: if (!( #line 3027 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV) && #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern142 (x3)) { case 0: if (!( #line 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 871 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 411; /* mfhc1df */ case 1: if (!( #line 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 412; /* mfhc1di */ case 2: if (!( #line 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 413; /* mfhc1v2sf */ case 3: if (!( #line 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 874 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 414; /* mfhc1v2si */ case 4: if (!( #line 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 415; /* mfhc1v4hi */ case 5: if (!( #line 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 416; /* 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 5447 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 877 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 417; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1064; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1065; /* 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 2624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1649; /* 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 2624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1650; /* 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 2624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1651; /* 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 2624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1652; /* 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 2624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1653; /* 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 2624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1654; /* 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 (pattern144 (x3, E_DFmode, E_SImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 871 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 404; /* mthc1df */ case E_DImode: if (pattern144 (x3, E_DImode, E_SImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 405; /* mthc1di */ case E_V2SFmode: if (pattern144 (x3, E_V2SFmode, E_SImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 406; /* mthc1v2sf */ case E_V2SImode: if (pattern144 (x3, E_V2SImode, E_SImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 874 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 407; /* mthc1v2si */ case E_V4HImode: if (pattern144 (x3, E_V4HImode, E_SImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 408; /* mthc1v4hi */ case E_V8QImode: if (pattern144 (x3, E_V8QImode, E_SImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 409; /* mthc1v8qi */ case E_TFmode: if (pattern144 (x3, E_TFmode, E_DImode) != 0 || !( #line 5437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_MXHC1) && #line 877 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 410; /* 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 (pattern143 (x3, E_DFmode, E_SImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 871 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 390; /* load_highdf */ case E_DImode: if (pattern143 (x3, E_DImode, E_SImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 391; /* load_highdi */ case E_V2SFmode: if (pattern143 (x3, E_V2SFmode, E_SImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 392; /* load_highv2sf */ case E_V2SImode: if (pattern143 (x3, E_V2SImode, E_SImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 874 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 393; /* load_highv2si */ case E_V4HImode: if (pattern143 (x3, E_V4HImode, E_SImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 394; /* load_highv4hi */ case E_V8QImode: if (pattern143 (x3, E_V8QImode, E_SImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 395; /* load_highv8qi */ case E_TFmode: if (pattern143 (x3, E_TFmode, E_DImode) != 0 || !( #line 5407 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 877 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 396; /* 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 (pattern142 (x3)) { case 0: if (!( #line 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 871 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 397; /* store_worddf */ case 1: if (!( #line 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_DOUBLE_FLOAT))) return -1; return 398; /* store_worddi */ case 2: if (!( #line 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 399; /* store_wordv2sf */ case 3: if (!( #line 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 874 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 400; /* store_wordv2si */ case 4: if (!( #line 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 401; /* store_wordv4hi */ case 5: if (!( #line 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_LOONGSON_MMI))) return -1; return 402; /* 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 5422 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 877 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_FLOAT64))) return -1; return 403; /* 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 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT)) return -1; return 380; /* 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 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return 381; /* mthisi_ti */ if (!reg_or_0_operand (operands[1], E_DImode) || !register_operand (operands[2], E_DImode) || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 382; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 881; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 882; /* 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 5646 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CACHE)) return -1; return 439; /* 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 (pattern170 (x2, E_SImode) != 0 || !( #line 5569 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CPRESTORE_DIRECTIVE) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 429; /* cprestore_si */ case E_DImode: if (pattern170 (x2, E_DImode) != 0 || !( #line 5569 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CPRESTORE_DIRECTIVE) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 430; /* 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 6499 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; *pnum_clobbers = 2; return 626; /* casesi_internal_mips16_si */ case E_DImode: if (!( #line 6499 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 627; /* 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 4446 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[0]))) return 285; /* mov_swl */ if (!reg_or_0_operand (operands[1], E_DImode) || !( #line 4446 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[0])) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 286; /* 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 1181 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1359; /* msa_bnegi_d */ case 1: if (! #line 1181 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1360; /* msa_bnegi_w */ case 2: if (! #line 1181 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1361; /* msa_bnegi_h */ case 3: if (! #line 1181 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1362; /* 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 (pattern60 (x1)) { case 0: if (! #line 2592 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1633; /* msa_subsus_u_d */ case 1: if (! #line 2592 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1634; /* msa_subsus_u_w */ case 2: if (! #line 2592 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1635; /* msa_subsus_u_h */ case 3: if (! #line 2592 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1636; /* 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 (pattern60 (x1)) { case 0: if (! #line 2582 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1629; /* msa_subsuu_s_d */ case 1: if (! #line 2582 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1630; /* msa_subsuu_s_w */ case 2: if (! #line 2582 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1631; /* msa_subsuu_s_h */ case 3: if (! #line 2582 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1632; /* 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 (pattern60 (x1)) { case 0: if (! #line 2572 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1625; /* msa_subs_u_d */ case 1: if (! #line 2572 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1626; /* msa_subs_u_w */ case 2: if (! #line 2572 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1627; /* msa_subs_u_h */ case 3: if (! #line 2572 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1628; /* 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 (pattern60 (x1)) { case 0: if (! #line 2562 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1621; /* msa_subs_s_d */ case 1: if (! #line 2562 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1622; /* msa_subs_s_w */ case 2: if (! #line 2562 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1623; /* msa_subs_s_h */ case 3: if (! #line 2562 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1624; /* 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 (pattern61 (x1)) { case 0: if (! #line 2552 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1617; /* msa_srlri_d */ case 1: if (! #line 2552 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1618; /* msa_srlri_w */ case 2: if (! #line 2552 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1619; /* msa_srlri_h */ case 3: if (! #line 2552 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1620; /* 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 (pattern60 (x1)) { case 0: if (! #line 2542 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1613; /* msa_srlr_d */ case 1: if (! #line 2542 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1614; /* msa_srlr_w */ case 2: if (! #line 2542 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1615; /* msa_srlr_h */ case 3: if (! #line 2542 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1616; /* 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 (pattern61 (x1)) { case 0: if (! #line 2532 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1609; /* msa_srari_d */ case 1: if (! #line 2532 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1610; /* msa_srari_w */ case 2: if (! #line 2532 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1611; /* msa_srari_h */ case 3: if (! #line 2532 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1612; /* 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 (pattern60 (x1)) { case 0: if (! #line 2522 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1605; /* msa_srar_d */ case 1: if (! #line 2522 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1606; /* msa_srar_w */ case 2: if (! #line 2522 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1607; /* msa_srar_h */ case 3: if (! #line 2522 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1608; /* 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 (pattern61 (x1)) { case 0: if (! #line 2492 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1597; /* msa_sat_u_d */ case 1: if (! #line 2492 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1598; /* msa_sat_u_w */ case 2: if (! #line 2492 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1599; /* msa_sat_u_h */ case 3: if (! #line 2492 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1600; /* 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 (pattern61 (x1)) { case 0: if (! #line 2482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1593; /* msa_sat_s_d */ case 1: if (! #line 2482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1594; /* msa_sat_s_w */ case 2: if (! #line 2482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1595; /* msa_sat_s_h */ case 3: if (! #line 2482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1596; /* 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 (pattern145 (x3, E_V2DImode, E_V2DFmode) != 0 || ! #line 1615 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1459; /* msa_fexp2_d */ case E_V4SFmode: if (pattern145 (x3, E_V4SImode, E_V4SFmode) != 0 || ! #line 1615 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1460; /* 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 (pattern61 (x1)) { case 0: if (! #line 1215 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1371; /* msa_bseti_d */ case 1: if (! #line 1215 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1372; /* msa_bseti_w */ case 2: if (! #line 1215 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1373; /* msa_bseti_h */ case 3: if (! #line 1215 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1374; /* 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 (pattern62 (x3, E_V4SFmode, E_V8HImode) != 0 || ! #line 1828 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1499; /* msa_ftq_h */ case E_V4SImode: if (pattern62 (x3, E_V2DFmode, E_V4SImode) != 0 || ! #line 1839 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1500; /* 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 (pattern60 (x1)) { case 0: if (! #line 1205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1367; /* msa_bset_d */ case 1: if (! #line 1205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1368; /* msa_bset_w */ case 2: if (! #line 1205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1369; /* msa_bset_h */ case 3: if (! #line 1205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1370; /* 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 (pattern60 (x1)) { case 0: if (! #line 1171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1355; /* msa_bneg_d */ case 1: if (! #line 1171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1356; /* msa_bneg_w */ case 2: if (! #line 1171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1357; /* msa_bneg_h */ case 3: if (! #line 1171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1358; /* 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 (pattern61 (x1)) { case 0: if (! #line 1090 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1327; /* msa_bclri_d */ case 1: if (! #line 1090 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1328; /* msa_bclri_w */ case 2: if (! #line 1090 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1329; /* msa_bclri_h */ case 3: if (! #line 1090 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1330; /* 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 (pattern60 (x1)) { case 0: if (! #line 1080 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1323; /* msa_bclr_d */ case 1: if (! #line 1080 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1324; /* msa_bclr_w */ case 2: if (! #line 1080 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1325; /* msa_bclr_h */ case 3: if (! #line 1080 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1326; /* 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 (pattern60 (x1)) { case 0: if (! #line 1070 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1319; /* msa_aver_u_d */ case 1: if (! #line 1070 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1320; /* msa_aver_u_w */ case 2: if (! #line 1070 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1321; /* msa_aver_u_h */ case 3: if (! #line 1070 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1322; /* 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 (pattern40 (x2)) { case 0: if (! #line 4425 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[1]))) return -1; return 281; /* mov_lwl */ case 1: if (!( #line 4425 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[1])) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 282; /* mov_ldl */ default: return -1; } case 2: return recog_18 (x1, insn, pnum_clobbers); case 28: switch (pattern49 (x1)) { case 0: if (! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 301; /* load_gotsi */ case 1: if (! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 302; /* 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 5465 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 418; /* loadgp_newabi_si */ case 1: if (!( #line 5465 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 419; /* loadgp_newabi_di */ case 2: if (!( #line 5508 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 423; /* loadgp_rtp_si */ case 3: if (!( #line 5508 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 424; /* 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 74: if (pattern50 (x1, E_V2SFmode) != 0 || ! #line 356 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 802; /* mips_addr_ps */ case 77: if (pattern50 (x1, E_V2SFmode) != 0 || ! #line 399 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 805; /* mips_mulr_ps */ case 80: switch (pattern52 (x1)) { case 0: if (!( #line 678 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 836; /* mips_rsqrt2_s */ case 1: if (!( #line 678 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 837; /* mips_rsqrt2_d */ case 2: if (!( #line 678 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 838; /* mips_rsqrt2_ps */ default: return -1; } case 82: switch (pattern52 (x1)) { case 0: if (!( #line 697 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 842; /* mips_recip2_s */ case 1: if (!( #line 697 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 843; /* mips_recip2_d */ case 2: if (!( #line 697 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 844; /* mips_recip2_ps */ default: return -1; } case 91: if (pattern53 (x1, E_SImode) != 0 || ! #line 208 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 857; /* mips_modsub */ case 94: if (pattern54 (x1, E_V2HImode, E_V4QImode) != 0 || ! #line 241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 861; /* mips_precrq_qb_ph */ case 95: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 862; /* mips_precrq_ph_w */ case 110: if (pattern55 (x1, E_V4QImode) != 0 || ! #line 426 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 879; /* mips_shrl_qb */ case 111: if (pattern55 (x1, E_V2HImode) != 0 || ! #line 445 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 880; /* mips_shra_ph */ case 112: return recog_14 (x1, insn, pnum_clobbers); case 138: if (pattern54 (x1, E_V4QImode, E_SImode) != 0 || ! #line 831 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 911; /* mips_cmpgu_eq_qb */ case 139: if (pattern54 (x1, E_V4QImode, E_SImode) != 0 || ! #line 841 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 912; /* mips_cmpgu_lt_qb */ case 140: if (pattern54 (x1, E_V4QImode, E_SImode) != 0 || ! #line 851 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 913; /* mips_cmpgu_le_qb */ case 142: if (pattern50 (x1, E_V2HImode) != 0 || ! #line 874 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 916; /* mips_packrl_ph */ case 149: if (pattern55 (x1, E_DImode) != 0 || ! #line 1014 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 923; /* mips_shilo */ case 156: if (pattern56 (x1, E_V4QImode) != 0 || ! #line 112 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 955; /* mips_adduh_qb */ case 157: if (pattern56 (x1, E_V4QImode) != 0 || ! #line 122 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 956; /* mips_adduh_r_qb */ case 177: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 970; /* mips_precr_qb_ph */ case 181: if (pattern57 (x1, E_V4QImode) != 0 || ! #line 359 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 974; /* mips_shra_qb */ case 182: if (pattern57 (x1, E_V4QImode) != 0 || ! #line 378 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 975; /* mips_shra_r_qb */ case 183: if (pattern57 (x1, E_V2HImode) != 0 || ! #line 396 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 976; /* mips_shrl_ph */ case 186: if (pattern56 (x1, E_V4QImode) != 0 || ! #line 438 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 979; /* mips_subuh_qb */ case 187: if (pattern56 (x1, E_V4QImode) != 0 || ! #line 448 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 980; /* mips_subuh_r_qb */ case 188: if (pattern56 (x1, E_V2HImode) != 0 || ! #line 458 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 981; /* mips_addqh_ph */ case 189: if (pattern56 (x1, E_V2HImode) != 0 || ! #line 468 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 982; /* mips_addqh_r_ph */ case 190: if (pattern56 (x1, E_SImode) != 0 || ! #line 478 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 983; /* mips_addqh_w */ case 191: if (pattern56 (x1, E_SImode) != 0 || ! #line 488 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 984; /* mips_addqh_r_w */ case 192: if (pattern56 (x1, E_V2HImode) != 0 || ! #line 498 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 985; /* mips_subqh_ph */ case 193: if (pattern56 (x1, E_V2HImode) != 0 || ! #line 508 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 986; /* mips_subqh_r_ph */ case 194: if (pattern56 (x1, E_SImode) != 0 || ! #line 518 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 987; /* mips_subqh_w */ case 195: if (pattern56 (x1, E_SImode) != 0 || ! #line 528 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 988; /* mips_subqh_r_w */ case 219: if (pattern50 (x1, E_DImode) != 0 || ! #line 198 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1073; /* loongson_paddd */ case 202: 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 (pattern51 (x2, E_V4HImode) != 0 || ! #line 281 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1097; /* loongson_pavgh */ case E_V8QImode: if (pattern51 (x2, E_V8QImode) != 0 || ! #line 281 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1098; /* loongson_pavgb */ default: return -1; } case 203: switch (pattern58 (x1)) { case 0: if (! #line 291 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1099; /* loongson_pcmpeqw */ case 1: if (! #line 291 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1100; /* loongson_pcmpeqh */ case 2: if (! #line 291 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1101; /* loongson_pcmpeqb */ default: return -1; } case 204: switch (pattern58 (x1)) { case 0: if (! #line 301 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1102; /* loongson_pcmpgtw */ case 1: if (! #line 301 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1103; /* loongson_pcmpgth */ case 2: if (! #line 301 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1104; /* loongson_pcmpgtb */ default: return -1; } case 205: if (pattern53 (x1, E_V4HImode) != 0 || ! #line 311 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1105; /* loongson_pextrh */ case 208: if (pattern54 (x1, E_V4HImode, E_V2SImode) != 0 || ! #line 393 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1111; /* loongson_pmaddhw */ case 210: if (pattern50 (x1, E_V4HImode) != 0 || ! #line 483 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1117; /* umulv4hi3_highpart */ case 211: if (pattern50 (x1, E_V4HImode) != 0 || ! #line 493 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1118; /* smulv4hi3_highpart */ case 212: if (pattern54 (x1, E_V2SImode, E_DImode) != 0 || ! #line 512 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1120; /* loongson_pmuluw */ case 213: if (pattern50 (x1, E_V8QImode) != 0 || ! #line 522 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1121; /* loongson_pasubub */ case 215: if (pattern54 (x1, E_V8QImode, E_V4HImode) != 0 || ! #line 549 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1124; /* loongson_psadbh */ case 216: if (pattern53 (x1, E_V4HImode) != 0 || ! #line 559 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1125; /* loongson_pshufh */ case 220: if (pattern50 (x1, E_DImode) != 0 || ! #line 608 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1135; /* loongson_psubd */ case 221: switch (pattern59 (x1)) { case 0: if (! #line 828 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1152; /* vec_shl_v2si */ case 1: if (! #line 828 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1153; /* vec_shl_v4hi */ case 2: if (! #line 828 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1154; /* vec_shl_v8qi */ case 3: if (! #line 828 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1155; /* vec_shl_di */ default: return -1; } case 222: switch (pattern59 (x1)) { case 0: if (! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1156; /* vec_shr_v2si */ case 1: if (! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1157; /* vec_shr_v4hi */ case 2: if (! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1158; /* vec_shr_v8qi */ case 3: if (! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1159; /* vec_shr_di */ default: return -1; } case 223: switch (pattern60 (x1)) { case 0: if (! #line 1020 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1299; /* msa_asub_s_d */ case 1: if (! #line 1020 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1300; /* msa_asub_s_w */ case 2: if (! #line 1020 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1301; /* msa_asub_s_h */ case 3: if (! #line 1020 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1302; /* msa_asub_s_b */ default: return -1; } case 224: switch (pattern60 (x1)) { case 0: if (! #line 1030 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1303; /* msa_asub_u_d */ case 1: if (! #line 1030 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1304; /* msa_asub_u_w */ case 2: if (! #line 1030 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1305; /* msa_asub_u_h */ case 3: if (! #line 1030 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1306; /* msa_asub_u_b */ default: return -1; } case 225: switch (pattern60 (x1)) { case 0: if (! #line 1040 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1307; /* msa_ave_s_d */ case 1: if (! #line 1040 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1308; /* msa_ave_s_w */ case 2: if (! #line 1040 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1309; /* msa_ave_s_h */ case 3: if (! #line 1040 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1310; /* msa_ave_s_b */ default: return -1; } case 226: switch (pattern60 (x1)) { case 0: if (! #line 1050 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1311; /* msa_ave_u_d */ case 1: if (! #line 1050 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1312; /* msa_ave_u_w */ case 2: if (! #line 1050 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1313; /* msa_ave_u_h */ case 3: if (! #line 1050 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1314; /* msa_ave_u_b */ default: return -1; } case 227: switch (pattern60 (x1)) { case 0: if (! #line 1060 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1315; /* msa_aver_s_d */ case 1: if (! #line 1060 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1316; /* msa_aver_s_w */ case 2: if (! #line 1060 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1317; /* msa_aver_s_h */ case 3: if (! #line 1060 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1318; /* msa_aver_s_b */ default: return -1; } case 228: return recog_37 (x1, insn, pnum_clobbers); case 229: return recog_36 (x1, insn, pnum_clobbers); case 230: return recog_35 (x1, insn, pnum_clobbers); case 235: return recog_34 (x1, insn, pnum_clobbers); case 236: return recog_19 (x1, insn, pnum_clobbers); case 237: return recog_33 (x1, insn, pnum_clobbers); case 238: return recog_31 (x1, insn, pnum_clobbers); case 243: switch (pattern63 (x1)) { case 0: if (! #line 1545 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1415; /* msa_fcaf_d */ case 1: if (! #line 1545 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1416; /* msa_fcaf_w */ default: return -1; } case 245: switch (pattern63 (x1)) { case 0: if (! #line 1555 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1417; /* msa_fcune_d */ case 1: if (! #line 1555 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1418; /* msa_fcune_w */ default: return -1; } case 256: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1437; /* msa_fsaf_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1448; /* msa_fsaf_w */ default: return -1; } case 265: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1438; /* msa_fsun_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1449; /* msa_fsun_w */ default: return -1; } case 261: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1439; /* msa_fsor_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1450; /* msa_fsor_w */ default: return -1; } case 257: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1440; /* msa_fseq_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1451; /* msa_fseq_w */ default: return -1; } case 260: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1441; /* msa_fsne_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1452; /* msa_fsne_w */ default: return -1; } case 262: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1442; /* msa_fsueq_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1453; /* msa_fsueq_w */ default: return -1; } case 266: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1443; /* msa_fsune_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1454; /* msa_fsune_w */ default: return -1; } case 263: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1444; /* msa_fsule_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1455; /* msa_fsule_w */ default: return -1; } case 264: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1445; /* msa_fsult_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1456; /* msa_fsult_w */ default: return -1; } case 258: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1446; /* msa_fsle_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1457; /* msa_fsle_w */ default: return -1; } case 259: switch (pattern63 (x1)) { case 0: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1447; /* msa_fslt_d */ case 1: if (! #line 1605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1458; /* msa_fslt_w */ default: return -1; } case 247: return recog_30 (x1, insn, pnum_clobbers); case 269: return recog_32 (x1, insn, pnum_clobbers); case 274: switch (pattern64 (x1)) { case 0: if (! #line 2306 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1565; /* msa_mul_q_w */ case 1: if (! #line 2306 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1566; /* msa_mul_q_h */ default: return -1; } case 275: switch (pattern64 (x1)) { case 0: if (! #line 2316 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1567; /* msa_mulr_q_w */ case 1: if (! #line 2316 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1568; /* msa_mulr_q_h */ default: return -1; } case 277: return recog_29 (x1, insn, pnum_clobbers); case 278: return recog_28 (x1, insn, pnum_clobbers); case 283: return recog_27 (x1, insn, pnum_clobbers); case 284: return recog_26 (x1, insn, pnum_clobbers); case 285: return recog_25 (x1, insn, pnum_clobbers); case 286: return recog_24 (x1, insn, pnum_clobbers); case 287: return recog_23 (x1, insn, pnum_clobbers); case 288: return recog_22 (x1, insn, pnum_clobbers); case 289: return recog_21 (x1, insn, pnum_clobbers); case 290: return recog_20 (x1, insn, pnum_clobbers); case 281: return recog_9 (x1, insn, pnum_clobbers); case 246: if (pattern54 (x1, E_V4SFmode, E_V8HImode) != 0 || ! #line 2672 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1665; /* 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 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 291; /* *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 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 292; /* *unshifted_high */ default: return -1; } case 14: switch (pattern41 (x1)) { case 0: switch (GET_MODE (operands[1])) { case E_DImode: if (!hilo_operand (operands[1], E_DImode) || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT)) return -1; return 377; /* mfhisi_di */ case E_TImode: if (!hilo_operand (operands[1], E_TImode) || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 378; /* mfhisi_ti */ default: return -1; } case 1: if (!hilo_operand (operands[1], E_TImode) || ! #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 379; /* 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 (pattern41 (x1)) { case 0: if (!( #line 5482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 420; /* loadgp_absolute_si */ case 1: if (!( #line 5482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 421; /* loadgp_absolute_di */ default: return -1; } case 18: switch (pattern43 (x1)) { case 0: if (!( #line 5529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 425; /* copygp_mips16_si */ case 1: if (!( #line 5529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 426; /* 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 5656 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CACHE)) return -1; return 440; /* 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 5904 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH)) return -1; return 464; /* 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 5911 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH)) return -1; return 465; /* 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 5918 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH)) return -1; return 466; /* dshd */ case 19: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; switch (pattern109 (x2)) { case 0: return 646; /* move_gpsi */ case 1: if (! #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 647; /* 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 6904 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT)) return -1; return 651; /* 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 7649 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 2; return 713; /* mips_get_fcsr_mips16_si */ } if (!call_insn_operand (operands[0], E_DImode) || !( #line 7649 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 714; /* mips_get_fcsr_mips16_di */ case 66: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_SYNC)) return -1; return 724; /* *memory_barrier */ case 75: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 803; /* mips_cvt_pw_ps */ 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 388 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 804; /* mips_cvt_ps_pw */ case 78: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 806; /* *mips_abs_ps */ case 84: return recog_3 (x1, insn, pnum_clobbers); case 79: switch (pattern44 (x1)) { case 0: if (!( #line 668 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 833; /* mips_rsqrt1_s */ case 1: if (!( #line 668 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 834; /* mips_rsqrt1_d */ case 2: if (!( #line 668 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 835; /* mips_rsqrt1_ps */ default: return -1; } case 81: switch (pattern44 (x1)) { case 0: if (!( #line 687 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 839; /* mips_recip1_s */ case 1: if (!( #line 687 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 840; /* mips_recip1_d */ case 2: if (!( #line 687 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 841; /* mips_recip1_ps */ default: return -1; } case 92: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 858; /* mips_raddu_w_qb */ case 98: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 865; /* mips_preceq_w_phl */ 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 297 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 866; /* mips_preceq_w_phr */ case 100: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 867; /* mips_precequ_ph_qbl */ 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 316 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 868; /* mips_precequ_ph_qbr */ 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 325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 869; /* mips_precequ_ph_qbla */ 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 334 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 870; /* mips_precequ_ph_qbra */ 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 344 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 871; /* mips_preceu_ph_qbl */ 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 353 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 872; /* mips_preceu_ph_qbr */ 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 362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 873; /* mips_preceu_ph_qbla */ 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 371 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 874; /* mips_preceu_ph_qbra */ case 131: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 901; /* mips_bitrev */ case 133: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 903; /* mips_repl_qb */ case 134: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 904; /* mips_repl_ph */ case 207: return recog_8 (x1, insn, pnum_clobbers); case 209: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1116; /* loongson_pmovmskb */ case 214: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1122; /* loongson_biadd */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x2) != E_V8QImode || ! #line 539 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1123; /* reduc_uplus_v8qi */ default: return -1; } case 244: switch (pattern45 (x1)) { case 0: if (! #line 1535 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1413; /* msa_fclass_d */ case 1: if (! #line 1535 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1414; /* msa_fclass_w */ default: return -1; } case 250: switch (pattern46 (x1, E_V4SImode, E_V8HImode)) { case 0: if (! #line 1663 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1465; /* msa_ffql_d */ case 1: if (! #line 1663 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1466; /* msa_ffql_w */ default: return -1; } case 251: switch (pattern46 (x1, E_V4SImode, E_V8HImode)) { case 0: if (! #line 1673 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1467; /* msa_ffqr_d */ case 1: if (! #line 1673 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1468; /* msa_ffqr_w */ default: return -1; } case 252: switch (pattern47 (x1)) { case 0: if (! #line 1711 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1475; /* msa_flog2_d */ case 1: if (! #line 1711 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1476; /* msa_flog2_w */ default: return -1; } case 253: switch (pattern47 (x1)) { case 0: if (! #line 1762 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1485; /* msa_frcp_d */ case 1: if (! #line 1762 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1486; /* msa_frcp_w */ default: return -1; } case 254: switch (pattern47 (x1)) { case 0: if (! #line 1771 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1487; /* msa_frint_d */ case 1: if (! #line 1771 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1488; /* msa_frint_w */ default: return -1; } case 255: switch (pattern47 (x1)) { case 0: if (! #line 1780 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1489; /* msa_frsqrt_d */ case 1: if (! #line 1780 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1490; /* msa_frsqrt_w */ default: return -1; } case 267: switch (pattern45 (x1)) { case 0: if (! #line 1789 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1491; /* msa_ftint_s_d */ case 1: if (! #line 1789 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1492; /* msa_ftint_s_w */ default: return -1; } case 268: switch (pattern45 (x1)) { case 0: if (! #line 1799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1493; /* msa_ftint_u_d */ case 1: if (! #line 1799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1494; /* msa_ftint_u_w */ default: return -1; } case 276: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; switch (pattern110 (x2)) { case 0: if (! #line 2325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1569; /* msa_nloc_d */ case 1: if (! #line 2325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1570; /* msa_nloc_w */ case 2: if (! #line 2325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1571; /* msa_nloc_h */ case 3: if (! #line 2325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1572; /* msa_nloc_b */ default: return -1; } case 282: switch (pattern46 (x1, E_DFmode, E_SFmode)) { case 0: if (! #line 2644 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1661; /* msa_splati_d_f_scalar */ case 1: if (! #line 2644 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1662; /* msa_splati_w_f_scalar */ default: return -1; } case 248: 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 2691 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1667; /* msa_fexupl_w */ 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 2711 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1669; /* 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 4490 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS)) return 289; /* *lea_high64 */ if (got_disp_operand (operands[1], E_DImode) && ( #line 4588 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 294; /* *xgot_hidi */ if (!got_page_ofst_operand (operands[1], E_DImode) || !( #line 4631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 300; /* *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 4588 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 293; /* *xgot_hisi */ if (!got_page_ofst_operand (operands[1], E_SImode) || !( #line 4631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 299; /* *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 4544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS && cse_not_expected)) { *pnum_clobbers = 1; return 290; /* *lea64 */ } if (got_disp_operand (operands[1], E_DImode) && ( #line 4618 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 298; /* *got_dispdi */ } break; case E_SImode: if (register_operand (operands[0], E_SImode) && got_disp_operand (operands[1], E_SImode) && ( #line 4618 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 297; /* *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 6313 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_ABSOLUTE_JUMPS)) return 617; /* *jump_absolute */ if ( #line 6336 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !TARGET_ABSOLUTE_JUMPS)) return 618; /* *jump_pic */ if (! #line 6363 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 619; /* *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 4380 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[0], INTVAL (operands[1]), INTVAL (operands[2])))) return -1; return 277; /* *insvsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !reg_or_0_operand (operands[3], E_DImode) || !( #line 4380 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[0], INTVAL (operands[1]), INTVAL (operands[2]))) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 278; /* *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 (pattern200 (x3, E_SFmode)) { case 0: if (!( #line 4948 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 337; /* *swxc1_si */ case 1: if (!( #line 4948 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 340; /* *swxc1_di */ default: return -1; } case E_DFmode: switch (pattern200 (x3, E_DFmode)) { case 0: if (!( #line 4948 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 338; /* *sdxc1_si */ case 1: if (!( #line 4948 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 341; /* *sdxc1_di */ default: return -1; } case E_V2SFmode: switch (pattern200 (x3, E_V2SFmode)) { case 0: if (!( #line 4948 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)))) return -1; return 339; /* *sdxc1_si */ case 1: if (!( #line 4948 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && (((( #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)))) return -1; return 342; /* *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 (pattern153 (x2, E_SFmode)) { case 0: if (!( #line 4939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 331; /* *lwxc1_si */ case 1: if (!( #line 4939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 334; /* *lwxc1_di */ default: return -1; } case E_DFmode: switch (pattern153 (x2, E_DFmode)) { case 0: if (!( #line 4939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 332; /* *ldxc1_si */ case 1: if (!( #line 4939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 335; /* *ldxc1_di */ default: return -1; } case E_V2SFmode: switch (pattern153 (x2, E_V2SFmode)) { case 0: if (!( #line 4939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 333; /* *ldxc1_si */ case 1: if (!( #line 4939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LXC1_SXC1) && ((( #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 336; /* *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 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return 620; /* indirect_jump_si */ break; case E_DImode: if (register_operand (operands[0], E_DImode) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return 621; /* 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 4737 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return 307; /* *movsi_ra */ break; case E_DImode: if (stack_operand (operands[0], E_DImode) && GET_MODE (x2) == E_DImode && ( #line 4737 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 308; /* *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 5122 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF)) return -1; return 365; /* 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 (pattern201 (x3, E_SImode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 343; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 344; /* *lwxs */ default: return -1; } case E_V2HImode: switch (pattern201 (x3, E_V2HImode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 832 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 345; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 832 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 346; /* *lwxs */ default: return -1; } case E_V4QImode: switch (pattern201 (x3, E_V4QImode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 833 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 347; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 833 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 348; /* *lwxs */ default: return -1; } case E_V2HQmode: switch (pattern201 (x3, E_V2HQmode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 834 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 349; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 834 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 350; /* *lwxs */ default: return -1; } case E_V2UHQmode: switch (pattern201 (x3, E_V2UHQmode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 835 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 351; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 835 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 352; /* *lwxs */ default: return -1; } case E_V2HAmode: switch (pattern201 (x3, E_V2HAmode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 836 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 353; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 836 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 354; /* *lwxs */ default: return -1; } case E_V2UHAmode: switch (pattern201 (x3, E_V2UHAmode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 355; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 356; /* *lwxs */ default: return -1; } case E_V4QQmode: switch (pattern201 (x3, E_V4QQmode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 838 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 357; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 838 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 358; /* *lwxs */ default: return -1; } case E_V4UQQmode: switch (pattern201 (x3, E_V4UQQmode)) { case 0: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 839 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 359; /* *lwxs */ case 1: if (!( #line 4963 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LWXS) && (((( #line 839 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 360; /* *lwxs */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[1] = x6; switch (pattern153 (x3, E_DImode)) { case 0: if (!( #line 1131 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LDX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 944; /* mips_ldx_si */ case 1: if (!( #line 1131 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LDX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 946; /* 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 5939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF))) return -1; return 467; /* *branch_fp_cc */ case E_CCFmode: if (!register_operand (operands[2], E_CCFmode) || !( #line 5939 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 468; /* *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 5955 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF))) return -1; return 469; /* *branch_fp_inverted_cc */ case E_CCFmode: if (!register_operand (operands[2], E_CCFmode) || !( #line 5955 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF))) return -1; return 470; /* *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 (pattern222 (x2, E_SImode)) { case 0: if (! #line 7320 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE)) return -1; return 671; /* *movsi_on_si */ case 1: if (!( #line 7320 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 819 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 673; /* *movsi_on_di */ case 2: if (!( #line 7320 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 820 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900))) return -1; return 675; /* *movsi_on_cc */ default: return -1; } case E_DImode: switch (pattern222 (x2, E_DImode)) { case 0: if (!( #line 7320 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 672; /* *movdi_on_si */ case 1: if (!( #line 7320 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 674; /* *movdi_on_di */ case 2: if (!( #line 7320 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 820 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)))) return -1; return 676; /* *movdi_on_cc */ default: return -1; } case E_SFmode: switch (pattern223 (x2, E_SFmode)) { case 0: if (!( #line 7348 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 681; /* *movsf_on_si */ case 1: if (!( #line 7348 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 819 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 683; /* *movsf_on_di */ case 2: if (!( #line 7348 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT) && #line 820 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)))) return -1; return 685; /* *movsf_on_cc */ default: return -1; } case E_DFmode: switch (pattern223 (x2, E_DFmode)) { case 0: if (!( #line 7348 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 682; /* *movdf_on_si */ case 1: if (!( #line 7348 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 819 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 684; /* *movdf_on_di */ case 2: if (!( #line 7348 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_CONDMOVE) && ((( #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 820 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !TARGET_LOONGSON_2EF && !TARGET_MIPS5900)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)))) return -1; return 686; /* *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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 795; /* *movcc_v2sf_si */ case E_DImode: if (!equality_operator (operands[4], E_DImode) || !register_operand (operands[1], E_DImode) || !( #line 52 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 796; /* *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 (pattern155 (x2)) { case 0: if ( #line 6003 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 475; /* *branch_equalitysi */ break; case 1: if (( #line 6003 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 476; /* *branch_equalitydi */ break; case 2: if ( #line 6017 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 477; /* *branch_equalitysi_inverted */ break; case 3: if (( #line 6017 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 478; /* *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 6033 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 479; /* *branch_equalitysi_mips16 */ case E_DImode: if (!register_operand (operands[2], E_DImode) || !( #line 6033 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 480; /* *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 6047 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 481; /* *branch_equalitysi_mips16_inverted */ case E_DImode: if (!register_operand (operands[2], E_DImode) || !( #line 6047 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 482; /* *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) != 83 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT)) return -1; return 831; /* *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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT)) return -1; return 832; /* *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 (pattern155 (x3)) { case 0: if (! #line 5973 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 471; /* *branch_ordersi */ case 1: if (!( #line 5973 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 472; /* *branch_orderdi */ case 2: if (! #line 5987 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 473; /* *branch_ordersi_inverted */ case 3: if (!( #line 5987 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 474; /* *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 (pattern157 (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 || pattern209 (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 1915 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1513; /* 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 2119 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1527; /* 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 2363 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1581; /* 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 1975 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1517; /* 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 2059 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1523; /* msa_ilvod_b */ case 3L: if (pattern257 (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 2423 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1585; /* 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) && pattern209 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return 798; /* 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 (pattern209 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 678 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1143; /* loongson_punpckhwd */ case E_V2DImode: if (pattern209 (x2, E_V2DImode, E_V4DImode) != 0 || ! #line 2028 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1521; /* msa_ilvl_d */ case E_V2DFmode: if (pattern209 (x2, E_V2DFmode, E_V4DFmode) != 0 || ! #line 2040 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1522; /* 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 (pattern209 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 756 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1149; /* loongson_punpcklwd */ case E_V2DImode: if (pattern209 (x2, E_V2DImode, E_V4DImode) != 0 || ! #line 2172 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1531; /* msa_ilvr_d */ case E_V2DFmode: if (pattern209 (x2, E_V2DFmode, E_V4DFmode) != 0 || ! #line 2184 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1532; /* 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 || pattern209 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 324 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1106; /* loongson_pinsrh_0 */ case 0L: switch (XWINT (x8, 0)) { case 4L: switch (XWINT (x9, 0)) { case 2L: switch (XWINT (x10, 0)) { case 3L: if (pattern209 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 336 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1107; /* loongson_pinsrh_1 */ case 6L: switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern209 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 1943 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1515; /* msa_ilvev_w */ case E_V4SFmode: if (pattern209 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 1956 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1516; /* 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 (pattern209 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 731 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1147; /* loongson_punpcklhw */ case E_V4SImode: if (pattern209 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2147 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1529; /* msa_ilvr_w */ case E_V4SFmode: if (pattern209 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2160 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1530; /* msa_ilvr_w_f */ default: return -1; } default: return -1; } case 1L: if (pattern209 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1108; /* loongson_pinsrh_2 */ case 5L: if (! #line 782 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1151; /* *loongson_punpcklwd_hi */ default: return -1; } case 2L: if (XWINT (x10, 0) != 4L || ! #line 360 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1109; /* 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 (pattern209 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2391 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1583; /* msa_pckev_w */ case E_V4SFmode: if (pattern209 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2404 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1584; /* 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 (pattern209 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 653 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1141; /* loongson_punpckhhw */ case E_V4SImode: if (pattern209 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2003 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1519; /* msa_ilvl_w */ case E_V4SFmode: if (pattern209 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2016 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1520; /* msa_ilvl_w_f */ default: return -1; } case 3L: if (XWINT (x9, 0) != 6L || pattern209 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 704 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1145; /* 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 (pattern209 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2087 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1525; /* msa_ilvod_w */ case E_V4SFmode: if (pattern209 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2100 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1526; /* 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 (pattern209 (x2, E_V4SImode, E_V8SImode) != 0 || ! #line 2451 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1587; /* msa_pckod_w */ case E_V4SFmode: if (pattern209 (x2, E_V4SFmode, E_V8SFmode) != 0 || ! #line 2464 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1588; /* msa_pckod_w_f */ default: return -1; } default: return -1; } default: return -1; } case 8: if (pattern157 (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 (pattern209 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 641 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1140; /* loongson_punpckhbh */ case E_V8HImode: if (pattern209 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 1990 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1518; /* msa_ilvl_h */ default: return -1; } case 5L: x14 = XVECEXP (x6, 0, 6); if (XWINT (x14, 0) != 14L || pattern209 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1142; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1144; /* 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 (pattern209 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 719 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1146; /* loongson_punpcklbh */ case E_V8HImode: if (pattern209 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 2134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1528; /* 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 || pattern209 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 1930 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1514; /* 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 || pattern209 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1148; /* *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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1150; /* *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 || pattern209 (x2, E_V8HImode, E_V16HImode) != 0 || ! #line 2378 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1582; /* msa_pckev_h */ default: return -1; } case 1L: x11 = XVECEXP (x6, 0, 7); if (XWINT (x11, 0) != 15L || pattern209 (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 2074 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1524; /* msa_ilvod_h */ case 3L: if (pattern257 (x6) != 0 || ! #line 2438 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1586; /* 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 4436 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[1]))) return -1; return 283; /* mov_lwr */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !register_operand (operands[3], E_DImode) || !( #line 4436 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[1])) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 284; /* 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 4457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (SImode, operands[0]))) return 287; /* mov_swr */ if (!reg_or_0_operand (operands[1], E_DImode) || !( #line 4457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && mips_mem_fits_mode_p (DImode, operands[0])) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 288; /* 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 (pattern49 (x1)) { case 0: if (!( #line 6889 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 648; /* load_callsi */ case 1: if (!( #line 6889 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 649; /* load_calldi */ default: return -1; } case 70: if (pattern65 (x1, E_CCV2mode) != 0 || ! #line 65 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 797; /* mips_cond_move_tf_ps */ case 72: if (pattern65 (x1, E_SImode) != 0 || ! #line 345 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 801; /* mips_alnv_ps */ case 73: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 807; /* mips_cabs_cond_s */ case E_DFmode: if (!register_operand (operands[1], E_DFmode) || !register_operand (operands[2], E_DFmode) || !( #line 439 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 808; /* mips_cabs_cond_d */ default: return -1; } case E_CCV2mode: if (pattern62 (x2, E_V2SFmode, E_CCV2mode) != 0 || ! #line 529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 812; /* mips_cabs_cond_ps */ default: return -1; } case 71: if (pattern54 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 811; /* mips_c_cond_ps */ case 118: if (pattern66 (x1) != 0 || ! #line 553 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 888; /* mips_dpau_h_qbl */ case 119: if (pattern66 (x1) != 0 || ! #line 565 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 889; /* mips_dpau_h_qbr */ case 120: if (pattern66 (x1) != 0 || ! #line 578 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 890; /* mips_dpsu_h_qbl */ case 121: if (pattern66 (x1) != 0 || ! #line 590 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 891; /* mips_dpsu_h_qbr */ case 135: switch (pattern67 (x1)) { case 0: if (! #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 905; /* mips_cmp_eq_ph */ case 1: if (! #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 906; /* mips_cmpu_eq_qb */ default: return -1; } case 136: switch (pattern67 (x1)) { case 0: if (! #line 810 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 907; /* mips_cmp_lt_ph */ case 1: if (! #line 810 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 908; /* mips_cmpu_lt_qb */ default: return -1; } case 137: switch (pattern67 (x1)) { case 0: if (! #line 821 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 909; /* mips_cmp_le_ph */ case 1: if (! #line 821 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 910; /* mips_cmpu_le_qb */ default: return -1; } case 141: 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 (pattern51 (x2, E_V2HImode) != 0 || ! #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 914; /* mips_pick_ph */ case E_V4QImode: if (pattern51 (x2, E_V4QImode) != 0 || ! #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 915; /* mips_pick_qb */ default: return -1; } case 158: if (pattern68 (x1, E_SImode) != 0 || ! #line 133 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 957; /* mips_append */ case 159: if (pattern68 (x1, E_SImode) != 0 || ! #line 148 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 958; /* mips_balign */ case 163: if (pattern69 (x1) != 0 || ! #line 205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 962; /* mips_dpa_w_ph */ case 164: if (pattern69 (x1) != 0 || ! #line 217 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 963; /* mips_dps_w_ph */ case 174: if (pattern69 (x1) != 0 || ! #line 293 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 969; /* mips_mulsa_w_ph */ case 178: if (pattern68 (x1, E_V2HImode) != 0 || ! #line 315 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 971; /* mips_precr_sra_ph_w */ case 179: if (pattern68 (x1, E_V2HImode) != 0 || ! #line 330 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 972; /* mips_precr_sra_r_ph_w */ case 180: if (pattern68 (x1, E_SImode) != 0 || ! #line 345 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 973; /* mips_prepend */ case 196: if (pattern69 (x1) != 0 || ! #line 539 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 989; /* mips_dpax_w_ph */ case 197: if (pattern69 (x1) != 0 || ! #line 551 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 990; /* mips_dpsx_w_ph */ case 206: if (pattern53 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1110; /* *vec_setv4hi */ case 291: 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 (pattern171 (x2, E_V2DImode, E_V2DFmode) != 0 || ! #line 629 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1193; /* vec_permv2df */ case E_V4SFmode: if (pattern171 (x2, E_V4SImode, E_V4SFmode) != 0 || ! #line 629 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1194; /* vec_permv4sf */ case E_V2DImode: if (pattern70 (x2, E_V2DImode) != 0 || ! #line 629 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1195; /* vec_permv2di */ case E_V4SImode: if (pattern70 (x2, E_V4SImode) != 0 || ! #line 629 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1196; /* vec_permv4si */ case E_V8HImode: if (pattern70 (x2, E_V8HImode) != 0 || ! #line 629 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1197; /* vec_permv8hi */ case E_V16QImode: if (pattern70 (x2, E_V16QImode) != 0 || ! #line 629 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1198; /* vec_permv16qi */ default: return -1; } case 231: switch (pattern71 (x1)) { case 0: if (! #line 1101 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1331; /* msa_binsl_d */ case 1: if (! #line 1101 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1332; /* msa_binsl_w */ case 2: if (! #line 1101 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1333; /* msa_binsl_h */ case 3: if (! #line 1101 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1334; /* msa_binsl_b */ default: return -1; } case 232: switch (pattern74 (x1)) { case 0: if (! #line 1112 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1335; /* msa_binsli_d */ case 1: if (! #line 1112 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1336; /* msa_binsli_w */ case 2: if (! #line 1112 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1337; /* msa_binsli_h */ case 3: if (! #line 1112 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1338; /* msa_binsli_b */ default: return -1; } case 233: switch (pattern71 (x1)) { case 0: if (! #line 1123 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1339; /* msa_binsr_d */ case 1: if (! #line 1123 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1340; /* msa_binsr_w */ case 2: if (! #line 1123 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1341; /* msa_binsr_h */ case 3: if (! #line 1123 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1342; /* msa_binsr_b */ default: return -1; } case 234: switch (pattern74 (x1)) { case 0: if (! #line 1134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1343; /* msa_binsri_d */ case 1: if (! #line 1134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1344; /* msa_binsri_w */ case 2: if (! #line 1134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1345; /* msa_binsri_h */ case 3: if (! #line 1134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1346; /* msa_binsri_b */ default: return -1; } case 270: switch (pattern75 (x1)) { case 0: if (! #line 2195 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1533; /* msa_madd_q_w */ case 1: if (! #line 2195 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1534; /* msa_madd_q_h */ default: return -1; } case 271: switch (pattern75 (x1)) { case 0: if (! #line 2206 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1535; /* msa_maddr_q_w */ case 1: if (! #line 2206 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1536; /* msa_maddr_q_h */ default: return -1; } case 272: switch (pattern75 (x1)) { case 0: if (! #line 2285 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1561; /* msa_msub_q_w */ case 1: if (! #line 2285 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1562; /* msa_msub_q_h */ default: return -1; } case 273: switch (pattern75 (x1)) { case 0: if (! #line 2296 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1563; /* msa_msubr_q_w */ case 1: if (! #line 2296 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1564; /* msa_msubr_q_h */ default: return -1; } case 279: 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 (pattern51 (x2, E_V2DFmode) != 0 || ! #line 2603 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1637; /* msa_sld_d_f */ case E_V4SFmode: if (pattern51 (x2, E_V4SFmode) != 0 || ! #line 2603 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1638; /* msa_sld_w_f */ case E_V2DImode: if (pattern51 (x2, E_V2DImode) != 0 || ! #line 2603 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1639; /* msa_sld_d */ case E_V4SImode: if (pattern51 (x2, E_V4SImode) != 0 || ! #line 2603 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1640; /* msa_sld_w */ case E_V8HImode: if (pattern51 (x2, E_V8HImode) != 0 || ! #line 2603 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1641; /* msa_sld_h */ case E_V16QImode: if (pattern51 (x2, E_V16QImode) != 0 || ! #line 2603 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1642; /* msa_sld_b */ 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; switch (GET_MODE (operands[0])) { case E_V2DFmode: if (pattern172 (x2, E_V2DFmode) != 0 || ! #line 2614 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1643; /* msa_sldi_d_f */ case E_V4SFmode: if (pattern173 (x2, E_V4SFmode) != 0 || ! #line 2614 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1644; /* msa_sldi_w_f */ case E_V2DImode: if (pattern172 (x2, E_V2DImode) != 0 || ! #line 2614 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1645; /* msa_sldi_d */ case E_V4SImode: if (pattern173 (x2, E_V4SImode) != 0 || ! #line 2614 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1646; /* msa_sldi_w */ case E_V8HImode: if (pattern73 (x2, E_V8HImode) != 0 || ! #line 2614 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1647; /* msa_sldi_h */ case E_V16QImode: if (pattern72 (x2, E_V16QImode) != 0 || ! #line 2614 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1648; /* msa_sldi_b */ default: return -1; } default: return -1; } case 5: x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern76 (x2)) { case 0: if (! #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 809; /* mips_c_cond_4s */ case 1: if (! #line 486 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 810; /* mips_cabs_cond_4s */ default: return -1; } case 4: if (XINT (x2, 1) != 132 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 902; /* mips_insv */ case 7: if (XINT (x2, 1) != 152 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 926; /* 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 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 12; /* addv2sf3 */ case E_SImode: if (pattern20 (x3, E_SImode) != 0) return -1; if ( #line 1271 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 13; /* *addsi3 */ if (! #line 1287 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 15; /* *addsi3_mips16 */ case E_DImode: if (pattern20 (x3, E_DImode) != 0) return -1; if (( #line 1271 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 14; /* *adddi3 */ if (!( #line 1287 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 995; /* addqq3 */ case E_HQmode: if (pattern0 (x3, E_HQmode) != 0) return -1; return 996; /* addhq3 */ case E_SQmode: if (pattern0 (x3, E_SQmode) != 0) return -1; return 997; /* addsq3 */ case E_DQmode: if (pattern0 (x3, E_DQmode) != 0 || ! #line 22 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 998; /* adddq3 */ case E_UQQmode: if (pattern0 (x3, E_UQQmode) != 0) return -1; return 999; /* adduqq3 */ case E_UHQmode: if (pattern0 (x3, E_UHQmode) != 0) return -1; return 1000; /* adduhq3 */ case E_USQmode: if (pattern0 (x3, E_USQmode) != 0) return -1; return 1001; /* addusq3 */ case E_UDQmode: if (pattern0 (x3, E_UDQmode) != 0 || ! #line 23 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1002; /* addudq3 */ case E_HAmode: if (pattern0 (x3, E_HAmode) != 0) return -1; return 1003; /* addha3 */ case E_SAmode: if (pattern0 (x3, E_SAmode) != 0) return -1; return 1004; /* addsa3 */ case E_DAmode: if (pattern0 (x3, E_DAmode) != 0 || ! #line 24 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1005; /* addda3 */ case E_UHAmode: if (pattern0 (x3, E_UHAmode) != 0) return -1; return 1006; /* adduha3 */ case E_USAmode: if (pattern0 (x3, E_USAmode) != 0) return -1; return 1007; /* addusa3 */ case E_UDAmode: if (pattern0 (x3, E_UDAmode) != 0 || ! #line 25 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1008; /* adduda3 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1070; /* addv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1071; /* addv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1072; /* addv8qi3 */ case E_V2DImode: if (pattern131 (x3, E_V2DImode) != 0 || ! #line 705 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1205; /* addv2di3 */ case E_V4SImode: if (pattern131 (x3, E_V4SImode) != 0 || ! #line 705 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1206; /* addv4si3 */ case E_V8HImode: if (pattern131 (x3, E_V8HImode) != 0 || ! #line 705 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1207; /* addv8hi3 */ case E_V16QImode: if (pattern131 (x3, E_V16QImode) != 0 || ! #line 705 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1208; /* addv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 917 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1269; /* addv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 917 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1270; /* 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 1761 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB && !TARGET_MIPS16)) { *pnum_clobbers = 2; return 42; /* *mul_acc_si */ } if ( #line 1790 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS3900 && !TARGET_MIPS16)) { *pnum_clobbers = 2; return 43; /* *mul_acc_si_r3900 */ } if ( #line 1833 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2532 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MAD)) return -1; return 81; /* madsi */ case E_SFmode: if (pattern139 (x3, E_SFmode) != 0 || !( #line 2718 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 111; /* *madd4sf */ case E_DFmode: if (pattern139 (x3, E_DFmode) != 0 || !( #line 2718 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 112; /* *madd4df */ case E_V2SFmode: if (pattern139 (x3, E_V2SFmode) != 0 || !( #line 2718 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 113; /* *madd4v2sf */ case E_V2DImode: if (pattern139 (x3, E_V2DImode) != 0 || ! #line 755 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1217; /* msa_maddv_d */ case E_V4SImode: if (pattern139 (x3, E_V4SImode) != 0 || ! #line 755 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1218; /* msa_maddv_w */ case E_V8HImode: if (pattern139 (x3, E_V8HImode) != 0 || ! #line 755 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1219; /* msa_maddv_h */ case E_V16QImode: if (pattern139 (x3, E_V16QImode) != 0 || ! #line 755 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1220; /* msa_maddv_b */ default: return -1; } case SIGN_EXTEND: switch (pattern96 (x3, SIGN_EXTEND)) { case 0: if (! #line 2546 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1274 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1395; /* msa_dotp_s_d */ case 2: if (! #line 1302 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1397; /* msa_dotp_s_w */ case 3: if (! #line 1338 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1399; /* msa_dotp_s_h */ default: return -1; } case ZERO_EXTEND: switch (pattern96 (x3, ZERO_EXTEND)) { case 0: if (! #line 2546 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1274 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1396; /* msa_dotp_u_d */ case 2: if (! #line 1302 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1398; /* msa_dotp_u_w */ case 3: if (! #line 1338 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1400; /* 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 (pattern164 (x3, E_SImode) != 0 || ! #line 5768 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_LSA)) return -1; return 453; /* lsa */ case E_DImode: if (pattern164 (x3, E_DImode) != 0 || !( #line 5768 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DLSA) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 454; /* dlsa */ default: return -1; } case ABS: switch (pattern30 (x3)) { case 0: if (! #line 982 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1283; /* msa_add_a_d */ case 1: if (! #line 982 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1284; /* msa_add_a_w */ case 2: if (! #line 982 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1285; /* msa_add_a_h */ case 3: if (! #line 982 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1286; /* 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 (pattern141 (x3, SIGN_EXTEND)) { case 0: if (! #line 1364 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1401; /* msa_dpadd_s_d */ case 1: if (! #line 1394 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1403; /* msa_dpadd_s_w */ case 2: if (! #line 1432 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1405; /* msa_dpadd_s_h */ default: return -1; } case ZERO_EXTEND: switch (pattern141 (x3, ZERO_EXTEND)) { case 0: if (! #line 1364 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1402; /* msa_dpadd_u_d */ case 1: if (! #line 1394 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1404; /* msa_dpadd_u_w */ case 2: if (! #line 1432 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1406; /* msa_dpadd_u_h */ default: return -1; } default: return -1; } case SIGN_EXTEND: switch (pattern32 (x3, SIGN_EXTEND)) { case 0: if (! #line 1862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1501; /* msa_hadd_s_h */ case 1: if (! #line 1880 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1505; /* msa_hadd_s_w */ case 2: if (! #line 1896 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1509; /* msa_hadd_s_d */ default: return -1; } case ZERO_EXTEND: switch (pattern32 (x3, ZERO_EXTEND)) { case 0: if (! #line 1862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1502; /* msa_hadd_u_h */ case 1: if (! #line 1880 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1506; /* msa_hadd_u_w */ case 2: if (! #line 1896 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1510; /* 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 4745 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], DImode) || reg_or_0_operand (operands[1], DImode)))) return 309; /* *movdi_32bit */ if ( #line 4758 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], DImode) || register_operand (operands[1], DImode)))) return 310; /* *movdi_32bit_mips16 */ if ( #line 4768 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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_64bit */ if ( #line 4778 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], DImode) || register_operand (operands[1], DImode)))) return 312; /* *movdi_64bit_mips16 */ } break; case E_SImode: if (nonimmediate_operand (operands[0], E_SImode) && move_operand (operands[1], E_SImode)) { if ( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], SImode) || reg_or_0_operand (operands[1], SImode)))) return 313; /* *movsi_internal */ if ( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], SImode) || register_operand (operands[1], SImode)))) return 322; /* *movsi_mips16 */ } break; case E_V2HImode: if (nonimmediate_operand (operands[0], E_V2HImode) && move_operand (operands[1], E_V2HImode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2HImode) || reg_or_0_operand (operands[1], V2HImode))) && #line 832 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 314; /* *movv2hi_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2HImode) || register_operand (operands[1], V2HImode))) && #line 832 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 323; /* *movv2hi_mips16 */ } break; case E_V4QImode: if (nonimmediate_operand (operands[0], E_V4QImode) && move_operand (operands[1], E_V4QImode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V4QImode) || reg_or_0_operand (operands[1], V4QImode))) && #line 833 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 315; /* *movv4qi_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V4QImode) || register_operand (operands[1], V4QImode))) && #line 833 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 324; /* *movv4qi_mips16 */ } break; case E_V2HQmode: if (nonimmediate_operand (operands[0], E_V2HQmode) && move_operand (operands[1], E_V2HQmode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2HQmode) || reg_or_0_operand (operands[1], V2HQmode))) && #line 834 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 316; /* *movv2hq_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2HQmode) || register_operand (operands[1], V2HQmode))) && #line 834 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 325; /* *movv2hq_mips16 */ } break; case E_V2UHQmode: if (nonimmediate_operand (operands[0], E_V2UHQmode) && move_operand (operands[1], E_V2UHQmode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2UHQmode) || reg_or_0_operand (operands[1], V2UHQmode))) && #line 835 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 317; /* *movv2uhq_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2UHQmode) || register_operand (operands[1], V2UHQmode))) && #line 835 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 326; /* *movv2uhq_mips16 */ } break; case E_V2HAmode: if (nonimmediate_operand (operands[0], E_V2HAmode) && move_operand (operands[1], E_V2HAmode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2HAmode) || reg_or_0_operand (operands[1], V2HAmode))) && #line 836 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 318; /* *movv2ha_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2HAmode) || register_operand (operands[1], V2HAmode))) && #line 836 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 327; /* *movv2ha_mips16 */ } break; case E_V2UHAmode: if (nonimmediate_operand (operands[0], E_V2UHAmode) && move_operand (operands[1], E_V2UHAmode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V2UHAmode) || reg_or_0_operand (operands[1], V2UHAmode))) && #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 319; /* *movv2uha_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V2UHAmode) || register_operand (operands[1], V2UHAmode))) && #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 328; /* *movv2uha_mips16 */ } break; case E_V4QQmode: if (nonimmediate_operand (operands[0], E_V4QQmode) && move_operand (operands[1], E_V4QQmode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V4QQmode) || reg_or_0_operand (operands[1], V4QQmode))) && #line 838 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 320; /* *movv4qq_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V4QQmode) || register_operand (operands[1], V4QQmode))) && #line 838 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 329; /* *movv4qq_mips16 */ } break; case E_V4UQQmode: if (nonimmediate_operand (operands[0], E_V4UQQmode) && move_operand (operands[1], E_V4UQQmode)) { if (( #line 4846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], V4UQQmode) || reg_or_0_operand (operands[1], V4UQQmode))) && #line 839 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 321; /* *movv4uqq_internal */ if (( #line 4857 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], V4UQQmode) || register_operand (operands[1], V4UQQmode))) && #line 839 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_DSP))) return 330; /* *movv4uqq_mips16 */ } break; case E_HImode: if (nonimmediate_operand (operands[0], E_HImode) && move_operand (operands[1], E_HImode)) { if ( #line 4987 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], HImode) || reg_or_0_operand (operands[1], HImode)))) return 361; /* *movhi_internal */ if ( #line 4998 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], HImode) || register_operand (operands[1], HImode)))) return 362; /* *movhi_mips16 */ } break; case E_QImode: if (nonimmediate_operand (operands[0], E_QImode) && move_operand (operands[1], E_QImode)) { if ( #line 5063 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && (register_operand (operands[0], QImode) || reg_or_0_operand (operands[1], QImode)))) return 363; /* *movqi_internal */ if ( #line 5074 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], QImode) || register_operand (operands[1], QImode)))) return 364; /* *movqi_mips16 */ } break; case E_SFmode: if (nonimmediate_operand (operands[0], E_SFmode) && move_operand (operands[1], E_SFmode)) { if ( #line 5129 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && (register_operand (operands[0], SFmode) || reg_or_0_operand (operands[1], SFmode)))) return 366; /* *movsf_hardfloat */ if ( #line 5139 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 367; /* *movsf_softfloat */ if ( #line 5149 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], SFmode) || register_operand (operands[1], SFmode)))) return 368; /* *movsf_mips16 */ } break; case E_DFmode: if (nonimmediate_operand (operands[0], E_DFmode) && move_operand (operands[1], E_DFmode)) { if ( #line 5170 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 369; /* *movdf_hardfloat */ if ( #line 5180 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 370; /* *movdf_softfloat */ if ( #line 5190 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && (register_operand (operands[0], DFmode) || register_operand (operands[1], DFmode)))) return 371; /* *movdf_mips16 */ } break; case E_TImode: if (nonimmediate_operand (operands[0], E_TImode) && move_operand (operands[1], E_TImode)) { if ( #line 5211 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], TImode) || reg_or_0_operand (operands[1], TImode)))) return 372; /* *movti */ if ( #line 5225 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], TImode) || register_operand (operands[1], TImode)))) return 373; /* *movti_mips16 */ } break; case E_TFmode: if (nonimmediate_operand (operands[0], E_TFmode) && move_operand (operands[1], E_TFmode)) { if ( #line 5248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && (register_operand (operands[0], TFmode) || reg_or_0_operand (operands[1], TFmode)))) return 374; /* *movtf */ if ( #line 5259 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16 && (register_operand (operands[0], TFmode) || register_operand (operands[1], TFmode)))) return 375; /* *movtf_mips16 */ } break; case E_V2SFmode: if (nonimmediate_operand (operands[0], E_V2SFmode) && move_operand (operands[1], E_V2SFmode) && #line 5316 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 376; /* *movv2sf */ break; case E_V2SImode: if (nonimmediate_operand (operands[0], E_V2SImode) && move_operand (operands[1], E_V2SImode) && #line 114 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1061; /* movv2si_internal */ break; case E_V4HImode: if (nonimmediate_operand (operands[0], E_V4HImode) && move_operand (operands[1], E_V4HImode) && #line 114 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1062; /* movv4hi_internal */ break; case E_V8QImode: if (nonimmediate_operand (operands[0], E_V8QImode) && move_operand (operands[1], E_V8QImode) && #line 114 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1063; /* movv8qi_internal */ break; case E_V2DFmode: if (nonimmediate_operand (operands[0], E_V2DFmode) && move_operand (operands[1], E_V2DFmode) && #line 657 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1199; /* movv2df_msa */ break; case E_V4SFmode: if (nonimmediate_operand (operands[0], E_V4SFmode) && move_operand (operands[1], E_V4SFmode) && #line 657 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1200; /* movv4sf_msa */ break; case E_V2DImode: if (nonimmediate_operand (operands[0], E_V2DImode) && move_operand (operands[1], E_V2DImode) && #line 657 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1201; /* movv2di_msa */ break; case E_V4SImode: if (nonimmediate_operand (operands[0], E_V4SImode) && move_operand (operands[1], E_V4SImode) && #line 657 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1202; /* movv4si_msa */ break; case E_V8HImode: if (nonimmediate_operand (operands[0], E_V8HImode) && move_operand (operands[1], E_V8HImode) && #line 657 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1203; /* movv8hi_msa */ break; case E_V16QImode: if (nonimmediate_operand (operands[0], E_V16QImode) && move_operand (operands[1], E_V16QImode) && #line 657 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1204; /* movv16qi_msa */ break; default: break; } operands[0] = x2; if (pattern18 (x3, E_DImode) == 0 && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return 432; /* 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 (pattern18 (x3, E_SImode) == 0 && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return 431; /* 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 (pattern152 (x4)) { case 0: if (!( #line 1131 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 943; /* mips_lwx_si */ case 1: if (!( #line 1131 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 945; /* 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 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1021; /* subqq3 */ case E_HQmode: if (pattern0 (x3, E_HQmode) != 0) return -1; return 1022; /* subhq3 */ case E_SQmode: if (pattern0 (x3, E_SQmode) != 0) return -1; return 1023; /* subsq3 */ case E_DQmode: if (pattern0 (x3, E_DQmode) != 0 || ! #line 22 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1024; /* subdq3 */ case E_UQQmode: if (pattern0 (x3, E_UQQmode) != 0) return -1; return 1025; /* subuqq3 */ case E_UHQmode: if (pattern0 (x3, E_UHQmode) != 0) return -1; return 1026; /* subuhq3 */ case E_USQmode: if (pattern0 (x3, E_USQmode) != 0) return -1; return 1027; /* subusq3 */ case E_UDQmode: if (pattern0 (x3, E_UDQmode) != 0 || ! #line 23 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1028; /* subudq3 */ case E_HAmode: if (pattern0 (x3, E_HAmode) != 0) return -1; return 1029; /* subha3 */ case E_SAmode: if (pattern0 (x3, E_SAmode) != 0) return -1; return 1030; /* subsa3 */ case E_DAmode: if (pattern0 (x3, E_DAmode) != 0 || ! #line 24 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1031; /* subda3 */ case E_UHAmode: if (pattern0 (x3, E_UHAmode) != 0) return -1; return 1032; /* subuha3 */ case E_USAmode: if (pattern0 (x3, E_USAmode) != 0) return -1; return 1033; /* subusa3 */ case E_UDAmode: if (pattern0 (x3, E_UDAmode) != 0 || ! #line 25 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (TARGET_64BIT)) return -1; return 1034; /* subuda3 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1132; /* subv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1133; /* subv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1134; /* subv8qi3 */ case E_V2DImode: if (pattern12 (x3, E_V2DImode) != 0 || ! #line 733 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1209; /* subv2di3 */ case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0 || ! #line 733 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1210; /* subv4si3 */ case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0 || ! #line 733 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1211; /* subv8hi3 */ case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0 || ! #line 733 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1212; /* subv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 926 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1271; /* subv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 926 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1272; /* 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 || pattern199 (x3, E_SImode) != 0) return -1; if ( #line 1855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MSAC)) { *pnum_clobbers = 1; return 45; /* *msac */ } if ( #line 1876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MSAC)) { *pnum_clobbers = 2; return 46; /* *msac_using_macc */ } if (! #line 2019 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB)) return -1; *pnum_clobbers = 2; return 49; /* *mul_sub_si */ case E_SFmode: if (pattern199 (x3, E_SFmode) != 0 || !( #line 2795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 126; /* *nmsub4sf_fastmath */ case E_DFmode: if (pattern199 (x3, E_DFmode) != 0 || !( #line 2795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 127; /* *nmsub4df_fastmath */ case E_V2SFmode: if (pattern199 (x3, E_V2SFmode) != 0 || !( #line 2795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 128; /* *nmsub4v2sf_fastmath */ case E_V2DImode: if (pattern199 (x3, E_V2DImode) != 0 || ! #line 765 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1221; /* msa_msubv_d */ case E_V4SImode: if (pattern199 (x3, E_V4SImode) != 0 || ! #line 765 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1222; /* msa_msubv_w */ case E_V8HImode: if (pattern199 (x3, E_V8HImode) != 0 || ! #line 765 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1223; /* msa_msubv_h */ case E_V16QImode: if (pattern199 (x3, E_V16QImode) != 0 || ! #line 765 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1224; /* msa_msubv_b */ default: return -1; } case SIGN_EXTEND: if (pattern107 (x3, SIGN_EXTEND) != 0 || ! #line 2263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern167 (x3, SIGN_EXTEND)) { case 0: if (! #line 1458 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1407; /* msa_dpsub_s_d */ case 1: if (! #line 1488 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1409; /* msa_dpsub_s_w */ case 2: if (! #line 1526 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1411; /* msa_dpsub_s_h */ default: return -1; } case ZERO_EXTEND: switch (pattern167 (x3, ZERO_EXTEND)) { case 0: if (! #line 1458 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1408; /* msa_dpsub_u_d */ case 1: if (! #line 1488 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1410; /* msa_dpsub_u_w */ case 2: if (! #line 1526 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1412; /* 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 (pattern168 (x3, E_SFmode) != 0 || !( #line 2728 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 114; /* *msub4sf */ case E_DFmode: if (pattern168 (x3, E_DFmode) != 0 || !( #line 2728 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 115; /* *msub4df */ case E_V2SFmode: if (pattern168 (x3, E_V2SFmode) != 0 || !( #line 2728 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern169 (x3, E_SFmode) != 0 || !( #line 2779 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 123; /* *nmadd4sf_fastmath */ case E_DFmode: if (pattern169 (x3, E_DFmode) != 0 || !( #line 2779 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 124; /* *nmadd4df_fastmath */ case E_V2SFmode: if (pattern169 (x3, E_V2SFmode) != 0 || !( #line 2779 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern32 (x3, SIGN_EXTEND)) { case 0: if (! #line 1862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1503; /* msa_hsub_s_h */ case 1: if (! #line 1880 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1507; /* msa_hsub_s_w */ case 2: if (! #line 1896 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1511; /* msa_hsub_s_d */ default: return -1; } case ZERO_EXTEND: switch (pattern32 (x3, ZERO_EXTEND)) { case 0: if (! #line 1862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1504; /* msa_hsub_u_h */ case 1: if (! #line 1880 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1508; /* msa_hsub_u_w */ case 2: if (! #line 1896 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1512; /* 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 6098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 483; /* *branch_bit0si */ case 1: if (!( #line 6098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 485; /* *branch_bit0di */ case 2: if (! #line 6118 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 487; /* *branch_bit0si_inverted */ case 3: if (!( #line 6118 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 489; /* *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 (pattern208 (x2, E_SImode)) { case 0: if (! #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode)))) return -1; return 687; /* *seleqsi_using_si */ case 1: if (!( #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode))) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 691; /* *seleqsi_using_di */ default: return -1; } case E_DImode: switch (pattern208 (x2, E_DImode)) { case 0: if (!( #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 689; /* *seleqdi_using_si */ case 1: if (!( #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 693; /* *seleqdi_using_di */ default: return -1; } default: return -1; } case 5: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1671; /* msa_bz_d_f */ case 6: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1673; /* msa_bz_w_f */ case 7: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1675; /* msa_bz_d */ case 8: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1677; /* msa_bz_w */ case 9: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1679; /* msa_bz_h */ case 10: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1681; /* msa_bz_b */ case 11: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1683; /* msa_bz_v_d_f */ case 12: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1685; /* msa_bz_v_w_f */ case 13: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1687; /* msa_bz_v_d */ case 14: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1689; /* msa_bz_v_w */ case 15: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1691; /* msa_bz_v_h */ case 16: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1693; /* msa_bz_v_b */ default: return -1; } case NE: switch (pattern78 (x1)) { case 0: if (! #line 6098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 484; /* *branch_bit1si */ case 1: if (!( #line 6098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 486; /* *branch_bit1di */ case 2: if (! #line 6118 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 488; /* *branch_bit1si_inverted */ case 3: if (!( #line 6118 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BBIT && UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 490; /* *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 (pattern208 (x2, E_SImode)) { case 0: if (! #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode)))) return -1; return 688; /* *selnesi_using_si */ case 1: if (!( #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], SImode) != register_operand (operands[3], SImode))) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 692; /* *selnesi_using_di */ default: return -1; } case E_DImode: switch (pattern208 (x2, E_DImode)) { case 0: if (!( #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 690; /* *selnedi_using_si */ case 1: if (!( #line 7362 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && (register_operand (operands[2], DImode) != register_operand (operands[3], DImode))) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 694; /* *selnedi_using_di */ default: return -1; } case E_SFmode: if (pattern228 (x2, E_SFmode) != 0 || !( #line 7382 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 695; /* *selsf */ case E_DFmode: if (pattern228 (x2, E_DFmode) != 0 || !( #line 7382 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEL && ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 696; /* *seldf */ default: return -1; } case LABEL_REF: switch (pattern181 (x1)) { case 0: if (! #line 572 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 827; /* bc1any4t */ case 1: if (! #line 594 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 829; /* bc1any2t */ default: return -1; } default: return -1; } case -1L: x7 = XEXP (x2, 1); if (GET_CODE (x7) != LABEL_REF) return -1; switch (pattern181 (x1)) { case 0: if (! #line 583 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 828; /* bc1any4f */ case 1: if (! #line 605 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D)) return -1; return 830; /* bc1any2f */ default: return -1; } default: return -1; } case 5: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1672; /* msa_bnz_d_f */ case 6: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1674; /* msa_bnz_w_f */ case 7: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1676; /* msa_bnz_d */ case 8: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1678; /* msa_bnz_w */ case 9: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1680; /* msa_bnz_h */ case 10: if (! #line 2743 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1682; /* msa_bnz_b */ case 11: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1684; /* msa_bnz_v_d_f */ case 12: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1686; /* msa_bnz_v_w_f */ case 13: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1688; /* msa_bnz_v_d */ case 14: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1690; /* msa_bnz_v_w */ case 15: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1692; /* msa_bnz_v_h */ case 16: if (! #line 2764 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1694; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 951; /* mips_bposge */ case GT: switch (pattern80 (x1)) { case 0: if (! #line 1732 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1479; /* msa_fmax_a_d */ case 1: if (! #line 1732 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1480; /* msa_fmax_a_w */ case 2: if (! #line 2218 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1537; /* msa_max_a_d */ case 3: if (! #line 2218 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1538; /* msa_max_a_w */ case 4: if (! #line 2218 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1539; /* msa_max_a_h */ case 5: if (! #line 2218 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1540; /* msa_max_a_b */ default: return -1; } case LT: switch (pattern80 (x1)) { case 0: if (! #line 1753 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1483; /* msa_fmin_a_d */ case 1: if (! #line 1753 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1484; /* msa_fmin_a_w */ case 2: if (! #line 2252 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1549; /* msa_min_a_d */ case 3: if (! #line 2252 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1550; /* msa_min_a_w */ case 4: if (! #line 2252 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1551; /* msa_min_a_h */ case 5: if (! #line 2252 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1552; /* 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 (pattern156 (x2, E_SImode)) { case 0: if (! #line 7333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE)) return -1; return 677; /* *movsi_on_si_ne */ case 1: if (!( #line 7333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 679; /* *movsi_on_di_ne */ default: return -1; } case E_DImode: switch (pattern156 (x2, E_DImode)) { case 0: if (!( #line 7333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 678; /* *movdi_on_si_ne */ case 1: if (!( #line 7333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CONDMOVE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 680; /* *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 5624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 435; /* rdhwr_synci_step_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !( #line 5624 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 436; /* rdhwr_synci_step_di */ default: return -1; } case 48: switch (pattern43 (x1)) { case 0: if (! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 639; /* mips_rdpgpr_si */ case 1: if (! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 640; /* 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 641; /* 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 (pattern132 (x1, 28)) { case 0: if (!( #line 6808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; *pnum_clobbers = 1; return 644; /* restore_gp_si */ case 1: if (!( #line 6808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 1; return 645; /* 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 6897 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_USE_GOT)) return -1; return 650; /* 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 7639 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 712; /* *mips_get_fcsr */ case 60: 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 (pattern179 (x2, E_SImode) != 0 || ! #line 114 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 728; /* sync_addsi */ case E_DImode: if (pattern179 (x2, E_DImode) != 0 || !( #line 114 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 729; /* 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 (pattern180 (x2, E_SImode) != 0 || ! #line 368 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 748; /* sync_subsi */ case E_DImode: if (pattern180 (x2, E_DImode) != 0 || !( #line 368 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 749; /* sync_subdi */ default: return -1; } case IOR: switch (pattern114 (x2)) { case 0: if (! #line 443 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 758; /* sync_iorsi */ case 1: if (!( #line 443 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 761; /* sync_iordi */ default: return -1; } case XOR: switch (pattern114 (x2)) { case 0: if (! #line 443 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 759; /* sync_xorsi */ case 1: if (!( #line 443 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 762; /* sync_xordi */ default: return -1; } case AND: switch (pattern114 (x2)) { case 0: if (! #line 443 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 760; /* sync_andsi */ case 1: if (!( #line 443 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 763; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 776; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 777; /* sync_nanddi */ default: return -1; } default: return -1; } case 241: 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 2653 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1663; /* 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 (pattern51 (x2, E_SImode) != 0 || ! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 629; /* probe_stack_range_si */ case E_DImode: if (pattern51 (x2, E_DImode) != 0 || ! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 630; /* probe_stack_range_di */ default: return -1; } case 3: if (pattern19 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 730; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 731; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 732; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 733; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 734; /* sync_and_12 */ default: return -1; } case 4: if (pattern19 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 745; /* 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 3384 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 187; /* *iorsi3 */ if (!register_operand (operands[2], E_SImode) || ! #line 3397 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 189; /* *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 3384 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 188; /* *iordi3 */ if (!register_operand (operands[2], E_DImode) || !( #line 3397 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 190; /* *iordi3_mips16 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 244 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1085; /* iorv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 244 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1086; /* iorv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 244 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1087; /* iorv8qi3 */ case E_V2DImode: if (pattern112 (x3, E_V2DImode) != 0 || ! #line 824 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1245; /* iorv2di3 */ case E_V4SImode: if (pattern112 (x3, E_V4SImode) != 0 || ! #line 824 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1246; /* iorv4si3 */ case E_V8HImode: if (pattern112 (x3, E_V8HImode) != 0 || ! #line 824 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1247; /* iorv8hi3 */ case E_V16QImode: if (pattern112 (x3, E_V16QImode) != 0 || ! #line 824 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1248; /* 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 (pattern220 (x3, E_V2DImode) != 0 || ! #line 1145 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1347; /* msa_bmnz_d */ case E_V4SImode: if (pattern220 (x3, E_V4SImode) != 0 || ! #line 1145 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1348; /* msa_bmnz_w */ case E_V8HImode: if (pattern220 (x3, E_V8HImode) != 0 || ! #line 1145 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1349; /* msa_bmnz_h */ case E_V16QImode: if (pattern220 (x3, E_V16QImode) != 0 || ! #line 1145 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1350; /* msa_bmnz_b */ default: return -1; } case NOT: x8 = XEXP (x4, 1); operands[2] = x8; switch (GET_MODE (operands[0])) { case E_V2DImode: if (pattern151 (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 1159 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1351; /* 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 1193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1363; /* msa_bsel_d */ case E_V4SImode: if (pattern151 (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 1159 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1352; /* 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 1193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1364; /* msa_bsel_w */ case E_V8HImode: if (pattern151 (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 1159 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1353; /* 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 1193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1365; /* msa_bsel_h */ case E_V16QImode: if (pattern151 (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 1159 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1354; /* 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 1193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1366; /* 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 (pattern134 (x3, SIGN_EXTEND)) { case 0: if ( #line 2310 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6MUL)) return 65; /* smulsi3_highpart_r6 */ if (pnum_clobbers == NULL) return -1; if ( #line 2323 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2371 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2424 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6DMUL)) return 73; /* smuldi3_highpart_r6 */ if (pnum_clobbers == NULL || ! #line 2437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern134 (x3, ZERO_EXTEND)) { case 0: if ( #line 2310 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6MUL)) return 66; /* umulsi3_highpart_r6 */ if (pnum_clobbers == NULL) return -1; if ( #line 2323 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2371 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2424 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_R6DMUL)) return 74; /* umuldi3_highpart_r6 */ if (pnum_clobbers == NULL || ! #line 2437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2386 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2386 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern174 (x3)) { case 0: if ( #line 3503 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 204; /* *lshr32_truncqi */ break; case 1: if ( #line 3503 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 205; /* *lshr32_trunchi */ break; case 2: if ( #line 3503 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 206; /* *lshr32_truncsi */ break; default: break; } } operands[2] = x5; if (!const_arith_operand (operands[2], E_DImode)) return -1; switch (pattern174 (x3)) { case 0: if (! #line 3516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 208; /* *lshr_truncqi_exts */ case 1: if (! #line 3516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 210; /* *lshr_trunchi_exts */ case 2: if (! #line 3516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 212; /* *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 3479 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 198; /* truncdiqi2 */ case E_HImode: if (!nonimmediate_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || ! #line 3479 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 199; /* truncdihi2 */ case E_SImode: if (!nonimmediate_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || ! #line 3479 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 200; /* 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 (pattern174 (x3)) { case 0: if ( #line 3493 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && IN_RANGE (INTVAL (operands[2]), 32, 63))) return 201; /* *ashr_truncqi */ if (! #line 3516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 207; /* *ashr_truncqi_exts */ case 1: if ( #line 3493 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && IN_RANGE (INTVAL (operands[2]), 32, 63))) return 202; /* *ashr_trunchi */ if (! #line 3516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 209; /* *ashr_trunchi_exts */ case 2: if ( #line 3493 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && IN_RANGE (INTVAL (operands[2]), 32, 63))) return 203; /* *ashr_truncsi */ if (! #line 3516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && UINTVAL (operands[2]) < 32)) return -1; return 211; /* *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 4342 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && TARGET_64BIT && IN_RANGE (INTVAL (operands[2]), 32, 63))) return -1; return 276; /* *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 1530 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_4300_MUL_FIX) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 29; /* *mulsf3 */ if (!( #line 1543 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_4300_MUL_FIX) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1530 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_4300_MUL_FIX) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 30; /* *muldf3 */ if (!( #line 1543 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_4300_MUL_FIX) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1553 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1652 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1690 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1700 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DMUL) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 35; /* muldi3_mul3_nohilo */ if (pnum_clobbers != NULL && ( #line 1652 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1690 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_FIX_R4000) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 39; /* muldi3_internal */ if (pnum_clobbers == NULL || !register_operand (operands[0], E_DImode) || !( #line 1700 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1119; /* mulv4hi3 */ case E_V2DImode: if (pattern0 (x3, E_V2DImode) != 0 || ! #line 745 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1213; /* mulv2di3 */ case E_V4SImode: if (pattern0 (x3, E_V4SImode) != 0 || ! #line 745 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1214; /* mulv4si3 */ case E_V8HImode: if (pattern0 (x3, E_V8HImode) != 0 || ! #line 745 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1215; /* mulv8hi3 */ case E_V16QImode: if (pattern0 (x3, E_V16QImode) != 0 || ! #line 745 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1216; /* mulv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 935 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1273; /* mulv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 935 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1274; /* mulv4sf3 */ default: return -1; } case SIGN_EXTEND: switch (pattern37 (x3, SIGN_EXTEND)) { case 0: if (muldiv_target_operand (operands[0], E_DImode) && #line 2117 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2132 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2144 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3)) { *pnum_clobbers = 1; return 59; /* mulsidi3_64bit_dmul */ } } if (! #line 2232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2504 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern37 (x3, ZERO_EXTEND)) { case 0: if (muldiv_target_operand (operands[0], E_DImode) && #line 2117 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2132 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2144 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2504 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern33 (x3) != 0) return -1; if ( #line 1419 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return 17; /* *addsi3_extended */ if (! #line 1433 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 18; /* *addsi3_extended_mips16 */ case MINUS: if (pattern34 (x3, E_SImode, E_DImode) != 0) return -1; x5 = XEXP (x4, 1); operands[2] = x5; if (!register_operand (operands[2], E_SImode) || ! #line 1506 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3741 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return 235; /* extendsidi2 */ break; case 1: if (( #line 3763 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 237; /* *extendqidi2_mips16e */ if (( #line 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 241; /* *extendqidi2 */ if (( #line 3793 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 245; /* *extendqidi2_seb */ break; case 2: if (( #line 3763 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 239; /* *extendhidi2_mips16e */ if (( #line 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 243; /* *extendhidi2 */ if (( #line 3793 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 247; /* *extendhidi2_seh */ break; case 3: if ( #line 3763 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 236; /* *extendqisi2_mips16e */ if ( #line 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E)) return 240; /* *extendqisi2 */ if ( #line 3793 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH)) return 244; /* *extendqisi2_seb */ break; case 4: if ( #line 3763 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 238; /* *extendhisi2_mips16e */ if ( #line 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E)) return 242; /* *extendhisi2 */ if ( #line 3793 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH)) return 246; /* *extendhisi2_seh */ break; case 5: if ( #line 3808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MIPS16E)) return 248; /* *extendqihi2_mips16e */ if ( #line 3819 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E)) return 249; /* *extendqihi2 */ if ( #line 3839 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEB_SEH)) return 250; /* *extendqihi2_seb */ break; default: break; } if (GET_CODE (x4) != MEM) return -1; switch (pattern99 (x3)) { case 0: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 927; /* mips_lbx_extsi_si */ case 1: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 935; /* mips_lbx_extsi_di */ case 2: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 931; /* mips_lhx_extsi_si */ case 3: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 939; /* mips_lhx_extsi_di */ case 4: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 929; /* mips_lbx_extdi_si */ case 5: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 937; /* mips_lbx_extdi_di */ case 6: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 933; /* mips_lhx_extdi_si */ case 7: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 941; /* mips_lhx_extdi_di */ case 8: if (!( #line 1141 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX && TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 947; /* *mips_lwx_si_ext */ case 9: if (!( #line 1141 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWX && TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 949; /* *mips_lwx_di_ext */ default: return -1; } case TRUNCATE: switch (pattern35 (x3)) { case 0: if ( #line 3853 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 251; /* *extenddi_truncateqi */ if (!( #line 3912 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 257; /* *extenddi_truncateqi_exts */ case 1: if ( #line 3853 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 252; /* *extenddi_truncatehi */ if (!( #line 3912 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 259; /* *extenddi_truncatehi_exts */ case 2: if ( #line 3873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 253; /* *extendsi_truncateqi */ if (! #line 3912 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS)) return -1; return 256; /* *extendsi_truncateqi_exts */ case 3: if ( #line 3873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 254; /* *extendsi_truncatehi */ if (! #line 3912 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS)) return -1; return 258; /* *extendsi_truncatehi_exts */ case 4: if ( #line 3893 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS)) return 255; /* *extendhi_truncateqi */ if (! #line 3924 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && ISA_HAS_EXTS)) return -1; return 260; /* *extendhi_truncateqi_exts */ default: return -1; } case ASHIFT: if (pattern33 (x3) != 0 || ! #line 5737 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 447; /* *ashlsi3_extend */ case ASHIFTRT: if (pattern33 (x3) != 0 || ! #line 5737 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 448; /* *ashrsi3_extend */ case LSHIFTRT: if (pattern33 (x3) != 0 || ! #line 5737 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 449; /* *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 (pattern165 (x3)) { case 0: if (! #line 529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1182; /* msa_copy_s_h */ case 1: if (! #line 529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1184; /* 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 551 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA && TARGET_64BIT)) return -1; return 1187; /* msa_copy_s_w_64bit */ case E_SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 551 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA && TARGET_64BIT)) return -1; return 1188; /* 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 467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1168; /* msa_insert_d_f */ if (!register_operand (operands[1], E_DFmode) || ! #line 518 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1180; /* 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 467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1169; /* msa_insert_w_f */ if (!register_operand (operands[1], E_SFmode) || ! #line 518 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1181; /* msa_insve_w_f_scalar */ case E_V2DImode: if (pattern182 (x2, E_DImode, E_V2DImode) != 0 || !register_operand (operands[2], E_V2DImode) || !const_exp_2_operand (operands[3], E_VOIDmode) || ! #line 467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1170; /* msa_insert_d */ case E_V4SImode: if (pattern182 (x2, E_SImode, E_V4SImode) != 0 || !register_operand (operands[2], E_V4SImode) || !const_exp_4_operand (operands[3], E_VOIDmode) || ! #line 467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1171; /* msa_insert_w */ case E_V8HImode: if (pattern182 (x2, E_HImode, E_V8HImode) != 0 || !register_operand (operands[2], E_V8HImode) || !const_exp_8_operand (operands[3], E_VOIDmode) || ! #line 467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1172; /* msa_insert_h */ case E_V16QImode: if (pattern182 (x2, E_QImode, E_V16QImode) != 0 || !register_operand (operands[2], E_V16QImode) || !const_exp_16_operand (operands[3], E_VOIDmode) || ! #line 467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1173; /* 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 (pattern224 (x2, E_V2DFmode, E_DFmode) != 0 || ! #line 505 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1174; /* msa_insve_d_f */ case E_V4SFmode: if (pattern225 (x2, E_V4SFmode, E_SFmode) != 0 || ! #line 505 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1175; /* msa_insve_w_f */ case E_V2DImode: if (pattern224 (x2, E_V2DImode, E_DImode) != 0 || ! #line 505 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1176; /* msa_insve_d */ case E_V4SImode: if (pattern225 (x2, E_V4SImode, E_SImode) != 0 || ! #line 505 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1177; /* msa_insve_w */ case E_V8HImode: if (pattern226 (x2, E_V8HImode, E_HImode) != 0 || !register_operand (operands[2], E_V8HImode) || !const_exp_8_operand (operands[3], E_VOIDmode) || ! #line 505 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1178; /* msa_insve_h */ case E_V16QImode: if (pattern226 (x2, E_V16QImode, E_QImode) != 0 || !register_operand (operands[2], E_V16QImode) || !const_exp_16_operand (operands[3], E_VOIDmode) || ! #line 505 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1179; /* 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 (pattern202 (x2, E_V2SFmode, E_SFmode) == 0 && #line 277 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return 800; /* vec_extractv2sfsf */ break; case E_SImode: if (pattern203 (x2, E_V4SImode, E_SImode) == 0 && #line 561 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1189; /* msa_copy_s_w */ break; case E_DImode: if (pattern202 (x2, E_V2DImode, E_DImode) == 0 && #line 571 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1191; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1160; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1161; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return 1162; /* 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 365 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1166; /* 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 365 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1167; /* msa_vec_extract_w_f */ break; default: break; } } operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern203 (x2, E_V4SFmode, E_SFmode) == 0 && #line 561 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1190; /* msa_copy_s_w_f */ break; case E_DFmode: if (pattern202 (x2, E_V2DFmode, E_DFmode) == 0 && #line 571 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1192; /* 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 2502 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1601; /* 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 2502 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1602; /* 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 2502 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1603; /* 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 2502 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1604; /* 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 (pattern136 (x3, E_SImode) != 0) return -1; if ( #line 3307 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && and_operands_ok (SImode, operands[1], operands[2]))) return 183; /* *andsi3 */ if (! #line 3346 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && and_operands_ok (SImode, operands[1], operands[2]))) return -1; return 185; /* *andsi3_mips16 */ case E_DImode: if (pattern136 (x3, E_DImode) != 0) return -1; if (( #line 3307 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && and_operands_ok (DImode, operands[1], operands[2])) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 184; /* *anddi3 */ if (!( #line 3346 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && and_operands_ok (DImode, operands[1], operands[2])) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 186; /* *anddi3_mips16 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 235 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1082; /* andv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 235 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1083; /* andv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 235 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1084; /* andv8qi3 */ case E_V2DImode: if (pattern112 (x3, E_V2DImode) != 0 || ! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1249; /* andv2di3 */ case E_V4SImode: if (pattern112 (x3, E_V4SImode) != 0 || ! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1250; /* andv4si3 */ case E_V8HImode: if (pattern112 (x3, E_V8HImode) != 0 || ! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1251; /* andv8hi3 */ case E_V16QImode: if (pattern112 (x3, E_V16QImode) != 0 || ! #line 837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1252; /* 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 (pattern29 (x3, E_SImode) != 0 || ! #line 3440 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 195; /* *norsi3 */ case E_DImode: if (pattern29 (x3, E_DImode) != 0 || !( #line 3440 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 196; /* *nordi3 */ case E_V2SImode: if (pattern29 (x3, E_V2SImode) != 0 || ! #line 263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1091; /* *loongson_nor */ case E_V4HImode: if (pattern29 (x3, E_V4HImode) != 0 || ! #line 263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1092; /* *loongson_nor */ case E_V8QImode: if (pattern29 (x3, E_V8QImode) != 0 || ! #line 263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1093; /* *loongson_nor */ case E_V2DImode: if (pattern148 (x3, E_V2DImode) != 0 || ! #line 2342 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1577; /* msa_nor_d */ case E_V4SImode: if (pattern148 (x3, E_V4SImode) != 0 || ! #line 2342 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1578; /* msa_nor_w */ case E_V8HImode: if (pattern148 (x3, E_V8HImode) != 0 || ! #line 2342 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1579; /* msa_nor_h */ case E_V16QImode: if (pattern148 (x3, E_V16QImode) != 0 || ! #line 2342 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1580; /* msa_nor_b */ default: return -1; } case REG: case SUBREG: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern149 (x3, E_V2SImode) != 0 || ! #line 226 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1078; /* loongson_pandn_w */ case E_V4HImode: if (pattern149 (x3, E_V4HImode) != 0 || ! #line 226 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1079; /* loongson_pandn_h */ case E_V8QImode: if (pattern149 (x3, E_V8QImode) != 0 || ! #line 226 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1080; /* loongson_pandn_b */ case E_DImode: if (pattern149 (x3, E_DImode) != 0 || ! #line 226 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1081; /* 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 (pattern150 (x3, E_SImode) != 0 || ! #line 4398 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CINS && mask_low_and_shift_p (SImode, operands[3], operands[2], 32))) return -1; return 279; /* *cinssi */ case E_DImode: if (pattern150 (x3, E_DImode) != 0 || !( #line 4398 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CINS && mask_low_and_shift_p (DImode, operands[3], operands[2], 32)) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 280; /* *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 (pattern175 (x3, E_SFmode) != 0) return -1; if (( #line 2577 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 84; /* *fmasf4_madd3 */ if (( #line 2587 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 87; /* *fmasf4_madd4 */ if (!( #line 2597 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADDF) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 90; /* *fmasf4_maddf */ case E_DFmode: if (pattern175 (x3, E_DFmode) != 0) return -1; if (( #line 2577 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 85; /* *fmadf4_madd3 */ if (( #line 2587 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 88; /* *fmadf4_madd4 */ if (!( #line 2597 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADDF) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 91; /* *fmadf4_maddf */ case E_V2SFmode: if (pattern175 (x3, E_V2SFmode) != 0) return -1; if (( #line 2577 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 86; /* *fmav2sf4_madd3 */ if (( #line 2587 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 89; /* *fmav2sf4_madd4 */ if (!( #line 2597 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADDF) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 92; /* *fmav2sf4_maddf */ case E_V2DFmode: if (pattern175 (x3, E_V2DFmode) != 0 || ! #line 954 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1277; /* fmav2df4 */ case E_V4SFmode: if (pattern175 (x3, E_V4SFmode) != 0 || ! #line 954 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1278; /* fmav4sf4 */ default: return -1; } case NEG: x7 = XEXP (x6, 0); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern176 (x3, E_SFmode) != 0) return -1; if (( #line 2621 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 93; /* *fmssf4_msub3 */ if (!( #line 2631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 96; /* *fmssf4_msub4 */ case E_DFmode: if (pattern176 (x3, E_DFmode) != 0) return -1; if (( #line 2621 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 94; /* *fmsdf4_msub3 */ if (!( #line 2631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 97; /* *fmsdf4_msub4 */ case E_V2SFmode: if (pattern176 (x3, E_V2SFmode) != 0) return -1; if (( #line 2621 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 95; /* *fmsv2sf4_msub3 */ if (!( #line 2631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern177 (x3, E_SFmode) != 0) return -1; if (( #line 2655 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 99; /* *fnmasf4_nmsub3 */ if (!( #line 2665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 102; /* *fnmasf4_nmsub4 */ case E_DFmode: if (pattern177 (x3, E_DFmode) != 0) return -1; if (( #line 2655 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 100; /* *fnmadf4_nmsub3 */ if (!( #line 2665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 103; /* *fnmadf4_nmsub4 */ case E_V2SFmode: if (pattern177 (x3, E_V2SFmode) != 0) return -1; if (( #line 2655 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 101; /* *fnmav2sf4_nmsub3 */ if (!( #line 2665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 104; /* *fnmav2sf4_nmsub4 */ case E_V2DFmode: if (pattern177 (x3, E_V2DFmode) != 0 || ! #line 964 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1279; /* fnmav2df4 */ case E_V4SFmode: if (pattern177 (x3, E_V4SFmode) != 0 || ! #line 964 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1280; /* fnmav4sf4 */ default: return -1; } case NEG: x7 = XEXP (x6, 0); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern178 (x3, E_SFmode) != 0) return -1; if (( #line 2691 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 105; /* *fnmssf4_nmadd3 */ if (!( #line 2702 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 108; /* *fnmssf4_nmadd4 */ case E_DFmode: if (pattern178 (x3, E_DFmode) != 0) return -1; if (( #line 2691 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 106; /* *fnmsdf4_nmadd3 */ if (!( #line 2702 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 109; /* *fnmsdf4_nmadd4 */ case E_V2SFmode: if (pattern178 (x3, E_V2SFmode) != 0) return -1; if (( #line 2691 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD3 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return 107; /* *fnmsv2sf4_nmadd3 */ if (!( #line 2702 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FUSED_MADD4 && !HONOR_SIGNED_ZEROS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 928; /* mips_lbux_extsi_si */ case 1: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 936; /* mips_lbux_extsi_di */ case 2: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 932; /* mips_lhux_extsi_si */ case 3: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 940; /* mips_lhux_extsi_di */ case 4: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 930; /* mips_lbux_extdi_si */ case 5: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LBUX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 938; /* mips_lbux_extdi_di */ case 6: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)))) return -1; return 934; /* mips_lhux_extdi_si */ case 7: if (!( #line 1098 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LHUX) && ((( #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)))) return -1; return 942; /* mips_lhux_extdi_di */ case 8: if (!( #line 1141 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWUX && TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 948; /* *mips_lwux_si_ext */ case 9: if (!( #line 1141 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_LWUX && TARGET_64BIT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 950; /* *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 (pattern40 (x3)) { case 0: if (! #line 1470 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && TARGET_64BIT)) return -1; return 21; /* *baddu_disi */ case 1: if (!( #line 1470 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_BADDU && TARGET_64BIT) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3698 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 230; /* *zero_extendsi_truncqi */ case E_HImode: if (! #line 3698 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 232; /* *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 3698 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 231; /* *zero_extenddi_truncqi */ case E_HImode: if (!( #line 3698 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 233; /* *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 3710 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 234; /* *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 (pattern165 (x3)) { case 0: if (! #line 529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1183; /* msa_copy_u_h */ case 1: if (! #line 529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1185; /* 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 540 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA && TARGET_64BIT)) return -1; return 1186; /* 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 1683 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1469; /* 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 1683 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1470; /* 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 1683 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1471; /* 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 1683 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1472; /* 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 1683 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1473; /* 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 1683 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1474; /* 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 (pattern183 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 2635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1655; /* msa_splati_d_f */ case E_V4SFmode: if (pattern184 (x3, E_V4SFmode, E_SFmode) != 0 || ! #line 2635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1656; /* msa_splati_w_f */ case E_V2DImode: if (pattern183 (x3, E_V2DImode, E_DImode) != 0 || ! #line 2635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1657; /* msa_splati_d */ case E_V4SImode: if (pattern184 (x3, E_V4SImode, E_SImode) != 0 || ! #line 2635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1658; /* 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 2635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1659; /* 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 2635 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1660; /* 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 2060 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2244 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2244 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_64BIT && ISA_HAS_MULS)) return -1; return 62; /* *mulsu_di */ default: return -1; } case PLUS: switch (pattern39 (x3)) { case 0: if (!( #line 2747 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 117; /* *nmadd4sf */ case 1: if (!( #line 2747 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 118; /* *nmadd4df */ case 2: if (!( #line 2747 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern39 (x3)) { case 0: if (!( #line 2758 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 120; /* *nmsub4sf */ case 1: if (!( #line 2758 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 121; /* *nmsub4df */ case 2: if (!( #line 2758 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_UNFUSED_MADD4) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 176; /* negsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 3234 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16)) return -1; return 177; /* negdi2 */ case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || !( #line 3247 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 178; /* negsf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || !( #line 3247 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 179; /* negdf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || !( #line 3247 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT))) return -1; return 180; /* negv2sf2 */ 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 2837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_FIX_SB1 || flag_unsafe_math_optimizations) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2837 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SB1 && (!TARGET_FIX_SB1 || flag_unsafe_math_optimizations)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3038 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3038 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 151; /* divdi3 */ case E_V2DImode: if (pattern0 (x3, E_V2DImode) != 0 || ! #line 774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1225; /* divv2di3 */ case E_V4SImode: if (pattern0 (x3, E_V4SImode) != 0 || ! #line 774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1226; /* divv4si3 */ case E_V8HImode: if (pattern0 (x3, E_V8HImode) != 0 || ! #line 774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1227; /* divv8hi3 */ case E_V16QImode: if (pattern0 (x3, E_V16QImode) != 0 || ! #line 774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1228; /* divv16qi3 */ case E_V2DFmode: if (pattern0 (x3, E_V2DFmode) != 0 || ! #line 944 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1275; /* divv2df3 */ case E_V4SFmode: if (pattern0 (x3, E_V4SFmode) != 0 || ! #line 944 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1276; /* 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 (pattern146 (x3, E_SFmode) != 0 || !( #line 2855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (SFmode) && flag_unsafe_math_optimizations) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 132; /* *recipsf3 */ case E_DFmode: if (pattern146 (x3, E_DFmode) != 0 || !( #line 2855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (DFmode) && flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 133; /* *recipdf3 */ case E_V2SFmode: if (pattern146 (x3, E_V2SFmode) != 0 || !( #line 2855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (V2SFmode) && flag_unsafe_math_optimizations) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern147 (x3, E_SFmode) != 0 || !( #line 3097 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (SFmode) && flag_unsafe_math_optimizations) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 160; /* *rsqrtsfa */ case E_DFmode: if (pattern147 (x3, E_DFmode) != 0 || !( #line 3097 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (DFmode) && flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 161; /* *rsqrtdfa */ case E_V2SFmode: if (pattern147 (x3, E_V2SFmode) != 0 || !( #line 3097 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (V2SFmode) && flag_unsafe_math_optimizations) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 6152 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE)) return 491; /* *seq_zero_sisi */ if ( #line 6161 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE)) return 495; /* *seq_zero_sisi_mips16 */ break; case 1: if (( #line 6152 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 492; /* *seq_zero_disi */ if (( #line 6161 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 496; /* *seq_zero_disi_mips16 */ break; default: break; } break; case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (( #line 6152 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 493; /* *seq_zero_sidi */ if (( #line 6161 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 497; /* *seq_zero_sidi_mips16 */ break; case 1: if (( #line 6152 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 494; /* *seq_zero_didi */ if (( #line 6161 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 498; /* *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 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 571; /* seq_sf_using_cc */ break; case 1: if ((( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 578; /* seq_df_using_cc */ break; default: break; } break; case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if ((( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 585; /* seq_sf_using_ccf */ break; case 1: if ((( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 595; /* seq_df_using_ccf */ break; default: break; } break; case E_V2DImode: switch (pattern117 (x3)) { case 0: if ( #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1375; /* msa_ceq_d */ break; case 1: if ( #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1421; /* msa_fceq_d */ break; default: break; } break; case E_V4SImode: switch (pattern118 (x3)) { case 0: if ( #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1380; /* msa_ceq_w */ break; case 1: if ( #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1430; /* msa_fceq_w */ break; default: break; } break; case E_V8HImode: if (pattern10 (x3, E_V8HImode) == 0 && #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1385; /* msa_ceq_h */ break; case E_V16QImode: if (pattern10 (x3, E_V16QImode) == 0 && #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1390; /* msa_ceq_b */ break; default: break; } break; default: break; } operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern115 (x3, E_SImode)) { case 0: if (! #line 6171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE)) return -1; return 499; /* *seq_sisi_seq */ case 1: if (!( #line 6171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 500; /* *seq_disi_seq */ default: return -1; } case E_DImode: switch (pattern115 (x3, E_DImode)) { case 0: if (!( #line 6171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 501; /* *seq_sidi_seq */ case 1: if (!( #line 6171 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 502; /* *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 181; /* one_cmplsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 182; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1094; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1095; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1096; /* one_cmplv8qi2 */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1253; /* one_cmplv2di2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1254; /* one_cmplv4si2 */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1255; /* one_cmplv8hi2 */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1256; /* 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 (pattern137 (x3, E_SImode)) { case 0: if ( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 551; /* *sle_sisi */ if (! #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 559; /* *sle_sisi_mips16 */ case 1: if (( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 553; /* *sle_disi */ if (!( #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 561; /* *sle_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern137 (x3, E_DImode)) { case 0: if (( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 555; /* *sle_sidi */ if (!( #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 563; /* *sle_sidi_mips16 */ case 1: if (( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 557; /* *sle_didi */ if (!( #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 565; /* *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 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 573; /* sle_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 580; /* sle_df_using_cc */ default: return -1; } case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 587; /* sle_sf_using_ccf */ case 1: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 597; /* sle_df_using_ccf */ default: return -1; } case E_V2DImode: switch (pattern117 (x3)) { case 0: if (! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1376; /* msa_cle_s_d */ case 1: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1423; /* msa_fcle_d */ default: return -1; } case E_V4SImode: switch (pattern118 (x3)) { case 0: if (! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1381; /* msa_cle_s_w */ case 1: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1432; /* msa_fcle_w */ default: return -1; } case E_V8HImode: if (pattern10 (x3, E_V8HImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1386; /* msa_cle_s_h */ case E_V16QImode: if (pattern10 (x3, E_V16QImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1391; /* 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 3079 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_MIPS1) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3079 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_MIPS1) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3079 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SB1) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 972 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1281; /* sqrtv2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 972 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1282; /* 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 (pattern135 (x3, E_SFmode) != 0 || !( #line 3115 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (SFmode) && flag_unsafe_math_optimizations) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 163; /* *rsqrtsfb */ case E_DFmode: if (pattern135 (x3, E_DFmode) != 0 || !( #line 3115 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (DFmode) && flag_unsafe_math_optimizations) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 164; /* *rsqrtdfb */ case E_V2SFmode: if (pattern135 (x3, E_V2SFmode) != 0 || !( #line 3115 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_FP_RECIP_RSQRT (V2SFmode) && flag_unsafe_math_optimizations) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern116 (x3, E_SImode)) { case 0: if ( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 535; /* *slt_sisi */ if (! #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 543; /* *slt_sisi_mips16 */ case 1: if (( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 537; /* *slt_disi */ if (!( #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 545; /* *slt_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern116 (x3, E_DImode)) { case 0: if (( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 539; /* *slt_sidi */ if (!( #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 547; /* *slt_sidi_mips16 */ case 1: if (( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 541; /* *slt_didi */ if (!( #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 549; /* *slt_didi_mips16 */ default: return -1; } case E_CCmode: switch (pattern5 (x3, E_CCmode)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 572; /* slt_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 579; /* slt_df_using_cc */ default: return -1; } case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 586; /* slt_sf_using_ccf */ case 1: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 596; /* slt_df_using_ccf */ default: return -1; } case E_V2DImode: switch (pattern117 (x3)) { case 0: if (! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1378; /* msa_clt_s_d */ case 1: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1424; /* msa_fclt_d */ default: return -1; } case E_V4SImode: switch (pattern118 (x3)) { case 0: if (! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1383; /* msa_clt_s_w */ case 1: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1433; /* msa_fclt_w */ default: return -1; } case E_V8HImode: if (pattern10 (x3, E_V8HImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1388; /* msa_clt_s_h */ case E_V16QImode: if (pattern10 (x3, E_V16QImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1393; /* 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 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 511; /* *sgt_sisi */ if (!register_operand (operands[2], E_SImode) || ! #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 519; /* *sgt_sisi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 513; /* *sgt_disi */ if (!register_operand (operands[2], E_DImode) || !( #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 521; /* *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 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 515; /* *sgt_sidi */ if (!register_operand (operands[2], E_SImode) || !( #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 523; /* *sgt_sidi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 517; /* *sgt_didi */ if (!register_operand (operands[2], E_DImode) || !( #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 525; /* *sgt_didi_mips16 */ default: return -1; } case E_CCmode: switch (pattern5 (x3, E_CCmode)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 602; /* sgt_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 606; /* sgt_df_using_cc */ default: return -1; } case E_CCFmode: switch (pattern5 (x3, E_CCFmode)) { case 0: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 610; /* sgt_sf_using_ccf */ case 1: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 614; /* 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 5720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 443; /* *lshrsi3 */ if ( #line 5751 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return 452; /* *lshrsi3_mips16 */ } if (!memory_operand (operands[1], E_SImode) || !immediate_operand (operands[2], E_SImode) || ! #line 5846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 458; /* *mips.md:5842 */ case E_DImode: if (pattern21 (x3) != 0) return -1; if (( #line 5720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 446; /* *lshrdi3 */ if (! #line 5810 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 457; /* *lshrdi3_mips16 */ case E_V2SImode: if (pattern22 (x3, E_V2SImode) != 0 || ! #line 586 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1130; /* lshrv2si3 */ case E_V4HImode: if (pattern22 (x3, E_V4HImode) != 0 || ! #line 586 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1131; /* lshrv4hi3 */ case E_V2DImode: if (pattern23 (x3, E_V2DImode) != 0 || ! #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1257; /* vlshrv2di3 */ case E_V4SImode: if (pattern23 (x3, E_V4SImode) != 0 || ! #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1258; /* vlshrv4si3 */ case E_V8HImode: if (pattern23 (x3, E_V8HImode) != 0 || ! #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1259; /* vlshrv8hi3 */ case E_V16QImode: if (pattern23 (x3, E_V16QImode) != 0 || ! #line 872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1260; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT)) return -1; return 799; /* vec_concatv2sf */ case E_V2SImode: if (pattern6 (x3, E_SImode, E_V2SImode) != 0 || ! #line 148 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1066; /* *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 (pattern158 (x3, E_V2SImode, E_V2HImode, E_V4HImode) != 0 || ! #line 162 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1067; /* vec_pack_ssat_v2si */ case E_V8QImode: if (pattern158 (x3, E_V4HImode, E_V4QImode, E_V8QImode) != 0 || ! #line 162 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1068; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1069; /* 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 (pattern158 (x3, E_V2DImode, E_V2SImode, E_V4SImode) != 0 || ! #line 251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1163; /* vec_pack_trunc_v2di */ case E_V8HImode: if (pattern158 (x3, E_V4SImode, E_V4HImode, E_V8HImode) != 0 || ! #line 251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1164; /* vec_pack_trunc_v4si */ case E_V16QImode: if (pattern158 (x3, E_V8HImode, E_V8QImode, E_V16QImode) != 0 || ! #line 251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1165; /* vec_pack_trunc_v8hi */ default: return -1; } case FLOAT_TRUNCATE: if (pattern82 (x3, E_V2DFmode, E_V4SFmode, E_V2SFmode, FLOAT_TRUNCATE) != 0 || ! #line 2682 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1666; /* 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 (pattern137 (x3, E_SImode)) { case 0: if ( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 552; /* *sleu_sisi */ if (! #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 560; /* *sleu_sisi_mips16 */ case 1: if (( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 554; /* *sleu_disi */ if (!( #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 562; /* *sleu_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern137 (x3, E_DImode)) { case 0: if (( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 556; /* *sleu_sidi */ if (!( #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 564; /* *sleu_sidi_mips16 */ case 1: if (( #line 6251 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 558; /* *sleu_didi */ if (!( #line 6263 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 566; /* *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 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1377; /* msa_cle_u_d */ case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1382; /* msa_cle_u_w */ case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1387; /* msa_cle_u_h */ case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1392; /* 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 6183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE)) return 503; /* *sne_zero_sisi */ break; case 1: if (( #line 6183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 504; /* *sne_zero_disi */ break; default: break; } break; case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (( #line 6183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 505; /* *sne_zero_sidi */ break; case 1: if (( #line 6183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && !ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 506; /* *sne_zero_didi */ break; default: break; } break; default: break; } } break; case REG: case SUBREG: switch (pattern81 (x3)) { case 0: if ((( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 590; /* sne_sf_using_ccf */ break; case 1: if ((( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return 600; /* sne_df_using_ccf */ break; case 2: if ( #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1422; /* msa_fcne_d */ break; case 3: if ( #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return 1431; /* msa_fcne_w */ break; default: break; } break; default: break; } operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern115 (x3, E_SImode)) { case 0: if (! #line 6193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE)) return -1; return 507; /* *sne_sisi_sne */ case 1: if (!( #line 6193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 508; /* *sne_disi_sne */ default: return -1; } case E_DImode: switch (pattern115 (x3, E_DImode)) { case 0: if (!( #line 6193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 509; /* *sne_sidi_sne */ case 1: if (!( #line 6193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SEQ_SNE) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 510; /* *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 (pattern111 (x3, E_SImode) != 0) return -1; if ( #line 3413 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 191; /* *xorsi3 */ if (! #line 3426 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 193; /* *xorsi3_mips16 */ case E_DImode: if (pattern111 (x3, E_DImode) != 0) return -1; if (( #line 3413 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 192; /* *xordi3 */ if (!( #line 3426 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 194; /* *xordi3_mips16 */ case E_V2SImode: if (pattern0 (x3, E_V2SImode) != 0 || ! #line 253 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1088; /* xorv2si3 */ case E_V4HImode: if (pattern0 (x3, E_V4HImode) != 0 || ! #line 253 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1089; /* xorv4hi3 */ case E_V8QImode: if (pattern0 (x3, E_V8QImode) != 0 || ! #line 253 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1090; /* xorv8qi3 */ case E_V2DImode: if (pattern112 (x3, E_V2DImode) != 0 || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1241; /* xorv2di3 */ case E_V4SImode: if (pattern112 (x3, E_V4SImode) != 0 || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1242; /* xorv4si3 */ case E_V8HImode: if (pattern112 (x3, E_V8HImode) != 0 || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1243; /* xorv8hi3 */ case E_V16QImode: if (pattern112 (x3, E_V16QImode) != 0 || ! #line 811 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1244; /* 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 3531 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 213; /* *mips.md:3524 */ case REG: case SUBREG: switch (pattern24 (x3)) { case 0: if ( #line 5720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 442; /* *ashrsi3 */ if (! #line 5751 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 451; /* *ashrsi3_mips16 */ case 1: if (( #line 5720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 445; /* *ashrdi3 */ if (! #line 5795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 456; /* *ashrdi3_mips16 */ case 2: if (! #line 577 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1128; /* ashrv2si3 */ case 3: if (! #line 577 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1129; /* ashrv4hi3 */ case 4: if (! #line 887 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1261; /* vashrv2di3 */ case 5: if (! #line 887 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1262; /* vashrv4si3 */ case 6: if (! #line 887 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1263; /* vashrv8hi3 */ case 7: if (! #line 887 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1264; /* 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 (pattern116 (x3, E_SImode)) { case 0: if ( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 536; /* *sltu_sisi */ if (! #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 544; /* *sltu_sisi_mips16 */ case 1: if (( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 538; /* *sltu_disi */ if (!( #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 546; /* *sltu_disi_mips16 */ default: return -1; } case E_DImode: switch (pattern116 (x3, E_DImode)) { case 0: if (( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 540; /* *sltu_sidi */ if (!( #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 548; /* *sltu_sidi_mips16 */ case 1: if (( #line 6232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 542; /* *sltu_didi */ if (!( #line 6241 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 550; /* *sltu_didi_mips16 */ default: return -1; } case E_V2DImode: if (pattern12 (x3, E_V2DImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1379; /* msa_clt_u_d */ case E_V4SImode: if (pattern12 (x3, E_V4SImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1384; /* msa_clt_u_w */ case E_V8HImode: if (pattern12 (x3, E_V8HImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1389; /* msa_clt_u_h */ case E_V16QImode: if (pattern12 (x3, E_V16QImode) != 0 || ! #line 1248 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1394; /* 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 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 512; /* *sgtu_sisi */ if (!register_operand (operands[2], E_SImode) || ! #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 520; /* *sgtu_sisi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 514; /* *sgtu_disi */ if (!register_operand (operands[2], E_DImode) || !( #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 522; /* *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 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 516; /* *sgtu_sidi */ if (!register_operand (operands[2], E_SImode) || !( #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 524; /* *sgtu_sidi_mips16 */ case 1: if (reg_or_0_operand (operands[2], E_DImode) && ( #line 6205 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 518; /* *sgtu_didi */ if (!register_operand (operands[2], E_DImode) || !( #line 6214 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 526; /* *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 3960 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && ISA_HAS_TRUNC_W)) return 262; /* fix_truncdfsi2_insn */ if (pnum_clobbers == NULL || ! #line 3970 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && !ISA_HAS_TRUNC_W)) return -1; *pnum_clobbers = 1; return 263; /* fix_truncdfsi2_macro */ case 1: if ( #line 3997 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && ISA_HAS_TRUNC_W)) return 264; /* fix_truncsfsi2_insn */ if (pnum_clobbers == NULL || ! #line 4007 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !ISA_HAS_TRUNC_W)) return -1; *pnum_clobbers = 1; return 265; /* fix_truncsfsi2_macro */ default: return -1; } case E_DImode: switch (pattern104 (x3, E_DImode)) { case 0: if (! #line 4023 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 266; /* fix_truncdfdi2 */ case 1: if (! #line 4033 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 267; /* 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 1808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1495; /* fix_truncv2dfv2di2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SFmode) || ! #line 1808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1496; /* 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 3932 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 261; /* 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 2702 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1668; /* msa_fexupl_d */ case 0L: if (XWINT (x7, 0) != 1L || ! #line 2722 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1670; /* 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 4043 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 268; /* floatsidf2 */ case 1: if (! #line 4053 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 269; /* floatdidf2 */ default: return -1; } case E_SFmode: switch (pattern105 (x3, E_SFmode)) { case 0: if (! #line 4063 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 270; /* floatsisf2 */ case 1: if (! #line 4073 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_FLOAT64 && TARGET_DOUBLE_FLOAT)) return -1; return 271; /* 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 1639 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1461; /* floatv2div2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SImode) || ! #line 1639 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1462; /* 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 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 527; /* *sge_sisi */ case 1: if (!( #line 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 529; /* *sge_disi */ default: return -1; } case E_DImode: switch (pattern105 (x3, E_DImode)) { case 0: if (!( #line 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 531; /* *sge_sidi */ case 1: if (!( #line 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 533; /* *sge_didi */ default: return -1; } default: return -1; } case REG: case SUBREG: switch (pattern8 (x3)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 601; /* sge_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 605; /* sge_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 609; /* sge_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 613; /* 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 (pattern25 (x3)) { case 0: if (! #line 207 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1074; /* ssaddv4hi3 */ case 1: if (! #line 207 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1075; /* ssaddv8qi3 */ case 2: if (! #line 1001 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1291; /* ssaddv2di3 */ case 3: if (! #line 1001 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1292; /* ssaddv4si3 */ case 4: if (! #line 1001 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1293; /* ssaddv8hi3 */ case 5: if (! #line 1001 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1294; /* ssaddv16qi3 */ default: return -1; } case ABS: switch (pattern30 (x3)) { case 0: if (! #line 992 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1287; /* msa_adds_a_d */ case 1: if (! #line 992 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1288; /* msa_adds_a_w */ case 2: if (! #line 992 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1289; /* msa_adds_a_h */ case 3: if (! #line 992 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1290; /* 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 5875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH)) return -1; return 461; /* bswaphi2 */ case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || ! #line 5882 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH && ISA_HAS_ROR)) return -1; return 462; /* bswapsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 5893 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH)) return -1; return 463; /* 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; 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 3147 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (SFmode)) && #line 861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3147 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (DFmode)) && #line 862 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3147 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_abs == MIPS_IEEE_754_2008 || !HONOR_NANS (V2SFmode)) && #line 863 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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_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, 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 (pattern205 (x1)) { case 0: if (!( #line 5548 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_CPRESTORE_DIRECTIVE || operands[2] == pic_offset_table_rtx) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 427; /* potential_cprestore_si */ case 1: if (!( #line 5548 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_CPRESTORE_DIRECTIVE || operands[2] == pic_offset_table_rtx) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 428; /* potential_cprestore_di */ default: return -1; } case 86: switch (pattern186 (x1, 86)) { case 0: if (! #line 146 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 847; /* mips_addq_s_w */ case 1: if (! #line 146 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 848; /* mips_addq_s_ph */ case 2: if (! #line 146 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 849; /* mips_addu_s_qb */ default: return -1; } case 88: switch (pattern186 (x1, 88)) { case 0: if (! #line 170 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 852; /* mips_subq_s_w */ case 1: if (! #line 170 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 853; /* mips_subq_s_ph */ case 2: if (! #line 170 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 854; /* mips_subu_s_qb */ default: return -1; } case 89: if (pattern138 (x1, E_SImode, 184, 89, 2) != 0) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (pattern187 (x8, E_SImode) != 0 || ! #line 183 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 855; /* mips_addsc */ case 96: if (pattern188 (x1, 96, E_V2HImode, E_SImode) != 0 || ! #line 264 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 863; /* mips_precrq_rs_ph_w */ case 97: if (pattern188 (x1, 97, E_V4QImode, E_V2HImode) != 0 || ! #line 278 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 864; /* mips_precrqu_s_qb_ph */ case 108: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC || pattern125 (x7, 185, 108, 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 875; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 876; /* mips_shll_qb */ default: return -1; } case 109: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC || pattern125 (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 (pattern249 (x4)) { case 0: if (! #line 406 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 877; /* mips_shll_s_w */ case 1: if (! #line 406 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 878; /* mips_shll_s_ph */ default: return -1; } case 113: if (pattern190 (x1, pnum_clobbers, 113) != 0 || ! #line 487 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 883; /* mips_muleu_s_ph_qbl */ case 114: if (pattern190 (x1, pnum_clobbers, 114) != 0 || ! #line 500 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 884; /* mips_muleu_s_ph_qbr */ case 115: if (pnum_clobbers == NULL || pattern188 (x1, 115, E_V2HImode, E_V2HImode) != 0 || ! #line 514 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 885; /* mips_mulq_rs_ph */ case 116: if (pnum_clobbers == NULL || pattern188 (x1, 116, E_SImode, E_V2HImode) != 0 || ! #line 528 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 886; /* mips_muleq_s_w_phl */ case 117: if (pnum_clobbers == NULL || pattern188 (x1, 117, E_SImode, E_V2HImode) != 0 || ! #line 541 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 887; /* mips_muleq_s_w_phr */ case 143: if (pattern192 (x1, 143) != 0 || ! #line 888 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 917; /* mips_extr_w */ case 144: if (pattern192 (x1, 144) != 0 || ! #line 908 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 918; /* mips_extr_r_w */ case 145: if (pattern192 (x1, 145) != 0 || ! #line 928 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 919; /* mips_extr_rs_w */ case 146: if (pattern192 (x1, 146) != 0 || ! #line 949 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 920; /* mips_extr_s_h */ case 155: if (pattern194 (x1, 155) != 0 || ! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 954; /* mips_addu_s_ph */ case 160: if (pattern196 (x1, 160) != 0 || ! #line 166 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 959; /* mips_cmpgdu_eq_qb */ case 161: if (pattern196 (x1, 161) != 0 || ! #line 180 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 960; /* mips_cmpgdu_lt_qb */ case 162: if (pattern196 (x1, 162) != 0 || ! #line 194 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 961; /* mips_cmpgdu_le_qb */ case 170: if (pnum_clobbers == NULL || pattern194 (x1, 170) != 0 || ! #line 243 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 965; /* mips_mul_s_ph */ case 171: if (pattern197 (x1, pnum_clobbers, 171) != 0 || ! #line 256 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 966; /* mips_mulq_rs_w */ case 172: if (pnum_clobbers == NULL || pattern194 (x1, 172) != 0 || ! #line 269 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 967; /* mips_mulq_s_ph */ case 173: if (pattern197 (x1, pnum_clobbers, 173) != 0 || ! #line 282 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 968; /* mips_mulq_s_w */ case 184: if (pattern194 (x1, 184) != 0 || ! #line 416 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 977; /* mips_subu_ph */ case 185: if (pattern194 (x1, 185) != 0 || ! #line 428 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 978; /* mips_subu_s_ph */ default: return -1; } case 1: switch (XINT (x4, 1)) { case 30: if (pattern129 (x1) != 0) return -1; switch (pattern213 (x1)) { case 0: if (!( #line 7544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 704; /* tls_get_tp_si */ case 1: if (!( #line 7544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 705; /* tls_get_tp_di */ default: return -1; } case 93: 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) != 93 || 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 (pattern249 (x4)) { case 0: if (! #line 230 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 859; /* mips_absq_s_w */ case 1: if (! #line 230 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 860; /* mips_absq_s_ph */ default: return -1; } case 153: if (pattern138 (x1, E_V4QImode, 185, 153, 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 952; /* 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 90: if (pattern234 (x1, 90, 2, 184, E_SImode) != 0 || pattern253 (x7, E_SImode, 185) != 0 || ! #line 197 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 856; /* mips_addwc */ case 122: if (pattern236 (x1, 122, E_V2HImode) != 0 || ! #line 606 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 892; /* mips_dpaq_s_w_ph */ case 123: if (pattern236 (x1, 123, E_V2HImode) != 0 || ! #line 622 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 893; /* mips_dpsq_s_w_ph */ case 124: if (pattern236 (x1, 124, E_V2HImode) != 0 || ! #line 638 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 894; /* mips_mulsaq_s_w_ph */ case 125: if (pattern236 (x1, 125, E_SImode) != 0 || ! #line 654 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 895; /* mips_dpaq_sa_l_w */ case 126: if (pattern236 (x1, 126, E_SImode) != 0 || ! #line 670 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 896; /* mips_dpsq_sa_l_w */ case 127: if (pattern236 (x1, 127, E_V2HImode) != 0 || ! #line 686 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 897; /* mips_maq_s_w_phl */ case 128: if (pattern236 (x1, 128, E_V2HImode) != 0 || ! #line 701 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 898; /* mips_maq_s_w_phr */ case 129: if (pattern236 (x1, 129, E_V2HImode) != 0 || ! #line 717 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 899; /* mips_maq_sa_w_phl */ case 130: if (pattern236 (x1, 130, E_V2HImode) != 0 || ! #line 732 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 900; /* mips_maq_sa_w_phr */ case 147: if (pattern123 (x4) != 0 || XVECLEN (x8, 0) != 2 || XINT (x8, 1) != 147 || REGNO (x11) != 187 || pattern191 (x8) != 0 || ! #line 971 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 921; /* mips_extp */ case 150: if (pattern234 (x1, 150, 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 || pattern253 (x7, E_DImode, 182) != 0 || ! #line 1037 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 924; /* mips_mthlip */ case 198: if (pattern237 (x1, 198) != 0 || ! #line 566 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 991; /* mips_dpaqx_s_w_ph */ case 199: if (pattern237 (x1, 199) != 0 || ! #line 581 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 992; /* mips_dpaqx_sa_w_ph */ case 200: if (pattern237 (x1, 200) != 0 || ! #line 596 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 993; /* mips_dpsqx_s_w_ph */ case 201: if (pattern237 (x1, 201) != 0 || ! #line 611 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2 && !TARGET_64BIT)) return -1; return 994; /* mips_dpsqx_sa_w_ph */ default: return -1; } 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, 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 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 622; /* 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 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 623; /* 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 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) return -1; return 624; /* tablejump_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || ! #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) return -1; return 625; /* 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 (pattern227 (E_HImode) != 0 || ! #line 7690 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 718; /* *join2_load_storehi */ case E_SImode: if (pattern227 (E_SImode) != 0 || ! #line 7690 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 719; /* *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 7690 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed) && #line 805 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return 720; /* *join2_load_storesf */ if (!register_operand (operands[0], E_SFmode) || !movep_src_operand (operands[1], E_SFmode)) return -1; switch (pattern218 ()) { case 0: if (! #line 127 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1059; /* *movepsfsi */ case 1: if (! #line 127 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1060; /* *movepsfsf */ default: return -1; } case E_DFmode: if (pattern227 (E_DFmode) != 0 || !( #line 7690 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed) && #line 806 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 721; /* *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) != 58) 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 (pattern239 (x7, E_SImode) != 0 || ! #line 67 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 725; /* sync_compare_and_swapsi */ case E_DImode: if (pattern239 (x7, E_DImode) != 0 || !( #line 67 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 726; /* sync_compare_and_swapdi */ default: return -1; } case 4: if (XINT (x7, 1) != 59 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 727; /* 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 63: if (pnum_clobbers == NULL) return -1; x11 = XVECEXP (x7, 0, 2); switch (pattern254 (x11)) { case 0: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 735; /* sync_old_add_12 */ case 1: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 736; /* sync_old_sub_12 */ case 2: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 737; /* sync_old_ior_12 */ case 3: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 738; /* sync_old_xor_12 */ case 4: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 739; /* sync_old_and_12 */ case 5: if (! #line 307 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; *pnum_clobbers = 1; return 746; /* sync_old_nand_12 */ default: return -1; } case 65: x11 = XVECEXP (x7, 0, 2); operands[4] = x11; if (!reg_or_0_operand (operands[4], E_SImode) || ! #line 555 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 784; /* test_and_set_12 */ default: return -1; } case 1: switch (XINT (x7, 1)) { case 60: 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 (pattern241 (x7, E_SImode) != 0 || ! #line 383 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 750; /* sync_old_addsi */ case E_DImode: if (pattern241 (x7, E_DImode) != 0 || !( #line 383 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 751; /* 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 (pattern242 (x7, E_SImode) != 0 || ! #line 398 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 752; /* sync_old_subsi */ case E_DImode: if (pattern242 (x7, E_DImode) != 0 || !( #line 398 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 753; /* sync_old_subdi */ default: return -1; } case IOR: switch (pattern230 (x7)) { case 0: if (! #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 764; /* sync_old_iorsi */ case 1: if (!( #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 767; /* sync_old_iordi */ default: return -1; } case XOR: switch (pattern230 (x7)) { case 0: if (! #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 765; /* sync_old_xorsi */ case 1: if (!( #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 768; /* sync_old_xordi */ default: return -1; } case AND: switch (pattern230 (x7)) { case 0: if (! #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 766; /* sync_old_andsi */ case 1: if (!( #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 769; /* sync_old_anddi */ default: return -1; } case CONST_INT: case REG: case SUBREG: switch (pattern232 (x7)) { case 0: if (! #line 497 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 778; /* sync_old_nandsi */ case 1: if (!( #line 497 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 779; /* sync_old_nanddi */ default: return -1; } default: return -1; } case 61: x9 = XVECEXP (x7, 0, 0); switch (GET_CODE (x9)) { case IOR: switch (pattern230 (x7)) { case 0: if (! #line 472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 770; /* sync_new_iorsi */ case 1: if (!( #line 472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 773; /* sync_new_iordi */ default: return -1; } case XOR: switch (pattern230 (x7)) { case 0: if (! #line 472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 771; /* sync_new_xorsi */ case 1: if (!( #line 472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 774; /* sync_new_xordi */ default: return -1; } case AND: switch (pattern230 (x7)) { case 0: if (! #line 472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 772; /* sync_new_andsi */ case 1: if (!( #line 472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 775; /* sync_new_anddi */ default: return -1; } case CONST_INT: case REG: case SUBREG: switch (pattern232 (x7)) { case 0: if (! #line 511 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 780; /* sync_new_nandsi */ case 1: if (!( #line 511 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 781; /* sync_new_nanddi */ default: return -1; } default: return -1; } case 64: x9 = XVECEXP (x7, 0, 0); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern238 (x7, E_SImode) != 0 || ! #line 526 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 782; /* sync_lock_test_and_setsi */ case E_DImode: if (pattern238 (x7, E_DImode) != 0 || !( #line 526 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 783; /* sync_lock_test_and_setdi */ default: return -1; } default: return -1; } default: return -1; } 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, 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 (pattern206 (x1)) { case 0: if (!( #line 6808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 644; /* restore_gp_si */ case 1: if (!( #line 6808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 645; /* restore_gp_di */ default: return -1; } case 68: x6 = XVECEXP (x1, 0, 1); if (pattern121 (x6, 68) != 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 (pattern240 (x1, E_SImode) != 0 || ! #line 655 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (ISA_HAS_SWAP)) return -1; return 789; /* atomic_exchangesi_swap */ case E_DImode: if (pattern240 (x1, E_DImode) != 0 || !( #line 655 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (ISA_HAS_SWAP) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 790; /* atomic_exchangedi_swap */ default: return -1; } case 69: 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) != 69) 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 (pattern250 (x1, E_SImode) != 0 || ! #line 714 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (ISA_HAS_LDADD)) return -1; return 793; /* atomic_fetch_addsi_ldadd */ case E_DImode: if (pattern250 (x1, E_DImode) != 0 || !( #line 714 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (ISA_HAS_LDADD) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 794; /* atomic_fetch_adddi_ldadd */ default: return -1; } default: return -1; } case 3: if (XINT (x3, 1) != 63 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 730; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 731; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 732; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 733; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 734; /* 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 62: 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) != 62 || GET_MODE (x7) != E_SImode || !register_operand (operands[0], E_SImode) || !memory_operand (operands[1], E_SImode) || pattern235 (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 (pattern258 (x1) != 0 || ! #line 232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 740; /* sync_new_add_12 */ case MINUS: if (pattern258 (x1) != 0 || ! #line 232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 741; /* sync_new_sub_12 */ case IOR: if (pattern258 (x1) != 0 || ! #line 232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 742; /* sync_new_ior_12 */ case XOR: if (pattern258 (x1) != 0 || ! #line 232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 743; /* sync_new_xor_12 */ case AND: if (pattern258 (x1) != 0 || ! #line 232 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 744; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 747; /* sync_new_nand_12 */ default: return -1; } case 63: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 745; /* sync_nand_12 */ 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, 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 1833 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1903 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern162 (x11, E_DImode) != 0 || !register_operand (operands[0], E_DImode) || GET_MODE (x4) != E_DImode || !memory_operand (operands[1], E_DImode) || pattern252 (x8, E_DImode) != 0 || !( #line 413 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 755; /* 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 85: switch (GET_MODE (operands[0])) { case E_V2HImode: if (pattern88 (x4, E_V2HImode) != 0 || ! #line 134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 845; /* addv2hi3 */ case E_V4QImode: if (pattern88 (x4, E_V4QImode) != 0 || ! #line 134 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 846; /* addv4qi3 */ default: return -1; } case 154: 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 953; /* mips_addu_ph */ default: return -1; } 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; 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 1855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1918 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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) != 61) 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 (pattern248 (x1, E_SImode) != 0 || ! #line 429 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 756; /* sync_new_subsi */ case E_DImode: if (pattern248 (x1, E_DImode) != 0 || !( #line 429 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 757; /* sync_new_subdi */ default: return -1; } case UNSPEC: if (pattern125 (x8, 185, 87, 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 850; /* subv2hi3 */ case E_V4QImode: if (pattern88 (x4, E_V4QImode) != 0 || ! #line 158 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 851; /* subv4qi3 */ 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, 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 (pattern210 (x3, E_SImode) != 0) return -1; if ( #line 1652 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MUL3)) return 36; /* mulsi3_mul3 */ if (! #line 1700 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && TARGET_FIX_R4000)) return -1; return 40; /* mulsi3_r4000 */ case E_DImode: if (pattern210 (x3, E_DImode) != 0) return -1; if (( #line 1652 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 37; /* muldi3_mul3 */ if (!( #line 1700 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && TARGET_FIX_R4000) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 || pattern125 (x7, 185, 169, 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 964; /* mulv2hi3 */ default: return -1; } case SIGN_EXTEND: switch (pattern120 (x1, SIGN_EXTEND)) { case 0: if ( #line 2132 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMUL3)) return -1; return 59; /* mulsidi3_64bit_dmul */ case 1: if (! #line 2516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern120 (x1, ZERO_EXTEND)) { case 0: if (! #line 2132 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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_95 (x1, insn, pnum_clobbers); case MINUS: return recog_96 (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 2060 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern212 (x3, SIGN_EXTEND)) { case 0: if ( #line 2323 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)) return 67; /* smulsi3_highpart_internal */ if (! #line 2371 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; return 69; /* smulsi3_highpart_mulhi_internal */ case 1: if (! #line 2437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern212 (x3, ZERO_EXTEND)) { case 0: if ( #line 2323 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16)) return 68; /* umulsi3_highpart_internal */ if (! #line 2371 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULHI)) return -1; return 70; /* umulsi3_highpart_mulhi_internal */ case 1: if (! #line 2437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2386 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2386 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2897 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16)) return -1; return 135; /* *divmodsi4 */ case 1: if (!( #line 2897 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2962 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_MIPS16)) return -1; return 139; /* *udivmodsi4 */ case 1: if (!( #line 2962 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3970 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && !ISA_HAS_TRUNC_W)) return -1; return 263; /* fix_truncdfsi2_macro */ case E_SFmode: if (!register_operand (operands[1], E_SFmode) || !scratch_operand (operands[2], E_SFmode) || ! #line 4007 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && !ISA_HAS_TRUNC_W)) return -1; return 265; /* 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 4544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS && cse_not_expected)) return -1; return 290; /* *lea64 */ case UNSPEC: return recog_92 (x1, insn, pnum_clobbers); case CONST_INT: case CONST_DOUBLE: case CONST_VECTOR: case REG: case SUBREG: case MEM: return recog_93 (x1, insn, pnum_clobbers); case UNSPEC_VOLATILE: return recog_94 (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 (pattern215 (x7) != 0) return -1; if ( #line 6969 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SIBCALLS && SIBLING_CALL_P (insn))) return 654; /* sibcall_value_multiple_internal */ if (pnum_clobbers == NULL) return -1; *pnum_clobbers = 1; return 663; /* 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 659; /* 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 661; /* call_value_internal_direct */ default: return -1; } case SIGN_EXTEND: if (pattern87 (x1, SIGN_EXTEND) != 0 || ! #line 7753 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 722; /* *join2_loadhi */ case ZERO_EXTEND: if (pattern87 (x1, ZERO_EXTEND) != 0 || ! #line 7753 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && reload_completed)) return -1; return 723; /* *join2_loadhi */ case US_PLUS: switch (pattern89 (x1, 86)) { case 0: if (! #line 34 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1009; /* usadduqq3 */ case 1: if (! #line 34 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1010; /* usadduhq3 */ case 2: if (! #line 35 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1011; /* usadduha3 */ case 3: if (! #line 35 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1012; /* usaddv4uqq3 */ case 4: if (! #line 36 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1013; /* usaddv2uhq3 */ case 5: if (! #line 36 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1014; /* 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) != 86) return -1; x6 = XEXP (x3, 1); operands[2] = x6; switch (pattern243 (x1)) { case 0: if (! #line 71 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1015; /* ssaddhq3 */ case 1: if (! #line 71 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1016; /* ssaddsq3 */ case 2: if (! #line 71 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1017; /* ssaddha3 */ case 3: if (! #line 71 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1018; /* ssaddsa3 */ case 4: if (! #line 71 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1019; /* ssaddv2hq3 */ case 5: if (! #line 71 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1020; /* 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 || pattern251 (x1, 125) != 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 1050; /* ssmaddsqdq4 */ default: return -1; } case US_MINUS: switch (pattern89 (x1, 88)) { case 0: if (! #line 34 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1035; /* ussubuqq3 */ case 1: if (! #line 34 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1036; /* ussubuhq3 */ case 2: if (! #line 35 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1037; /* ussubuha3 */ case 3: if (! #line 35 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1038; /* ussubv4uqq3 */ case 4: if (! #line 36 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1039; /* ussubv2uhq3 */ case 5: if (! #line 36 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1040; /* 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) != 88) return -1; x5 = XEXP (x3, 0); operands[1] = x5; switch (pattern243 (x1)) { case 0: if (! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1041; /* sssubhq3 */ case 1: if (! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1042; /* sssubsq3 */ case 2: if (! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1043; /* sssubha3 */ case 3: if (! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1044; /* sssubsa3 */ case 4: if (! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1045; /* sssubv2hq3 */ case 5: if (! #line 102 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1046; /* 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 || pattern251 (x1, 126) != 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 1051; /* 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 || pattern125 (x7, 185, 115, 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 (pattern244 (x1)) { case 0: if (! #line 41 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 1047; /* ssmulv2hq3 */ case 1: if (! #line 41 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; *pnum_clobbers = 1; return 1048; /* ssmulhq3 */ case 2: if (! #line 42 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; *pnum_clobbers = 1; return 1049; /* ssmulsq3 */ 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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case SET: return recog_97 (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 5630 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 437; /* clear_hazard_si */ case E_DImode: if (!( #line 5630 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 438; /* clear_hazard_di */ default: return -1; } case RETURN: x4 = XVECEXP (x1, 0, 1); switch (GET_CODE (x4)) { case USE: x5 = XEXP (x4, 0); operands[0] = x5; if (!pmode_register_operand (operands[0], E_VOIDmode)) return -1; return 633; /* return_internal */ case UNSPEC_VOLATILE: if (XVECLEN (x4, 0) != 1) return -1; x6 = XVECEXP (x4, 0, 0); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; switch (XINT (x4, 1)) { case 44: return 635; /* mips_eret */ case 45: return 636; /* mips_deret */ default: return -1; } 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 634; /* 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 6759 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (! TARGET_64BIT)) return -1; return 642; /* eh_set_lr_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !scratch_operand (operands[1], E_DImode) || ! #line 6765 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; return 643; /* 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 655; /* 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 657; /* call_internal_direct */ 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; 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 1761 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_MADD_MSUB && !TARGET_MIPS16)) return 42; /* *mul_acc_si */ if (! #line 1790 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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) || pattern233 (x1) != 0) return -1; if ( #line 1876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MSAC)) return 46; /* *msac_using_macc */ if (! #line 2019 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern159 (x1, SIGN_EXTEND) != 0 || ! #line 2144 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern159 (x1, ZERO_EXTEND) != 0 || ! #line 2144 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 || pattern125 (x10, 185, 169, 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 964; /* mulv2hi3 */ default: return -1; } case DIV: switch (pattern93 (x1, MOD)) { case 0: if (! #line 2923 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2923 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2983 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && TARGET_MIPS16)) return -1; return 141; /* udivmodsi4_mips16 */ case 1: if (!( #line 2983 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 6499 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 626; /* casesi_internal_mips16_si */ case E_DImode: if (!scratch_operand (operands[2], E_DImode) || !scratch_operand (operands[3], E_DImode) || !( #line 6499 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_SHORT_JUMP_TABLES) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 627; /* casesi_internal_mips16_di */ default: return -1; } case 113: if (pattern160 (x1, 113, E_V2HImode, E_V4QImode) != 0 || ! #line 487 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 883; /* mips_muleu_s_ph_qbl */ case 114: if (pattern160 (x1, 114, E_V2HImode, E_V4QImode) != 0 || ! #line 500 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 884; /* mips_muleu_s_ph_qbr */ case 115: if (pattern160 (x1, 115, E_V2HImode, E_V2HImode) != 0 || ! #line 514 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 885; /* mips_mulq_rs_ph */ case 116: if (pattern160 (x1, 116, E_SImode, E_V2HImode) != 0 || ! #line 528 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 886; /* mips_muleq_s_w_phl */ case 117: if (pattern160 (x1, 117, E_SImode, E_V2HImode) != 0 || ! #line 541 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 887; /* mips_muleq_s_w_phr */ case 170: if (pattern161 (x1, E_V2HImode, 170) != 0 || ! #line 243 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 965; /* mips_mul_s_ph */ case 171: if (pattern161 (x1, E_SImode, 171) != 0 || ! #line 256 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 966; /* mips_mulq_rs_w */ case 172: if (pattern161 (x1, E_V2HImode, 172) != 0 || ! #line 269 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 967; /* mips_mulq_s_ph */ case 173: if (pattern161 (x1, E_SImode, 173) != 0 || ! #line 282 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dspr2.md" (ISA_HAS_DSPR2)) return -1; return 968; /* mips_mulq_s_w */ default: return -1; } case 1: x5 = XEXP (x2, 0); if (GET_CODE (x5) != REG || pattern122 (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 (pattern245 (x1, E_SImode) != 0 || !( #line 7608 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 710; /* *tls_get_tp_mips16_call_si */ case E_DImode: if (pattern245 (x1, E_DImode) != 0 || !( #line 7608 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 711; /* *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 7649 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 713; /* 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 7649 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 714; /* mips_get_fcsr_mips16_di */ default: return -1; } case 3: if (XINT (x3, 1) != 148 || pattern123 (x3) != 0) return -1; x10 = XVECEXP (x1, 0, 1); if (pattern124 (x10, 148, 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) != 148 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP && !TARGET_64BIT)) return -1; return 922; /* 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 (pattern216 (x1) != 0 || !call_insn_operand (operands[1], E_VOIDmode) || ! #line 7121 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 660; /* 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 661; /* 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 || pattern214 (x10) != 0) return -1; return 663; /* 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 (pattern124 (x10, 63, 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 (pattern254 (x19)) { case 0: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 735; /* sync_old_add_12 */ case 1: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 736; /* sync_old_sub_12 */ case 2: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 737; /* sync_old_ior_12 */ case 3: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 738; /* sync_old_xor_12 */ case 4: if (! #line 186 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 739; /* sync_old_and_12 */ case 5: if (! #line 307 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 746; /* 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 68: if (XINT (x13, 1) != 68 || XINT (x4, 1) != 68) return -1; x14 = XVECEXP (x13, 0, 0); operands[2] = x14; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern255 (x1, E_SImode) != 0 || ! #line 639 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_SWAP)) return -1; return 787; /* atomic_exchangesi_llsc */ case E_DImode: if (pattern255 (x1, E_DImode) != 0 || !( #line 639 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_SWAP) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 788; /* atomic_exchangedi_llsc */ default: return -1; } case 69: if (XINT (x13, 1) != 69) return -1; x14 = XVECEXP (x13, 0, 0); if (GET_CODE (x14) != PLUS || XINT (x4, 1) != 69) 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 (pattern256 (x1, E_SImode) != 0 || ! #line 696 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_LDADD)) return -1; return 791; /* atomic_fetch_addsi_llsc */ case E_DImode: if (pattern256 (x1, E_DImode) != 0 || !( #line 696 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC && !ISA_HAS_LDADD) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 792; /* 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 || pattern125 (x10, 185, 115, 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 (pattern244 (x1)) { case 0: if (! #line 41 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1047; /* ssmulv2hq3 */ case 1: if (! #line 41 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSP)) return -1; return 1048; /* ssmulhq3 */ case 2: if (! #line 42 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-fixed.md" (ISA_HAS_DSPR2)) return -1; return 1049; /* ssmulsq3 */ 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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case SET: return recog_99 (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 (pattern216 (x1) != 0 || !call_insn_operand (operands[0], E_VOIDmode) || ! #line 7043 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 656; /* call_split */ case CONST_INT: if (XWINT (x8, 0) != 1L || REGNO (x5) != 31 || !const_call_insn_operand (operands[0], E_VOIDmode)) return -1; return 657; /* 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 || pattern122 (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 7679 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 716; /* 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 7679 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 717; /* mips_set_fcsr_mips16_di */ case RETURN: x8 = XVECEXP (x1, 0, 1); if (pattern26 (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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS)) return -1; return 1056; /* jraddiusp */ 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, 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] || pattern126 (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 7077 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 658; /* 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 || pattern126 (x1) != 0) return -1; switch (pattern219 (x1)) { case 0: if (! #line 7155 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 662; /* call_value_direct_split */ case 1: if (! #line 7193 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SPLIT_CALLS)) return -1; return 664; /* call_value_multiple_split */ default: return -1; } case UNSPEC: if (pattern94 (x1) != 0) return -1; switch (pattern247 (x1)) { case 0: if (!( #line 7589 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 708; /* tls_get_tp_mips16_si */ case 1: if (!( #line 7589 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 709; /* tls_get_tp_mips16_di */ default: return -1; } case UNSPEC_VOLATILE: if (XVECLEN (x6, 0) != 2 || XINT (x6, 1) != 67) return -1; x4 = XVECEXP (x1, 0, 1); if (pattern121 (x4, 67) != 0) return -1; x8 = XVECEXP (x1, 0, 2); if (pattern217 (x8, 67, 3, UNSPEC_VOLATILE) != 0) return -1; x9 = XVECEXP (x1, 0, 3); if (GET_CODE (x9) != UNSPEC_VOLATILE || XVECLEN (x9, 0) != 3 || XINT (x9, 1) != 67) 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 (pattern259 (x1, E_SImode) != 0 || ! #line 594 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 785; /* atomic_compare_and_swapsi */ case E_DImode: if (pattern259 (x1, E_DImode) != 0 || !( #line 594 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 786; /* atomic_compare_and_swapdi */ default: return -1; } default: return -1; } 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, x23, x24, x25; rtx x26, x27, x28, x29, x30; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); if (pattern15 (x2, 151, 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 || pattern125 (x5, 183, 151, 2) != 0) return -1; x7 = XVECEXP (x1, 0, 2); if (pattern217 (x7, 151, 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) != 151 || 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) != 151 || 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) != 151 || 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-dsp.md" (ISA_HAS_DSP)) return -1; return 925; /* mips_wrdsp */ } 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; 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 7519 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 703; /* *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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_save_restore_pattern_p (true, operands[0]))) return 1052; /* *store_word_multiple */ if (!memory_operand (operands[2], E_SImode) || !register_operand (operands[1], E_SImode) || ! #line 35 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_save_restore_pattern_p (false, operands[0]))) return -1; return 1053; /* *load_word_multiple */ default: return -1; } } 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 = 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 3038 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3038 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 152; /* udivdi3 */ case 2: if (! #line 783 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1229; /* udivv2di3 */ case 3: if (! #line 783 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1230; /* udivv4si3 */ case 4: if (! #line 783 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1231; /* udivv8hi3 */ case 5: if (! #line 783 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1232; /* udivv16qi3 */ default: return -1; } case MOD: switch (pattern1 (x1)) { case 0: if (! #line 3054 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3054 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 155; /* moddi3 */ case 2: if (! #line 792 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1233; /* modv2di3 */ case 3: if (! #line 792 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1234; /* modv4si3 */ case 4: if (! #line 792 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1235; /* modv8hi3 */ case 5: if (! #line 792 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1236; /* modv16qi3 */ default: return -1; } case UMOD: switch (pattern1 (x1)) { case 0: if (! #line 3054 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3054 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_LOONGSON_2EF || TARGET_LOONGSON_EXT || ISA_HAS_R6DDIV) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 156; /* umoddi3 */ case 2: if (! #line 801 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1237; /* umodv2di3 */ case 3: if (! #line 801 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1238; /* umodv4si3 */ case 4: if (! #line 801 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1239; /* umodv8hi3 */ case 5: if (! #line 801 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1240; /* umodv16qi3 */ default: return -1; } case SQRT: return recog_74 (x1, insn, pnum_clobbers); case ABS: return recog_91 (x1, insn, pnum_clobbers); case CLZ: x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern17 (x2)) { case 0: if (! #line 3163 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CLZ_CLO)) return -1; return 169; /* clzsi2 */ case 1: if (!( #line 3163 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CLZ_CLO) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 170; /* clzdi2 */ case 2: if (! #line 2333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1573; /* clzv2di2 */ case 3: if (! #line 2333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1574; /* clzv4si2 */ case 4: if (! #line 2333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1575; /* clzv8hi2 */ case 5: if (! #line 2333 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1576; /* clzv16qi2 */ default: return -1; } case CTZ: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; switch (pattern2 (x2)) { case 0: if (! #line 3179 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CTZ_CTO)) return -1; return 171; /* ctzsi2 */ case 1: if (!( #line 3179 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CTZ_CTO) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 172; /* 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 (pattern17 (x2)) { case 0: if (! #line 3196 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_POP)) return -1; return 173; /* popcountsi2 */ case 1: if (!( #line 3196 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_POP) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 174; /* popcountdi2 */ case 2: if (! #line 2472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1589; /* popcountv2di2 */ case 3: if (! #line 2472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1590; /* popcountv4si2 */ case 4: if (! #line 2472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1591; /* popcountv8hi2 */ case 5: if (! #line 2472 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1592; /* popcountv16qi2 */ default: return -1; } case TRUNCATE: if (pattern34 (x2, E_DImode, E_SImode) != 0 || ! #line 3206 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_POP && TARGET_64BIT)) return -1; return 175; /* *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 3457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) return -1; return 197; /* 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 4292 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && UINTVAL (operands[2]) <= 32)) return -1; return 272; /* *extvsi */ case 1: if (!( #line 4292 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_EXTS && UINTVAL (operands[2]) <= 32) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 273; /* *extvdi */ default: return -1; } case ZERO_EXTRACT: switch (pattern3 (x1)) { case 0: if (! #line 4330 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[1], INTVAL (operands[2]), INTVAL (operands[3])))) return -1; return 274; /* *extzvsi */ case 1: if (!( #line 4330 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_use_ins_ext_p (operands[1], INTVAL (operands[2]), INTVAL (operands[3]))) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 275; /* *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 4604 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 295; /* *xgot_losi */ if (!immediate_operand (operands[2], E_SImode)) return -1; if (( #line 4666 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return 303; /* *lowsi */ if (!( #line 4675 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 305; /* *lowsi_mips16 */ case 1: if (got_disp_operand (operands[2], E_DImode) && ( #line 4604 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 296; /* *xgot_lodi */ if (!immediate_operand (operands[2], E_DImode)) return -1; if (( #line 4666 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return 304; /* *lowdi */ if (!( #line 4675 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 306; /* *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 (pattern24 (x2)) { case 0: if ( #line 5720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return 441; /* *ashlsi3 */ if (! #line 5751 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 450; /* *ashlsi3_mips16 */ case 1: if (( #line 5720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 444; /* *ashldi3 */ if (! #line 5779 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16)) return -1; return 455; /* *ashldi3_mips16 */ case 2: if (! #line 568 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1126; /* ashlv2si3 */ case 3: if (! #line 568 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1127; /* ashlv4hi3 */ case 4: if (! #line 902 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1265; /* vashlv2di3 */ case 5: if (! #line 902 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1266; /* vashlv4si3 */ case 6: if (! #line 902 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1267; /* vashlv8hi3 */ case 7: if (! #line 902 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1268; /* 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 5861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_ROR)) return -1; return 459; /* rotrsi3 */ case 1: if (!( #line 5861 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_ROR) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 460; /* 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 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16)) return -1; return 528; /* *sgeu_sisi */ case 1: if (!( #line 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 530; /* *sgeu_disi */ default: return -1; } case E_DImode: switch (pattern105 (x2, E_DImode)) { case 0: if (!( #line 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 532; /* *sgeu_sidi */ case 1: if (!( #line 6223 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16) && #line 799 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return -1; return 534; /* *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 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 567; /* sunordered_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 574; /* sunordered_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 581; /* sunordered_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 591; /* sunordered_df_using_ccf */ case 4: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1419; /* msa_fcun_d */ case 5: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1428; /* msa_fcun_w */ default: return -1; } case UNEQ: switch (pattern7 (x1)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 568; /* suneq_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 575; /* suneq_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 582; /* suneq_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 592; /* suneq_df_using_ccf */ case 4: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1425; /* msa_fcueq_d */ case 5: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1434; /* msa_fcueq_w */ default: return -1; } case UNLT: switch (pattern7 (x1)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 569; /* sunlt_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 576; /* sunlt_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 583; /* sunlt_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 593; /* sunlt_df_using_ccf */ case 4: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1427; /* msa_fcult_d */ case 5: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1436; /* msa_fcult_w */ default: return -1; } case UNLE: switch (pattern7 (x1)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 570; /* sunle_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 577; /* sunle_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 584; /* sunle_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 594; /* sunle_df_using_ccf */ case 4: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1426; /* msa_fcule_d */ case 5: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1435; /* 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 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 588; /* sordered_sf_using_ccf */ case 1: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 598; /* sordered_df_using_ccf */ case 2: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1420; /* msa_fcor_d */ case 3: if (! #line 1595 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1429; /* 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 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 589; /* sltgt_sf_using_ccf */ case 1: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 599; /* sltgt_df_using_ccf */ default: return -1; } case UNGE: switch (pattern9 (x1)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 603; /* sunge_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 607; /* sunge_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 611; /* sunge_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 615; /* sunge_df_using_ccf */ default: return -1; } case UNGT: switch (pattern9 (x1)) { case 0: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 604; /* sungt_sf_using_cc */ case 1: if (!(( #line 826 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 608; /* sungt_df_using_cc */ case 2: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) && #line 866 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT))) return -1; return 612; /* sungt_sf_using_ccf */ case 3: if (!(( #line 827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_CCF) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT)) && #line 867 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT))) return -1; return 616; /* 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 6957 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SIBCALLS && SIBLING_CALL_P (insn))) return 653; /* sibcall_value_internal */ if (pnum_clobbers == NULL) return -1; *pnum_clobbers = 1; return 659; /* 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 (pattern25 (x2)) { case 0: if (! #line 216 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1076; /* usaddv4hi3 */ case 1: if (! #line 216 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1077; /* usaddv8qi3 */ case 2: if (! #line 1010 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1295; /* usaddv2di3 */ case 3: if (! #line 1010 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1296; /* usaddv4si3 */ case 4: if (! #line 1010 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1297; /* usaddv8hi3 */ case 5: if (! #line 1010 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1298; /* usaddv16qi3 */ default: return -1; } case SMAX: switch (pattern11 (x1)) { case 0: if (! #line 415 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1112; /* smaxv4hi3 */ case 1: if (! #line 1720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1477; /* smaxv2df3 */ case 2: if (! #line 1720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1478; /* smaxv4sf3 */ case 3: if (! #line 2227 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1541; /* smaxv2di3 */ case 4: if (! #line 2227 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1542; /* smaxv4si3 */ case 5: if (! #line 2227 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1543; /* smaxv8hi3 */ case 6: if (! #line 2227 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1544; /* smaxv16qi3 */ default: return -1; } case UMAX: switch (pattern13 (x1)) { case 0: if (! #line 435 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1113; /* umaxv8qi3 */ case 1: if (! #line 2238 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1545; /* umaxv2di3 */ case 2: if (! #line 2238 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1546; /* umaxv4si3 */ case 3: if (! #line 2238 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1547; /* umaxv8hi3 */ case 4: if (! #line 2238 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1548; /* umaxv16qi3 */ default: return -1; } case SMIN: switch (pattern11 (x1)) { case 0: if (! #line 444 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1114; /* sminv4hi3 */ case 1: if (! #line 1741 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1481; /* sminv2df3 */ case 2: if (! #line 1741 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1482; /* sminv4sf3 */ case 3: if (! #line 2261 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1553; /* sminv2di3 */ case 4: if (! #line 2261 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1554; /* sminv4si3 */ case 5: if (! #line 2261 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1555; /* sminv8hi3 */ case 6: if (! #line 2261 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1556; /* sminv16qi3 */ default: return -1; } case UMIN: switch (pattern13 (x1)) { case 0: if (! #line 464 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1115; /* uminv8qi3 */ case 1: if (! #line 2272 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1557; /* uminv2di3 */ case 2: if (! #line 2272 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1558; /* uminv4si3 */ case 3: if (! #line 2272 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1559; /* uminv8hi3 */ case 4: if (! #line 2272 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1560; /* uminv16qi3 */ default: return -1; } case SS_MINUS: switch (pattern14 (x1)) { case 0: if (! #line 617 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1136; /* sssubv4hi3 */ case 1: if (! #line 617 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1137; /* sssubv8qi3 */ default: return -1; } case US_MINUS: switch (pattern14 (x1)) { case 0: if (! #line 626 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1138; /* ussubv4hi3 */ case 1: if (! #line 626 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson-mmi.md" (TARGET_HARD_FLOAT && TARGET_LOONGSON_MMI)) return -1; return 1139; /* 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 1649 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1463; /* floatunsv2div2df2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x2) != E_V4SFmode || !register_operand (operands[1], E_V4SImode) || ! #line 1649 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1464; /* 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 1817 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1497; /* fixuns_truncv2dfv2di2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x2) != E_V4SImode || !register_operand (operands[1], E_V4SFmode) || ! #line 1817 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1498; /* 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 54: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 107 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 1; /* ls2_alu1_turn_enabled_insn */ case 55: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 118 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 2; /* ls2_alu2_turn_enabled_insn */ case 56: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 129 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/loongson2ef.md" (TUNE_LOONGSON_2EF)) return -1; return 3; /* ls2_falu1_turn_enabled_insn */ case 57: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 140 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 6759 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (! TARGET_64BIT)) return -1; *pnum_clobbers = 1; return 642; /* eh_set_lr_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || ! #line 6765 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) return -1; *pnum_clobbers = 1; return 643; /* 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 1231 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1240 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1231 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_COND_TRAP && !ISA_HAS_COND_TRAPI) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return 7; /* *conditional_trap_regdi */ if (!arith_operand (operands[2], E_DImode) || !( #line 1240 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_COND_TRAPI) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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_104 (x1, insn, pnum_clobbers); case PARALLEL: switch (XVECLEN (x1, 0)) { case 2: res = recog_98 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case 3: res = recog_100 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case 4: res = recog_101 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case 6: res = recog_102 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; default: break; } if (XVECLEN (x1, 0) >= 1) { operands[0] = x1; res = recog_103 (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 || pattern162 (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 (pattern252 (x7, E_SImode) != 0 || ! #line 413 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/sync.md" (GENERATE_LL_SC)) return -1; return 754; /* 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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_load_store_pair_p (true, operands))) return -1; return 1054; /* *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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_load_store_pair_p (false, operands))) return 1055; /* *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 (pattern218 ()) { case 0: if (! #line 127 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1057; /* *movepsisi */ case 1: if (! #line 127 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/micromips.md" (TARGET_MICROMIPS && umips_movep_target_p (operands[0], operands[2]))) return -1; return 1058; /* *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 422; /* loadgp_blockage */ case CONST_INT: if (XWINT (x2, 0) != 0L) return -1; return 628; /* blockage */ default: return -1; } case 41: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || ! #line 5611 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (GENERATE_SYNC)) return -1; return 433; /* sync */ case 40: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!pmode_register_operand (operands[0], E_VOIDmode) || ! #line 5617 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SYNCI)) return -1; return 434; /* 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 5630 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 1; return 437; /* clear_hazard_si */ } if (!( #line 5630 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_SYNCI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 1; return 438; /* clear_hazard_di */ case 46: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 637; /* mips_di */ case 47: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 638; /* mips_ehb */ case 53: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 670; /* insn_pseudo */ case 33: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!const_int_operand (operands[0], E_VOIDmode)) return -1; return 697; /* consttable */ case 34: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!const_int_operand (operands[0], E_VOIDmode)) return -1; return 698; /* consttable_end */ case 36: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!consttable_operand (operands[0], E_VOIDmode) || ! #line 7483 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 701; /* consttable_float */ case 32: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!const_int_operand (operands[0], E_VOIDmode)) return -1; return 702; /* align */ case 13: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!register_operand (operands[0], E_SImode) || ! #line 7670 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT)) return -1; return 715; /* *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 7463 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16_PCREL_LOADS)) return 699; /* consttable_tls_reloc */ if (!consttable_operand (operands[0], E_VOIDmode) || ! #line 7471 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16)) return -1; return 700; /* 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 7679 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) { *pnum_clobbers = 2; return 716; /* mips_set_fcsr_mips16_si */ } if (!call_insn_operand (operands[0], E_DImode) || !( #line 7679 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_HARD_FLOAT_ABI && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; *pnum_clobbers = 2; return 717; /* mips_set_fcsr_mips16_di */ case 242: 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 2662 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA)) return -1; return 1664; /* msa_ctcmsa */ default: return -1; } default: return -1; } case RETURN: return 631; /* *return */ case SIMPLE_RETURN: return 632; /* *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 6936 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_SIBCALLS && SIBLING_CALL_P (insn))) return 652; /* sibcall_internal */ if (pnum_clobbers == NULL) return -1; *pnum_clobbers = 1; return 655; /* 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 7234 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_PREFETCH && TARGET_EXPLICIT_RELOCS)) return 665; /* 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 7261 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_PREFETCHX && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return -1; return 666; /* *prefetch_indexed_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !register_operand (operands[1], E_DImode) || !( #line 7261 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_PREFETCHX && TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode))) return -1; return 667; /* *prefetch_indexed_di */ default: return -1; } case CONST_INT: switch (XWINT (x1, 0)) { case 0L: return 668; /* nop */ case 1L: return 669; /* 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 4618 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4620 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4618 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_p[SYMBOL_GOT_DISP]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4620 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4686 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4686 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && TARGET_USE_GOT && reload_completed) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4793 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern163 (x2, E_SImode) != 0 || ! #line 4872 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern163 (x2, E_HImode) != 0 || ! #line 5013 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern163 (x2, E_QImode) != 0 || ! #line 5089 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1312 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1338 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1365 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1391 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern33 (x3) != 0 || !( #line 1433 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && TARGET_MIPS16) && #line 1435 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3741 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT) && #line 3746 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 3778 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 3778 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 3778 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3774 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 3778 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3819 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!ISA_HAS_SEB_SEH && !GENERATE_MIPS16E) && #line 3823 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern35 (x3)) { case 0: if (!( #line 3853 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_31 (insn, operands); case 1: if (!( #line 3853 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3855 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_32 (insn, operands); case 2: if (!( #line 3873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_33 (insn, operands); case 3: if (!( #line 3873 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3875 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_34 (insn, operands); case 4: if (!( #line 3893 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_MIPS16 && !ISA_HAS_EXTS) && #line 3895 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3579 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !ISA_HAS_EXT_INS) && #line 3583 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 3609 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern127 (x3, E_SImode) != 0 || !(( #line 4604 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4606 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_42 (insn, operands); case E_DImode: if (pattern127 (x3, E_DImode) != 0 || !(( #line 4604 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4606 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4490 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS) && #line 4492 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4571 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4588 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4590 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 4633 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4571 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4588 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && TARGET_XGOT) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4590 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4631 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_EXPLICIT_RELOCS && !mips_split_hi_p[SYMBOL_GOT_PAGE_OFST]) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 4633 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4910 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5270 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5270 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5270 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 844 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5270 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 845 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5270 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5270 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed && mips_split_move_insn_p (operands[0], operands[1], insn)) && #line 847 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5280 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5280 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5292 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5465 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_68 (insn, operands); case 1: if (!(( #line 5465 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_NEWABI) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5467 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_69 (insn, operands); case 2: if (!(( #line 5508 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5510 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_72 (insn, operands); case 3: if (!(( #line 5508 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_RTP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5510 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern40 (x3)) { case 0: if (!(( #line 5482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5484 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_70 (insn, operands); case 1: if (!(( #line 5482 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_current_loadgp_style () == LOADGP_ABSOLUTE) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5484 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern42 (x3)) { case 0: if (!(( #line 5529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 5531 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( mips_must_initialize_gp_p ()))) return NULL; return gen_split_74 (insn, operands); case 1: if (!(( #line 5529 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 5531 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 6825 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ())) return NULL; return gen_split_90 (insn, operands); case 1: if (!( #line 6825 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ()) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern28 (x3)) { case 0: if (! #line 5827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT))) return NULL; return gen_split_81 (insn, operands); default: return NULL; } case ASHIFTRT: switch (pattern28 (x3)) { case 0: if (! #line 5827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern27 (x3, E_SImode) != 0 || ! #line 5827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern27 (x3, E_DImode) != 0 || !( #line 5827 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16 && reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 8 && INTVAL (operands[2]) <= 16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5846 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_MIPS16) && #line 5848 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 5882 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_WSBH && ISA_HAS_ROR) && #line 5884 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( 1))) return NULL; return gen_split_85 (insn, operands); case 1: if (!( #line 5893 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && ISA_HAS_WSBH) && #line 5895 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern212 (x3, SIGN_EXTEND)) { case 0: if (!( #line 2323 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16) && #line 2325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed && !TARGET_FIX_R4000))) return NULL; return gen_split_11 (insn, operands); case 1: if (!( #line 2437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(SIGN_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120)) && #line 2441 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern212 (x3, ZERO_EXTEND)) { case 0: if (!( #line 2323 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MULT && !ISA_HAS_MULHI && !TARGET_MIPS16) && #line 2325 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed && !TARGET_FIX_R4000))) return NULL; return gen_split_12 (insn, operands); case 1: if (!( #line 2437 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DMULT && !TARGET_MIPS16 && !(ZERO_EXTEND == ZERO_EXTEND && TARGET_FIX_VR4120)) && #line 2441 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern205 (x1)) { case 0: if (!( #line 5550 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ()) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode))) return NULL; return gen_split_76 (insn, operands); case 1: if (!( #line 5550 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_must_initialize_gp_p ()) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2897 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16) && #line 2899 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return gen_split_15 (insn, operands); break; case 1: if ((( #line 2897 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && !TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 2899 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2964 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed)) return gen_split_19 (insn, operands); break; case 1: if (( #line 2964 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (!TARGET_MIPS16 && TARGET_EXPLICIT_RELOCS && ABI_HAS_64BIT_SYMBOLS && cse_not_expected) && #line 4549 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4708 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_split_symbol (operands[2], operands[1], MAX_MACHINE_MODE, NULL)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4708 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (mips_split_symbol (operands[2], operands[1], MAX_MACHINE_MODE, NULL)) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1820 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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) && pattern233 (x1) == 0 && ( #line 1876 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_MACC && !ISA_HAS_MSAC) && #line 1878 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2048 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2144 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT) && #line 2147 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 2144 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT && !TARGET_FIX_R4000 && !ISA_HAS_DMUL3 && !TARGET_MIPS16 && ISA_HAS_MULT) && #line 2147 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_10 (insn, operands); default: return NULL; } case DIV: switch (pattern128 (x1, MOD)) { case 0: if (!( #line 2923 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && #line 2925 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( cse_not_expected))) return NULL; return gen_split_17 (insn, operands); case 1: if (!(( #line 2923 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ISA_HAS_DDIV && !TARGET_FIX_VR4120 && TARGET_MIPS16) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_64BIT)) && #line 2925 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( cse_not_expected))) return NULL; return gen_split_18 (insn, operands); default: return NULL; } case UDIV: switch (pattern128 (x1, UMOD)) { case 0: if (! #line 2985 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (cse_not_expected)) return NULL; return gen_split_21 (insn, operands); case 1: if (!( #line 2985 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (cse_not_expected) && #line 795 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern219 (x1)) { case 0: if (! #line 7138 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (reload_completed && TARGET_SPLIT_CALLS)) return NULL; return gen_split_95 (insn, operands); case 1: if (! #line 7174 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7062 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern206 (x1)) { case 0: if (!(( #line 6808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 6810 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( epilogue_completed))) return NULL; return gen_split_88 (insn, operands); case 1: if (!(( #line 6808 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (TARGET_CALL_CLOBBERED_GP) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 6810 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7105 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 6771 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern26 (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 7030 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7502 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 || pattern129 (x1) != 0) return NULL; x3 = XEXP (x2, 0); operands[0] = x3; switch (pattern213 (x1)) { case 0: if (!(( #line 7544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 7546 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_98 (insn, operands); case 1: if (!(( #line 7544 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && !TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 7546 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern247 (x1)) { case 0: if (!(( #line 7589 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == SImode)) && #line 7591 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" ( reload_completed))) return NULL; return gen_split_100 (insn, operands); case 1: if (!(( #line 7589 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (HAVE_AS_TLS && TARGET_MIPS16) && #line 815 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (Pmode == DImode)) && #line 7591 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern76 (x6)) { case 0: if (!( #line 457 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_PAIRED_SINGLE_FLOAT) && #line 459 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-ps-3d.md" (TARGET_HARD_FLOAT && TARGET_MIPS3D) && #line 488 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 365 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA) && #line 367 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 365 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips-msa.md" (ISA_HAS_MSA) && #line 367 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 578 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 578 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern182 (x6, E_DImode, E_V2DImode) != 0 || !register_operand (operands[2], E_V2DImode) || ! #line 487 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 487 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 665 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1700 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1700 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1966 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1999 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern207 (E_HImode) != 0 || ! #line 7724 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7724 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern207 (E_SFmode) != 0 || !( #line 7724 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, SFmode, true)) && #line 805 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern207 (E_DFmode) != 0 || !( #line 7724 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, DFmode, true)) && #line 806 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1679 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 1720 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 4516 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern130 (x12, E_SFmode, E_SImode) == 0 && #line 116 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern130 (x12, E_SImode, E_SFmode) == 0 && #line 116 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern198 (E_HImode) != 0 || ! #line 7739 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7739 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7739 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, SFmode, false)) && #line 805 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 (pattern198 (E_DFmode) != 0 || !( #line 7739 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.3.0/gcc/config/mips/mips.md" (ENABLE_LD_ST_PAIRS && mips_load_store_bonding_p (operands, DFmode, false)) && #line 806 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7781 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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 7781 "/home/user/openwrt23.05.3-lime2024-ath79/build_dir/toolchain-mips_24kc_gcc-12.3.0_musl/gcc-12.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; } }