/* 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.c) 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_split_6 (rtx_insn *, rtx *); extern rtx_insn *gen_split_7 (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_peephole2_1 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_2 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_3 (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_peephole2_4 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_5 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_6 (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_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_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_split_102 (rtx_insn *, rtx *); extern rtx_insn *gen_split_103 (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 *); extern rtx_insn *gen_split_118 (rtx_insn *, rtx *); extern rtx_insn *gen_split_119 (rtx_insn *, rtx *); extern rtx_insn *gen_split_120 (rtx_insn *, rtx *); extern rtx_insn *gen_split_121 (rtx_insn *, rtx *); extern rtx_insn *gen_split_122 (rtx_insn *, rtx *); extern rtx_insn *gen_split_123 (rtx_insn *, rtx *); extern rtx_insn *gen_split_124 (rtx_insn *, rtx *); extern rtx_insn *gen_split_125 (rtx_insn *, rtx *); extern rtx_insn *gen_split_126 (rtx_insn *, rtx *); extern rtx_insn *gen_split_127 (rtx_insn *, rtx *); extern rtx_insn *gen_split_128 (rtx_insn *, rtx *); extern rtx_insn *gen_split_129 (rtx_insn *, rtx *); extern rtx_insn *gen_split_130 (rtx_insn *, rtx *); extern rtx_insn *gen_split_131 (rtx_insn *, rtx *); extern rtx_insn *gen_split_132 (rtx_insn *, rtx *); extern rtx_insn *gen_split_133 (rtx_insn *, rtx *); extern rtx_insn *gen_split_134 (rtx_insn *, rtx *); extern rtx_insn *gen_split_135 (rtx_insn *, rtx *); extern rtx_insn *gen_split_136 (rtx_insn *, rtx *); extern rtx_insn *gen_split_137 (rtx_insn *, rtx *); extern rtx_insn *gen_split_138 (rtx_insn *, rtx *); extern rtx_insn *gen_split_139 (rtx_insn *, rtx *); extern rtx_insn *gen_split_140 (rtx_insn *, rtx *); extern rtx_insn *gen_split_141 (rtx_insn *, rtx *); extern rtx_insn *gen_split_142 (rtx_insn *, rtx *); extern rtx_insn *gen_split_143 (rtx_insn *, rtx *); extern rtx_insn *gen_split_144 (rtx_insn *, rtx *); extern rtx_insn *gen_split_145 (rtx_insn *, rtx *); extern rtx_insn *gen_split_146 (rtx_insn *, rtx *); extern rtx_insn *gen_split_147 (rtx_insn *, rtx *); extern rtx_insn *gen_split_148 (rtx_insn *, rtx *); extern rtx_insn *gen_split_149 (rtx_insn *, rtx *); extern rtx_insn *gen_split_150 (rtx_insn *, rtx *); extern rtx_insn *gen_split_151 (rtx_insn *, rtx *); extern rtx_insn *gen_split_152 (rtx_insn *, rtx *); extern rtx_insn *gen_split_153 (rtx_insn *, rtx *); extern rtx_insn *gen_split_154 (rtx_insn *, rtx *); extern rtx_insn *gen_split_155 (rtx_insn *, rtx *); extern rtx_insn *gen_split_156 (rtx_insn *, rtx *); extern rtx_insn *gen_split_157 (rtx_insn *, rtx *); extern rtx_insn *gen_split_158 (rtx_insn *, rtx *); extern rtx_insn *gen_split_159 (rtx_insn *, rtx *); extern rtx_insn *gen_split_160 (rtx_insn *, rtx *); extern rtx_insn *gen_split_161 (rtx_insn *, rtx *); extern rtx_insn *gen_split_162 (rtx_insn *, rtx *); extern rtx_insn *gen_split_163 (rtx_insn *, rtx *); extern rtx_insn *gen_split_164 (rtx_insn *, rtx *); extern rtx_insn *gen_split_165 (rtx_insn *, rtx *); extern rtx_insn *gen_split_166 (rtx_insn *, rtx *); extern rtx_insn *gen_split_167 (rtx_insn *, rtx *); extern rtx_insn *gen_split_168 (rtx_insn *, rtx *); extern rtx_insn *gen_split_169 (rtx_insn *, rtx *); extern rtx_insn *gen_split_170 (rtx_insn *, rtx *); extern rtx_insn *gen_split_171 (rtx_insn *, rtx *); extern rtx_insn *gen_split_172 (rtx_insn *, rtx *); extern rtx_insn *gen_split_173 (rtx_insn *, rtx *); extern rtx_insn *gen_split_174 (rtx_insn *, rtx *); extern rtx_insn *gen_split_175 (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_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_peephole2_23 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_24 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_25 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_26 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_27 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_28 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_29 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_30 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_31 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_32 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_33 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_34 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_35 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_36 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_37 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_38 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_39 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_40 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_41 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_42 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_43 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_44 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_45 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_46 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_47 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_48 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_49 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_50 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_51 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_52 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_53 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_54 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_55 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_56 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_57 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_58 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_59 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_60 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_61 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_62 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_63 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_64 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_65 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_66 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_67 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_68 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_69 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_70 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_71 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_72 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_73 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_74 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_75 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_76 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_77 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_78 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_79 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_80 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_81 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_82 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_83 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_84 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_85 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_86 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_87 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_88 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_89 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_90 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_91 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_92 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_93 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_94 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_95 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_96 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_97 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_98 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_99 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_100 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_101 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_102 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_103 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_104 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_105 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_106 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_107 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_108 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_109 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_110 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_111 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_112 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_113 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_114 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_115 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_116 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_117 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_118 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_119 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_120 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_121 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_122 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_123 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_124 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_125 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_126 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_127 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_128 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_129 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_130 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_131 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_132 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_133 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_134 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_135 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_136 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_137 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_138 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_139 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_140 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_141 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_142 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_143 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_144 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_145 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_146 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_147 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_148 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_149 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_150 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_151 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_152 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_153 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_154 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_155 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_156 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_157 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_158 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_159 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_160 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_161 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_162 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_163 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_164 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_165 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_166 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_167 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_168 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_169 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_170 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_171 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_172 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_173 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_174 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_175 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_176 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_177 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_178 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_179 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_180 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_181 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_182 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_183 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_184 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_185 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_186 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_187 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_188 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_189 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_190 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_191 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_192 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_193 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_194 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_195 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_196 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_197 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_198 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_199 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_200 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_201 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_202 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_203 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_204 (rtx_insn *, rtx *); extern rtx_insn *gen_peephole2_205 (rtx_insn *, rtx *); extern rtx_insn *gen_split_176 (rtx_insn *, rtx *); extern rtx_insn *gen_split_177 (rtx_insn *, rtx *); extern rtx_insn *gen_split_178 (rtx_insn *, rtx *); extern rtx_insn *gen_split_179 (rtx_insn *, rtx *); extern rtx_insn *gen_split_180 (rtx_insn *, rtx *); extern rtx_insn *gen_split_181 (rtx_insn *, rtx *); extern rtx_insn *gen_split_182 (rtx_insn *, rtx *); extern rtx_insn *gen_split_183 (rtx_insn *, rtx *); extern rtx_insn *gen_split_184 (rtx_insn *, rtx *); extern rtx_insn *gen_split_185 (rtx_insn *, rtx *); extern rtx_insn *gen_split_186 (rtx_insn *, rtx *); extern rtx_insn *gen_split_187 (rtx_insn *, rtx *); extern rtx_insn *gen_split_188 (rtx_insn *, rtx *); extern rtx_insn *gen_split_189 (rtx_insn *, rtx *); extern rtx_insn *gen_split_190 (rtx_insn *, rtx *); extern rtx_insn *gen_split_191 (rtx_insn *, rtx *); extern rtx_insn *gen_split_192 (rtx_insn *, rtx *); extern rtx_insn *gen_split_193 (rtx_insn *, rtx *); extern rtx_insn *gen_split_194 (rtx_insn *, rtx *); extern rtx_insn *gen_split_195 (rtx_insn *, rtx *); extern rtx_insn *gen_split_196 (rtx_insn *, rtx *); extern rtx_insn *gen_split_197 (rtx_insn *, rtx *); extern rtx_insn *gen_split_198 (rtx_insn *, rtx *); extern rtx_insn *gen_split_199 (rtx_insn *, rtx *); extern rtx_insn *gen_split_200 (rtx_insn *, rtx *); extern rtx_insn *gen_split_201 (rtx_insn *, rtx *); extern rtx_insn *gen_split_202 (rtx_insn *, rtx *); extern rtx_insn *gen_split_203 (rtx_insn *, rtx *); extern rtx_insn *gen_split_204 (rtx_insn *, rtx *); extern rtx_insn *gen_split_205 (rtx_insn *, rtx *); extern rtx_insn *gen_split_206 (rtx_insn *, rtx *); extern rtx_insn *gen_split_207 (rtx_insn *, rtx *); extern rtx_insn *gen_split_208 (rtx_insn *, rtx *); extern rtx_insn *gen_split_209 (rtx_insn *, rtx *); extern rtx_insn *gen_split_210 (rtx_insn *, rtx *); extern rtx_insn *gen_split_211 (rtx_insn *, rtx *); extern rtx_insn *gen_split_212 (rtx_insn *, rtx *); extern rtx_insn *gen_split_213 (rtx_insn *, rtx *); extern rtx_insn *gen_split_214 (rtx_insn *, rtx *); extern rtx_insn *gen_split_215 (rtx_insn *, rtx *); extern rtx_insn *gen_split_216 (rtx_insn *, rtx *); extern rtx_insn *gen_split_217 (rtx_insn *, rtx *); extern rtx_insn *gen_split_218 (rtx_insn *, rtx *); extern rtx_insn *gen_split_219 (rtx_insn *, rtx *); extern rtx_insn *gen_split_220 (rtx_insn *, rtx *); extern rtx_insn *gen_split_221 (rtx_insn *, rtx *); extern rtx_insn *gen_split_222 (rtx_insn *, rtx *); extern rtx_insn *gen_split_223 (rtx_insn *, rtx *); extern rtx_insn *gen_split_224 (rtx_insn *, rtx *); extern rtx_insn *gen_split_225 (rtx_insn *, rtx *); extern rtx_insn *gen_split_226 (rtx_insn *, rtx *); extern rtx_insn *gen_split_227 (rtx_insn *, rtx *); extern rtx_insn *gen_split_228 (rtx_insn *, rtx *); extern rtx_insn *gen_split_229 (rtx_insn *, rtx *); extern rtx_insn *gen_split_230 (rtx_insn *, rtx *); extern rtx_insn *gen_split_231 (rtx_insn *, rtx *); extern rtx_insn *gen_split_232 (rtx_insn *, rtx *); extern rtx_insn *gen_split_233 (rtx_insn *, rtx *); extern rtx_insn *gen_split_234 (rtx_insn *, rtx *); extern rtx_insn *gen_split_235 (rtx_insn *, rtx *); extern rtx_insn *gen_split_236 (rtx_insn *, rtx *); extern rtx_insn *gen_split_237 (rtx_insn *, rtx *); extern rtx_insn *gen_split_238 (rtx_insn *, rtx *); extern rtx_insn *gen_split_239 (rtx_insn *, rtx *); extern rtx_insn *gen_split_240 (rtx_insn *, rtx *); extern rtx_insn *gen_split_241 (rtx_insn *, rtx *); extern rtx_insn *gen_split_242 (rtx_insn *, rtx *); extern rtx_insn *gen_split_243 (rtx_insn *, rtx *); extern rtx_insn *gen_split_244 (rtx_insn *, rtx *); extern rtx_insn *gen_split_245 (rtx_insn *, rtx *); extern rtx_insn *gen_split_246 (rtx_insn *, rtx *); extern rtx_insn *gen_split_247 (rtx_insn *, rtx *); extern rtx_insn *gen_split_248 (rtx_insn *, rtx *); extern rtx_insn *gen_split_249 (rtx_insn *, rtx *); extern rtx_insn *gen_split_250 (rtx_insn *, rtx *); extern rtx_insn *gen_split_251 (rtx_insn *, rtx *); extern rtx_insn *gen_split_252 (rtx_insn *, rtx *); extern rtx_insn *gen_split_253 (rtx_insn *, rtx *); extern rtx_insn *gen_split_254 (rtx_insn *, rtx *); extern rtx_insn *gen_split_255 (rtx_insn *, rtx *); extern rtx_insn *gen_split_256 (rtx_insn *, rtx *); extern rtx_insn *gen_split_257 (rtx_insn *, rtx *); extern rtx_insn *gen_split_258 (rtx_insn *, rtx *); extern rtx_insn *gen_split_259 (rtx_insn *, rtx *); extern rtx_insn *gen_split_260 (rtx_insn *, rtx *); extern rtx_insn *gen_split_261 (rtx_insn *, rtx *); extern rtx_insn *gen_split_262 (rtx_insn *, rtx *); extern rtx_insn *gen_split_263 (rtx_insn *, rtx *); extern rtx_insn *gen_split_264 (rtx_insn *, rtx *); extern rtx_insn *gen_split_265 (rtx_insn *, rtx *); extern rtx_insn *gen_split_266 (rtx_insn *, rtx *); extern rtx_insn *gen_split_267 (rtx_insn *, rtx *); extern rtx_insn *gen_split_268 (rtx_insn *, rtx *); extern rtx_insn *gen_split_269 (rtx_insn *, rtx *); extern rtx_insn *gen_split_270 (rtx_insn *, rtx *); extern rtx_insn *gen_split_271 (rtx_insn *, rtx *); extern rtx_insn *gen_split_272 (rtx_insn *, rtx *); extern rtx_insn *gen_split_273 (rtx_insn *, rtx *); extern rtx_insn *gen_split_274 (rtx_insn *, rtx *); extern rtx_insn *gen_split_275 (rtx_insn *, rtx *); extern rtx_insn *gen_split_276 (rtx_insn *, rtx *); extern rtx_insn *gen_split_277 (rtx_insn *, rtx *); extern rtx_insn *gen_split_278 (rtx_insn *, rtx *); extern rtx_insn *gen_split_279 (rtx_insn *, rtx *); extern rtx_insn *gen_split_280 (rtx_insn *, rtx *); extern rtx_insn *gen_split_281 (rtx_insn *, rtx *); extern rtx_insn *gen_split_282 (rtx_insn *, rtx *); extern rtx_insn *gen_split_283 (rtx_insn *, rtx *); extern rtx_insn *gen_split_284 (rtx_insn *, rtx *); extern rtx_insn *gen_split_285 (rtx_insn *, rtx *); extern rtx_insn *gen_split_286 (rtx_insn *, rtx *); extern rtx_insn *gen_split_287 (rtx_insn *, rtx *); extern rtx_insn *gen_split_288 (rtx_insn *, rtx *); extern rtx_insn *gen_split_289 (rtx_insn *, rtx *); extern rtx_insn *gen_split_290 (rtx_insn *, rtx *); extern rtx_insn *gen_split_291 (rtx_insn *, rtx *); extern rtx_insn *gen_split_292 (rtx_insn *, rtx *); extern rtx_insn *gen_split_293 (rtx_insn *, rtx *); extern rtx_insn *gen_split_294 (rtx_insn *, rtx *); extern rtx_insn *gen_split_295 (rtx_insn *, rtx *); extern rtx_insn *gen_split_296 (rtx_insn *, rtx *); extern rtx_insn *gen_split_297 (rtx_insn *, rtx *); extern rtx_insn *gen_split_298 (rtx_insn *, rtx *); extern rtx_insn *gen_split_299 (rtx_insn *, rtx *); extern rtx_insn *gen_split_300 (rtx_insn *, rtx *); extern rtx_insn *gen_split_301 (rtx_insn *, rtx *); extern rtx_insn *gen_split_302 (rtx_insn *, rtx *); extern rtx_insn *gen_split_303 (rtx_insn *, rtx *); extern rtx_insn *gen_split_304 (rtx_insn *, rtx *); extern rtx_insn *gen_split_305 (rtx_insn *, rtx *); extern rtx_insn *gen_split_306 (rtx_insn *, rtx *); extern rtx_insn *gen_split_307 (rtx_insn *, rtx *); extern rtx_insn *gen_split_308 (rtx_insn *, rtx *); extern rtx_insn *gen_split_309 (rtx_insn *, rtx *); extern rtx_insn *gen_split_310 (rtx_insn *, rtx *); extern rtx_insn *gen_split_311 (rtx_insn *, rtx *); extern rtx_insn *gen_split_312 (rtx_insn *, rtx *); extern rtx_insn *gen_split_313 (rtx_insn *, rtx *); extern rtx_insn *gen_split_314 (rtx_insn *, rtx *); extern rtx_insn *gen_split_315 (rtx_insn *, rtx *); extern rtx_insn *gen_split_316 (rtx_insn *, rtx *); extern rtx_insn *gen_split_317 (rtx_insn *, rtx *); extern rtx_insn *gen_split_318 (rtx_insn *, rtx *); extern rtx_insn *gen_split_319 (rtx_insn *, rtx *); extern rtx_insn *gen_split_320 (rtx_insn *, rtx *); extern rtx_insn *gen_split_321 (rtx_insn *, rtx *); extern rtx_insn *gen_split_322 (rtx_insn *, rtx *); extern rtx_insn *gen_split_323 (rtx_insn *, rtx *); extern rtx_insn *gen_split_324 (rtx_insn *, rtx *); extern rtx_insn *gen_split_325 (rtx_insn *, rtx *); extern rtx_insn *gen_split_326 (rtx_insn *, rtx *); extern rtx_insn *gen_split_327 (rtx_insn *, rtx *); extern rtx_insn *gen_split_328 (rtx_insn *, rtx *); extern rtx_insn *gen_split_329 (rtx_insn *, rtx *); extern rtx_insn *gen_split_330 (rtx_insn *, rtx *); extern rtx_insn *gen_split_331 (rtx_insn *, rtx *); extern rtx_insn *gen_split_332 (rtx_insn *, rtx *); extern rtx_insn *gen_split_333 (rtx_insn *, rtx *); extern rtx_insn *gen_split_334 (rtx_insn *, rtx *); extern rtx_insn *gen_split_335 (rtx_insn *, rtx *); extern rtx_insn *gen_split_336 (rtx_insn *, rtx *); extern rtx_insn *gen_split_337 (rtx_insn *, rtx *); extern rtx_insn *gen_split_338 (rtx_insn *, rtx *); extern rtx_insn *gen_split_339 (rtx_insn *, rtx *); extern rtx_insn *gen_split_340 (rtx_insn *, rtx *); extern rtx_insn *gen_split_341 (rtx_insn *, rtx *); extern rtx_insn *gen_split_342 (rtx_insn *, rtx *); extern rtx_insn *gen_split_343 (rtx_insn *, rtx *); extern rtx_insn *gen_split_344 (rtx_insn *, rtx *); extern rtx_insn *gen_split_345 (rtx_insn *, rtx *); extern rtx_insn *gen_split_346 (rtx_insn *, rtx *); extern rtx_insn *gen_split_347 (rtx_insn *, rtx *); extern rtx_insn *gen_split_348 (rtx_insn *, rtx *); extern rtx_insn *gen_split_349 (rtx_insn *, rtx *); extern rtx_insn *gen_split_350 (rtx_insn *, rtx *); extern rtx_insn *gen_split_351 (rtx_insn *, rtx *); extern rtx_insn *gen_split_352 (rtx_insn *, rtx *); extern rtx_insn *gen_split_353 (rtx_insn *, rtx *); extern rtx_insn *gen_split_354 (rtx_insn *, rtx *); extern rtx_insn *gen_split_355 (rtx_insn *, rtx *); extern rtx_insn *gen_split_356 (rtx_insn *, rtx *); extern rtx_insn *gen_split_357 (rtx_insn *, rtx *); extern rtx_insn *gen_split_358 (rtx_insn *, rtx *); extern rtx_insn *gen_split_359 (rtx_insn *, rtx *); extern rtx_insn *gen_split_360 (rtx_insn *, rtx *); extern rtx_insn *gen_split_361 (rtx_insn *, rtx *); extern rtx_insn *gen_split_362 (rtx_insn *, rtx *); extern rtx_insn *gen_split_363 (rtx_insn *, rtx *); extern rtx_insn *gen_split_364 (rtx_insn *, rtx *); extern rtx_insn *gen_split_365 (rtx_insn *, rtx *); extern rtx_insn *gen_split_366 (rtx_insn *, rtx *); extern rtx_insn *gen_split_367 (rtx_insn *, rtx *); extern rtx_insn *gen_split_368 (rtx_insn *, rtx *); extern rtx_insn *gen_split_369 (rtx_insn *, rtx *); extern rtx_insn *gen_split_370 (rtx_insn *, rtx *); extern rtx_insn *gen_split_371 (rtx_insn *, rtx *); extern rtx_insn *gen_split_372 (rtx_insn *, rtx *); extern rtx_insn *gen_split_373 (rtx_insn *, rtx *); static int pattern0 (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; 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 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) 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_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode)) return -1; return 3; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode)) return -1; return 4; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode)) return -1; return 5; case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode)) return -1; return 6; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode)) return -1; return 7; default: return -1; } } static int pattern1 (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 pattern2 (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 pattern1 (x3); /* [-1, 1] */ } static int pattern3 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_QImode) return -1; x3 = XEXP (x2, 0); operands[2] = x3; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x4 = XEXP (x2, 1); operands[3] = x4; if (!register_operand (operands[3], E_QImode)) return -1; return pattern1 (x1); /* [-1, 1] */ } static int pattern4 (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) || !aarch64_simd_rshift_imm (operands[2], i1)) return -1; return 0; } static int pattern5 (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); switch (GET_CODE (x5)) { case CONST_INT: case REG: case SUBREG: return 0; case MINUS: res = pattern3 (x3); if (res >= 0) return res + 1; /* [1, 2] */ return -1; case CONST_VECTOR: case CONST: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern4 (x3, E_V8QImode) != 0) return -1; return 3; case E_V16QImode: if (pattern4 (x3, E_V16QImode) != 0) return -1; return 4; case E_V4HImode: if (pattern4 (x3, E_V4HImode) != 0) return -1; return 5; case E_V8HImode: if (pattern4 (x3, E_V8HImode) != 0) return -1; return 6; case E_V2SImode: if (pattern4 (x3, E_V2SImode) != 0) return -1; return 7; case E_V4SImode: if (pattern4 (x3, E_V4SImode) != 0) return -1; return 8; case E_V2DImode: if (pattern4 (x3, E_V2DImode) != 0) return -1; return 9; case E_VNx16QImode: if (pattern4 (x3, E_VNx16QImode) != 0) return -1; return 10; case E_VNx8HImode: if (pattern4 (x3, E_VNx8HImode) != 0) return -1; return 11; case E_VNx4SImode: if (pattern4 (x3, E_VNx4SImode) != 0) return -1; return 12; case E_VNx2DImode: if (pattern4 (x3, E_VNx2DImode) != 0) return -1; return 13; default: return -1; } default: return -1; } } static int pattern6 (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); switch (GET_MODE (x2)) { case E_HFmode: if (!register_operand (operands[1], E_HFmode)) return -1; return 0; case E_SFmode: if (!register_operand (operands[1], E_SFmode)) return -1; return 1; case E_DFmode: if (!register_operand (operands[1], E_DFmode)) return -1; return 2; default: return -1; } } static int pattern7 (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 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern8 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XVECEXP (x2, 0, 0); operands[1] = x3; switch (GET_MODE (operands[0])) { case E_SImode: return pattern6 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern6 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; case E_V4HImode: if (pattern7 (x1, E_V4HFmode, E_V4HImode) != 0) return -1; return 6; case E_V8HImode: if (pattern7 (x1, E_V8HFmode, E_V8HImode) != 0) return -1; return 7; case E_V2SImode: if (pattern7 (x1, E_V2SFmode, E_V2SImode) != 0) return -1; return 8; case E_V4SImode: if (pattern7 (x1, E_V4SFmode, E_V4SImode) != 0) return -1; return 9; case E_V2DImode: if (pattern7 (x1, E_V2DFmode, E_V2DImode) != 0) return -1; return 10; case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode || GET_MODE (x2) != E_HFmode || !register_operand (operands[1], E_HFmode)) return -1; return 11; default: return -1; } } static int pattern9 (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], i2) || GET_MODE (x1) != i2) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2) return -1; x3 = XVECEXP (x2, 0, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1) || !aarch64_fp_vec_pow2 (operands[2], i1)) return -1; return 0; } static int pattern10 (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); switch (GET_MODE (x2)) { case E_SFmode: if (!register_operand (operands[1], E_SFmode) || !aarch64_fp_pow2 (operands[2], E_SFmode)) return -1; return 0; case E_DFmode: if (!register_operand (operands[1], E_DFmode) || !aarch64_fp_pow2 (operands[2], E_DFmode)) return -1; return 1; default: return -1; } } static int pattern11 (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 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case UNSPEC: if (XVECLEN (x4, 0) != 1) return -1; switch (XINT (x4, 1)) { case 23: x5 = XVECEXP (x4, 0, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: return pattern8 (x3); /* [-1, 11] */ case MULT: x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x5, 1); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern9 (x3, E_V2SFmode, E_V2SImode) != 0) return -1; return 12; case E_V4SImode: if (pattern9 (x3, E_V4SFmode, E_V4SImode) != 0) return -1; return 13; case E_V2DImode: if (pattern9 (x3, E_V2DFmode, E_V2DImode) != 0) return -1; return 14; default: return -1; } default: return -1; } case 21: res = pattern8 (x3); if (res >= 0) return res + 15; /* [15, 26] */ return -1; case 19: res = pattern8 (x3); if (res >= 0) return res + 27; /* [27, 38] */ return -1; case 17: res = pattern8 (x3); if (res >= 0) return res + 39; /* [39, 50] */ return -1; case 20: res = pattern8 (x3); if (res >= 0) return res + 51; /* [51, 62] */ return -1; default: return -1; } case MULT: x8 = XEXP (x4, 0); operands[1] = x8; x9 = XEXP (x4, 1); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_SImode: res = pattern10 (x3, E_SImode); if (res >= 0) return res + 63; /* [63, 64] */ return -1; case E_DImode: res = pattern10 (x3, E_DImode); if (res >= 0) return res + 65; /* [65, 66] */ return -1; 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) return -1; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode)) return -1; return 67; case E_HFmode: if (!register_operand (operands[1], E_HFmode)) return -1; return 68; case E_DFmode: if (!register_operand (operands[1], E_DFmode)) return -1; return 69; default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return -1; switch (GET_MODE (operands[1])) { case E_DFmode: if (!register_operand (operands[1], E_DFmode)) return -1; return 70; case E_HFmode: if (!register_operand (operands[1], E_HFmode)) return -1; return 71; case E_SFmode: if (!register_operand (operands[1], E_SFmode)) return -1; return 72; default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !register_operand (operands[1], E_HFmode)) return -1; return 73; default: return -1; } default: return -1; } } static int pattern12 (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; switch (GET_MODE (operands[0])) { case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode) 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; } case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode) return -1; switch (GET_MODE (operands[1])) { case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 2; case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 3; default: return -1; } case E_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode) return -1; switch (GET_MODE (operands[1])) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 4; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; return 5; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 6; default: return -1; } case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HImode)) return -1; return 7; case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HImode)) return -1; return 8; case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SImode)) return -1; return 9; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SImode)) return -1; return 10; case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DImode)) return -1; return 11; default: return -1; } } static int pattern13 (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 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_SFmode: return pattern13 (x3, E_SFmode); /* [-1, 0] */ case E_DFmode: if (pattern13 (x3, E_DFmode) != 0) return -1; return 1; case E_V8QImode: if (pattern13 (x3, E_V8QImode) != 0) return -1; return 2; case E_V16QImode: if (pattern13 (x3, E_V16QImode) != 0) return -1; return 3; case E_V4HImode: if (pattern13 (x3, E_V4HImode) != 0) return -1; return 4; case E_V8HImode: if (pattern13 (x3, E_V8HImode) != 0) return -1; return 5; case E_V2SImode: if (pattern13 (x3, E_V2SImode) != 0) return -1; return 6; case E_V4SImode: if (pattern13 (x3, E_V4SImode) != 0) return -1; return 7; case E_V4HFmode: if (pattern13 (x3, E_V4HFmode) != 0) return -1; return 8; case E_V8HFmode: if (pattern13 (x3, E_V8HFmode) != 0) return -1; return 9; case E_V2SFmode: if (pattern13 (x3, E_V2SFmode) != 0) return -1; return 10; case E_V4SFmode: if (pattern13 (x3, E_V4SFmode) != 0) return -1; return 11; case E_V2DFmode: if (pattern13 (x3, E_V2DFmode) != 0) return -1; return 12; default: return -1; } } static int pattern15 (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 pattern13 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern13 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern13 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern13 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern13 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern13 (x3, E_V4SImode) != 0) return -1; return 5; default: return -1; } } static int pattern16 (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_V8QImode: return pattern13 (x1, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern13 (x1, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern13 (x1, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern13 (x1, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern13 (x1, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern13 (x1, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern13 (x1, E_V2DImode) != 0) return -1; return 6; case E_QImode: if (pattern13 (x1, E_QImode) != 0) return -1; return 7; case E_HImode: if (pattern13 (x1, E_HImode) != 0) return -1; return 8; case E_SImode: if (pattern13 (x1, E_SImode) != 0) return -1; return 9; case E_DImode: if (pattern13 (x1, E_DImode) != 0) return -1; return 10; default: return -1; } } static int pattern17 (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], 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 || !register_operand (operands[2], i1)) return -1; x5 = XEXP (x3, 1); if (GET_MODE (x5) != i2 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern18 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_V4SImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_V4HImode) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_HImode) return -1; switch (GET_MODE (operands[3])) { case E_V4HImode: if (!register_operand (operands[3], E_V4HImode)) return -1; return 0; case E_V8HImode: if (!register_operand (operands[3], E_V8HImode)) return -1; return 1; default: return -1; } } static int pattern19 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_V2DImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_V2SImode) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode) return -1; switch (GET_MODE (operands[3])) { case E_V2SImode: if (!register_operand (operands[3], E_V2SImode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[3], E_V4SImode)) return -1; return 1; default: return -1; } } static int pattern20 (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; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i3)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i3 || !register_operand (operands[2], i2)) return -1; x5 = XEXP (x3, 1); if (GET_MODE (x5) != i3) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i2 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern21 (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; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i3)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i3) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i1) || !vect_par_cnst_hi_half (operands[4], i1)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i3) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i2 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern22 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4) { 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], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i3)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i3) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i4) || !vect_par_cnst_hi_half (operands[4], i4)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i3) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i2 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern23 (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, x15, x16, x17; rtx x18, x19; 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 REG: case SUBREG: return pattern16 (x3); /* [-1, 10] */ case SS_ASHIFT: x6 = XEXP (x5, 0); if (GET_CODE (x6) != MULT) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != SIGN_EXTEND) return -1; x8 = XEXP (x6, 1); if (GET_CODE (x8) != SIGN_EXTEND) return -1; x9 = XEXP (x5, 1); if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x10 = XEXP (x7, 0); switch (GET_CODE (x10)) { case REG: case SUBREG: operands[2] = x10; x11 = XEXP (x8, 0); switch (GET_CODE (x11)) { case REG: case SUBREG: operands[3] = x11; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern17 (x3, E_V4HImode, E_V4SImode) != 0) return -1; return 11; case E_V2DImode: if (pattern17 (x3, E_V2SImode, E_V2DImode) != 0) return -1; return 12; case E_SImode: if (pattern17 (x3, E_HImode, E_SImode) != 0) return -1; return 13; case E_DImode: if (pattern17 (x3, E_SImode, E_DImode) != 0) return -1; return 14; default: return -1; } case VEC_DUPLICATE: x12 = XEXP (x11, 0); switch (GET_CODE (x12)) { case VEC_SELECT: x13 = XEXP (x12, 1); if (GET_CODE (x13) != PARALLEL || XVECLEN (x13, 0) != 1) return -1; x14 = XEXP (x12, 0); operands[3] = x14; x15 = XVECEXP (x13, 0, 0); operands[4] = x15; if (!immediate_operand (operands[4], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || GET_MODE (x5) != E_V4SImode || GET_MODE (x6) != E_V4SImode || GET_MODE (x7) != E_V4SImode || !register_operand (operands[2], E_V4HImode)) return -1; res = pattern18 (x8); if (res >= 0) return res + 15; /* [15, 16] */ return -1; case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || GET_MODE (x5) != E_V2DImode || GET_MODE (x6) != E_V2DImode || GET_MODE (x7) != E_V2DImode || !register_operand (operands[2], E_V2SImode)) return -1; res = pattern19 (x8); if (res >= 0) return res + 17; /* [17, 18] */ return -1; default: return -1; } case REG: case SUBREG: operands[3] = x12; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern20 (x3, E_HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 19; case E_V2DImode: if (pattern20 (x3, E_SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 20; default: return -1; } default: return -1; } case VEC_SELECT: x16 = XEXP (x11, 1); if (GET_CODE (x16) != PARALLEL || XVECLEN (x16, 0) != 1) return -1; x12 = XEXP (x11, 0); operands[3] = x12; x17 = XVECEXP (x16, 0, 0); operands[4] = x17; if (!immediate_operand (operands[4], 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) || GET_MODE (x5) != E_SImode || GET_MODE (x6) != E_SImode || GET_MODE (x7) != E_SImode || !register_operand (operands[2], E_HImode) || GET_MODE (x8) != E_SImode || GET_MODE (x11) != E_HImode) return -1; switch (GET_MODE (operands[3])) { case E_V4HImode: if (!register_operand (operands[3], E_V4HImode)) return -1; return 21; case E_V8HImode: if (!register_operand (operands[3], E_V8HImode)) return -1; return 22; default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || GET_MODE (x5) != E_DImode || GET_MODE (x6) != E_DImode || GET_MODE (x7) != E_DImode || !register_operand (operands[2], E_SImode) || GET_MODE (x8) != E_DImode || GET_MODE (x11) != E_SImode) return -1; switch (GET_MODE (operands[3])) { case E_V2SImode: if (!register_operand (operands[3], E_V2SImode)) return -1; return 23; case E_V4SImode: if (!register_operand (operands[3], E_V4SImode)) return -1; return 24; default: return -1; } default: return -1; } default: return -1; } case VEC_SELECT: x18 = XEXP (x10, 0); operands[2] = x18; x11 = XEXP (x8, 0); switch (GET_CODE (x11)) { case VEC_SELECT: x19 = XEXP (x10, 1); operands[4] = x19; x12 = XEXP (x11, 0); operands[3] = x12; x16 = XEXP (x11, 1); if (!rtx_equal_p (x16, operands[4])) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern21 (x3, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 25; case E_V2DImode: if (pattern21 (x3, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 26; default: return -1; } case VEC_DUPLICATE: x12 = XEXP (x11, 0); switch (GET_CODE (x12)) { case VEC_SELECT: x13 = XEXP (x12, 1); if (GET_CODE (x13) != PARALLEL || XVECLEN (x13, 0) != 1) return -1; x19 = XEXP (x10, 1); operands[5] = x19; x14 = XEXP (x12, 0); operands[3] = x14; x15 = XVECEXP (x13, 0, 0); operands[4] = x15; if (!immediate_operand (operands[4], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || GET_MODE (x5) != E_V4SImode || GET_MODE (x6) != E_V4SImode || GET_MODE (x7) != E_V4SImode || GET_MODE (x10) != E_V4HImode || !register_operand (operands[2], E_V8HImode) || !vect_par_cnst_hi_half (operands[5], E_V8HImode)) return -1; res = pattern18 (x8); if (res >= 0) return res + 27; /* [27, 28] */ return -1; case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || GET_MODE (x5) != E_V2DImode || GET_MODE (x6) != E_V2DImode || GET_MODE (x7) != E_V2DImode || GET_MODE (x10) != E_V2SImode || !register_operand (operands[2], E_V4SImode) || !vect_par_cnst_hi_half (operands[5], E_V4SImode)) return -1; res = pattern19 (x8); if (res >= 0) return res + 29; /* [29, 30] */ return -1; default: return -1; } case REG: case SUBREG: operands[3] = x12; x19 = XEXP (x10, 1); operands[4] = x19; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern22 (x3, E_HImode, E_V4HImode, E_V4SImode, E_V8HImode) != 0) return -1; return 31; case E_V2DImode: if (pattern22 (x3, E_SImode, E_V2SImode, E_V2DImode, E_V4SImode) != 0) return -1; return 32; default: return -1; } default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int pattern24 (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 pattern16 (x3); /* [-1, 10] */ } static int pattern25 (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; switch (GET_MODE (operands[0])) { case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode)) return -1; return 0; case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode)) return -1; return 1; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode)) return -1; return 2; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode)) return -1; return 3; case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode)) return -1; return 4; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode)) return -1; return 5; case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode)) return -1; return 6; case E_QImode: if (!register_operand (operands[0], E_QImode) || GET_MODE (x3) != E_QImode || !register_operand (operands[1], E_QImode)) return -1; return 7; case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !register_operand (operands[1], E_HImode)) return -1; return 8; case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 9; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 10; default: return -1; } } static int pattern26 (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, 0); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; x6 = XEXP (x4, 1); operands[3] = x6; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; return pattern1 (x1); /* [-1, 1] */ } static int pattern27 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != AND || GET_MODE (x4) != E_SImode) return -1; return pattern26 (x1); /* [-1, 1] */ } static int pattern28 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[4] = x2; if (!subreg_lowpart_operator (operands[4], E_VOIDmode)) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != NEG) return -1; return pattern27 (x1); /* [-1, 1] */ } static int pattern29 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case SUBREG: return pattern28 (x3); /* [-1, 1] */ case MINUS: res = pattern3 (x3); if (res >= 0) return res + 2; /* [2, 3] */ return -1; case REG: operands[2] = x5; if (!aarch64_simd_register (operands[2], E_QImode)) return -1; switch (GET_MODE (operands[0])) { case E_DImode: if (!aarch64_simd_register (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !aarch64_simd_register (operands[1], E_DImode)) return -1; return 4; case E_SImode: if (!aarch64_simd_register (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !aarch64_simd_register (operands[1], E_SImode)) return -1; return 5; default: return -1; } default: return -1; } } static int pattern30 (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, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], 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 (x3, 1); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern31 (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); x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return -1; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !aarch64_reg_or_shift_imm_si (operands[2], E_QImode)) return -1; return 0; case E_QImode: if (!register_operand (operands[1], E_QImode) || !const_int_operand (operands[2], E_VOIDmode)) return -1; return 1; case E_HImode: if (!register_operand (operands[1], E_HImode) || !const_int_operand (operands[2], E_VOIDmode)) return -1; return 2; default: return -1; } case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !const_int_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (x4)) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 3; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 4; default: return -1; } default: return -1; } } static int pattern32 (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, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], 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 (x3, 1); operands[2] = x6; if (!aarch64_reg_or_shift_imm_si (operands[2], E_QImode)) return -1; return 0; } static int pattern33 (rtx x1, int i1, rtx_code i2, int 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) != i2 || XVECLEN (x2, 0) != i3 || XINT (x2, 1) != i1) return -1; return 0; } static int pattern34 (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); switch (GET_MODE (x2)) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; default: return -1; } } static int pattern35 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern34 (x1, E_SImode); /* [-1, 1] */ case E_DImode: res = pattern34 (x1, E_DImode); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } } static int pattern36 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; 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; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[3], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode) || !register_operand (operands[3], E_DImode)) return -1; return 1; default: return -1; } } static int pattern37 (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); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; x5 = XEXP (x1, 1); operands[3] = x5; return pattern36 (x1); /* [-1, 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[4], 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, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_CODE (x3) != MULT) return -1; x4 = XEXP (x2, 2); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x3, 0); operands[1] = x5; x6 = XEXP (x3, 1); operands[2] = x6; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; x7 = XEXP (x2, 1); operands[3] = x7; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x8 = XEXP (x1, 1); operands[4] = x8; switch (GET_MODE (operands[0])) { case E_SImode: return pattern38 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern38 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern40 (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 pattern41 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); if (!rtx_equal_p (x5, operands[3])) return -1; switch (GET_MODE (operands[0])) { case E_V8HImode: return pattern40 (x1, E_V16QImode, E_V8QImode, E_V8HImode); /* [-1, 0] */ case E_V4SImode: if (pattern40 (x1, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 1; case E_V2DImode: if (pattern40 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 2; default: return -1; } } static int pattern42 (rtx x1) { 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_CODE (x3) != VEC_SELECT) return -1; x4 = XEXP (x1, 0); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x5, 1); operands[3] = x7; return pattern41 (x1); /* [-1, 2] */ } static int pattern43 (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 pattern44 (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 || pattern43 (x1, i1, i2) != 0) return -1; return 0; } static int pattern45 (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); operands[1] = x3; x4 = XEXP (x1, 1); x5 = XEXP (x4, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8HImode: return pattern44 (x1, E_V8QImode, E_V8HImode); /* [-1, 0] */ case E_V4SImode: if (pattern44 (x1, E_V4HImode, E_V4SImode) != 0) return -1; return 1; case E_V2DImode: if (pattern44 (x1, E_V2SImode, E_V2DImode) != 0) return -1; return 2; default: return -1; } } static int pattern46 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_CODE (x2) != i1) return -1; x3 = XEXP (x1, 0); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case VEC_SELECT: return pattern42 (x1); /* [-1, 2] */ case REG: case SUBREG: res = pattern45 (x1); if (res >= 0) return res + 3; /* [3, 5] */ 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); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode)) return -1; return 1; default: return -1; } } static int pattern48 (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); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_SImode) || !register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x3) != E_DImode || GET_MODE (x2) != E_DImode) return -1; x5 = XEXP (x2, 0); operands[2] = x5; if (!register_operand (operands[2], E_SImode)) return -1; return 0; case VEC_SELECT: res = pattern42 (x1); if (res >= 0) return res + 1; /* [1, 3] */ return -1; default: return -1; } } static int pattern49 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case VEC_SELECT: x4 = XEXP (x3, 1); if (GET_CODE (x4) != PARALLEL || XVECLEN (x4, 0) != 1) return -1; x5 = XEXP (x3, 0); operands[1] = x5; x6 = XVECEXP (x4, 0, 0); operands[2] = x6; if (!immediate_operand (operands[2], E_SImode)) return -1; x7 = XEXP (x1, 1); operands[3] = x7; return 0; case REG: case SUBREG: operands[1] = x3; x7 = XEXP (x1, 1); operands[2] = x7; return 1; default: return -1; } } static int pattern50 (rtx x1) { 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) != E_DFmode) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != PARALLEL || XVECLEN (x3, 0) != 1 || !register_operand (operands[0], E_DFmode) || GET_MODE (x1) != E_DFmode) return -1; x4 = XEXP (x2, 0); operands[1] = x4; if (!register_operand (operands[1], E_V2DFmode)) return -1; x5 = XVECEXP (x3, 0, 0); operands[2] = x5; if (!immediate_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern51 (rtx x1, int i1, machine_mode i2, rtx_code i3) { 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) != i2) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != i3 || GET_MODE (x3) != i2) return -1; x4 = XEXP (x2, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1] || !register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; return 0; } static int pattern52 (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) != 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], i2)) return -1; return 0; } 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], i1)) return -1; return 0; } static int pattern54 (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 (!immediate_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) return -1; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode)) return -1; return 0; case E_HFmode: if (!register_operand (operands[1], E_HFmode)) return -1; return 1; default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode) return -1; switch (GET_MODE (operands[1])) { case E_DFmode: if (!register_operand (operands[1], E_DFmode)) return -1; return 2; case E_HFmode: if (!register_operand (operands[1], E_HFmode)) return -1; return 3; default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !register_operand (operands[1], E_HFmode)) return -1; return 4; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HFmode)) return -1; return 5; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HFmode)) return -1; return 6; case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SFmode)) return -1; return 7; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SFmode)) return -1; return 8; case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DFmode)) return -1; return 9; default: return -1; } } static int pattern55 (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 (!immediate_operand (operands[2], E_SImode)) return -1; 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_SImode)) return -1; return 0; case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DImode)) return -1; return 1; case E_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode) return -1; switch (GET_MODE (operands[1])) { 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; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 4; default: return -1; } case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HImode)) return -1; return 5; case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HImode)) return -1; return 6; case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SImode)) return -1; return 7; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SImode)) return -1; return 8; case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DImode)) return -1; return 9; default: return -1; } } static int pattern56 (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 pattern57 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_HFmode: return pattern56 (x3, E_HFmode); /* [-1, 0] */ case E_SFmode: if (pattern56 (x3, E_SFmode) != 0) return -1; return 1; case E_DFmode: if (pattern56 (x3, E_DFmode) != 0) return -1; return 2; case E_V4HFmode: if (pattern56 (x3, E_V4HFmode) != 0) return -1; return 3; case E_V8HFmode: if (pattern56 (x3, E_V8HFmode) != 0) return -1; return 4; case E_V2SFmode: if (pattern56 (x3, E_V2SFmode) != 0) return -1; return 5; case E_V4SFmode: if (pattern56 (x3, E_V4SFmode) != 0) return -1; return 6; case E_V2DFmode: if (pattern56 (x3, E_V2DFmode) != 0) return -1; return 7; default: return -1; } } static int pattern58 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!aarch64_tls_le_symref (operands[2], E_VOIDmode)) 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)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern59 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; 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; return 0; } static int pattern60 (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 = XEXP (x1, 1); if (GET_MODE (x2) != E_DImode) return -1; x3 = XVECEXP (x2, 0, 0); if (GET_CODE (x3) != REG || REGNO (x3) != i1 || GET_MODE (x3) != E_DImode) return -1; x4 = XVECEXP (x2, 0, 1); if (GET_CODE (x4) != REG || REGNO (x4) != i2 || GET_MODE (x4) != E_DImode) return -1; x5 = XEXP (x1, 0); if (GET_CODE (x5) != REG || REGNO (x5) != i1 || GET_MODE (x5) != E_DImode) return -1; return 0; } static int pattern61 (rtx x1, unsigned int i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_DImode) return -1; x3 = XVECEXP (x2, 0, 0); if (GET_CODE (x3) != REG || REGNO (x3) != i1 || GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x1, 0); if (GET_CODE (x4) != REG || REGNO (x4) != i1 || GET_MODE (x4) != E_DImode) return -1; return 0; } static int pattern62 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4HFmode: return pattern56 (x3, E_V4HFmode); /* [-1, 0] */ case E_V8HFmode: if (pattern56 (x3, E_V8HFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern56 (x3, E_V2SFmode) != 0) return -1; return 2; case E_V4SFmode: if (pattern56 (x3, E_V4SFmode) != 0) return -1; return 3; case E_V2DFmode: if (pattern56 (x3, E_V2DFmode) != 0) return -1; return 4; default: return -1; } } static int pattern63 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); operands[2] = x2; switch (GET_MODE (operands[0])) { case E_V4HFmode: return pattern56 (x1, E_V4HFmode); /* [-1, 0] */ case E_V8HFmode: if (pattern56 (x1, E_V8HFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern56 (x1, E_V2SFmode) != 0) return -1; return 2; case E_V4SFmode: if (pattern56 (x1, E_V4SFmode) != 0) return -1; return 3; case E_V2DFmode: if (pattern56 (x1, E_V2DFmode) != 0) return -1; return 4; case E_HFmode: if (pattern56 (x1, E_HFmode) != 0) return -1; return 5; case E_SFmode: if (pattern56 (x1, E_SFmode) != 0) return -1; return 6; case E_DFmode: if (pattern56 (x1, E_DFmode) != 0) return -1; return 7; default: return -1; } } static int pattern64 (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 pattern63 (x3); /* [-1, 7] */ } static int pattern65 (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 pattern66 (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_V4HImode: return pattern65 (x3, E_V8QImode, E_V4HImode); /* [-1, 0] */ case E_V8HImode: if (pattern65 (x3, E_V16QImode, E_V8HImode) != 0) return -1; return 1; case E_V2SImode: if (pattern65 (x3, E_V4HImode, E_V2SImode) != 0) return -1; return 2; case E_V4SImode: if (pattern65 (x3, E_V8HImode, E_V4SImode) != 0) return -1; return 3; case E_V2DImode: if (pattern65 (x3, E_V4SImode, E_V2DImode) != 0) return -1; return 4; default: return -1; } } static int pattern67 (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 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern68 (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_V4HImode: return pattern67 (x3, E_V4HImode, E_V8QImode); /* [-1, 0] */ case E_V8HImode: if (pattern67 (x3, E_V8HImode, E_V16QImode) != 0) return -1; return 1; case E_V2SImode: if (pattern67 (x3, E_V2SImode, E_V4HImode) != 0) return -1; return 2; case E_V4SImode: if (pattern67 (x3, E_V4SImode, E_V8HImode) != 0) return -1; return 3; case E_V2DImode: if (pattern67 (x3, E_V2DImode, E_V4SImode) != 0) return -1; return 4; default: return -1; } } static int pattern69 (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_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern56 (x3, E_V2DImode) != 0) return -1; return 6; default: return -1; } } static int pattern70 (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 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern71 (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_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; case E_QImode: if (pattern70 (x3, E_VNx16QImode, E_VNx16BImode, E_QImode) != 0) return -1; return 6; case E_HImode: if (pattern70 (x3, E_VNx8HImode, E_VNx8BImode, E_HImode) != 0) return -1; return 7; case E_SImode: if (pattern70 (x3, E_VNx4SImode, E_VNx4BImode, E_SImode) != 0) return -1; return 8; case E_DImode: if (pattern70 (x3, E_VNx2DImode, E_VNx2BImode, E_DImode) != 0) return -1; return 9; default: return -1; } } static int pattern72 (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_V4HFmode: return pattern56 (x3, E_V4HFmode); /* [-1, 0] */ case E_V8HFmode: if (pattern56 (x3, E_V8HFmode) != 0) return -1; return 1; case E_V2SFmode: if (pattern56 (x3, E_V2SFmode) != 0) return -1; return 2; case E_V4SFmode: if (pattern56 (x3, E_V4SFmode) != 0) return -1; return 3; case E_V2DFmode: if (pattern56 (x3, E_V2DFmode) != 0) return -1; return 4; case E_HFmode: if (pattern70 (x3, E_VNx8HFmode, E_VNx8BImode, E_HFmode) != 0) return -1; return 5; case E_SFmode: if (pattern70 (x3, E_VNx4SFmode, E_VNx4BImode, E_SFmode) != 0) return -1; return 6; case E_DFmode: if (pattern70 (x3, E_VNx2DFmode, E_VNx2BImode, E_DFmode) != 0) return -1; return 7; default: return -1; } } static int pattern73 (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_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; default: return -1; } } static int pattern74 (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_V8QImode: return pattern65 (x3, E_V8HImode, E_V8QImode); /* [-1, 0] */ case E_V4HImode: if (pattern65 (x3, E_V4SImode, E_V4HImode) != 0) return -1; return 1; case E_V2SImode: if (pattern65 (x3, E_V2DImode, E_V2SImode) != 0) return -1; return 2; default: return -1; } } static int pattern75 (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_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern56 (x3, E_V2DImode) != 0) return -1; return 6; case E_QImode: if (pattern56 (x3, E_QImode) != 0) return -1; return 7; case E_HImode: if (pattern56 (x3, E_HImode) != 0) return -1; return 8; case E_SImode: if (pattern56 (x3, E_SImode) != 0) return -1; return 9; case E_DImode: if (pattern56 (x3, E_DImode) != 0) return -1; return 10; default: return -1; } } static int pattern76 (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 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != E_HImode) return -1; switch (GET_MODE (operands[2])) { case E_V4HImode: if (!register_operand (operands[2], E_V4HImode)) return -1; return 0; case E_V8HImode: if (!register_operand (operands[2], E_V8HImode)) return -1; return 1; default: return -1; } } static int pattern77 (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 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != E_SImode) return -1; switch (GET_MODE (operands[2])) { case E_V2SImode: if (!register_operand (operands[2], E_V2SImode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[2], E_V4SImode)) return -1; return 1; 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; 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); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4HImode: return pattern56 (x3, E_V4HImode); /* [-1, 0] */ case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 1; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 2; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 3; case E_HImode: if (pattern56 (x3, E_HImode) != 0) return -1; return 4; case E_SImode: if (pattern56 (x3, E_SImode) != 0) return -1; return 5; default: return -1; } case VEC_SELECT: x6 = XEXP (x5, 1); if (GET_CODE (x6) != PARALLEL || XVECLEN (x6, 0) != 1) return -1; x7 = XEXP (x5, 0); operands[2] = x7; x8 = XVECEXP (x6, 0, 0); operands[3] = x8; if (!immediate_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: res = pattern76 (x3, E_V4HImode); if (res >= 0) return res + 6; /* [6, 7] */ return -1; case E_V8HImode: res = pattern76 (x3, E_V8HImode); if (res >= 0) return res + 8; /* [8, 9] */ return -1; case E_V2SImode: res = pattern77 (x3, E_V2SImode); if (res >= 0) return res + 10; /* [10, 11] */ return -1; case E_V4SImode: res = pattern77 (x3, E_V4SImode); if (res >= 0) return res + 12; /* [12, 13] */ return -1; case E_HImode: res = pattern76 (x3, E_HImode); if (res >= 0) return res + 14; /* [14, 15] */ return -1; case E_SImode: res = pattern77 (x3, E_SImode); if (res >= 0) return res + 16; /* [16, 17] */ return -1; default: return -1; } default: return -1; } } static int pattern79 (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_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern56 (x3, E_V2DImode) != 0) return -1; return 6; case E_DImode: if (pattern56 (x3, E_DImode) != 0) return -1; return 7; default: return -1; } } static int pattern80 (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) || !aarch64_simd_shift_imm_qi (operands[2], E_SImode)) return -1; return 0; } static int pattern81 (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) || !aarch64_simd_shift_imm_hi (operands[2], E_SImode)) return -1; return 0; } static int pattern82 (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) || !aarch64_simd_shift_imm_si (operands[2], E_SImode)) return -1; return 0; } static int pattern83 (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) || !aarch64_simd_shift_imm_di (operands[2], E_SImode)) return -1; return 0; } static int pattern84 (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_CODE (operands[2])) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern56 (x3, E_V2DImode) != 0) return -1; return 6; case E_QImode: if (pattern56 (x3, E_QImode) != 0) return -1; return 7; case E_HImode: if (pattern56 (x3, E_HImode) != 0) return -1; return 8; case E_SImode: if (pattern56 (x3, E_SImode) != 0) return -1; return 9; case E_DImode: if (pattern56 (x3, E_DImode) != 0) return -1; return 10; default: return -1; } case CONST_INT: switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern80 (x3, E_V8QImode) != 0) return -1; return 11; case E_V16QImode: if (pattern80 (x3, E_V16QImode) != 0) return -1; return 12; case E_V4HImode: if (pattern81 (x3, E_V4HImode) != 0) return -1; return 13; case E_V8HImode: if (pattern81 (x3, E_V8HImode) != 0) return -1; return 14; case E_V2SImode: if (pattern82 (x3, E_V2SImode) != 0) return -1; return 15; case E_V4SImode: if (pattern82 (x3, E_V4SImode) != 0) return -1; return 16; case E_V2DImode: if (pattern83 (x3, E_V2DImode) != 0) return -1; return 17; case E_QImode: if (pattern80 (x3, E_QImode) != 0) return -1; return 18; case E_HImode: if (pattern81 (x3, E_HImode) != 0) return -1; return 19; case E_SImode: if (pattern82 (x3, E_SImode) != 0) return -1; return 20; case E_DImode: if (pattern83 (x3, E_DImode) != 0) return -1; return 21; default: return -1; } default: return -1; } } static int pattern85 (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_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode) return -1; switch (GET_MODE (operands[1])) { case E_V8QImode: if (!register_operand (operands[1], E_V8QImode) || !aarch64_simd_shift_imm_bitsize_qi (operands[2], E_SImode)) return -1; return 0; case E_V16QImode: if (!register_operand (operands[1], E_V16QImode) || !immediate_operand (operands[2], E_SImode)) return -1; return 1; default: return -1; } case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode) return -1; switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || !aarch64_simd_shift_imm_bitsize_hi (operands[2], E_SImode)) return -1; return 2; case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || !immediate_operand (operands[2], E_SImode)) return -1; return 3; default: return -1; } case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode) return -1; switch (GET_MODE (operands[1])) { case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || !aarch64_simd_shift_imm_bitsize_si (operands[2], E_SImode)) return -1; return 4; case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || !immediate_operand (operands[2], E_SImode)) return -1; return 5; default: return -1; } default: return -1; } } static int pattern86 (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) || !aarch64_simd_shift_imm_offset_qi (operands[2], E_SImode)) return -1; return 0; } static int pattern87 (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) || !aarch64_simd_shift_imm_offset_hi (operands[2], E_SImode)) 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) || !aarch64_simd_shift_imm_offset_si (operands[2], E_SImode)) return -1; return 0; } static int pattern89 (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) || !aarch64_simd_shift_imm_offset_di (operands[2], E_SImode)) return -1; return 0; } static int pattern90 (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_V8QImode: return pattern86 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern86 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern87 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern87 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern88 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern88 (x3, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern89 (x3, E_V2DImode) != 0) return -1; return 6; case E_DImode: if (pattern89 (x3, E_DImode) != 0) return -1; return 7; default: return -1; } } static int pattern91 (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) || !aarch64_simd_shift_imm_offset_hi (operands[2], E_SImode)) return -1; return 0; } static int pattern92 (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) || !aarch64_simd_shift_imm_offset_si (operands[2], E_SImode)) return -1; return 0; } static int pattern93 (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) || !aarch64_simd_shift_imm_offset_di (operands[2], E_SImode)) return -1; return 0; } static int pattern94 (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_V8QImode: return pattern91 (x3, E_V8HImode, E_V8QImode); /* [-1, 0] */ case E_V4HImode: if (pattern92 (x3, E_V4SImode, E_V4HImode) != 0) return -1; return 1; case E_V2SImode: if (pattern93 (x3, E_V2DImode, E_V2SImode) != 0) return -1; return 2; case E_QImode: if (pattern91 (x3, E_HImode, E_QImode) != 0) return -1; return 3; case E_HImode: if (pattern92 (x3, E_SImode, E_HImode) != 0) return -1; return 4; case E_SImode: if (pattern93 (x3, E_DImode, E_SImode) != 0) return -1; return 5; default: return -1; } } static int pattern95 (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 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 75) return -1; x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x2, 0, 0); operands[1] = x6; if (!aarch64_simd_struct_operand (operands[1], i1)) return -1; switch (GET_MODE (x3)) { case E_V16QImode: return 0; case E_V8HImode: return 1; case E_V4SImode: return 2; case E_V2DImode: return 3; case E_V8HFmode: return 4; case E_V4SFmode: return 5; case E_V2DFmode: return 6; default: return -1; } } static int pattern96 (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 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 75) return -1; x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x2, 0, 0); operands[1] = x6; if (!aarch64_simd_struct_operand (operands[1], E_BLKmode)) return -1; switch (GET_MODE (x3)) { case E_V8QImode: return 0; case E_V16QImode: return 1; case E_V4HImode: return 2; case E_V8HImode: return 3; case E_V2SImode: return 4; case E_V4SImode: return 5; case E_V2DImode: return 6; case E_V4HFmode: return 7; case E_V8HFmode: return 8; case E_V2SFmode: return 9; case E_V4SFmode: return 10; case E_V2DFmode: return 11; case E_DImode: return 12; case E_DFmode: return 13; default: return -1; } } static int pattern97 (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); x3 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 75) return -1; x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x6 = XVECEXP (x2, 0, 0); operands[1] = x6; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern98 (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 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 75) return -1; x4 = XVECEXP (x3, 0, 0); if (GET_CODE (x4) != CONST_INT) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x6 = XVECEXP (x2, 0, 0); operands[1] = x6; return 0; } static int pattern99 (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 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 75) return -1; x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x2, 0, 0); operands[1] = x6; if (!aarch64_simd_struct_operand (operands[1], E_BLKmode)) return -1; switch (GET_MODE (x3)) { case E_V8QImode: return 0; case E_V4HImode: return 1; case E_V4HFmode: return 2; case E_V2SImode: return 3; case E_V2SFmode: return 4; case E_DImode: return 5; case E_DFmode: return 6; default: return -1; } } static int pattern100 (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) != 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], i2)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], i2)) return -1; return 0; } static int pattern101 (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_V8QImode: return pattern56 (x3, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern56 (x3, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern56 (x3, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern56 (x3, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern56 (x3, E_V2DImode) != 0) return -1; return 6; case E_V4HFmode: if (pattern56 (x3, E_V4HFmode) != 0) return -1; return 7; case E_V8HFmode: if (pattern56 (x3, E_V8HFmode) != 0) return -1; return 8; case E_V2SFmode: if (pattern56 (x3, E_V2SFmode) != 0) return -1; return 9; case E_V4SFmode: if (pattern56 (x3, E_V4SFmode) != 0) return -1; return 10; case E_V2DFmode: if (pattern56 (x3, E_V2DFmode) != 0) return -1; return 11; case E_VNx16BImode: if (pattern56 (x3, E_VNx16BImode) != 0) return -1; return 12; case E_VNx8BImode: if (pattern56 (x3, E_VNx8BImode) != 0) return -1; return 13; case E_VNx4BImode: if (pattern56 (x3, E_VNx4BImode) != 0) return -1; return 14; case E_VNx2BImode: if (pattern56 (x3, E_VNx2BImode) != 0) return -1; return 15; case E_VNx16QImode: if (pattern56 (x3, E_VNx16QImode) != 0) return -1; return 16; case E_VNx8HImode: if (pattern56 (x3, E_VNx8HImode) != 0) return -1; return 17; case E_VNx4SImode: if (pattern56 (x3, E_VNx4SImode) != 0) return -1; return 18; case E_VNx2DImode: if (pattern56 (x3, E_VNx2DImode) != 0) return -1; return 19; case E_VNx8HFmode: if (pattern56 (x3, E_VNx8HFmode) != 0) return -1; return 20; case E_VNx4SFmode: if (pattern56 (x3, E_VNx4SFmode) != 0) return -1; return 21; case E_VNx2DFmode: if (pattern56 (x3, E_VNx2DFmode) != 0) return -1; return 22; default: return -1; } } static int pattern102 (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 = XEXP (x1, 1); if (GET_MODE (x2) != E_V16QImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V16QImode)) return -1; x4 = XVECEXP (x2, 0, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_V16QImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_V16QImode)) return -1; return 0; case XOR: if (GET_MODE (x4) != E_V16QImode) return -1; x6 = XEXP (x4, 0); operands[1] = x6; if (!register_operand (operands[1], E_V16QImode)) return -1; x7 = XEXP (x4, 1); operands[2] = x7; if (!register_operand (operands[2], E_V16QImode)) return -1; x5 = XVECEXP (x2, 0, 1); operands[3] = x5; if (!aarch64_simd_imm_zero (operands[3], E_V16QImode)) return -1; return 1; case CONST_VECTOR: case CONST: operands[3] = x4; if (!aarch64_simd_imm_zero (operands[3], E_V16QImode)) return -1; x5 = XVECEXP (x2, 0, 1); if (GET_CODE (x5) != XOR || GET_MODE (x5) != E_V16QImode) return -1; x8 = XEXP (x5, 0); operands[1] = x8; if (!register_operand (operands[1], E_V16QImode)) return -1; x9 = XEXP (x5, 1); operands[2] = x9; if (!register_operand (operands[2], E_V16QImode)) return -1; return 2; default: return -1; } } static int pattern103 (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_VNx8HFmode: return pattern56 (x3, E_VNx8HFmode); /* [-1, 0] */ case E_VNx4SFmode: if (pattern56 (x3, E_VNx4SFmode) != 0) return -1; return 1; case E_VNx2DFmode: if (pattern56 (x3, E_VNx2DFmode) != 0) return -1; return 2; default: return -1; } } static int pattern104 (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_QImode: return pattern70 (x3, E_VNx16QImode, E_VNx16BImode, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern70 (x3, E_VNx8HImode, E_VNx8BImode, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern70 (x3, E_VNx4SImode, E_VNx4BImode, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern70 (x3, E_VNx2DImode, E_VNx2BImode, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern105 (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_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode || !register_operand (operands[1], E_HFmode)) return -1; return 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 1; case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode)) return -1; return 2; case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode)) return -1; return 3; case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode)) return -1; return 4; case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode)) return -1; return 5; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode)) return -1; return 6; case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode)) return -1; return 7; default: return -1; } } static int pattern106 (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 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1) || !aarch64_valid_symref (operands[2], i1)) return -1; return 0; } static int pattern107 (rtx x1) { 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 = XVECEXP (x2, 0, 0); if (GET_CODE (x3) != MEM) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != LO_SUM) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x6 = XEXP (x4, 0); operands[1] = x6; x7 = XEXP (x4, 1); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_SImode: return pattern106 (x2, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern106 (x2, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern108 (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 pattern109 (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; if (!aarch64_tls_le_symref (operands[1], E_VOIDmode)) return -1; return pattern108 (x3); /* [-1, 1] */ } static int pattern110 (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_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode)) return -1; return 0; case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode)) 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; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode)) return -1; return 3; case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode)) return -1; return 4; case E_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode || !register_operand (operands[1], E_HFmode)) return -1; return 5; case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode)) return -1; return 6; case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode)) return -1; return 7; default: return -1; } } static int pattern111 (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_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode)) return -1; return 0; case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode)) return -1; return 1; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode)) return -1; return 2; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode)) return -1; return 3; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode)) return -1; return 4; case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode)) return -1; return 5; default: return -1; } } static int pattern112 (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_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode)) return -1; return 0; case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode)) 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; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode)) return -1; return 3; case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode)) return -1; return 4; default: return -1; } } static int pattern113 (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_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8HImode)) return -1; return 0; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4SImode)) return -1; return 1; case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2DImode)) return -1; return 2; case E_QImode: if (!register_operand (operands[0], E_QImode) || GET_MODE (x3) != E_QImode || !register_operand (operands[1], E_HImode)) return -1; return 3; case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !register_operand (operands[1], E_SImode)) return -1; return 4; case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_DImode)) return -1; return 5; default: return -1; } } static int pattern114 (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_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode)) return -1; return 0; case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode)) return -1; return 1; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode)) return -1; return 2; case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode)) return -1; return 3; case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode)) return -1; return 4; case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode)) return -1; return 5; case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode)) return -1; return 6; case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode)) return -1; return 7; case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode)) return -1; return 8; case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode)) return -1; return 9; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode)) return -1; return 10; case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode)) return -1; return 11; default: return -1; } } static int pattern115 (rtx x1, int 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_V16QImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_V16QImode)) return -1; x4 = XVECEXP (x2, 0, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_V16QImode)) return -1; return 0; case UNSPEC: if (XVECLEN (x4, 0) != 2 || XINT (x4, 1) != i1 || GET_MODE (x4) != E_V16QImode) return -1; x5 = XVECEXP (x4, 0, 0); operands[1] = x5; if (!register_operand (operands[1], E_V16QImode)) return -1; x6 = XVECEXP (x4, 0, 1); operands[2] = x6; if (!register_operand (operands[2], E_V16QImode)) return -1; return 1; default: return -1; } } static int pattern116 (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_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x3) != E_VNx8BImode || !register_operand (operands[1], E_VNx16BImode)) return -1; return 0; case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x3) != E_VNx4BImode || !register_operand (operands[1], E_VNx8BImode)) return -1; return 1; case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x3) != E_VNx2BImode || !register_operand (operands[1], E_VNx4BImode)) return -1; return 2; case E_VNx8HImode: if (!register_operand (operands[0], E_VNx8HImode) || GET_MODE (x3) != E_VNx8HImode || !register_operand (operands[1], E_VNx16QImode)) return -1; return 3; case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x3) != E_VNx4SImode || !register_operand (operands[1], E_VNx8HImode)) return -1; return 4; case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x3) != E_VNx2DImode || !register_operand (operands[1], E_VNx4SImode)) return -1; return 5; default: return -1; } } static int pattern117 (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_VNx8HImode: if (!register_operand (operands[0], E_VNx8HImode) || GET_MODE (x3) != E_VNx8HImode || !register_operand (operands[1], E_VNx16QImode)) return -1; return 0; case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x3) != E_VNx4SImode || !register_operand (operands[1], E_VNx8HImode)) return -1; return 1; case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x3) != E_VNx2DImode || !register_operand (operands[1], E_VNx4SImode)) return -1; return 2; default: return -1; } } static int pattern118 (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[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern119 (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[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern120 (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 (x2, 1); if (GET_MODE (x4) != i1 || !register_operand (operands[3], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern121 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; x3 = XEXP (x1, 0); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern118 (x1, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern118 (x1, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern118 (x1, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern118 (x1, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } case NOT: x6 = XEXP (x4, 0); operands[2] = x6; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (pattern119 (x1, E_VNx16BImode) != 0) return -1; return 4; case E_VNx8BImode: if (pattern119 (x1, E_VNx8BImode) != 0) return -1; return 5; case E_VNx4BImode: if (pattern119 (x1, E_VNx4BImode) != 0) return -1; return 6; case E_VNx2BImode: if (pattern119 (x1, E_VNx2BImode) != 0) return -1; return 7; default: return -1; } case NOT: x7 = XEXP (x5, 0); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (pattern120 (x1, E_VNx16BImode) != 0) return -1; return 8; case E_VNx8BImode: if (pattern120 (x1, E_VNx8BImode) != 0) return -1; return 9; case E_VNx4BImode: if (pattern120 (x1, E_VNx4BImode) != 0) return -1; return 10; case E_VNx2BImode: if (pattern120 (x1, E_VNx2BImode) != 0) return -1; return 11; default: return -1; } default: return -1; } default: return -1; } } static int pattern122 (rtx x1, int *pnum_clobbers) { 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); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; x5 = XEXP (x1, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (pnum_clobbers == NULL || !register_operand (operands[0], E_VNx16BImode) || GET_MODE (x1) != E_VNx16BImode || GET_MODE (x2) != E_VNx16BImode || !register_operand (operands[2], E_VNx16QImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx16QImode) || !register_operand (operands[1], E_VNx16BImode)) return -1; return 0; case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x1) != E_VNx8BImode || GET_MODE (x2) != E_VNx8BImode || !register_operand (operands[1], E_VNx8BImode)) return -1; switch (GET_MODE (operands[2])) { case E_VNx8HImode: if (pnum_clobbers == NULL || !register_operand (operands[2], E_VNx8HImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx8HImode)) return -1; return 1; case E_VNx8HFmode: if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode)) return -1; return 2; default: return -1; } case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x1) != E_VNx4BImode || GET_MODE (x2) != E_VNx4BImode || !register_operand (operands[1], E_VNx4BImode)) return -1; switch (GET_MODE (operands[2])) { case E_VNx4SImode: if (pnum_clobbers == NULL || !register_operand (operands[2], E_VNx4SImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx4SImode)) return -1; return 3; case E_VNx4SFmode: if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode)) return -1; return 4; default: return -1; } case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x1) != E_VNx2BImode || GET_MODE (x2) != E_VNx2BImode || !register_operand (operands[1], E_VNx2BImode)) return -1; switch (GET_MODE (operands[2])) { case E_VNx2DImode: if (pnum_clobbers == NULL || !register_operand (operands[2], E_VNx2DImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx2DImode)) return -1; return 5; case E_VNx2DFmode: if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode)) return -1; return 6; default: return -1; } default: return -1; } } static int pattern123 (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) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsd_operand (operands[3], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern124 (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, 0); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; x5 = XEXP (x1, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern123 (x1, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern123 (x1, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern123 (x1, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern123 (x1, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } } static int pattern125 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[1])) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 2; default: return -1; } } static int pattern126 (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) return -1; return pattern125 (); /* [-1, 2] */ } static int pattern127 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x1, 1); operands[2] = x4; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern126 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern126 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern128 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !aarch64_imm24 (operands[2], i1)) return -1; return 0; } static int pattern129 (rtx x1) { 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) != CLOBBER) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 66 || GET_MODE (x3) != E_CCmode) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); x7 = XEXP (x6, 0); operands[1] = x7; x8 = XEXP (x6, 1); operands[2] = x8; switch (GET_MODE (operands[0])) { case E_SImode: return pattern128 (x6, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern128 (x6, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern130 (rtx x1) { 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) != E_DImode) 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XEXP (x2, 0); operands[0] = x6; if (!register_operand (operands[0], E_DImode)) return -1; x7 = XEXP (x3, 0); if (GET_MODE (x7) != E_DImode) return -1; switch (GET_CODE (x7)) { case LT: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 0; case LE: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 1; case EQ: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 2; case GE: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 3; case GT: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 4; case LTU: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 5; case LEU: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 6; case GEU: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 7; case GTU: x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 8; case NE: x8 = XEXP (x7, 0); if (GET_CODE (x8) != AND || GET_MODE (x8) != E_DImode) return -1; x9 = XEXP (x7, 1); if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x10 = XEXP (x8, 0); operands[1] = x10; if (!register_operand (operands[1], E_DImode)) return -1; x11 = XEXP (x8, 1); operands[2] = x11; if (!register_operand (operands[2], E_DImode)) return -1; return 9; default: return -1; } } static int pattern131 (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 || !aarch64_sync_memory_operand (operands[1], i1) || !aarch64_plus_operand (operands[2], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; return 0; } static int pattern132 (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, 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; x6 = XEXP (x2, 0); if (!rtx_equal_p (x6, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern131 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern131 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern131 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern131 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern133 (rtx x1, int *pnum_clobbers) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != UNSPEC_VOLATILE || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 20) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); x7 = XEXP (x6, 0); operands[1] = x7; x8 = XEXP (x6, 1); operands[2] = x8; x9 = XVECEXP (x3, 0, 2); operands[3] = x9; if (!const_int_operand (operands[3], E_SImode)) return -1; return pattern132 (x1); /* [-1, 3] */ } static int pattern134 (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 || !aarch64_sync_memory_operand (operands[1], i1) || !aarch64_logical_operand (operands[2], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; return 0; } static int pattern135 (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, 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; x6 = XEXP (x2, 0); if (!rtx_equal_p (x6, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern134 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern134 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern134 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern134 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern136 (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, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); operands[2] = x4; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); x7 = XVECEXP (x6, 0, 2); operands[3] = x7; if (!const_int_operand (operands[3], E_SImode)) return -1; return pattern135 (x1); /* [-1, 3] */ } static int pattern137 (rtx x1, int *pnum_clobbers) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != UNSPEC_VOLATILE || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 20) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); x7 = XEXP (x6, 0); operands[1] = x7; return pattern136 (x1); /* [-1, 3] */ } static int pattern138 (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 || !aarch64_sve_dup_operand (operands[1], i2) || !scratch_operand (operands[2], i1)) return -1; return 0; } static int pattern139 (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); if (GET_CODE (x2) != CLOBBER) return -1; x3 = XVECEXP (x1, 0, 0); x4 = XEXP (x3, 0); operands[0] = x4; x5 = XEXP (x3, 1); x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x2, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern138 (x5, E_VNx16BImode, E_QImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern138 (x5, E_VNx8BImode, E_HImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern138 (x5, E_VNx4BImode, E_SImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern138 (x5, E_VNx2BImode, E_DImode, E_VNx2DImode) != 0) return -1; return 3; case E_VNx8HFmode: if (pattern138 (x5, E_VNx8BImode, E_HFmode, E_VNx8HFmode) != 0) return -1; return 4; case E_VNx4SFmode: if (pattern138 (x5, E_VNx4BImode, E_SFmode, E_VNx4SFmode) != 0) return -1; return 5; case E_VNx2DFmode: if (pattern138 (x5, E_VNx2BImode, E_DFmode, E_VNx2DFmode) != 0) return -1; return 6; default: return -1; } } static int pattern140 (rtx x1, machine_mode i1, unsigned int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != CLOBBER) return -1; x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != i2 || GET_MODE (x2) != i1) return -1; return 0; } static int pattern141 (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 (XVECLEN (x3, 0) != 1 || XINT (x3, 1) != 65) return -1; x4 = XEXP (x2, 0); if (GET_CODE (x4) != REG || REGNO (x4) != 0) return -1; x5 = XVECEXP (x1, 0, 1); return pattern140 (x5, E_DImode, 30); /* [-1, 0] */ } static int pattern142 (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 pattern143 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_SImode: return pattern142 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern142 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern144 (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], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], i1)) return -1; x4 = XEXP (x2, 1); operands[2] = x4; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern145 (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; 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) != i3 || !register_operand (operands[2], i2)) return -1; x5 = XEXP (x2, 1); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i3 || !register_operand (operands[4], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern146 (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 = XEXP (x1, 0); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; x5 = XEXP (x1, 1); operands[3] = x5; return 0; case VEC_SELECT: x6 = XEXP (x2, 1); if (GET_CODE (x6) != i1) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != VEC_SELECT) return -1; x8 = XEXP (x4, 0); operands[2] = x8; x9 = XEXP (x4, 1); operands[3] = x9; x10 = XEXP (x7, 0); operands[4] = x10; x5 = XEXP (x1, 1); operands[1] = x5; x11 = XEXP (x7, 1); if (!rtx_equal_p (x11, operands[3])) return -1; switch (GET_MODE (operands[0])) { case E_V8HImode: if (pattern145 (x1, E_V8HImode, E_V16QImode, E_V8QImode) != 0) return -1; return 1; case E_V4SImode: if (pattern145 (x1, E_V4SImode, E_V8HImode, E_V4HImode) != 0) return -1; return 2; case E_V2DImode: if (pattern145 (x1, E_V2DImode, E_V4SImode, E_V2SImode) != 0) return -1; return 3; default: return -1; } default: return -1; } } static int pattern147 (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[0], E_SImode) || !aarch64_shift_imm_si (operands[1], E_QImode) || !aarch64_reg_or_zero (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_shift_imm_di (operands[1], E_QImode) || !aarch64_reg_or_zero (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern148 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_CC_SWPmode) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != E_CC_SWPmode) return -1; x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); operands[1] = x6; x7 = XEXP (x3, 1); operands[2] = x7; return pattern147 (x4); /* [-1, 1] */ } static int pattern149 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[3], E_SImode) || GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[3], E_DImode) || GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode)) return -1; return 1; default: return -1; } } static int pattern150 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[3] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; return pattern149 (x1); /* [-1, 1] */ } static int pattern151 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; switch (GET_MODE (operands[2])) { case E_QImode: if (!register_operand (operands[2], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[2], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[2], E_SImode)) return -1; return 2; default: return -1; } } static int pattern152 (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 || !register_operand (operands[1], i2)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern153 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i3)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern154 (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[1] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[2] = x4; switch (GET_MODE (operands[0])) { case E_SImode: return pattern151 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern151 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; case E_V8HImode: if (pattern152 (x1, E_V8QImode, E_V8HImode) != 0) return -1; return 6; case E_V4SImode: if (pattern152 (x1, E_V4HImode, E_V4SImode) != 0) return -1; return 7; case E_V2DImode: if (pattern152 (x1, E_V2SImode, E_V2DImode) != 0) return -1; return 8; default: return -1; } case VEC_SELECT: x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x4, 1); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V8HImode: if (pattern153 (x1, E_V16QImode, E_V8QImode, E_V8HImode) != 0) return -1; return 9; case E_V4SImode: if (pattern153 (x1, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 10; case E_V2DImode: if (pattern153 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 11; default: return -1; } default: return -1; } } static int pattern155 (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 || !register_operand (operands[4], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern156 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != MULT) return -1; x4 = XEXP (x2, 2); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x1, 0); operands[4] = x5; x6 = XEXP (x3, 0); operands[1] = x6; x7 = XEXP (x3, 1); operands[2] = x7; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; x8 = XEXP (x2, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern155 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern155 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern157 (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) || !aarch64_simd_reg_or_zero (operands[2], i1)) return -1; return 0; } static int pattern158 (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 || !register_operand (operands[1], i1) || !aarch64_simd_reg_or_zero (operands[2], i1)) return -1; return 0; } static int pattern159 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern157 (x1, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern157 (x1, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x1) != E_V4HImode || GET_MODE (x2) != E_V4HImode) return -1; switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || !aarch64_simd_reg_or_zero (operands[2], E_V4HImode)) return -1; return 2; case E_V4HFmode: if (!register_operand (operands[1], E_V4HFmode) || !aarch64_simd_reg_or_zero (operands[2], E_V4HFmode)) return -1; return 3; default: return -1; } case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x1) != E_V8HImode || GET_MODE (x2) != E_V8HImode) return -1; switch (GET_MODE (operands[1])) { case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || !aarch64_simd_reg_or_zero (operands[2], E_V8HImode)) return -1; return 4; case E_V8HFmode: if (!register_operand (operands[1], E_V8HFmode) || !aarch64_simd_reg_or_zero (operands[2], E_V8HFmode)) return -1; return 5; default: return -1; } case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x1) != E_V2SImode || GET_MODE (x2) != E_V2SImode) return -1; switch (GET_MODE (operands[1])) { case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || !aarch64_simd_reg_or_zero (operands[2], E_V2SImode)) return -1; return 6; case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || !aarch64_simd_reg_or_zero (operands[2], E_V2SFmode)) return -1; return 7; default: return -1; } case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x1) != E_V4SImode || GET_MODE (x2) != E_V4SImode) return -1; switch (GET_MODE (operands[1])) { case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || !aarch64_simd_reg_or_zero (operands[2], E_V4SImode)) return -1; return 8; case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || !aarch64_simd_reg_or_zero (operands[2], E_V4SFmode)) return -1; return 9; default: return -1; } case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x1) != E_V2DImode || GET_MODE (x2) != E_V2DImode) return -1; switch (GET_MODE (operands[1])) { case E_V2DImode: if (!register_operand (operands[1], E_V2DImode) || !aarch64_simd_reg_or_zero (operands[2], E_V2DImode)) return -1; return 10; case E_V2DFmode: if (!register_operand (operands[1], E_V2DFmode) || !aarch64_simd_reg_or_zero (operands[2], E_V2DFmode)) return -1; return 11; default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x2) != E_DImode) return -1; switch (GET_MODE (operands[1])) { case E_DImode: if (!register_operand (operands[1], E_DImode) || !aarch64_simd_reg_or_zero (operands[2], E_DImode)) return -1; return 12; case E_DFmode: if (!register_operand (operands[1], E_DFmode) || !aarch64_simd_reg_or_zero (operands[2], E_DFmode)) return -1; return 13; default: return -1; } case E_HImode: if (pattern158 (x1, E_HFmode, E_HImode) != 0) return -1; return 14; case E_SImode: if (pattern158 (x1, E_SFmode, E_SImode) != 0) return -1; return 15; default: return -1; } } static int pattern160 (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) || 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) != 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 pattern161 (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); switch (GET_CODE (x3)) { case REG: case SUBREG: return pattern159 (x1); /* [-1, 15] */ case ABS: x4 = XEXP (x2, 1); if (GET_CODE (x4) != ABS) return -1; x5 = XEXP (x3, 0); operands[1] = x5; x6 = XEXP (x4, 0); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern160 (x1, E_V4HFmode, E_V4HImode) != 0) return -1; return 16; case E_V8HImode: if (pattern160 (x1, E_V8HFmode, E_V8HImode) != 0) return -1; return 17; case E_V2SImode: if (pattern160 (x1, E_V2SFmode, E_V2SImode) != 0) return -1; return 18; case E_V4SImode: if (pattern160 (x1, E_V4SFmode, E_V4SImode) != 0) return -1; return 19; case E_V2DImode: if (pattern160 (x1, E_V2DFmode, E_V2DImode) != 0) return -1; return 20; case E_HImode: if (pattern160 (x1, E_HFmode, E_HImode) != 0) return -1; return 21; case E_SImode: if (pattern160 (x1, E_SFmode, E_SImode) != 0) return -1; return 22; case E_DImode: if (pattern160 (x1, E_DFmode, E_DImode) != 0) return -1; return 23; default: return -1; } default: return -1; } } static int pattern162 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern142 (x1, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern142 (x1, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern142 (x1, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern142 (x1, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern142 (x1, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern142 (x1, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern142 (x1, E_V2DImode) != 0) return -1; return 6; case E_DImode: if (pattern157 (x1, E_DImode) != 0) return -1; return 7; default: return -1; } } static int pattern163 (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 (x1, 1); if (GET_CODE (x4) != i1 || GET_MODE (x4) != E_DImode || !register_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 pattern164 (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 || !register_operand (operands[1], i2) || !register_operand (operands[2], i2) || !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, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_V4HImode: return pattern164 (x1, E_V4HImode, E_V8QImode); /* [-1, 0] */ case E_V8HImode: if (pattern164 (x1, E_V8HImode, E_V16QImode) != 0) return -1; return 1; case E_V2SImode: if (pattern164 (x1, E_V2SImode, E_V4HImode) != 0) return -1; return 2; case E_V4SImode: if (pattern164 (x1, E_V4SImode, E_V8HImode) != 0) return -1; return 3; case E_V2DImode: if (pattern164 (x1, E_V2DImode, E_V4SImode) != 0) return -1; return 4; 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]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern167 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_V16QImode: return pattern166 (x1, E_V8HImode, E_V8QImode, E_V16QImode); /* [-1, 0] */ case E_V8HImode: if (pattern166 (x1, E_V4SImode, E_V4HImode, E_V8HImode) != 0) return -1; return 1; case E_V4SImode: if (pattern166 (x1, E_V2DImode, E_V2SImode, E_V4SImode) != 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]; 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 pattern169 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x2 = XVECEXP (x1, 0, 2); if (GET_MODE (x2) != E_HImode) return -1; switch (GET_MODE (operands[3])) { case E_V4HImode: if (!register_operand (operands[3], E_V4HImode)) return -1; return 0; case E_V8HImode: if (!register_operand (operands[3], E_V8HImode)) return -1; return 1; default: return -1; } } static int pattern170 (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 = XVECEXP (x1, 0, 2); if (GET_MODE (x2) != E_SImode) return -1; switch (GET_MODE (operands[3])) { case E_V2SImode: if (!register_operand (operands[3], E_V2SImode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[3], E_V4SImode)) return -1; return 1; default: return -1; } } static int pattern171 (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, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; x4 = XVECEXP (x1, 0, 2); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[3] = x4; switch (GET_MODE (operands[0])) { case E_V4HImode: return pattern168 (x1, E_V4HImode); /* [-1, 0] */ case E_V8HImode: if (pattern168 (x1, E_V8HImode) != 0) return -1; return 1; case E_V2SImode: if (pattern168 (x1, E_V2SImode) != 0) return -1; return 2; case E_V4SImode: if (pattern168 (x1, E_V4SImode) != 0) return -1; return 3; case E_HImode: if (pattern168 (x1, E_HImode) != 0) return -1; return 4; case E_SImode: if (pattern168 (x1, E_SImode) != 0) return -1; return 5; 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[3] = x6; x7 = XVECEXP (x5, 0, 0); operands[4] = x7; if (!immediate_operand (operands[4], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: res = pattern169 (x1, E_V4HImode); if (res >= 0) return res + 6; /* [6, 7] */ return -1; case E_V8HImode: res = pattern169 (x1, E_V8HImode); if (res >= 0) return res + 8; /* [8, 9] */ return -1; case E_V2SImode: res = pattern170 (x1, E_V2SImode); if (res >= 0) return res + 10; /* [10, 11] */ return -1; case E_V4SImode: res = pattern170 (x1, E_V4SImode); if (res >= 0) return res + 12; /* [12, 13] */ return -1; case E_HImode: res = pattern169 (x1, E_HImode); if (res >= 0) return res + 14; /* [14, 15] */ return -1; case E_SImode: res = pattern170 (x1, E_SImode); if (res >= 0) return res + 16; /* [16, 17] */ return -1; default: return -1; } default: return -1; } } 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) || !aarch64_simd_shift_imm_offset_qi (operands[3], E_SImode)) 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) || !aarch64_simd_shift_imm_offset_hi (operands[3], E_SImode)) return -1; return 0; } static int pattern174 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !aarch64_simd_shift_imm_offset_si (operands[3], E_SImode)) return -1; return 0; } 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) || !aarch64_simd_shift_imm_offset_di (operands[3], E_SImode)) return -1; return 0; } static int pattern176 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern172 (x1, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern172 (x1, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern173 (x1, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern173 (x1, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern174 (x1, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern174 (x1, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern175 (x1, E_V2DImode) != 0) return -1; return 6; case E_DImode: if (pattern175 (x1, E_DImode) != 0) return -1; return 7; default: return -1; } } static int pattern177 (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) || !aarch64_simd_shift_imm_qi (operands[3], E_SImode)) return -1; return 0; } static int pattern178 (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) || !aarch64_simd_shift_imm_hi (operands[3], E_SImode)) return -1; return 0; } static int pattern179 (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) || !aarch64_simd_shift_imm_si (operands[3], E_SImode)) return -1; return 0; } static int pattern180 (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) || !aarch64_simd_shift_imm_di (operands[3], E_SImode)) return -1; return 0; } static int pattern181 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern177 (x1, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern177 (x1, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern178 (x1, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern178 (x1, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern179 (x1, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern179 (x1, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern180 (x1, E_V2DImode) != 0) return -1; return 6; case E_DImode: if (pattern180 (x1, E_DImode) != 0) return -1; return 7; default: return -1; } } static int pattern182 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_BLKmode) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != UNSPEC || XVECLEN (x2, 0) != 1 || XINT (x2, 1) != 75) return -1; x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || !aarch64_simd_struct_operand (operands[0], E_BLKmode)) return -1; x4 = XVECEXP (x1, 0, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XVECEXP (x1, 0, 2); operands[2] = x5; if (!immediate_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (x2)) { case E_V8QImode: return 0; case E_V16QImode: return 1; case E_V4HImode: return 2; case E_V8HImode: return 3; case E_V2SImode: return 4; case E_V4SImode: return 5; case E_V2DImode: return 6; case E_V4HFmode: return 7; case E_V8HFmode: return 8; case E_V2SFmode: return 9; case E_V4SFmode: return 10; case E_V2DFmode: return 11; case E_DImode: return 12; case E_DFmode: return 13; default: return -1; } } static int pattern183 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_V4SImode || !register_operand (operands[0], E_V4SImode)) return -1; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; if (!register_operand (operands[1], E_V4SImode)) return -1; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; if (!register_operand (operands[2], E_SImode)) return -1; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; if (!register_operand (operands[3], E_V4SImode)) return -1; return 0; } static int pattern184 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1 || !register_operand (operands[0], i1)) return -1; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; if (!register_operand (operands[1], i1)) return -1; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; if (!register_operand (operands[2], i1)) return -1; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern185 (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) || !aarch64_simd_reg_or_zero (operands[3], i1)) return -1; return 0; } static int pattern186 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); operands[2] = x3; x4 = XVECEXP (x1, 0, 2); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx8BImode: return pattern185 (x1, E_VNx8HFmode, E_VNx8BImode); /* [-1, 0] */ case E_VNx4BImode: if (pattern185 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 1; case E_VNx2BImode: if (pattern185 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 2; default: return -1; } } static int pattern187 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; 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; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[3], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode) || !register_operand (operands[3], E_DImode)) return -1; return 1; default: return -1; } } static int pattern188 (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); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XEXP (x1, 1); operands[3] = x6; return pattern187 (x1); /* [-1, 1] */ } static int pattern189 (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); 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_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || GET_MODE (x2) != E_SImode || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[3], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || GET_MODE (x2) != E_DImode || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode) || !register_operand (operands[3], E_DImode)) return -1; return 1; default: return -1; } } static int pattern190 (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; 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_VOLATILE || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 20) 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x6, 1); x9 = XEXP (x8, 0); operands[1] = x9; x10 = XEXP (x8, 1); operands[2] = x10; x11 = XVECEXP (x3, 0, 2); operands[3] = x11; if (!const_int_operand (operands[3], E_SImode)) return -1; x12 = XVECEXP (x1, 0, 3); x13 = XEXP (x12, 0); operands[4] = x13; if (!scratch_operand (operands[4], E_SImode)) return -1; return pattern132 (x1); /* [-1, 3] */ } static int pattern191 (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; 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_VOLATILE || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 20) 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x6, 1); x9 = XEXP (x8, 0); operands[1] = x9; x10 = XEXP (x8, 1); operands[2] = x10; x11 = XVECEXP (x3, 0, 2); operands[3] = x11; if (!const_int_operand (operands[3], E_SImode)) return -1; x12 = XVECEXP (x1, 0, 3); x13 = XEXP (x12, 0); operands[4] = x13; if (!scratch_operand (operands[4], E_SImode)) return -1; return pattern135 (x1); /* [-1, 3] */ } static int pattern192 (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) 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; } } static int pattern193 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; 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 0; case E_HImode: if (!nonimmediate_operand (operands[1], E_HImode)) return -1; return 1; default: return -1; } } static int pattern194 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i2 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern195 (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; switch (GET_MODE (operands[0])) { case E_V8HImode: return pattern194 (x1, E_V16QImode, E_V8QImode, E_V8HImode); /* [-1, 0] */ case E_V4SImode: if (pattern194 (x1, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 1; case E_V2DImode: if (pattern194 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 2; default: return -1; } } static int pattern196 (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); switch (GET_MODE (x2)) { case E_QImode: switch (GET_MODE (operands[1])) { case E_V8QImode: if (!register_operand (operands[1], E_V8QImode)) return -1; return 0; case E_V16QImode: if (!register_operand (operands[1], E_V16QImode)) return -1; return 1; default: return -1; } case E_HImode: switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode)) return -1; return 2; case E_V8HImode: if (!register_operand (operands[1], E_V8HImode)) return -1; return 3; default: return -1; } default: return -1; } } static int pattern197 (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); operands[1] = x3; x4 = XEXP (x2, 1); x5 = XVECEXP (x4, 0, 0); operands[2] = x5; if (!immediate_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern196 (x1, E_SImode); /* [-1, 3] */ case E_DImode: res = pattern196 (x1, E_DImode); if (res >= 0) return res + 4; /* [4, 7] */ return -1; default: return -1; } } static int pattern198 (rtx x1, rtx_code i1, rtx_code i2) { 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); if (GET_CODE (x3) != i2) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != i1) return -1; x5 = XEXP (x1, 0); if (GET_MODE (x5) != E_CC_Vmode || GET_MODE (x2) != E_CC_Vmode) return -1; x6 = XEXP (x2, 0); x7 = XEXP (x6, 0); x8 = XEXP (x7, 0); operands[0] = x8; x9 = XEXP (x4, 0); if (!rtx_equal_p (x9, operands[0])) return -1; return 0; } static int pattern199 (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 || !register_operand (operands[1], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1) return -1; switch (GET_MODE (operands[2])) { case E_QImode: if (!register_operand (operands[2], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[2], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[2], E_SImode)) return -1; return 2; default: return -1; } } static int pattern200 (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[1] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x3, 1); operands[3] = x6; if (!aarch64_imm3 (operands[3], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern199 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern199 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern201 (rtx x1, machine_mode i1, machine_mode i2) { 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], i2) || GET_MODE (x1) != i2) return -1; x2 = XEXP (x1, 0); operands[1] = x2; if (!register_operand (operands[1], i2)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i2) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); operands[2] = x5; if (!register_operand (operands[2], i1)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i2) return -1; x7 = XEXP (x6, 0); operands[3] = x7; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern202 (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; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i3)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i3) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[2], i1)) return -1; x5 = XEXP (x2, 1); if (GET_MODE (x5) != i3) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i2 || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern203 (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 = XEXP (x1, 1); 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: switch (GET_MODE (operands[0])) { case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x6 = XEXP (x1, 0); operands[3] = x6; if (!register_operand (operands[3], E_DImode) || GET_MODE (x2) != E_DImode || GET_MODE (x4) != E_DImode) return -1; operands[1] = x5; if (!register_operand (operands[1], E_SImode) || GET_MODE (x3) != E_DImode) return -1; x7 = XEXP (x3, 0); operands[2] = x7; if (!register_operand (operands[2], E_SImode)) return -1; return 0; case E_V8HImode: if (pattern201 (x1, E_V8QImode, E_V8HImode) != 0) return -1; return 1; case E_V4SImode: if (pattern201 (x1, E_V4HImode, E_V4SImode) != 0) return -1; return 2; case E_V2DImode: if (pattern201 (x1, E_V2SImode, E_V2DImode) != 0) return -1; return 3; default: return -1; } case VEC_SELECT: x7 = XEXP (x3, 0); if (GET_CODE (x7) != VEC_SELECT) return -1; x6 = XEXP (x1, 0); operands[1] = x6; x8 = XEXP (x5, 0); operands[2] = x8; x9 = XEXP (x5, 1); operands[3] = x9; x10 = XEXP (x7, 0); operands[4] = x10; x11 = XEXP (x7, 1); if (!rtx_equal_p (x11, operands[3])) return -1; switch (GET_MODE (operands[0])) { case E_V8HImode: if (pattern202 (x1, E_V16QImode, E_V8QImode, E_V8HImode) != 0) return -1; return 4; case E_V4SImode: if (pattern202 (x1, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; return 5; case E_V2DImode: if (pattern202 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; return 6; default: return -1; } default: return -1; } } static int pattern204 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); operands[2] = x2; if (!register_operand (operands[2], E_V16QImode)) return -1; switch (GET_MODE (operands[0])) { case E_OImode: if (!register_operand (operands[0], E_OImode) || GET_MODE (x1) != E_OImode || !register_operand (operands[1], E_OImode)) return -1; return 0; case E_CImode: if (!register_operand (operands[0], E_CImode) || GET_MODE (x1) != E_CImode || !register_operand (operands[1], E_CImode)) return -1; return 1; case E_XImode: if (!register_operand (operands[0], E_XImode) || GET_MODE (x1) != E_XImode || !register_operand (operands[1], E_XImode)) return -1; return 2; default: return -1; } } static int pattern205 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], E_VNx16BImode)) return -1; x2 = XVECEXP (x1, 0, 1); operands[2] = x2; if (!aarch64_any_register_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16QImode) || GET_MODE (x1) != E_VNx16QImode) return -1; return 0; case E_VNx8HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8HImode) || GET_MODE (x1) != E_VNx8HImode) return -1; return 1; case E_VNx4SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4SImode) || GET_MODE (x1) != E_VNx4SImode) return -1; return 2; case E_VNx2DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx2DImode) || GET_MODE (x1) != E_VNx2DImode) return -1; return 3; case E_VNx8HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8HFmode) || GET_MODE (x1) != E_VNx8HFmode) return -1; return 4; case E_VNx4SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4SFmode) || GET_MODE (x1) != E_VNx4SFmode) return -1; return 5; case E_VNx2DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx2DFmode) || GET_MODE (x1) != E_VNx2DFmode) return -1; return 6; default: return -1; } } static int pattern206 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern207 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !aarch64_simd_imm_zero (operands[4], i1)) return -1; return 0; } static int pattern208 (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); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; x6 = XVECEXP (x1, 0, 2); switch (GET_CODE (x6)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern206 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern206 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern206 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern206 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } case CONST_VECTOR: case CONST: operands[4] = x6; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern207 (x1, E_VNx16QImode, E_VNx16BImode) != 0) return -1; return 4; case E_VNx8HImode: if (pattern207 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 5; case E_VNx4SImode: if (pattern207 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 6; case E_VNx2DImode: if (pattern207 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 7; default: return -1; } default: return -1; } } static int pattern209 (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); operands[1] = x2; x3 = XVECEXP (x1, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; x6 = XVECEXP (x1, 0, 2); switch (GET_CODE (x6)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x1) != E_VNx4SImode || !register_operand (operands[2], E_VNx4SImode) || !register_operand (operands[3], E_VNx4SImode)) return -1; switch (GET_MODE (operands[1])) { case E_VNx4BImode: if (!register_operand (operands[1], E_VNx4BImode) || GET_MODE (x3) != E_VNx4SImode) return -1; return 0; case E_VNx16BImode: if (!register_operand (operands[1], E_VNx16BImode) || GET_MODE (x3) != E_VNx16QImode) return -1; operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode)) return -1; return 1; case E_VNx8BImode: if (!register_operand (operands[1], E_VNx8BImode) || GET_MODE (x3) != E_VNx8HImode) return -1; operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode)) return -1; return 2; case E_VNx2BImode: if (!register_operand (operands[1], E_VNx2BImode) || GET_MODE (x3) != E_VNx2DImode) return -1; operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode)) return -1; return 3; default: return -1; } case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x1) != E_VNx2DImode || !register_operand (operands[2], E_VNx2DImode) || !register_operand (operands[3], E_VNx2DImode)) return -1; switch (GET_MODE (operands[1])) { case E_VNx2BImode: if (!register_operand (operands[1], E_VNx2BImode) || GET_MODE (x3) != E_VNx2DImode) return -1; return 4; case E_VNx16BImode: if (!register_operand (operands[1], E_VNx16BImode) || GET_MODE (x3) != E_VNx16QImode) return -1; operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode)) return -1; return 5; case E_VNx8BImode: if (!register_operand (operands[1], E_VNx8BImode) || GET_MODE (x3) != E_VNx8HImode) return -1; operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode)) return -1; return 6; case E_VNx4BImode: if (!register_operand (operands[1], E_VNx4BImode) || GET_MODE (x3) != E_VNx4SImode) return -1; operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode)) return -1; return 7; default: return -1; } default: return -1; } case CONST_VECTOR: case CONST: operands[4] = x6; switch (GET_MODE (operands[0])) { case E_VNx4SImode: if (pattern207 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 8; case E_VNx2DImode: if (pattern207 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 9; default: return -1; } default: return -1; } } static int pattern210 (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); operands[1] = x3; if (!register_operand (operands[1], i1)) return -1; x4 = XEXP (x1, 1); operands[2] = x4; if (!register_operand (operands[2], i1)) return -1; return 0; } static int pattern211 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; 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); operands[2] = x3; if (!register_operand (operands[2], i1)) return -1; x4 = XEXP (x1, 1); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern212 (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); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; return pattern187 (x1); /* [-1, 1] */ } static int pattern213 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case AND: x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; 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) || GET_MODE (x3) != 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[1], E_DImode)) return -1; switch (GET_MODE (x3)) { case E_DImode: if (!register_operand (operands[2], E_DImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[2], E_SImode)) return -1; return 2; default: return -1; } default: return -1; } case NEG: res = pattern27 (x1); if (res >= 0) return res + 3; /* [3, 4] */ return -1; default: return -1; } } static int pattern214 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[4] = x2; if (!subreg_lowpart_operator (operands[4], E_VOIDmode)) return -1; return pattern213 (x1); /* [-1, 4] */ } static int pattern215 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[2] = x2; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode) || GET_MODE (x1) != E_QImode || !register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode || !register_operand (operands[1], E_HImode)) return -1; return 1; default: return -1; } } static int pattern216 (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) || !aarch64_reg_or_shift_imm_si (operands[2], E_QImode)) 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) || !aarch64_reg_or_shift_imm_di (operands[2], E_QImode)) return -1; return 1; default: return -1; } } static int pattern217 (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) || !aarch64_simd_shift_imm_offset_si (operands[2], E_VOIDmode) || !aarch64_simd_shift_imm_si (operands[3], E_VOIDmode)) 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) || !aarch64_simd_shift_imm_offset_di (operands[2], E_VOIDmode) || !aarch64_simd_shift_imm_di (operands[3], E_VOIDmode)) return -1; return 1; default: return -1; } } static int pattern218 (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); operands[2] = x2; if (!register_operand (operands[2], i1)) return -1; x3 = XEXP (x1, 1); operands[3] = x3; if (!register_operand (operands[3], i1)) return -1; x4 = XEXP (x1, 2); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern219 (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); operands[1] = x2; if (!register_operand (operands[1], i1)) return -1; x3 = XEXP (x1, 1); operands[2] = x3; if (!register_operand (operands[2], i1)) return -1; x4 = XEXP (x1, 2); operands[3] = x4; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern220 (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 || !aarch64_sve_index_operand (operands[1], i1) || !aarch64_sve_index_operand (operands[2], i1)) return -1; return 0; } static int pattern221 (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) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsc_operand (operands[3], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern222 (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, 1); if (GET_CODE (x2) != CLOBBER) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 66 || GET_MODE (x3) != E_CCmode) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); x6 = XEXP (x5, 0); x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x6, 1); operands[3] = x8; x9 = XEXP (x5, 1); operands[1] = x9; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern221 (x5, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern221 (x5, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern221 (x5, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern221 (x5, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } } static int pattern223 (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) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsd_operand (operands[3], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern224 (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, 1); if (GET_CODE (x2) != CLOBBER) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 66 || GET_MODE (x3) != E_CCmode) return -1; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); x6 = XEXP (x5, 0); x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x6, 1); operands[3] = x8; x9 = XEXP (x5, 1); operands[1] = x9; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern223 (x5, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern223 (x5, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern223 (x5, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern223 (x5, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } } static int pattern225 (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); x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != UNSPEC || XVECLEN (x5, 0) != 1 || XINT (x5, 1) != 26 || GET_MODE (x5) != E_DImode) return -1; return 0; } static int pattern226 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !aarch64_plus_operand (operands[2], i1) || !aarch64_reg_or_zero (operands[3], i1)) return -1; return 0; } static int pattern227 (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); switch (GET_CODE (x3)) { case ZERO_EXTEND: if (GET_MODE (x3) != E_SImode || !register_operand (operands[0], E_SImode)) return -1; x4 = XEXP (x3, 0); operands[1] = x4; x5 = XVECEXP (x1, 0, 2); x6 = XEXP (x5, 0); if (!rtx_equal_p (x6, operands[1])) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!aarch64_sync_memory_operand (operands[1], E_QImode)) return -1; x7 = XEXP (x5, 1); if (GET_MODE (x7) != E_QImode || !aarch64_reg_or_imm (operands[2], E_QImode) || !aarch64_reg_or_zero (operands[3], E_QImode)) return -1; return 0; case E_HImode: if (!aarch64_sync_memory_operand (operands[1], E_HImode)) return -1; x7 = XEXP (x5, 1); if (GET_MODE (x7) != E_HImode || !aarch64_plushi_operand (operands[2], E_HImode) || !aarch64_reg_or_zero (operands[3], E_HImode)) return -1; return 1; default: return -1; } case SUBREG: case MEM: operands[1] = x3; x5 = XVECEXP (x1, 0, 2); x6 = XEXP (x5, 0); if (!rtx_equal_p (x6, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: x7 = XEXP (x5, 1); if (pattern226 (x7, E_SImode) != 0) return -1; return 2; case E_DImode: x7 = XEXP (x5, 1); if (pattern226 (x7, E_DImode) != 0) return -1; return 3; default: return -1; } default: return -1; } } static int pattern228 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_plus_operand (operands[1], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern229 (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); operands[1] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern228 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern228 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern228 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern228 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern230 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_logical_operand (operands[1], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern231 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); operands[1] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern230 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern230 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern230 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern230 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern232 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !aarch64_logical_operand (operands[1], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } 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, x11, x12, x13, x14, x15, x16, x17; rtx x18, x19, x20, x21; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); switch (XVECLEN (x3, 0)) { case 1: if (XINT (x3, 1) != 16 || GET_MODE (x3) != E_CCmode) return -1; 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x7 = XVECEXP (x1, 0, 2); if (GET_CODE (x7) != SET) return -1; x8 = XEXP (x7, 1); if (GET_CODE (x8) != UNSPEC_VOLATILE || XVECLEN (x8, 0) != 5 || XINT (x8, 1) != 16) return -1; x9 = XEXP (x6, 0); operands[0] = x9; x10 = XVECEXP (x8, 0, 0); operands[2] = x10; x11 = XVECEXP (x8, 0, 1); operands[3] = x11; x12 = XVECEXP (x8, 0, 2); operands[4] = x12; if (!const_int_operand (operands[4], E_SImode)) return -1; x13 = XVECEXP (x8, 0, 3); operands[5] = x13; if (!const_int_operand (operands[5], E_SImode)) return -1; x14 = XVECEXP (x8, 0, 4); operands[6] = x14; if (!const_int_operand (operands[6], E_SImode)) return -1; x15 = XVECEXP (x1, 0, 3); x16 = XEXP (x15, 0); operands[7] = x16; return pattern227 (x1); /* [-1, 3] */ case 2: if (XINT (x3, 1) != 20) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != CLOBBER) return -1; x9 = XEXP (x6, 0); if (GET_CODE (x9) != REG || REGNO (x9) != 66 || GET_MODE (x9) != E_CCmode) return -1; x7 = XVECEXP (x1, 0, 2); if (GET_CODE (x7) != CLOBBER) return -1; x5 = XEXP (x2, 0); operands[0] = x5; x17 = XVECEXP (x3, 0, 1); operands[2] = x17; if (!const_int_operand (operands[2], E_SImode)) return -1; x18 = XEXP (x7, 0); operands[3] = x18; x15 = XVECEXP (x1, 0, 3); x16 = XEXP (x15, 0); operands[4] = x16; x4 = XVECEXP (x3, 0, 0); switch (GET_CODE (x4)) { case PLUS: res = pattern229 (x3); if (res >= 0) return res + 4; /* [4, 7] */ return -1; case MINUS: res = pattern229 (x3); if (res >= 0) return res + 8; /* [8, 11] */ return -1; case IOR: res = pattern231 (x3); if (res >= 0) return res + 12; /* [12, 15] */ return -1; case XOR: res = pattern231 (x3); if (res >= 0) return res + 16; /* [16, 19] */ return -1; case AND: res = pattern231 (x3); if (res >= 0) return res + 20; /* [20, 23] */ return -1; case NOT: x19 = XEXP (x4, 0); if (GET_CODE (x19) != AND) return -1; x20 = XEXP (x19, 1); operands[1] = x20; x21 = XEXP (x19, 0); if (!rtx_equal_p (x21, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern232 (x3, E_QImode) != 0) return -1; return 24; case E_HImode: if (pattern232 (x3, E_HImode) != 0) return -1; return 25; case E_SImode: if (pattern232 (x3, E_SImode) != 0) return -1; return 26; case E_DImode: if (pattern232 (x3, E_DImode) != 0) return -1; return 27; default: return -1; } default: return -1; } default: return -1; } } static int pattern234 (rtx x1, int i1, int i2) { 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); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != UNSPEC_VOLATILE || XVECLEN (x3, 0) != i2 || XINT (x3, 1) != i1) 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 0); operands[0] = x7; return 0; } static int pattern235 (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; 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_VOLATILE || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 20) 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x6, 1); x9 = XEXP (x8, 0); operands[1] = x9; x10 = XEXP (x8, 1); operands[2] = x10; x11 = XVECEXP (x3, 0, 2); operands[3] = x11; if (!const_int_operand (operands[3], E_SImode)) return -1; x12 = XVECEXP (x1, 0, 3); x13 = XEXP (x12, 0); operands[4] = x13; return pattern132 (x1); /* [-1, 3] */ } static int pattern236 (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; 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_VOLATILE || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 20) 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) != 66 || GET_MODE (x5) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x6, 1); x9 = XEXP (x8, 0); operands[1] = x9; x10 = XEXP (x8, 1); operands[2] = x10; x11 = XVECEXP (x3, 0, 2); operands[3] = x11; if (!const_int_operand (operands[3], E_SImode)) return -1; x12 = XVECEXP (x1, 0, 3); x13 = XEXP (x12, 0); operands[4] = x13; return pattern135 (x1); /* [-1, 3] */ } static int pattern237 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; operands[1] = x1; if (!memory_operand (operands[1], E_SImode)) return -1; x2 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 1); if (GET_CODE (x3) != i1 || GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x2, 0); operands[2] = x4; if (!register_operand (operands[2], E_DImode)) return -1; x5 = XEXP (x3, 0); operands[3] = x5; if (!memory_operand (operands[3], E_SImode)) return -1; return 0; } static int pattern238 (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[3], i1)) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 2; default: return -1; } } static int pattern239 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); operands[1] = x4; if (!aarch64_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern238 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern238 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } 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) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], i1)) return -1; x4 = XEXP (x2, 1); operands[2] = x4; if (!register_operand (operands[2], i1)) return -1; x5 = XEXP (x1, 1); operands[3] = x5; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern241 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) 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 (!register_operand (operands[3], i1)) return -1; x5 = XEXP (x1, 1); operands[1] = x5; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern242 (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); operands[1] = x3; x4 = XEXP (x1, 1); operands[2] = x4; if (!register_operand (operands[2], i1)) return -1; return pattern125 (); /* [-1, 2] */ } static int pattern243 (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], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); operands[2] = x3; if (!register_operand (operands[2], i2)) return -1; x4 = XEXP (x1, 1); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern244 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != VEC_SELECT) return -1; x4 = XEXP (x1, 0); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); operands[1] = x6; return pattern41 (x1); /* [-1, 2] */ } static int pattern245 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { 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) != i3 || !register_operand (operands[2], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern246 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; x3 = XEXP (x1, 0); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8HImode: return pattern245 (x1, E_V8HImode, E_V16QImode, E_V8QImode); /* [-1, 0] */ case E_V4SImode: if (pattern245 (x1, E_V4SImode, E_V8HImode, E_V4HImode) != 0) return -1; return 1; case E_V2DImode: if (pattern245 (x1, E_V2DImode, E_V4SImode, E_V2SImode) != 0) return -1; return 2; default: return -1; } } static int pattern247 (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) != i1 || !register_operand (operands[1], i2) || !immediate_operand (operands[2], i1)) return -1; return 0; } static int pattern248 (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 || !aarch64_borrow_operation (operands[2], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern249 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; 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; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_pwr_2_si (operands[2], E_QImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_pwr_2_di (operands[2], E_QImode)) return -1; return 1; default: return -1; } } static int pattern250 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!nonimmediate_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i2) || !nonimmediate_operand (operands[2], i1)) return -1; return 0; } static int pattern251 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_sve_struct_nonimmediate_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i2) || !aarch64_sve_struct_nonimmediate_operand (operands[2], i1)) return -1; return 0; } static int pattern252 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); operands[2] = x2; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern250 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern250 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern250 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern250 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; case E_VNx8HFmode: if (pattern250 (x1, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; return 4; case E_VNx4SFmode: if (pattern250 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 5; case E_VNx2DFmode: if (pattern250 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 6; case E_VNx32QImode: if (pattern251 (x1, E_VNx32QImode, E_VNx16BImode) != 0) return -1; return 7; case E_VNx16HImode: if (pattern251 (x1, E_VNx16HImode, E_VNx8BImode) != 0) return -1; return 8; case E_VNx8SImode: if (pattern251 (x1, E_VNx8SImode, E_VNx4BImode) != 0) return -1; return 9; case E_VNx4DImode: if (pattern251 (x1, E_VNx4DImode, E_VNx2BImode) != 0) return -1; return 10; case E_VNx16HFmode: if (pattern251 (x1, E_VNx16HFmode, E_VNx8BImode) != 0) return -1; return 11; case E_VNx8SFmode: if (pattern251 (x1, E_VNx8SFmode, E_VNx4BImode) != 0) return -1; return 12; case E_VNx4DFmode: if (pattern251 (x1, E_VNx4DFmode, E_VNx2BImode) != 0) return -1; return 13; case E_VNx48QImode: if (pattern251 (x1, E_VNx48QImode, E_VNx16BImode) != 0) return -1; return 14; case E_VNx24HImode: if (pattern251 (x1, E_VNx24HImode, E_VNx8BImode) != 0) return -1; return 15; case E_VNx12SImode: if (pattern251 (x1, E_VNx12SImode, E_VNx4BImode) != 0) return -1; return 16; case E_VNx6DImode: if (pattern251 (x1, E_VNx6DImode, E_VNx2BImode) != 0) return -1; return 17; case E_VNx24HFmode: if (pattern251 (x1, E_VNx24HFmode, E_VNx8BImode) != 0) return -1; return 18; case E_VNx12SFmode: if (pattern251 (x1, E_VNx12SFmode, E_VNx4BImode) != 0) return -1; return 19; case E_VNx6DFmode: if (pattern251 (x1, E_VNx6DFmode, E_VNx2BImode) != 0) return -1; return 20; case E_VNx64QImode: if (pattern251 (x1, E_VNx64QImode, E_VNx16BImode) != 0) return -1; return 21; case E_VNx32HImode: if (pattern251 (x1, E_VNx32HImode, E_VNx8BImode) != 0) return -1; return 22; case E_VNx16SImode: if (pattern251 (x1, E_VNx16SImode, E_VNx4BImode) != 0) return -1; return 23; case E_VNx8DImode: if (pattern251 (x1, E_VNx8DImode, E_VNx2BImode) != 0) return -1; return 24; case E_VNx32HFmode: if (pattern251 (x1, E_VNx32HFmode, E_VNx8BImode) != 0) return -1; return 25; case E_VNx16SFmode: if (pattern251 (x1, E_VNx16SFmode, E_VNx4BImode) != 0) return -1; return 26; case E_VNx8DFmode: if (pattern251 (x1, E_VNx8DFmode, E_VNx2BImode) != 0) return -1; return 27; default: return -1; } } static int pattern253 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !aarch64_sve_mul_operand (operands[3], i1)) return -1; return 0; } static int pattern254 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !aarch64_sve_float_mul_operand (operands[3], i1)) return -1; return 0; } static int pattern255 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern253 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern253 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern253 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern253 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; case E_VNx8HFmode: if (pattern254 (x1, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; return 4; case E_VNx4SFmode: if (pattern254 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 5; case E_VNx2DFmode: if (pattern254 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 6; default: return -1; } } static int pattern256 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern257 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern256 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern256 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern256 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern256 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; case E_VNx8HFmode: if (pattern256 (x1, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; return 4; case E_VNx4SFmode: if (pattern256 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 5; case E_VNx2DFmode: if (pattern256 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 6; default: return -1; } } static int pattern258 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern256 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern256 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern256 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern256 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern259 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !aarch64_sve_lshift_operand (operands[3], i1)) return -1; return 0; } static int pattern260 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern259 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern259 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern259 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern259 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern261 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !aarch64_sve_rshift_operand (operands[3], i1)) return -1; return 0; } static int pattern262 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern261 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern261 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern261 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern261 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern263 (rtx x1, int *pnum_clobbers) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (pnum_clobbers == NULL || !register_operand (operands[0], E_VNx16BImode) || GET_MODE (x1) != E_VNx16BImode || !register_operand (operands[1], E_VNx16BImode) || GET_MODE (x2) != E_VNx16BImode || !register_operand (operands[2], E_VNx16QImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx16QImode)) return -1; return 0; case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x1) != E_VNx8BImode || !register_operand (operands[1], E_VNx8BImode) || GET_MODE (x2) != E_VNx8BImode) return -1; switch (GET_MODE (operands[2])) { case E_VNx8HImode: if (pnum_clobbers == NULL || !register_operand (operands[2], E_VNx8HImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx8HImode)) return -1; return 1; case E_VNx8HFmode: if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode)) return -1; return 2; default: return -1; } case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x1) != E_VNx4BImode || !register_operand (operands[1], E_VNx4BImode) || GET_MODE (x2) != E_VNx4BImode) return -1; switch (GET_MODE (operands[2])) { case E_VNx4SImode: if (pnum_clobbers == NULL || !register_operand (operands[2], E_VNx4SImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx4SImode)) return -1; return 3; case E_VNx4SFmode: if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode)) return -1; return 4; default: return -1; } case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x1) != E_VNx2BImode || !register_operand (operands[1], E_VNx2BImode) || GET_MODE (x2) != E_VNx2BImode) return -1; switch (GET_MODE (operands[2])) { case E_VNx2DImode: if (pnum_clobbers == NULL || !register_operand (operands[2], E_VNx2DImode) || !aarch64_sve_cmp_vsc_operand (operands[3], E_VNx2DImode)) return -1; return 5; case E_VNx2DFmode: if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode)) return -1; return 6; default: return -1; } default: return -1; } } static int pattern264 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !aarch64_sve_cmp_vsd_operand (operands[3], i1)) return -1; return 0; } static int pattern265 (rtx x1, int *pnum_clobbers) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern264 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern264 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern264 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern264 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern266 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern206 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern206 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern206 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern206 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; case E_VNx8HFmode: if (pattern206 (x1, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; return 4; case E_VNx4SFmode: if (pattern206 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 5; case E_VNx2DFmode: if (pattern206 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 6; default: return -1; } } static int pattern267 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern206 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern206 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (pattern206 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2DImode: if (pattern206 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern268 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !aarch64_sve_float_arith_with_sub_operand (operands[3], i1)) return -1; return 0; } static int pattern269 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: return pattern268 (x1, E_VNx8HFmode, E_VNx8BImode); /* [-1, 0] */ case E_VNx4SFmode: if (pattern268 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 1; case E_VNx2DFmode: if (pattern268 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 2; default: return -1; } } static int pattern270 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !aarch64_sve_float_arith_operand (operands[2], i1) || !aarch64_sve_float_arith_with_sub_operand (operands[3], i1)) return -1; return 0; } static int pattern271 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: return pattern270 (x1, E_VNx8HFmode, E_VNx8BImode); /* [-1, 0] */ case E_VNx4SFmode: if (pattern270 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 1; case E_VNx2DFmode: if (pattern270 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 2; default: return -1; } } static int pattern272 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], E_VNx8HFmode)) return -1; return 0; } static int pattern273 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_VNx16QImode: return pattern272 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8HImode: if (pattern272 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x1) != E_VNx4SImode || GET_MODE (x2) != E_VNx4SImode) return -1; switch (GET_MODE (operands[1])) { case E_VNx4BImode: if (!register_operand (operands[1], E_VNx4BImode)) return -1; switch (GET_MODE (operands[2])) { case E_VNx8HFmode: if (!register_operand (operands[2], E_VNx8HFmode)) return -1; return 2; case E_VNx4SFmode: if (!register_operand (operands[2], E_VNx4SFmode)) return -1; return 3; default: return -1; } case E_VNx2BImode: if (!register_operand (operands[1], E_VNx2BImode) || !register_operand (operands[2], E_VNx2DFmode)) return -1; return 4; default: return -1; } case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x1) != E_VNx2DImode || !register_operand (operands[1], E_VNx2BImode) || GET_MODE (x2) != E_VNx2DImode) return -1; switch (GET_MODE (operands[2])) { case E_VNx4SFmode: if (!register_operand (operands[2], E_VNx4SFmode)) return -1; return 5; case E_VNx2DFmode: if (!register_operand (operands[2], E_VNx2DFmode)) return -1; return 6; default: return -1; } default: return -1; } } static int pattern274 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (!register_operand (operands[0], E_VNx8HFmode) || GET_MODE (x1) != E_VNx8HFmode || GET_MODE (x2) != E_VNx8HFmode) return -1; switch (GET_MODE (operands[1])) { case E_VNx16BImode: if (!register_operand (operands[1], E_VNx16BImode) || !register_operand (operands[2], E_VNx16QImode)) return -1; return 0; case E_VNx8BImode: if (!register_operand (operands[1], E_VNx8BImode) || !register_operand (operands[2], E_VNx8HImode)) return -1; return 1; case E_VNx4BImode: if (!register_operand (operands[1], E_VNx4BImode) || !register_operand (operands[2], E_VNx4SImode)) return -1; return 2; default: return -1; } case E_VNx4SFmode: if (!register_operand (operands[0], E_VNx4SFmode) || GET_MODE (x1) != E_VNx4SFmode || GET_MODE (x2) != E_VNx4SFmode) return -1; switch (GET_MODE (operands[1])) { case E_VNx4BImode: if (!register_operand (operands[1], E_VNx4BImode) || !register_operand (operands[2], E_VNx4SImode)) return -1; return 3; case E_VNx2BImode: if (!register_operand (operands[1], E_VNx2BImode) || !register_operand (operands[2], E_VNx2DImode)) return -1; return 4; default: return -1; } case E_VNx2DFmode: if (!register_operand (operands[0], E_VNx2DFmode) || GET_MODE (x1) != E_VNx2DFmode || !register_operand (operands[1], E_VNx2BImode) || GET_MODE (x2) != E_VNx2DFmode) return -1; switch (GET_MODE (operands[2])) { case E_VNx4SImode: if (!register_operand (operands[2], E_VNx4SImode)) return -1; return 5; case E_VNx2DImode: if (!register_operand (operands[2], E_VNx2DImode)) return -1; return 6; default: return -1; } default: return -1; } } static int pattern275 (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) || !aarch64_reg_or_bic_imm (operands[2], i1)) return -1; return 0; } static int pattern276 (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) || !aarch64_sve_logical_operand (operands[2], i1)) return -1; return 0; } static int pattern277 (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) || !aarch64_logical_operand (operands[2], i1)) return -1; return 0; } static int pattern278 (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) || !aarch64_reg_or_orr_imm (operands[2], i1)) return -1; return 0; } static int pattern279 (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) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); operands[2] = x3; if (!register_operand (operands[2], i1)) return -1; x4 = XEXP (x1, 1); operands[3] = x4; if (!register_operand (operands[3], i1)) return -1; x5 = XEXP (x1, 2); operands[1] = x5; if (!register_operand (operands[1], i1)) return -1; return 0; } static int pattern280 (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) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], i1)) return -1; x4 = XEXP (x1, 1); operands[2] = x4; if (!register_operand (operands[2], i1)) return -1; x5 = XEXP (x1, 2); operands[3] = x5; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern281 (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) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern282 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern283 (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) || !aarch64_imm24 (operands[1], E_SImode)) return -1; switch (GET_MODE (x1)) { case E_SImode: return 0; case E_DImode: return 1; default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_imm24 (operands[1], E_DImode)) return -1; switch (GET_MODE (x1)) { case E_SImode: return 2; case E_DImode: return 3; default: return -1; } default: return -1; } } static int pattern284 (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); operands[0] = x3; x4 = XEXP (x2, 1); operands[1] = x4; x5 = XEXP (x1, 1); return pattern283 (x5); /* [-1, 3] */ } static int pattern285 (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) || !aarch64_logical_and_immediate (operands[2], i1)) return -1; return 0; } static int pattern286 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_QImode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_QImode) || GET_MODE (x1) != E_QImode || !register_operand (operands[1], E_VNx16QImode)) return -1; return 0; case E_HImode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode || !register_operand (operands[1], E_VNx8HImode)) return -1; return 1; case E_SImode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[1], E_VNx4SImode)) return -1; return 2; case E_DImode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[1], E_VNx2DImode)) return -1; return 3; case E_HFmode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_HFmode) || GET_MODE (x1) != E_HFmode || !register_operand (operands[1], E_VNx8HFmode)) return -1; return 4; case E_SFmode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_SFmode) || GET_MODE (x1) != E_SFmode || !register_operand (operands[1], E_VNx4SFmode)) return -1; return 5; case E_DFmode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_DFmode) || GET_MODE (x1) != E_DFmode || !register_operand (operands[1], E_VNx2DFmode)) return -1; return 6; default: return -1; } } static int pattern287 (rtx x1, rtx_code i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; 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) != 66 || GET_MODE (x3) != E_CCmode) return -1; x4 = XVECEXP (x1, 0, 3); if (GET_CODE (x4) != i1) return -1; return 0; } static int pattern288 (rtx x1, int *pnum_clobbers) { 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); x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case REG: case SUBREG: operands[0] = x3; return 0; case ZERO_EXTRACT: if (pnum_clobbers == NULL || GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x5 = XEXP (x2, 1); if (XWINT (x5, 0) != 0L) return -1; x6 = XEXP (x3, 0); operands[0] = x6; x7 = XEXP (x3, 2); operands[1] = x7; x8 = XEXP (x1, 1); x9 = XEXP (x8, 0); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !aarch64_simd_shift_imm_si (operands[1], E_VOIDmode)) return -1; return 1; case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_simd_shift_imm_di (operands[1], E_VOIDmode)) return -1; return 2; default: return -1; } default: return -1; } } static int pattern289 (rtx x1, int *pnum_clobbers) { 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, 0); x3 = XEXP (x2, 1); if (XWINT (x3, 0) != 0L) return -1; x4 = XEXP (x2, 0); operands[0] = x4; x5 = XEXP (x1, 1); x6 = XEXP (x5, 0); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[0], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; return 2; case E_DImode: if (!register_operand (operands[0], E_DImode)) return -1; return 3; default: return -1; } } static int pattern290 (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, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !aarch64_reg_or_zero (operands[3], i1)) return -1; return 0; } static int pattern291 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_SImode: return pattern290 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern290 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern292 (rtx x1) { 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) != E_SImode) 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 (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; x5 = XEXP (x1, 1); operands[3] = x5; if (!register_operand (operands[3], E_SImode)) return -1; return 0; } static int pattern293 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_SImode: if (!register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern294 (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) return -1; x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x1, 1); operands[2] = x4; switch (GET_MODE (operands[1])) { case E_QImode: return pattern293 (E_QImode); /* [-1, 1] */ case E_HImode: res = pattern293 (E_HImode); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } } static int pattern295 (rtx x1) { 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); if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != MULT || GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x2, 2); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x3, 0); operands[1] = x5; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[2] = x6; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; x7 = XEXP (x2, 1); operands[3] = x7; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x8 = XEXP (x1, 1); operands[4] = x8; if (!register_operand (operands[4], E_SImode)) return -1; return 0; } static int pattern296 (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) || !aarch64_sve_add_operand (operands[2], i1)) return -1; return 0; } static int pattern297 (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 || !aarch64_carry_operation (operands[3], i1) || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern298 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1) return -1; switch (GET_MODE (operands[0])) { case E_SFmode: if (!register_operand (operands[0], E_SFmode) || !aarch64_fp_compare_operand (operands[1], E_SFmode)) return -1; return 0; case E_DFmode: if (!register_operand (operands[0], E_DFmode) || !aarch64_fp_compare_operand (operands[1], E_DFmode)) return -1; return 1; default: return -1; } } static int pattern299 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[0], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; return 2; default: return -1; } } static int pattern300 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; x3 = XEXP (x1, 0); switch (GET_MODE (x3)) { case E_SImode: return pattern299 (E_SImode); /* [-1, 2] */ case E_DImode: res = pattern299 (E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern301 (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 || !aarch64_sve_arith_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern302 (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) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); operands[3] = x2; if (!register_operand (operands[3], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1) return -1; x4 = XEXP (x3, 0); operands[1] = x4; if (!register_operand (operands[1], i1)) return -1; x5 = XEXP (x3, 1); operands[2] = x5; if (!register_operand (operands[2], i1)) return -1; return 0; } static int pattern303 (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) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); operands[1] = x2; if (!register_operand (operands[1], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1) return -1; x4 = XEXP (x3, 0); operands[2] = x4; if (!register_operand (operands[2], i1)) return -1; x5 = XEXP (x3, 1); operands[3] = x5; if (!register_operand (operands[3], i1)) return -1; return 0; } static int pattern304 (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 || !aarch64_reg_or_zero (operands[1], i1) || !aarch64_borrow_operation (operands[2], i1)) return -1; return 0; } static int pattern305 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (!rtx_equal_p (x3, operands[1])) return -1; x4 = XEXP (x2, 1); if (!rtx_equal_p (x4, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_V8QImode: return pattern142 (x1, E_V8QImode); /* [-1, 0] */ case E_V16QImode: if (pattern142 (x1, E_V16QImode) != 0) return -1; return 1; case E_V4HImode: if (pattern142 (x1, E_V4HImode) != 0) return -1; return 2; case E_V8HImode: if (pattern142 (x1, E_V8HImode) != 0) return -1; return 3; case E_V2SImode: if (pattern142 (x1, E_V2SImode) != 0) return -1; return 4; case E_V4SImode: if (pattern142 (x1, E_V4SImode) != 0) return -1; return 5; default: return -1; } } static int pattern306 (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[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern307 (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) || !aarch64_sve_mul_immediate (operands[2], i1)) return -1; return 0; } static int pattern308 (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 pattern309 (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) != i1 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern310 (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) || !aarch64_imm24 (operands[2], i1)) return -1; return 0; } static int pattern311 (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[2], i1)) return -1; switch (GET_MODE (operands[1])) { case E_V16QImode: if (!register_operand (operands[1], E_V16QImode)) return -1; return 0; case E_OImode: if (!register_operand (operands[1], E_OImode)) return -1; return 1; case E_CImode: if (!register_operand (operands[1], E_CImode)) return -1; return 2; case E_XImode: if (!register_operand (operands[1], E_XImode)) return -1; return 3; default: return -1; } } static int pattern312 (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 pattern313 (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 || !register_operand (operands[2], i2) || !memory_operand (operands[1], i1)) return -1; return 0; } static int pattern314 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 3); if (GET_CODE (x2) != UNSPEC || XVECLEN (x2, 0) != 1 || XINT (x2, 1) != 75) return -1; x3 = XVECEXP (x2, 0, 0); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || !register_operand (operands[0], i1) || !aarch64_simd_struct_operand (operands[1], E_BLKmode) || !register_operand (operands[2], i1) || !immediate_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (x2)) { case E_V8QImode: return 0; case E_V16QImode: return 1; case E_V4HImode: return 2; case E_V8HImode: return 3; case E_V2SImode: return 4; case E_V4SImode: return 5; case E_V2DImode: return 6; case E_V4HFmode: return 7; case E_V8HFmode: return 8; case E_V2SFmode: return 9; case E_V4SFmode: return 10; case E_V2DFmode: return 11; case E_DImode: return 12; case E_DFmode: return 13; default: return -1; } } static int pattern315 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_V4SImode || !register_operand (operands[0], E_V4SImode) || !register_operand (operands[1], E_V4SImode) || !register_operand (operands[2], E_V4SImode) || !register_operand (operands[3], E_V4SImode)) return -1; x2 = XVECEXP (x1, 0, 3); operands[4] = x2; if (!aarch64_imm2 (operands[4], E_SImode)) return -1; return 0; } static int pattern316 (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) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[3], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern317 (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 (!register_operand (x3, i1)) return -1; x4 = XEXP (x2, 1); if (!const_int_operand (x4, i1)) return -1; return 0; } static int pattern318 (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) || !aarch64_simd_lshift_imm (operands[2], i1)) return -1; return 0; } static int pattern319 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i1) || !const_int_operand (operands[2], E_VOIDmode)) return -1; return 0; } static int pattern320 (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) != i1 || !vect_par_cnst_lo_half (operands[2], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern321 (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 || pattern43 (x1, i1, i2) != 0) return -1; return 0; } static int pattern322 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; switch (GET_CODE (x1)) { case CLOBBER: x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != 30 || GET_MODE (x2) != E_DImode) return -1; return 0; case RETURN: return 1; default: return -1; } } static int pattern323 (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_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[3] = x3; if (!register_operand (operands[3], E_SImode)) return -1; x4 = XEXP (x2, 0); operands[1] = x4; if (!register_operand (operands[1], E_SImode)) return -1; x5 = XEXP (x2, 1); operands[2] = x5; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 0; } static int pattern324 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x1, 0); operands[1] = x3; if (!register_operand (operands[1], E_SImode)) return -1; x4 = XEXP (x2, 0); operands[2] = x4; switch (GET_MODE (operands[2])) { case E_QImode: if (!register_operand (operands[2], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[2], E_HImode)) return -1; return 1; default: return -1; } } static int pattern325 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_SImode) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != MULT || GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x2, 2); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XEXP (x1, 0); operands[4] = x5; if (!register_operand (operands[4], E_SImode)) return -1; x6 = XEXP (x3, 0); operands[1] = x6; if (!register_operand (operands[1], E_SImode)) return -1; x7 = XEXP (x3, 1); operands[2] = x7; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; x8 = XEXP (x2, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; return 0; } static int pattern326 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != MEM || GET_MODE (x1) != E_SImode) return -1; x2 = XEXP (x1, 0); if (GET_CODE (x2) != LO_SUM || GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x2, 0); operands[1] = x3; if (!register_operand (operands[1], E_DImode)) return -1; x4 = XEXP (x2, 1); operands[2] = x4; if (!aarch64_valid_symref (operands[2], E_DImode)) return -1; return 0; } static int pattern327 (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, 1); operands[2] = x3; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: return pattern238 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern238 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern328 (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], 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], i2)) return -1; x4 = XEXP (x2, 1); if (GET_MODE (x4) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern329 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_DImode: return pattern328 (x1, E_DImode, E_SImode); /* [-1, 0] */ case E_V8HImode: if (pattern328 (x1, E_V8HImode, E_V8QImode) != 0) return -1; return 1; case E_V4SImode: if (pattern328 (x1, E_V4SImode, E_V4HImode) != 0) return -1; return 2; case E_V2DImode: if (pattern328 (x1, E_V2DImode, E_V2SImode) != 0) return -1; return 3; default: return -1; } } static int pattern330 (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 pattern331 (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); operands[0] = x3; x4 = XEXP (x2, 1); operands[1] = x4; x5 = XEXP (x1, 1); operands[2] = x5; switch (GET_MODE (x1)) { case E_SImode: if (GET_MODE (x2) != E_SImode || !register_operand (operands[0], E_SImode) || !aarch64_shift_imm_si (operands[1], E_QImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (GET_MODE (x2) != E_DImode || !register_operand (operands[0], E_DImode) || !aarch64_shift_imm_di (operands[1], E_QImode) || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern332 (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 || !aarch64_reg_or_zero (operands[1], i1) || !register_operand (operands[2], i1) || !aarch64_borrow_operation (operands[3], i1)) return -1; return 0; } static int pattern333 (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 || !aarch64_reg_or_zero (operands[1], i1) || !aarch64_borrow_operation (operands[3], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern334 (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) || !aarch64_sve_cnt_immediate (operands[2], i1)) return -1; return 0; } static int pattern335 (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 || !memory_operand (operands[1], i1) || !memory_operand (operands[2], i1)) return -1; return 0; } static int pattern336 (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 pattern337 (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[3], i1)) return -1; switch (GET_MODE (operands[2])) { case E_OImode: if (!register_operand (operands[2], E_OImode)) return -1; return 0; case E_CImode: if (!register_operand (operands[2], E_CImode)) return -1; return 1; case E_XImode: if (!register_operand (operands[2], E_XImode)) return -1; return 2; default: return -1; } } static int pattern338 (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) || !immediate_operand (operands[3], E_SImode)) return -1; return 0; } static int pattern339 (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_int_operand (operands[3], E_SImode)) return -1; return 0; } static int pattern340 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern341 (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 || !register_operand (operands[1], i3) || !register_operand (operands[2], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern342 (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], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i3) || !register_operand (operands[2], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern343 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsc_operand (operands[3], i2) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern344 (rtx x1, int *pnum_clobbers) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (pnum_clobbers == NULL || !register_operand (operands[0], E_VNx16BImode) || GET_MODE (x1) != E_VNx16BImode || GET_MODE (x2) != E_VNx16BImode || pattern343 (x3, E_VNx16BImode, E_VNx16QImode) != 0) return -1; return 0; case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x1) != E_VNx8BImode || GET_MODE (x2) != E_VNx8BImode) return -1; return 1; case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x1) != E_VNx4BImode || GET_MODE (x2) != E_VNx4BImode) return -1; return 2; case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x1) != E_VNx2BImode || GET_MODE (x2) != E_VNx2BImode) return -1; return 3; default: return -1; } } static int pattern345 (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 = XVECEXP (x2, 0, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsd_operand (operands[3], i2) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern346 (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, 0); x3 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern345 (x1, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern345 (x1, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern345 (x1, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern345 (x1, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } } static int pattern347 (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) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[3], i2) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern348 (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 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx8BImode: return pattern347 (x1, E_VNx8BImode, E_VNx8HFmode); /* [-1, 0] */ case E_VNx4BImode: if (pattern347 (x1, E_VNx4BImode, E_VNx4SFmode) != 0) return -1; return 1; case E_VNx2BImode: if (pattern347 (x1, E_VNx2BImode, E_VNx2DFmode) != 0) return -1; return 2; default: return -1; } } static int pattern349 (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[3], i1) || !register_operand (operands[2], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern350 (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[3], i1) || !register_operand (operands[2], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern351 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern352 (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[2], i1) || !register_operand (operands[3], i1)) return -1; x2 = XEXP (x1, 2); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern353 (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) != i1 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern354 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; int res ATTRIBUTE_UNUSED; switch (GET_CODE (x1)) { case VEC_SELECT: x2 = XEXP (x1, 0); operands[3] = x2; x3 = XEXP (x1, 1); operands[5] = x3; switch (GET_MODE (operands[0])) { case E_V2SFmode: return 0; case E_V4SFmode: return 1; default: return -1; } case VEC_DUPLICATE: x2 = XEXP (x1, 0); if (GET_CODE (x2) != VEC_SELECT || GET_MODE (x2) != E_HFmode) return -1; x4 = XEXP (x2, 1); if (GET_CODE (x4) != PARALLEL || XVECLEN (x4, 0) != 1) return -1; x5 = XEXP (x2, 0); operands[3] = x5; x6 = XVECEXP (x4, 0, 0); operands[5] = x6; switch (GET_MODE (operands[0])) { case E_V2SFmode: return 2; case E_V4SFmode: return 3; default: return -1; } default: return -1; } } static int pattern355 (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 pattern356 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_plus_operand (operands[1], i1)) return -1; return 0; } static int pattern357 (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); operands[1] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern356 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern356 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern356 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern356 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern358 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_logical_operand (operands[1], i1)) return -1; return 0; } static int pattern359 (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); operands[1] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern358 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern358 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern358 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern358 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern360 (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 || !immediate_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern361 (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) || !immediate_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern362 (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_int_operand (operands[2], E_SImode)) return -1; return 0; } static int pattern363 (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 || !register_operand (operands[1], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; return 0; } static int pattern364 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i2)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern365 (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) != i1 || !register_operand (operands[2], i2) || !aarch64_simd_reg_or_zero (operands[3], i2) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern366 (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 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx8BImode: return pattern365 (x1, E_VNx8BImode, E_VNx8HFmode); /* [-1, 0] */ case E_VNx4BImode: if (pattern365 (x1, E_VNx4BImode, E_VNx4SFmode) != 0) return -1; return 1; case E_VNx2BImode: if (pattern365 (x1, E_VNx2BImode, E_VNx2DFmode) != 0) return -1; return 2; default: return -1; } } static int pattern367 (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, 1); operands[5] = x3; x4 = XEXP (x3, 0); if (GET_CODE (x4) != AND || GET_MODE (x4) != E_SImode) return -1; x5 = XEXP (x4, 0); operands[3] = x5; if (!register_operand (operands[3], E_SImode)) return -1; x6 = XEXP (x4, 1); operands[4] = x6; if (!const_int_operand (operands[4], E_VOIDmode)) return -1; return pattern1 (x1); /* [-1, 1] */ } static int pattern368 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!aarch64_general_reg (operands[0], i1) || !aarch64_plus_immediate (operands[2], i1) || GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != COMPARE || GET_MODE (x2) != E_CCmode) return -1; x3 = XEXP (x1, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 66 || GET_MODE (x3) != E_CCmode) return -1; x4 = XEXP (x2, 1); operands[3] = x4; if (!const_int_operand (operands[3], i1)) return -1; x5 = XEXP (x2, 0); if (!rtx_equal_p (x5, operands[1])) return -1; return 0; } static int pattern369 (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) != i1 || !register_operand (operands[1], i2) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern370 (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[0], E_SImode) || !aarch64_plus_operand (operands[1], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_plus_operand (operands[1], E_DImode)) return -1; return 1; default: return -1; } } static int pattern371 (rtx x1, machine_mode i1) { 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) != i1) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1) return -1; x4 = XEXP (x3, 0); return pattern370 (x4); /* [-1, 1] */ } static int pattern372 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1 || !register_operand (operands[2], i1)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[0], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; return 2; default: return -1; } } static int pattern373 (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[0] = x3; if (!aarch64_imm3 (operands[1], E_VOIDmode)) return -1; switch (GET_MODE (x1)) { case E_SImode: return pattern372 (x2, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern372 (x2, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern374 (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); x4 = XEXP (x3, 0); operands[0] = x4; x5 = XEXP (x3, 1); operands[1] = x5; x6 = XEXP (x1, 1); operands[2] = x6; switch (GET_MODE (x1)) { case E_SImode: if (GET_MODE (x2) != E_SImode || GET_MODE (x3) != E_SImode || !register_operand (operands[0], E_SImode) || !aarch64_shift_imm_si (operands[1], E_QImode) || !register_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (GET_MODE (x2) != E_DImode || GET_MODE (x3) != E_DImode || !register_operand (operands[0], E_DImode) || !aarch64_shift_imm_di (operands[1], E_QImode) || !register_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern375 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern376 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern377 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { 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], i3)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !aarch64_sve_ld1r_operand (operands[2], i2) || !aarch64_simd_imm_zero (operands[3], i1)) return -1; return 0; } static int pattern378 (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 || !register_operand (operands[3], i2) || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern379 (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 || !register_operand (operands[1], i2) || !aarch64_sve_dup_immediate (operands[2], i1) || !aarch64_simd_imm_zero (operands[3], i1)) return -1; return 0; } static int pattern380 (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[2], i1) || !register_operand (operands[3], i1)) return -1; x3 = XEXP (x1, 2); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern381 (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[2], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern382 (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_int_operand (operands[3], i1) || !aarch64_plus_immediate (operands[4], i1)) return -1; return 0; } static int pattern383 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[0])) { case E_QImode: if (!aarch64_sync_memory_operand (operands[0], E_QImode) || GET_MODE (x1) != E_QImode || !register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!aarch64_sync_memory_operand (operands[0], E_HImode) || GET_MODE (x1) != E_HImode || !register_operand (operands[1], E_HImode)) return -1; return 1; case E_SImode: if (!aarch64_sync_memory_operand (operands[0], E_SImode) || GET_MODE (x1) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 2; case E_DImode: if (!aarch64_sync_memory_operand (operands[0], E_DImode) || GET_MODE (x1) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 3; default: return -1; } } static int pattern384 (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) != i1 || !aarch64_simd_general_operand (operands[1], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern385 (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 || !register_operand (operands[1], i2)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2 || !vect_par_cnst_lo_half (operands[2], i1)) return -1; return 0; } static int pattern386 (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 || !memory_operand (operands[1], i1) || !memory_operand (operands[2], i1)) return -1; return 0; } static int pattern387 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_mem_pair_lanes_operand (operands[0], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern388 (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 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (GET_CODE (x6) != PLUS) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != i1) return -1; x8 = XEXP (x2, 0); if (GET_MODE (x8) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; return 0; } static int pattern389 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[3], i1) || !register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i1) return -1; return 0; } static int pattern390 (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, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); switch (GET_MODE (x4)) { case E_SImode: x5 = XEXP (x4, 0); if (GET_MODE (x5) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); return pattern389 (x7, E_SImode); /* [-1, 0] */ case E_DImode: x5 = XEXP (x4, 0); if (GET_MODE (x5) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (pattern389 (x7, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern391 (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 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (!rtx_equal_p (x5, operands[1])) return -1; x6 = XEXP (x4, 1); if (!rtx_equal_p (x6, operands[2])) return -1; x7 = XEXP (x3, 1); if (!rtx_equal_p (x7, operands[3])) return -1; return pattern390 (x1); /* [-1, 1] */ } static int pattern392 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (GET_CODE (x6) != PLUS) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != i1) return -1; x8 = XEXP (x2, 0); if (GET_MODE (x8) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; x9 = XEXP (x3, 0); x10 = XEXP (x9, 0); x11 = XEXP (x10, 0); operands[1] = x11; x12 = XEXP (x10, 1); operands[2] = x12; x13 = XEXP (x9, 1); operands[3] = x13; return pattern391 (x1); /* [-1, 1] */ } static int pattern393 (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) return -1; return 0; } static int pattern394 (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; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[4], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); return pattern393 (x8, i1); /* [-1, 0] */ } static int pattern395 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); if (GET_CODE (x6) != MULT) return -1; x7 = XEXP (x5, 2); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x8 = XEXP (x3, 1); if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x9 = XVECEXP (x1, 0, 1); x10 = XEXP (x9, 1); if (GET_CODE (x10) != PLUS) return -1; x11 = XEXP (x10, 0); if (GET_CODE (x11) != i1) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != MULT) return -1; x13 = XEXP (x11, 2); if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x14 = XEXP (x2, 0); if (GET_MODE (x14) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; x15 = XEXP (x6, 0); operands[1] = x15; x16 = XEXP (x6, 1); operands[2] = x16; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; x17 = XEXP (x5, 1); operands[3] = x17; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x18 = XEXP (x4, 1); operands[4] = x18; x19 = XEXP (x12, 0); if (!rtx_equal_p (x19, operands[1])) return -1; x20 = XEXP (x12, 1); if (!rtx_equal_p (x20, operands[2])) return -1; x21 = XEXP (x11, 1); if (!rtx_equal_p (x21, operands[3])) return -1; x22 = XEXP (x10, 1); if (!rtx_equal_p (x22, operands[4])) return -1; switch (GET_MODE (x4)) { case E_SImode: return pattern394 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern394 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern396 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (GET_CODE (x6) != NEG) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != i1) return -1; x8 = XEXP (x2, 0); if (GET_MODE (x8) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; x9 = XEXP (x3, 0); x10 = XEXP (x9, 0); x11 = XEXP (x10, 0); operands[1] = x11; x12 = XEXP (x10, 1); operands[2] = x12; x13 = XEXP (x7, 0); if (!rtx_equal_p (x13, operands[1])) return -1; x14 = XEXP (x7, 1); if (!rtx_equal_p (x14, operands[2])) return -1; switch (GET_MODE (x9)) { case E_SImode: if (GET_MODE (x10) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[0], E_SImode) || GET_MODE (x6) != E_SImode || GET_MODE (x7) != E_SImode) return -1; return 0; case E_DImode: if (GET_MODE (x10) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode) || !register_operand (operands[0], E_DImode) || GET_MODE (x6) != E_DImode || GET_MODE (x7) != E_DImode) return -1; return 1; default: return -1; } } static int pattern397 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (!aarch64_reg_or_zero (operands[1], i1) || GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != MINUS || GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!aarch64_general_reg (operands[0], i1)) return -1; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[1])) return -1; x5 = XEXP (x2, 1); if (!rtx_equal_p (x5, operands[2])) return -1; return 0; } static int pattern398 (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[1], i1) || GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != PLUS || GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!aarch64_general_reg (operands[0], i1)) return -1; x4 = XEXP (x2, 1); operands[2] = x4; if (!aarch64_plus_immediate (operands[2], i1)) return -1; x5 = XEXP (x2, 0); if (!rtx_equal_p (x5, operands[1])) return -1; return 0; } static int pattern399 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V8QImode: if (!register_operand (operands[2], E_V8QImode) || !memory_operand (operands[3], E_V8QImode)) return -1; return 0; case E_V4HImode: if (!register_operand (operands[2], E_V4HImode) || !memory_operand (operands[3], E_V4HImode)) return -1; return 1; case E_V4HFmode: if (!register_operand (operands[2], E_V4HFmode) || !memory_operand (operands[3], E_V4HFmode)) return -1; return 2; case E_V2SImode: if (!register_operand (operands[2], E_V2SImode) || !memory_operand (operands[3], E_V2SImode)) return -1; return 3; case E_V2SFmode: if (!register_operand (operands[2], E_V2SFmode) || !memory_operand (operands[3], E_V2SFmode)) return -1; return 4; case E_DFmode: if (!register_operand (operands[2], E_DFmode) || !memory_operand (operands[3], E_DFmode)) return -1; return 5; default: return -1; } } static int pattern400 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V8QImode: if (!memory_operand (operands[2], E_V8QImode) || !register_operand (operands[3], E_V8QImode)) return -1; return 0; case E_V4HImode: if (!memory_operand (operands[2], E_V4HImode) || !register_operand (operands[3], E_V4HImode)) return -1; return 1; case E_V4HFmode: if (!memory_operand (operands[2], E_V4HFmode) || !register_operand (operands[3], E_V4HFmode)) return -1; return 2; case E_V2SImode: if (!memory_operand (operands[2], E_V2SImode) || !register_operand (operands[3], E_V2SImode)) return -1; return 3; case E_V2SFmode: if (!memory_operand (operands[2], E_V2SFmode) || !register_operand (operands[3], E_V2SFmode)) return -1; return 4; case E_DFmode: if (!memory_operand (operands[2], E_DFmode) || !register_operand (operands[3], E_DFmode)) return -1; return 5; default: return -1; } } static int pattern401 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V16QImode: if (!register_operand (operands[2], E_V16QImode) || !memory_operand (operands[3], E_V16QImode)) return -1; return 0; case E_V8HImode: if (!register_operand (operands[2], E_V8HImode) || !memory_operand (operands[3], E_V8HImode)) return -1; return 1; case E_V4SImode: if (!register_operand (operands[2], E_V4SImode) || !memory_operand (operands[3], E_V4SImode)) return -1; return 2; case E_V2DImode: if (!register_operand (operands[2], E_V2DImode) || !memory_operand (operands[3], E_V2DImode)) return -1; return 3; case E_V8HFmode: if (!register_operand (operands[2], E_V8HFmode) || !memory_operand (operands[3], E_V8HFmode)) return -1; return 4; case E_V4SFmode: if (!register_operand (operands[2], E_V4SFmode) || !memory_operand (operands[3], E_V4SFmode)) return -1; return 5; case E_V2DFmode: if (!register_operand (operands[2], E_V2DFmode) || !memory_operand (operands[3], E_V2DFmode)) return -1; return 6; default: return -1; } } static int pattern402 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V16QImode: if (!memory_operand (operands[2], E_V16QImode) || !register_operand (operands[3], E_V16QImode)) return -1; return 0; case E_V8HImode: if (!memory_operand (operands[2], E_V8HImode) || !register_operand (operands[3], E_V8HImode)) return -1; return 1; case E_V4SImode: if (!memory_operand (operands[2], E_V4SImode) || !register_operand (operands[3], E_V4SImode)) return -1; return 2; case E_V2DImode: if (!memory_operand (operands[2], E_V2DImode) || !register_operand (operands[3], E_V2DImode)) return -1; return 3; case E_V8HFmode: if (!memory_operand (operands[2], E_V8HFmode) || !register_operand (operands[3], E_V8HFmode)) return -1; return 4; case E_V4SFmode: if (!memory_operand (operands[2], E_V4SFmode) || !register_operand (operands[3], E_V4SFmode)) return -1; return 5; case E_V2DFmode: if (!memory_operand (operands[2], E_V2DFmode) || !register_operand (operands[3], E_V2DFmode)) return -1; return 6; default: return -1; } } static int pattern403 (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 pattern404 (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 || !register_operand (operands[1], i2)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern405 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!const_int_operand (operands[4], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x1) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_V4HFmode || !register_operand (operands[2], E_V4HFmode)) return -1; switch (GET_MODE (operands[3])) { case E_V4HFmode: if (!register_operand (operands[3], E_V4HFmode)) return -1; return 0; case E_V8HFmode: if (!register_operand (operands[3], E_V8HFmode)) return -1; return 1; default: return -1; } case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x1) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_V8HFmode || !register_operand (operands[2], E_V8HFmode)) return -1; switch (GET_MODE (operands[3])) { case E_V8HFmode: if (!register_operand (operands[3], E_V8HFmode)) return -1; return 2; case E_V4HFmode: if (!register_operand (operands[3], E_V4HFmode)) return -1; return 3; default: return -1; } case E_V2SFmode: if (pattern403 (x1, E_V2SFmode) != 0) return -1; return 4; case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x1) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_V4SFmode || !register_operand (operands[2], E_V4SFmode)) return -1; switch (GET_MODE (operands[3])) { case E_V4SFmode: if (!register_operand (operands[3], E_V4SFmode)) return -1; return 5; case E_V2SFmode: if (!register_operand (operands[3], E_V2SFmode)) return -1; return 6; default: return -1; } case E_V2DFmode: if (pattern403 (x1, E_V2DFmode) != 0) return -1; return 7; default: return -1; } } static int pattern406 (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 || !register_operand (operands[1], i2)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1)) return -1; switch (GET_MODE (operands[3])) { case E_V8QImode: if (!register_operand (operands[3], E_V8QImode)) return -1; return 0; case E_V16QImode: if (!register_operand (operands[3], E_V16QImode)) return -1; return 1; default: return -1; } } static int pattern407 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!immediate_operand (operands[4], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V2SImode: return pattern406 (x1, E_V8QImode, E_V2SImode); /* [-1, 1] */ case E_V4SImode: res = pattern406 (x1, E_V16QImode, E_V4SImode); if (res >= 0) return res + 2; /* [2, 3] */ return -1; default: return -1; } } static int pattern408 (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) || !aarch64_simd_imm_zero (operands[3], i1) || !aarch64_simd_imm_minus_one (operands[4], i1)) return -1; return 0; } static int pattern409 (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[3], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern410 (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 || !register_operand (operands[1], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern411 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!aarch64_simd_struct_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1)) return -1; x2 = XVECEXP (x1, 0, 1); switch (GET_MODE (x2)) { case E_V8QImode: return 0; case E_V16QImode: return 1; case E_V4HImode: return 2; case E_V8HImode: return 3; case E_V2SImode: return 4; case E_V4SImode: return 5; case E_V2DImode: return 6; case E_V4HFmode: return 7; case E_V8HFmode: return 8; case E_V2SFmode: return 9; case E_V4SFmode: return 10; case E_V2DFmode: return 11; case E_DImode: return 12; case E_DFmode: return 13; default: return -1; } } static int pattern412 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern413 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], E_VNx4SFmode)) return -1; return 0; } static int pattern414 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern415 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !aarch64_simd_imm_zero (operands[4], i1)) return -1; return 0; } static int pattern416 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 2); switch (GET_CODE (x2)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: return pattern414 (x1, E_VNx8HFmode, E_VNx8BImode); /* [-1, 0] */ case E_VNx4SFmode: if (pattern414 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 1; case E_VNx2DFmode: if (pattern414 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 2; default: return -1; } case CONST_VECTOR: case CONST: operands[4] = x2; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern415 (x1, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; return 3; case E_VNx4SFmode: if (pattern415 (x1, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; return 4; case E_VNx2DFmode: if (pattern415 (x1, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; return 5; default: return -1; } default: return -1; } } static int pattern417 (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) || !const_int_operand (operands[2], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern418 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_mem_pair_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_SImode: if (!register_operand (operands[2], E_SImode) || !memory_operand (operands[3], E_SImode)) return -1; return 0; case E_SFmode: if (!register_operand (operands[2], E_SFmode) || !memory_operand (operands[3], E_SFmode)) return -1; return 1; default: return -1; } } static int pattern419 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_mem_pair_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V8QImode: if (!register_operand (operands[2], E_V8QImode) || !memory_operand (operands[3], E_V8QImode)) return -1; return 0; case E_V4HImode: if (!register_operand (operands[2], E_V4HImode) || !memory_operand (operands[3], E_V4HImode)) return -1; return 1; case E_V4HFmode: if (!register_operand (operands[2], E_V4HFmode) || !memory_operand (operands[3], E_V4HFmode)) return -1; return 2; case E_V2SImode: if (!register_operand (operands[2], E_V2SImode) || !memory_operand (operands[3], E_V2SImode)) return -1; return 3; case E_V2SFmode: if (!register_operand (operands[2], E_V2SFmode) || !memory_operand (operands[3], E_V2SFmode)) return -1; return 4; case E_DFmode: if (!register_operand (operands[2], E_DFmode) || !memory_operand (operands[3], E_DFmode)) return -1; return 5; default: return -1; } } static int pattern420 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_mem_pair_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V16QImode: if (!register_operand (operands[2], E_V16QImode) || !memory_operand (operands[3], E_V16QImode)) return -1; return 0; case E_V8HImode: if (!register_operand (operands[2], E_V8HImode) || !memory_operand (operands[3], E_V8HImode)) return -1; return 1; case E_V4SImode: if (!register_operand (operands[2], E_V4SImode) || !memory_operand (operands[3], E_V4SImode)) return -1; return 2; case E_V2DImode: if (!register_operand (operands[2], E_V2DImode) || !memory_operand (operands[3], E_V2DImode)) return -1; return 3; case E_V8HFmode: if (!register_operand (operands[2], E_V8HFmode) || !memory_operand (operands[3], E_V8HFmode)) return -1; return 4; case E_V4SFmode: if (!register_operand (operands[2], E_V4SFmode) || !memory_operand (operands[3], E_V4SFmode)) return -1; return 5; case E_V2DFmode: if (!register_operand (operands[2], E_V2DFmode) || !memory_operand (operands[3], E_V2DFmode)) return -1; return 6; default: return -1; } } static int pattern421 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_mem_pair_operand (operands[0], i1) || !aarch64_reg_zero_or_fp_zero (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_SImode: if (!memory_operand (operands[2], E_SImode) || !aarch64_reg_zero_or_fp_zero (operands[3], E_SImode)) return -1; return 0; case E_SFmode: if (!memory_operand (operands[2], E_SFmode) || !aarch64_reg_zero_or_fp_zero (operands[3], E_SFmode)) return -1; return 1; default: return -1; } } static int pattern422 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[2])) { case E_V8QImode: if (!memory_operand (operands[2], E_V8QImode) || !register_operand (operands[3], E_V8QImode)) return -1; return 0; case E_V4HImode: if (!memory_operand (operands[2], E_V4HImode) || !register_operand (operands[3], E_V4HImode)) return -1; return 1; case E_V4HFmode: if (!memory_operand (operands[2], E_V4HFmode) || !register_operand (operands[3], E_V4HFmode)) return -1; return 2; case E_V2SImode: if (!memory_operand (operands[2], E_V2SImode) || !register_operand (operands[3], E_V2SImode)) return -1; return 3; case E_V2SFmode: if (!memory_operand (operands[2], E_V2SFmode) || !register_operand (operands[3], E_V2SFmode)) return -1; return 4; case E_DFmode: if (!memory_operand (operands[2], E_DFmode) || !register_operand (operands[3], E_DFmode)) return -1; return 5; default: return -1; } } static int pattern423 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_mem_pair_operand (operands[0], i1) || !register_operand (operands[1], i1)) return -1; return pattern422 (); /* [-1, 5] */ } static int pattern424 (machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_mem_pair_operand (operands[0], i1) || !register_operand (operands[1], i1)) return -1; switch (GET_MODE (operands[2])) { case E_V16QImode: if (!memory_operand (operands[2], E_V16QImode) || !register_operand (operands[3], E_V16QImode)) return -1; return 0; case E_V8HImode: if (!memory_operand (operands[2], E_V8HImode) || !register_operand (operands[3], E_V8HImode)) return -1; return 1; case E_V4SImode: if (!memory_operand (operands[2], E_V4SImode) || !register_operand (operands[3], E_V4SImode)) return -1; return 2; case E_V2DImode: if (!memory_operand (operands[2], E_V2DImode) || !register_operand (operands[3], E_V2DImode)) return -1; return 3; case E_V8HFmode: if (!memory_operand (operands[2], E_V8HFmode) || !register_operand (operands[3], E_V8HFmode)) return -1; return 4; case E_V4SFmode: if (!memory_operand (operands[2], E_V4SFmode) || !register_operand (operands[3], E_V4SFmode)) return -1; return 5; case E_V2DFmode: if (!memory_operand (operands[2], E_V2DFmode) || !register_operand (operands[3], E_V2DFmode)) return -1; return 6; default: return -1; } } static int pattern425 (rtx x1, machine_mode i1, unsigned int i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_CODE (x1) != CLOBBER) return -1; x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != i2 || GET_MODE (x2) != i1) return -1; return 0; } static int pattern426 (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[3])) { case E_QImode: if (!register_operand (operands[3], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[3], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[3], E_SImode)) return -1; return 2; default: return -1; } } static int pattern427 (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, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[1] = x4; x5 = XEXP (x3, 0); operands[2] = x5; x6 = XEXP (x2, 1); operands[3] = x6; if (!aarch64_imm3 (operands[3], E_VOIDmode)) return -1; switch (GET_MODE (operands[2])) { case E_QImode: if (!register_operand (operands[2], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[2], E_HImode)) return -1; return 1; default: return -1; } } static int pattern428 (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 = XVECEXP (x2, 0, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern429 (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[3], i1)) return -1; return 0; } static int pattern430 (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[3], i1)) return -1; return 0; } static int pattern431 (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 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern432 (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 pattern433 (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[2], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern434 (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) || 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 || !register_operand (operands[1], i1)) return -1; x4 = XEXP (x2, 1); if (GET_MODE (x4) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern435 (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 = XEXP (x1, 0); x3 = XEXP (x2, 0); if (GET_CODE (x3) != ZERO_EXTRACT || GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x5 = XEXP (x2, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XEXP (x3, 0); operands[0] = x6; x7 = XEXP (x3, 2); operands[1] = x7; x8 = XEXP (x1, 1); x9 = XEXP (x8, 0); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !aarch64_simd_shift_imm_si (operands[1], E_VOIDmode)) return -1; return 0; case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_simd_shift_imm_di (operands[1], E_VOIDmode)) return -1; return 1; default: return -1; } } static int pattern436 (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, 1); if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XEXP (x2, 0); operands[0] = x4; x5 = XEXP (x1, 1); x6 = XEXP (x5, 0); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[0], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[0], E_SImode)) return -1; return 2; case E_DImode: if (!register_operand (operands[0], E_DImode)) return -1; return 3; default: return -1; } } static int pattern437 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || GET_MODE (x1) != i1 || !memory_operand (operands[1], i1) || !scratch_operand (operands[2], i1)) return -1; return 0; } static int pattern438 (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 || !memory_operand (operands[1], i1) || !memory_operand (operands[2], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern439 (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 = XVECEXP (x2, 0, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsc_operand (operands[3], i2) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern440 (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 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern439 (x1, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern439 (x1, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern439 (x1, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern439 (x1, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } } static int pattern441 (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 = XVECEXP (x2, 0, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsd_operand (operands[3], i2) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern442 (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 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern441 (x1, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern441 (x1, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern441 (x1, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern441 (x1, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } } static int pattern443 (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 = XVECEXP (x2, 0, 0); operands[1] = x3; x4 = XEXP (x1, 1); operands[4] = x4; x5 = XVECEXP (x2, 0, 1); switch (GET_CODE (x5)) { case LT: return pattern440 (x1); /* [-1, 3] */ case LE: res = pattern440 (x1); if (res >= 0) return res + 4; /* [4, 7] */ return -1; case EQ: res = pattern440 (x1); if (res >= 0) return res + 8; /* [8, 11] */ return -1; case NE: res = pattern440 (x1); if (res >= 0) return res + 12; /* [12, 15] */ return -1; case GE: res = pattern440 (x1); if (res >= 0) return res + 16; /* [16, 19] */ return -1; case GT: res = pattern440 (x1); if (res >= 0) return res + 20; /* [20, 23] */ return -1; case LTU: res = pattern442 (x1); if (res >= 0) return res + 24; /* [24, 27] */ return -1; case LEU: res = pattern442 (x1); if (res >= 0) return res + 28; /* [28, 31] */ return -1; case GEU: res = pattern442 (x1); if (res >= 0) return res + 32; /* [32, 35] */ return -1; case GTU: res = pattern442 (x1); if (res >= 0) return res + 36; /* [36, 39] */ return -1; default: return -1; } } static int pattern444 (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 || !register_operand (operands[1], i2) || !aarch64_sve_any_binary_operator (operands[5], i1) || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern445 (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 || !aarch64_reg_zero_or_m1_or_1 (operands[3], i1) || !aarch64_reg_zero_or_m1_or_1 (operands[4], i1)) return -1; return 0; } static int pattern446 (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[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern447 (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 = XEXP (x1, 0); operands[1] = x2; if (!aarch64_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; default: return -1; } } static int pattern448 (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 = XEXP (x1, 0); operands[1] = x2; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; default: return -1; } } static int pattern449 (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, 0); x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[0], i2)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i1) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; return 0; } static int pattern450 (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 || !register_operand (operands[4], i1)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[1], i2)) return -1; x3 = XVECEXP (x2, 0, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern451 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[3], i1) || !register_operand (operands[4], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern452 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; x3 = XEXP (x2, 2); if (GET_MODE (x3) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern453 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[3], i1) || !register_operand (operands[4], i1) || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern454 (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], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; x4 = XEXP (x2, 2); if (GET_MODE (x4) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern455 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i3) || GET_MODE (x1) != i3 || !register_operand (operands[1], i3)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i2) || !register_operand (operands[3], i1) || !aarch64_simd_imm_zero (operands[4], i1)) return -1; return 0; } static int pattern456 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern457 (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[1], i1) || !const_int_operand (operands[2], 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[3], i1)) return -1; return 0; } static int pattern458 (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)) return -1; return 0; } static int pattern459 (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) != E_SFmode || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern460 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != i3 || !register_operand (operands[3], i2) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern461 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { 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) != i3 || !register_operand (operands[2], i2)) return -1; x4 = XEXP (x1, 1); return pattern460 (x4, i1, i2, i3); /* [-1, 0] */ } static int pattern462 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !aarch64_logical_operand (operands[1], i1)) return -1; return 0; } static int pattern463 (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) != i3 || !register_operand (operands[1], i2)) return -1; x4 = XEXP (x2, 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 pattern464 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); if (GET_CODE (x3) != SIGN_EXTEND) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != PLUS) return -1; x5 = XEXP (x1, 0); if (GET_MODE (x5) != E_CC_Vmode || GET_MODE (x2) != E_CC_Vmode) return -1; return 0; } static int pattern465 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x5, 1); operands[2] = x7; x8 = XEXP (x4, 1); operands[3] = x8; x9 = XVECEXP (x1, 0, 1); x10 = XEXP (x9, 1); switch (GET_CODE (x10)) { case AND: x11 = XEXP (x10, 0); if (GET_CODE (x11) != i1) return -1; return pattern391 (x1); /* [-1, 1] */ case ZERO_EXTEND: if (GET_MODE (x10) != E_DImode) return -1; x11 = XEXP (x10, 0); if (GET_CODE (x11) != AND || GET_MODE (x11) != E_SImode) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != i1 || GET_MODE (x12) != E_SImode || GET_MODE (x4) != E_SImode || GET_MODE (x5) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[3], E_SImode) || !register_operand (operands[0], E_DImode)) 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[3])) return -1; return 2; default: return -1; } } static int pattern466 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !aarch64_sve_cmp_vsc_operand (operands[3], i1)) return -1; return 0; } static int pattern467 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern466 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern466 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern466 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern466 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern468 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !aarch64_sve_cmp_vsd_operand (operands[3], i1)) return -1; return 0; } static int pattern469 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[0])) { case E_VNx16BImode: return pattern468 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern468 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern468 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern468 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern470 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[2])) { case E_DImode: if (!memory_operand (operands[2], E_DImode) || !aarch64_reg_zero_or_fp_zero (operands[3], E_DImode)) return -1; return 0; case E_DFmode: if (!memory_operand (operands[2], E_DFmode) || !aarch64_reg_zero_or_fp_zero (operands[3], E_DFmode)) return -1; return 1; default: return -1; } } static int pattern471 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern472 (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); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); operands[0] = x6; x7 = XEXP (x5, 1); operands[1] = x7; x8 = XEXP (x4, 1); operands[2] = x8; x9 = XVECEXP (x1, 0, 1); x10 = XEXP (x9, 0); operands[3] = x10; switch (GET_MODE (x4)) { case E_SImode: if (GET_MODE (x5) != E_SImode || !register_operand (operands[0], E_SImode) || !aarch64_shift_imm_si (operands[1], E_QImode) || !aarch64_mov_imm_operand (operands[2], E_SImode)) return -1; return 0; case E_DImode: if (GET_MODE (x5) != E_DImode || !register_operand (operands[0], E_DImode) || !aarch64_shift_imm_di (operands[1], E_QImode) || !aarch64_mov_imm_operand (operands[2], E_DImode)) return -1; return 1; default: return -1; } } static int pattern473 (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], 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) != i2 || !register_operand (operands[3], i1) || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern474 (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], i2) || GET_MODE (x1) != i2 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1) return -1; return 0; } static int pattern475 (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) || 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) || !const_int_operand (operands[2], i1)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i1) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !const_int_operand (operands[3], i1)) return -1; return 0; } static int pattern476 (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[3], i1)) return -1; x3 = XEXP (x1, 1); if (GET_MODE (x3) != i1) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != E_SFmode || !register_operand (operands[4], i1)) return -1; return 0; } static int pattern477 (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], 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) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i3 || !register_operand (operands[2], i2)) return -1; x5 = XEXP (x1, 1); return pattern460 (x5, i1, i2, i3); /* [-1, 0] */ } static int pattern478 (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 pattern479 (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[3], i1) || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern480 (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; 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) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[1], i1) || !vect_par_cnst_hi_half (operands[3], i1)) return -1; x5 = XEXP (x2, 1); if (GET_MODE (x5) != i3) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern481 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6; 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) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[1], i4) || !vect_par_cnst_hi_half (operands[3], i4)) return -1; x5 = XEXP (x2, 1); if (GET_MODE (x5) != i3) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i2 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern482 (rtx x1) { 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, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; x5 = XEXP (x4, 1); if (GET_MODE (x5) != E_SImode || !register_operand (operands[2], E_SImode) || !aarch64_shift_imm_si (operands[3], E_QImode) || !register_operand (operands[0], E_SImode)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != E_SImode) return -1; x8 = XEXP (x7, 1); if (GET_MODE (x8) != E_SImode) return -1; return 0; case E_DImode: if (!register_operand (operands[1], E_DImode)) return -1; x5 = XEXP (x4, 1); if (GET_MODE (x5) != E_DImode || !register_operand (operands[2], E_DImode) || !aarch64_shift_imm_di (operands[3], E_QImode) || !register_operand (operands[0], E_DImode)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != E_DImode) return -1; x8 = XEXP (x7, 1); if (GET_MODE (x8) != E_DImode) return -1; return 1; default: return -1; } } static int pattern483 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); if (GET_CODE (x3) != MINUS) return -1; x4 = XEXP (x3, 1); if (GET_CODE (x4) != i1) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 1); x7 = XEXP (x6, 0); x8 = XEXP (x7, 0); operands[1] = x8; x9 = XEXP (x7, 1); x10 = XEXP (x9, 0); operands[2] = x10; x11 = XEXP (x9, 1); operands[3] = x11; x12 = XEXP (x3, 0); if (!rtx_equal_p (x12, operands[1])) return -1; x13 = XEXP (x4, 0); if (!rtx_equal_p (x13, operands[2])) return -1; x14 = XEXP (x4, 1); if (!rtx_equal_p (x14, operands[3])) return -1; return pattern482 (x1); /* [-1, 1] */ } static int pattern484 (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[1], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1 || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; x8 = XEXP (x7, 1); if (GET_MODE (x8) != i1) return -1; switch (GET_MODE (operands[2])) { case E_QImode: if (!register_operand (operands[2], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[2], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[2], E_SImode)) return -1; return 2; default: return -1; } } static int pattern485 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); if (GET_CODE (x3) != MINUS) return -1; x4 = XEXP (x3, 1); if (GET_CODE (x4) != i1) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 1); x7 = XEXP (x6, 0); x8 = XEXP (x7, 0); operands[1] = x8; x9 = XEXP (x7, 1); x10 = XEXP (x9, 0); operands[2] = x10; x11 = XEXP (x3, 0); if (!rtx_equal_p (x11, operands[1])) return -1; x12 = XEXP (x4, 0); if (!rtx_equal_p (x12, operands[2])) return -1; switch (GET_MODE (x7)) { case E_SImode: return pattern484 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern484 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern486 (rtx x1, machine_mode 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; if (!register_operand (operands[4], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[0], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (GET_MODE (x8) != i1) return -1; x9 = XEXP (x8, 1); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x9, 0); if (GET_MODE (x10) != i1) return -1; return 0; } static int pattern487 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); x6 = XEXP (x5, 0); if (GET_CODE (x6) != MULT) return -1; x7 = XEXP (x5, 2); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x8 = XVECEXP (x1, 0, 1); x9 = XEXP (x8, 1); if (GET_CODE (x9) != MINUS) return -1; x10 = XEXP (x9, 1); if (GET_CODE (x10) != i1) return -1; x11 = XEXP (x10, 0); if (GET_CODE (x11) != MULT) return -1; x12 = XEXP (x10, 2); if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x13 = XEXP (x4, 0); operands[4] = x13; x14 = XEXP (x6, 0); operands[1] = x14; x15 = XEXP (x6, 1); operands[2] = x15; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; x16 = XEXP (x5, 1); operands[3] = x16; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x17 = XEXP (x9, 0); if (!rtx_equal_p (x17, operands[4])) return -1; x18 = XEXP (x11, 0); if (!rtx_equal_p (x18, operands[1])) return -1; x19 = XEXP (x11, 1); if (!rtx_equal_p (x19, operands[2])) return -1; x20 = XEXP (x10, 1); if (!rtx_equal_p (x20, operands[3])) return -1; switch (GET_MODE (x4)) { case E_SImode: return pattern486 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern486 (x1, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern488 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); x7 = XEXP (x6, 0); operands[1] = x7; x8 = XEXP (x6, 1); operands[2] = x8; x9 = XEXP (x4, 1); operands[3] = x9; x10 = XVECEXP (x1, 0, 1); x11 = XEXP (x10, 1); switch (GET_CODE (x11)) { case AND: x12 = XEXP (x11, 0); if (GET_CODE (x12) != NOT) return -1; x13 = XEXP (x12, 0); if (GET_CODE (x13) != i1) return -1; x14 = XEXP (x13, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XEXP (x13, 1); if (!rtx_equal_p (x15, operands[2])) return -1; x16 = XEXP (x11, 1); if (!rtx_equal_p (x16, operands[3])) return -1; switch (GET_MODE (x4)) { case E_SImode: if (GET_MODE (x5) != E_SImode || GET_MODE (x6) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[3], E_SImode) || pattern393 (x11, E_SImode) != 0) return -1; return 0; case E_DImode: if (GET_MODE (x5) != E_DImode || GET_MODE (x6) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_shift_imm_di (operands[2], E_QImode) || !register_operand (operands[3], E_DImode) || pattern393 (x11, E_DImode) != 0) return -1; return 1; default: return -1; } case ZERO_EXTEND: if (GET_MODE (x11) != E_DImode) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != AND || GET_MODE (x12) != E_SImode) return -1; x13 = XEXP (x12, 0); if (GET_CODE (x13) != NOT || GET_MODE (x13) != E_SImode) return -1; x14 = XEXP (x13, 0); if (GET_CODE (x14) != i1 || GET_MODE (x14) != E_SImode || GET_MODE (x4) != E_SImode || GET_MODE (x5) != E_SImode || GET_MODE (x6) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode) || !register_operand (operands[3], E_SImode) || !register_operand (operands[0], E_DImode)) return -1; x17 = XEXP (x14, 0); if (!rtx_equal_p (x17, operands[1])) return -1; x18 = XEXP (x14, 1); if (!rtx_equal_p (x18, operands[2])) return -1; x19 = XEXP (x12, 1); if (!rtx_equal_p (x19, operands[3])) return -1; return 2; default: return -1; } } static int pattern489 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !register_operand (operands[2], i1)) return -1; return 0; } static int pattern490 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); if (!rtx_equal_p (x2, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern489 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern489 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern489 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern489 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern491 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_sync_memory_operand (operands[0], i1) || GET_MODE (x1) != i1 || !register_operand (operands[1], i1) || !scratch_operand (operands[3], i1)) return -1; return 0; } static int pattern492 (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 || !register_operand (operands[1], i2)) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[4], i1) || !aarch64_simd_reg_or_zero (operands[5], i1)) return -1; return 0; } static int pattern493 (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) || !memory_operand (operands[1], i1) || !register_operand (operands[2], i1) || !memory_operand (operands[3], i1)) return -1; operands[5] = x1; if (!memory_operand (operands[5], i1)) return -1; x2 = PATTERN (peep2_next_insn (3)); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[6] = x3; if (!register_operand (operands[6], i1)) return -1; x4 = XEXP (x2, 1); operands[7] = x4; if (!memory_operand (operands[7], i1)) return -1; return 0; } static int pattern494 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || !aarch64_reg_or_zero (operands[1], i1) || !memory_operand (operands[2], i1) || !aarch64_reg_or_zero (operands[3], i1)) return -1; operands[5] = x1; if (!aarch64_reg_or_zero (operands[5], i1)) return -1; x2 = PATTERN (peep2_next_insn (3)); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[6] = x3; if (!memory_operand (operands[6], i1)) return -1; x4 = XEXP (x2, 1); operands[7] = x4; if (!aarch64_reg_or_zero (operands[7], i1)) return -1; return 0; } static int pattern495 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (!memory_operand (operands[0], i1) || !aarch64_reg_or_fp_zero (operands[1], i1) || !memory_operand (operands[2], i1) || !aarch64_reg_or_fp_zero (operands[3], i1)) return -1; operands[5] = x1; if (!aarch64_reg_or_fp_zero (operands[5], i1)) return -1; x2 = PATTERN (peep2_next_insn (3)); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[6] = x3; if (!memory_operand (operands[6], i1)) return -1; x4 = XEXP (x2, 1); operands[7] = x4; if (!aarch64_reg_or_fp_zero (operands[7], i1)) return -1; return 0; } static int pattern496 (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], i1) || GET_MODE (x1) != i1 || !register_operand (operands[4], i1)) return -1; x2 = XEXP (x1, 1); 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) != i2 || !register_operand (operands[3], i1)) return -1; return 0; } static int pattern497 (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) || 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) || !const_int_operand (operands[3], i1)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i1) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !const_int_operand (operands[2], i1)) return -1; return 0; } static int pattern498 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!aarch64_reg_or_zero (operands[1], i1) || !aarch64_plus_immediate (operands[2], i1) || !register_operand (operands[0], i1)) return -1; x2 = XEXP (x1, 1); operands[3] = x2; if (!aarch64_plus_immediate (operands[3], i1)) return -1; x3 = XEXP (x1, 0); if (!rtx_equal_p (x3, operands[1])) return -1; return 0; } static int pattern499 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (!aarch64_reg_or_zero (operands[1], i1) || !aarch64_reg_or_zero (operands[2], i1) || !register_operand (operands[0], i1)) return -1; x2 = XEXP (x1, 0); if (!rtx_equal_p (x2, operands[1])) return -1; x3 = XEXP (x1, 1); if (!rtx_equal_p (x3, operands[2])) return -1; return 0; } static int pattern500 (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 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != i1 || GET_MODE (x4) != E_SImode) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 1); x7 = XEXP (x6, 0); if (GET_MODE (x7) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 0; } static int pattern501 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !aarch64_reg_or_zero (operands[2], i1)) return -1; return 0; } static int pattern502 (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) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_plus_operand (operands[2], i1)) return -1; return 0; } static int pattern503 (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); operands[2] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern502 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern502 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern502 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern502 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern504 (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) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_logical_operand (operands[2], i1)) return -1; return 0; } static int pattern505 (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); operands[2] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern504 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern504 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern504 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern504 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern506 (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) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i1 || !aarch64_sync_memory_operand (operands[1], i1) || !aarch64_logical_operand (operands[2], i1)) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (GET_MODE (x6) != i1) return -1; return 0; } static int pattern507 (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, 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; x6 = XEXP (x2, 0); if (!rtx_equal_p (x6, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern506 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern506 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern506 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern506 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern508 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!aarch64_general_reg (operands[0], i1) || GET_MODE (x1) != i1 || !aarch64_reg_or_zero (operands[1], i1) || !aarch64_reg_or_zero (operands[2], i1)) return -1; return 0; } static int pattern509 (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, 0); x3 = XEXP (x2, 0); if (GET_MODE (x3) != i2 || !register_operand (operands[0], i1) || !const_scalar_int_operand (operands[1], i2)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !aarch64_plus_immediate (operands[2], i1)) return -1; return 0; } static int pattern510 (rtx x1, machine_mode i1, machine_mode i2) { 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) != i2 || !register_operand (operands[0], i1)) return -1; x4 = XEXP (x2, 1); if (GET_MODE (x4) != i2 || !register_operand (operands[1], i1)) return -1; x5 = XEXP (x1, 1); if (GET_MODE (x5) != i2) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1) return -1; return 0; } static int pattern511 (rtx x1, machine_mode i1, machine_mode i2) { 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) != i2 || !register_operand (operands[0], i2) || !aarch64_plus_operand (operands[1], i2)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i1) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x4, 1); if (GET_MODE (x6) != i1) return -1; return 0; } static int pattern512 (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[5], E_VNx4BImode) || !register_operand (operands[2], E_VNx4SImode) || !aarch64_gather_scale_operand_w (operands[4], E_DImode)) return -1; return 0; } static int pattern513 (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[5], E_VNx2BImode) || !register_operand (operands[2], E_VNx2DImode) || !aarch64_gather_scale_operand_d (operands[4], E_DImode)) return -1; return 0; } static int pattern514 (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) || !aarch64_reg_or_zero (operands[2], i1)) return -1; return 0; } static int pattern515 (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], 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 || !register_operand (operands[1], i1)) return -1; x4 = XEXP (x2, 1); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; return 0; } static int pattern516 (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 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); if (GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != i1 || GET_MODE (x4) != E_SImode) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 1); x7 = XEXP (x6, 0); if (GET_MODE (x7) != E_SImode) return -1; return 0; } static int pattern517 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[0], i1) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1 || !aarch64_reg_or_zero (operands[2], i1)) return -1; return 0; } static int pattern518 (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 < 4 || GET_CODE (x1) != SET) return -1; x2 = XEXP (x1, 1); if (GET_CODE (x2) != i1 || GET_MODE (x2) != E_DImode) return -1; x3 = XEXP (x1, 0); operands[4] = x3; if (!register_operand (operands[4], E_DImode)) return -1; x4 = XEXP (x2, 0); operands[5] = x4; if (!memory_operand (operands[5], E_SImode)) return -1; x5 = PATTERN (peep2_next_insn (3)); if (GET_CODE (x5) != SET) return -1; x6 = XEXP (x5, 1); if (GET_CODE (x6) != i1 || GET_MODE (x6) != E_DImode) return -1; x7 = XEXP (x5, 0); operands[6] = x7; if (!register_operand (operands[6], E_DImode)) return -1; x8 = XEXP (x6, 0); operands[7] = x8; if (!memory_operand (operands[7], E_SImode)) return -1; return 0; } static int pattern519 (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], 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[2], i3)) return -1; x4 = XEXP (x1, 1); if (GET_MODE (x4) != i1) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern520 (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], 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 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern521 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1) || !aarch64_plus_operand (operands[2], i1) || !register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; return 0; } static int pattern522 (rtx x1) { 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); x3 = XEXP (x2, 1); 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 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); x8 = XEXP (x7, 0); switch (GET_MODE (x8)) { case E_SImode: return pattern521 (x3, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern521 (x3, E_DImode) != 0) return -1; return 1; default: return -1; } } static int pattern523 (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; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; x8 = XEXP (x7, 0); if (GET_MODE (x8) != i1) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 2; default: return -1; } } static int pattern524 (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, 1); x3 = XEXP (x2, 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; x7 = XVECEXP (x1, 0, 0); x8 = XEXP (x7, 1); x9 = XEXP (x8, 0); switch (GET_MODE (x9)) { case E_SImode: return pattern523 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern523 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern525 (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_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; default: return -1; } } static int pattern526 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != i1) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x1, 2); if (GET_MODE (x3) != i1) return -1; switch (GET_MODE (operands[2])) { case E_SFmode: if (!register_operand (operands[2], E_SFmode) || !register_operand (operands[3], E_SFmode)) return -1; return 0; case E_DFmode: if (!register_operand (operands[2], E_DFmode) || !register_operand (operands[3], E_DFmode)) return -1; return 1; default: return -1; } } static int pattern527 (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[1], i2) || GET_MODE (x1) != i2) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !aarch64_sve_cmp_vsc_operand (operands[3], i1)) return -1; return 0; } static int pattern528 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[1])) { case E_VNx16BImode: return pattern527 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern527 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern527 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern527 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern529 (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[1], i2) || GET_MODE (x1) != i2) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i2 || !register_operand (operands[2], i1) || !aarch64_sve_cmp_vsd_operand (operands[3], i1)) return -1; return 0; } static int pattern530 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 0); operands[2] = x3; x4 = XEXP (x2, 1); operands[3] = x4; switch (GET_MODE (operands[1])) { case E_VNx16BImode: return pattern529 (x1, E_VNx16QImode, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern529 (x1, E_VNx8HImode, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern529 (x1, E_VNx4SImode, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern529 (x1, E_VNx2DImode, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern531 (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; 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) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[2], i3)) return -1; x5 = XEXP (x1, 1); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i2 || !register_operand (operands[1], i1)) return -1; return 0; } static int pattern532 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; 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) != i3) return -1; x4 = XEXP (x3, 0); if (GET_MODE (x4) != i2 || !register_operand (operands[1], i1) || !vect_par_cnst_hi_half (operands[4], i1)) return -1; return 0; } static int pattern533 (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) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_plus_operand (operands[2], i1) || !scratch_operand (operands[4], i1)) return -1; return 0; } static int pattern534 (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); operands[2] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern533 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern533 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern533 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern533 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern535 (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) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1 || !aarch64_logical_operand (operands[2], i1) || !scratch_operand (operands[4], i1)) return -1; return 0; } static int pattern536 (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); operands[2] = x3; x4 = XEXP (x2, 0); if (!rtx_equal_p (x4, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: return pattern535 (x1, E_QImode); /* [-1, 0] */ case E_HImode: if (pattern535 (x1, E_HImode) != 0) return -1; return 1; case E_SImode: if (pattern535 (x1, E_SImode) != 0) return -1; return 2; case E_DImode: if (pattern535 (x1, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern537 (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) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !aarch64_logical_operand (operands[2], i1) || !scratch_operand (operands[4], i1)) return -1; return 0; } static int pattern538 (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, 4); x3 = XEXP (x2, 0); operands[5] = x3; if (!scratch_operand (operands[5], E_SImode)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 0); if (!rtx_equal_p (x5, operands[1])) return -1; x6 = XEXP (x4, 1); x7 = XVECEXP (x6, 0, 0); switch (GET_CODE (x7)) { case PLUS: return pattern534 (x6); /* [-1, 3] */ case MINUS: res = pattern534 (x6); if (res >= 0) return res + 4; /* [4, 7] */ return -1; case IOR: res = pattern536 (x6); if (res >= 0) return res + 8; /* [8, 11] */ return -1; case XOR: res = pattern536 (x6); if (res >= 0) return res + 12; /* [12, 15] */ return -1; case AND: res = pattern536 (x6); if (res >= 0) return res + 16; /* [16, 19] */ return -1; case NOT: x8 = XEXP (x7, 0); if (GET_CODE (x8) != AND) return -1; x9 = XEXP (x8, 1); operands[2] = x9; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern537 (x6, E_QImode) != 0) return -1; return 20; case E_HImode: if (pattern537 (x6, E_HImode) != 0) return -1; return 21; case E_SImode: if (pattern537 (x6, E_SImode) != 0) return -1; return 22; case E_DImode: if (pattern537 (x6, E_DImode) != 0) return -1; return 23; default: return -1; } default: return -1; } } static int pattern539 (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, 1); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); if (!rtx_equal_p (x6, operands[1])) return -1; x7 = XEXP (x5, 1); if (!rtx_equal_p (x7, operands[2])) return -1; x8 = XVECEXP (x1, 0, 1); x9 = XEXP (x8, 1); x10 = XEXP (x9, 0); if (!rtx_equal_p (x10, operands[1])) return -1; x11 = XEXP (x9, 1); if (!rtx_equal_p (x11, operands[2])) return -1; x12 = XEXP (x3, 0); switch (GET_MODE (x12)) { case E_DImode: return 0; case E_TImode: return 1; default: return -1; } } static int pattern540 (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[1], i1) || !aarch64_borrow_operation (operands[2], i2) || !register_operand (operands[0], i1) || GET_MODE (x1) != i1 || !aarch64_borrow_operation (operands[3], i1)) return -1; return 0; } static int pattern541 (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[2], i1)) return -1; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); if (GET_MODE (x3) != i1 || !register_operand (operands[3], i1)) return -1; x4 = XVECEXP (x1, 0, 2); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; return 0; } static int pattern542 (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 || !register_operand (operands[1], i1) || !aarch64_mem_pair_offset (operands[4], i1)) return -1; x4 = XVECEXP (x1, 0, 2); x5 = XEXP (x4, 1); x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !const_int_operand (operands[5], i1)) return -1; switch (GET_MODE (operands[2])) { case E_SImode: return pattern541 (x1, E_SImode); /* [-1, 0] */ case E_DImode: if (pattern541 (x1, E_DImode) != 0) return -1; return 1; case E_SFmode: if (pattern541 (x1, E_SFmode) != 0) return -1; return 2; case E_DFmode: if (pattern541 (x1, E_DFmode) != 0) return -1; return 3; case E_TImode: if (pattern541 (x1, E_TImode) != 0) return -1; return 4; case E_TFmode: if (pattern541 (x1, E_TFmode) != 0) return -1; return 5; default: return -1; } } static int pattern543 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!const_int_operand (operands[3], i1) || GET_MODE (x1) != i1 || !register_operand (operands[4], i1) || !const_int_operand (operands[5], i1)) return -1; return 0; } static int pattern544 (rtx x1, machine_mode i1, machine_mode i2) { 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); x4 = XEXP (x3, 1); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; return 0; } static int pattern545 (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 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[1], i1) || pattern544 (x1, i1, i2) != 0) return -1; return 0; } static int pattern546 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1) || !aarch64_logical_operand (operands[2], i1) || !register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; return 0; } static int pattern547 (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[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsc_operand (operands[3], i2) || !scratch_operand (operands[0], i1)) return -1; return 0; } static int pattern548 (rtx x1, machine_mode i1, machine_mode i2) { 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[1], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XVECEXP (x4, 0, 1); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x5, 0, 1); if (GET_MODE (x6) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsc_operand (operands[3], i2) || !register_operand (operands[0], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (GET_MODE (x8) != i1) return -1; x9 = XVECEXP (x8, 0, 1); if (GET_MODE (x9) != i1) return -1; return 0; } static int pattern549 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XVECEXP (x4, 0, 1); x6 = XVECEXP (x5, 0, 1); x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x6, 1); operands[3] = x8; x9 = XVECEXP (x1, 0, 1); switch (GET_CODE (x9)) { case CLOBBER: x10 = XEXP (x9, 0); operands[0] = x10; switch (GET_MODE (operands[1])) { case E_VNx16BImode: return pattern547 (x5, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern547 (x5, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern547 (x5, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern547 (x5, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } case SET: x11 = XEXP (x9, 1); if (GET_CODE (x11) != UNSPEC || XVECLEN (x11, 0) != 2 || XINT (x11, 1) != 89) return -1; x12 = XVECEXP (x11, 0, 1); if (GET_CODE (x12) != i1) return -1; x10 = XEXP (x9, 0); operands[0] = x10; x13 = XVECEXP (x11, 0, 0); if (!rtx_equal_p (x13, operands[1])) return -1; x14 = XEXP (x12, 0); if (!rtx_equal_p (x14, operands[2])) return -1; x15 = XEXP (x12, 1); if (!rtx_equal_p (x15, operands[3])) return -1; switch (GET_MODE (operands[1])) { case E_VNx16BImode: if (pattern548 (x1, E_VNx16BImode, E_VNx16QImode) != 0) return -1; return 4; case E_VNx8BImode: if (pattern548 (x1, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 5; case E_VNx4BImode: if (pattern548 (x1, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 6; case E_VNx2BImode: if (pattern548 (x1, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 7; default: return -1; } default: return -1; } } static int pattern550 (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[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 1); if (GET_MODE (x2) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsd_operand (operands[3], i2) || !scratch_operand (operands[0], i1)) return -1; return 0; } static int pattern551 (rtx x1, machine_mode i1, machine_mode i2) { 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[1], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XVECEXP (x4, 0, 1); if (GET_MODE (x5) != i1) return -1; x6 = XVECEXP (x5, 0, 1); if (GET_MODE (x6) != i1 || !register_operand (operands[2], i2) || !aarch64_sve_cmp_vsd_operand (operands[3], i2) || !register_operand (operands[0], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (GET_MODE (x8) != i1) return -1; x9 = XVECEXP (x8, 0, 1); if (GET_MODE (x9) != i1) return -1; return 0; } static int pattern552 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XVECEXP (x4, 0, 1); x6 = XVECEXP (x5, 0, 1); x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x6, 1); operands[3] = x8; x9 = XVECEXP (x1, 0, 1); switch (GET_CODE (x9)) { case CLOBBER: x10 = XEXP (x9, 0); operands[0] = x10; switch (GET_MODE (operands[1])) { case E_VNx16BImode: return pattern550 (x5, E_VNx16BImode, E_VNx16QImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern550 (x5, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern550 (x5, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern550 (x5, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 3; default: return -1; } case SET: x11 = XEXP (x9, 1); if (GET_CODE (x11) != UNSPEC || XVECLEN (x11, 0) != 2 || XINT (x11, 1) != 89) return -1; x12 = XVECEXP (x11, 0, 1); if (GET_CODE (x12) != i1) return -1; x10 = XEXP (x9, 0); operands[0] = x10; x13 = XVECEXP (x11, 0, 0); if (!rtx_equal_p (x13, operands[1])) return -1; x14 = XEXP (x12, 0); if (!rtx_equal_p (x14, operands[2])) return -1; x15 = XEXP (x12, 1); if (!rtx_equal_p (x15, operands[3])) return -1; switch (GET_MODE (operands[1])) { case E_VNx16BImode: if (pattern551 (x1, E_VNx16BImode, E_VNx16QImode) != 0) return -1; return 4; case E_VNx8BImode: if (pattern551 (x1, E_VNx8BImode, E_VNx8HImode) != 0) return -1; return 5; case E_VNx4BImode: if (pattern551 (x1, E_VNx4BImode, E_VNx4SImode) != 0) return -1; return 6; case E_VNx2BImode: if (pattern551 (x1, E_VNx2BImode, E_VNx2DImode) != 0) return -1; return 7; default: return -1; } default: return -1; } } static int pattern553 (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) || !aarch64_sync_memory_operand (operands[1], i1) || GET_MODE (x1) != i1) return -1; x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != i1) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != i1 || !aarch64_logical_operand (operands[2], i1)) return -1; return 0; } static int pattern554 (rtx x1, machine_mode 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); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[3], i1) || !register_operand (operands[0], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 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) != i1) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!register_operand (operands[1], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[1], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[1], E_SImode)) return -1; return 2; default: return -1; } } static int pattern555 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_CODE (x5) != i1) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); x8 = XEXP (x7, 0); x9 = XEXP (x8, 0); x10 = XEXP (x9, 0); x11 = XEXP (x10, 0); operands[1] = x11; if (!aarch64_imm3 (operands[2], E_VOIDmode)) return -1; x12 = XEXP (x5, 0); if (!rtx_equal_p (x12, operands[1])) return -1; switch (GET_MODE (x8)) { case E_SImode: return pattern554 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern554 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern556 (rtx x1, machine_mode i1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; if (!register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[0], i1) || GET_MODE (x1) != i1) return -1; return 0; } static int pattern557 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (!rtx_equal_p (x2, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: x3 = XEXP (x1, 1); return pattern501 (x3, E_QImode); /* [-1, 0] */ case E_HImode: x3 = XEXP (x1, 1); if (pattern501 (x3, E_HImode) != 0) return -1; return 1; case E_SImode: x3 = XEXP (x1, 1); if (pattern501 (x3, E_SImode) != 0) return -1; return 2; case E_DImode: x3 = XEXP (x1, 1); if (pattern501 (x3, E_DImode) != 0) return -1; return 3; default: return -1; } } static int pattern558 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7; int res ATTRIBUTE_UNUSED; if (!aarch64_carry_operation (operands[2], i2)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1) || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1 || !aarch64_carry_operation (operands[3], i1)) return -1; return 0; } static int pattern559 (rtx x1, machine_mode 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; if (!register_operand (operands[1], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[0], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (GET_MODE (x8) != i1) return -1; x9 = XEXP (x8, 1); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x9, 0); if (GET_MODE (x10) != i1) return -1; switch (GET_MODE (operands[2])) { case E_QImode: if (!register_operand (operands[2], E_QImode)) return -1; return 0; case E_HImode: if (!register_operand (operands[2], E_HImode)) return -1; return 1; case E_SImode: if (!register_operand (operands[2], E_SImode)) return -1; return 2; default: return -1; } } static int pattern560 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); x5 = XEXP (x4, 0); if (GET_CODE (x5) != i1) return -1; x6 = XVECEXP (x1, 0, 0); x7 = XEXP (x6, 1); x8 = XEXP (x7, 0); x9 = XEXP (x8, 1); x10 = XEXP (x9, 0); x11 = XEXP (x10, 0); operands[2] = x11; if (!aarch64_imm3 (operands[3], E_VOIDmode)) return -1; x12 = XEXP (x5, 0); if (!rtx_equal_p (x12, operands[2])) return -1; switch (GET_MODE (x8)) { case E_SImode: return pattern559 (x1, E_SImode); /* [-1, 2] */ case E_DImode: res = pattern559 (x1, E_DImode); if (res >= 0) return res + 3; /* [3, 5] */ return -1; default: return -1; } } static int pattern561 (rtx x1, machine_mode i1, machine_mode i2) { 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, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1) || !aarch64_borrow_operation (operands[2], i2) || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; x8 = XEXP (x7, 0); if (GET_MODE (x8) != i1 || !aarch64_borrow_operation (operands[3], i1)) return -1; return 0; } static int pattern562 (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; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1) || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; x8 = XEXP (x7, 0); if (GET_MODE (x8) != i1) return -1; return 0; } static int pattern563 (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[1], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XVECEXP (x4, 0, 1); if (GET_MODE (x5) != i1) return -1; x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1 || !register_operand (operands[2], i1) || !register_operand (operands[3], i1) || !register_operand (operands[0], i1)) return -1; x7 = XVECEXP (x1, 0, 1); x8 = XEXP (x7, 1); if (GET_MODE (x8) != i1) return -1; x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1) return -1; return 0; } static int pattern564 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); if (GET_CODE (x4) != i1) return -1; x5 = XVECEXP (x1, 0, 0); x6 = XEXP (x5, 1); x7 = XEXP (x6, 0); x8 = XVECEXP (x7, 0, 1); x9 = XEXP (x8, 0); x10 = XEXP (x9, 0); operands[2] = x10; x11 = XEXP (x9, 1); operands[3] = x11; x12 = XEXP (x4, 0); if (!rtx_equal_p (x12, operands[2])) return -1; x13 = XEXP (x4, 1); if (!rtx_equal_p (x13, operands[3])) return -1; switch (GET_MODE (operands[1])) { case E_VNx16BImode: return pattern563 (x1, E_VNx16BImode); /* [-1, 0] */ case E_VNx8BImode: if (pattern563 (x1, E_VNx8BImode) != 0) return -1; return 1; case E_VNx4BImode: if (pattern563 (x1, E_VNx4BImode) != 0) return -1; return 2; case E_VNx2BImode: if (pattern563 (x1, E_VNx2BImode) != 0) return -1; return 3; default: return -1; } } static int pattern565 (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); x5 = XVECEXP (x4, 0, 1); x6 = XVECEXP (x5, 0, 0); operands[2] = x6; x7 = XVECEXP (x5, 0, 1); operands[3] = x7; x8 = XVECEXP (x1, 0, 1); x9 = XEXP (x8, 0); operands[0] = x9; x10 = XEXP (x8, 1); x11 = XVECEXP (x10, 0, 0); if (!rtx_equal_p (x11, operands[2])) return -1; x12 = XVECEXP (x10, 0, 1); if (!rtx_equal_p (x12, operands[3])) return -1; switch (GET_MODE (x5)) { case E_VNx16BImode: if (!register_operand (operands[0], E_VNx16BImode) || GET_MODE (x10) != E_VNx16BImode) return -1; return 0; case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x10) != E_VNx8BImode) return -1; return 1; case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x10) != E_VNx4BImode) return -1; return 2; case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x10) != E_VNx2BImode) return -1; return 3; default: return -1; } } static int pattern566 (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 || !register_operand (operands[1], i1) || !aarch64_mem_pair_offset (operands[4], i1)) return -1; x4 = XVECEXP (x1, 0, 1); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); if (GET_MODE (x6) != i1) return -1; x7 = XVECEXP (x1, 0, 2); x8 = XEXP (x7, 0); x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1 || !const_int_operand (operands[5], i1)) return -1; switch (GET_MODE (x5)) { case E_SImode: if (!register_operand (operands[2], E_SImode) || GET_MODE (x8) != E_SImode || !register_operand (operands[3], E_SImode)) return -1; return 0; case E_DImode: if (!register_operand (operands[2], E_DImode) || GET_MODE (x8) != E_DImode || !register_operand (operands[3], E_DImode)) return -1; return 1; case E_SFmode: if (!register_operand (operands[2], E_SFmode) || GET_MODE (x8) != E_SFmode || !register_operand (operands[3], E_SFmode)) return -1; return 2; case E_DFmode: if (!register_operand (operands[2], E_DFmode) || GET_MODE (x8) != E_DFmode || !register_operand (operands[3], E_DFmode)) return -1; return 3; case E_TImode: if (!register_operand (operands[2], E_TImode) || GET_MODE (x8) != E_TImode || !register_operand (operands[3], E_TImode)) return -1; return 4; case E_TFmode: if (!register_operand (operands[2], E_TFmode) || GET_MODE (x8) != E_TFmode || !register_operand (operands[3], E_TFmode)) return -1; return 5; default: return -1; } } static int pattern567 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_V4SImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_V4HImode) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_HImode) return -1; switch (GET_MODE (operands[2])) { case E_V4HImode: if (!register_operand (operands[2], E_V4HImode)) return -1; return 0; case E_V8HImode: if (!register_operand (operands[2], E_V8HImode)) return -1; return 1; default: return -1; } } static int pattern568 (rtx x1) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (GET_MODE (x1) != E_V2DImode) return -1; x2 = XEXP (x1, 0); if (GET_MODE (x2) != E_V2SImode) return -1; x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode) return -1; switch (GET_MODE (operands[2])) { case E_V2SImode: if (!register_operand (operands[2], E_V2SImode)) return -1; return 0; case E_V4SImode: if (!register_operand (operands[2], E_V4SImode)) return -1; return 1; default: return -1; } } static int pattern569 (rtx x1, machine_mode i1, machine_mode i2) { 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[1], i1)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 1); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[2], i1) || !aarch64_borrow_operation (operands[3], i2) || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; x8 = XEXP (x7, 0); if (GET_MODE (x8) != i1 || !aarch64_borrow_operation (operands[4], i1)) return -1; return 0; } static int pattern570 (rtx x1, machine_mode i1, machine_mode i2) { 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); x4 = XEXP (x3, 1); if (GET_MODE (x4) != i2) return -1; x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[0], i1)) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); if (GET_MODE (x7) != i1) return -1; return 0; } static int pattern571 (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 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1) || !aarch64_plus_immediate (operands[2], i1) || pattern570 (x1, i1, i2) != 0) return -1; return 0; } static int pattern572 (rtx x1, machine_mode 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); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1)) return -1; x6 = XEXP (x4, 1); if (GET_MODE (x6) != i2 || !register_operand (operands[2], i1) || pattern570 (x1, i1, i2) != 0) return -1; return 0; } static int pattern573 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; int res ATTRIBUTE_UNUSED; if (!aarch64_carry_operation (operands[2], i2)) return -1; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i2) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i1 || !aarch64_carry_operation (operands[3], i1) || !register_operand (operands[0], i1)) return -1; x8 = XVECEXP (x1, 0, 1); x9 = XEXP (x8, 1); if (GET_MODE (x9) != i1) return -1; return 0; } static int pattern574 (rtx x1, machine_mode i1, machine_mode i2) { 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, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1) || !aarch64_borrow_operation (operands[2], i2)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i2) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i1 || !aarch64_borrow_operation (operands[3], i1) || !register_operand (operands[0], i1)) return -1; x8 = XVECEXP (x1, 0, 1); x9 = XEXP (x8, 1); if (GET_MODE (x9) != i1) return -1; return 0; } static int pattern575 (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 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[1], i1) || !aarch64_plus_immediate (operands[2], i1) || pattern544 (x1, i1, i2) != 0) return -1; return 0; } static int pattern576 (rtx x1, machine_mode i1, machine_mode i2) { 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); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i1 || !register_operand (operands[1], i1) || !register_operand (operands[2], i1)) return -1; x6 = XEXP (x3, 1); if (GET_MODE (x6) != i2) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i2) return -1; x8 = XEXP (x6, 1); if (GET_MODE (x8) != i2 || !register_operand (operands[0], i1)) return -1; x9 = XVECEXP (x1, 0, 1); x10 = XEXP (x9, 1); if (GET_MODE (x10) != i1) return -1; return 0; } static int pattern577 (rtx x1, machine_mode i1, machine_mode i2) { 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); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !aarch64_carry_operation (operands[3], i2)) return -1; x6 = XEXP (x5, 1); if (GET_MODE (x6) != i2 || !register_operand (operands[1], i1)) return -1; x7 = XEXP (x4, 1); if (GET_MODE (x7) != i2 || !register_operand (operands[2], i1) || !register_operand (operands[0], i1)) return -1; x8 = XVECEXP (x1, 0, 1); x9 = XEXP (x8, 1); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x9, 0); if (GET_MODE (x10) != i1 || !aarch64_carry_operation (operands[4], i1)) return -1; return 0; } static int pattern578 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[3])) { case E_V4HFmode: if (!register_operand (operands[3], E_V4HFmode) || !aarch64_imm2 (operands[5], E_SImode)) return -1; return 0; case E_V8HFmode: if (!register_operand (operands[3], E_V8HFmode) || !aarch64_lane_imm3 (operands[5], E_SImode)) return -1; return 1; default: return -1; } } static int pattern579 () { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; int res ATTRIBUTE_UNUSED; switch (GET_MODE (operands[3])) { case E_V8HFmode: if (!register_operand (operands[3], E_V8HFmode) || !aarch64_lane_imm3 (operands[5], E_SImode)) return -1; return 0; case E_V4HFmode: if (!register_operand (operands[3], E_V4HFmode) || !aarch64_imm2 (operands[5], E_SImode)) return -1; return 1; default: return -1; } } static int pattern580 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !aarch64_carry_operation (operands[3], i2)) return -1; x6 = XEXP (x5, 1); if (GET_MODE (x6) != i2 || !register_operand (operands[1], i1)) return -1; x7 = XEXP (x4, 1); if (GET_MODE (x7) != i2 || !register_operand (operands[2], i1)) return -1; x8 = XEXP (x3, 1); if (GET_MODE (x8) != i2) return -1; x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x9, 0); if (GET_MODE (x10) != i1 || !aarch64_carry_operation (operands[4], i1) || !register_operand (operands[0], i1)) return -1; x11 = XVECEXP (x1, 0, 1); x12 = XEXP (x11, 1); if (GET_MODE (x12) != i1) return -1; x13 = XEXP (x12, 0); if (GET_MODE (x13) != i1) return -1; return 0; } static int pattern581 (rtx x1, machine_mode i1, machine_mode i2) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4, x5, x6, x7, x8, x9; rtx x10, x11, x12, x13; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); x5 = XEXP (x4, 0); if (GET_MODE (x5) != i2 || !register_operand (operands[1], i1)) return -1; x6 = XEXP (x4, 1); if (GET_MODE (x6) != i2) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != i2 || !register_operand (operands[2], i1) || !aarch64_borrow_operation (operands[3], i2)) return -1; x8 = XEXP (x3, 1); if (GET_MODE (x8) != i2) return -1; x9 = XEXP (x8, 0); if (GET_MODE (x9) != i1) return -1; x10 = XEXP (x9, 1); if (GET_MODE (x10) != i1 || !aarch64_borrow_operation (operands[4], i1) || !register_operand (operands[0], i1)) return -1; x11 = XVECEXP (x1, 0, 1); x12 = XEXP (x11, 1); if (GET_MODE (x12) != i1) return -1; x13 = XEXP (x12, 0); if (GET_MODE (x13) != 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, x7, x8, x9; rtx x10, x11, x12; 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]) return -1; x5 = XEXP (x3, 0); if (!cc_register (x5, E_VOIDmode)) return -1; x6 = XEXP (x2, 1); switch (GET_CODE (x6)) { case COMPARE: x7 = XEXP (x2, 2); if (GET_CODE (x7) != UNSPEC || XVECLEN (x7, 0) != 1 || XINT (x7, 1) != 82) return -1; x8 = XEXP (x1, 0); operands[1] = x8; operands[4] = x3; operands[0] = x5; x9 = XEXP (x6, 0); operands[2] = x9; x10 = XEXP (x6, 1); operands[3] = x10; x11 = XVECEXP (x7, 0, 0); operands[5] = x11; if (!immediate_operand (operands[5], E_VOIDmode)) return -1; if (cc_register (operands[1], E_CCmode) && GET_MODE (x2) == E_CCmode && GET_MODE (x6) == E_CCmode && GET_MODE (x7) == E_CCmode) { switch (GET_MODE (operands[2])) { case E_SImode: if (register_operand (operands[2], E_SImode) && aarch64_ccmp_operand (operands[3], E_SImode)) return 3; /* ccmpsi */ break; case E_DImode: if (register_operand (operands[2], E_DImode) && aarch64_ccmp_operand (operands[3], E_DImode)) return 4; /* ccmpdi */ break; default: break; } } if (cc_register (operands[1], E_CCFPmode)) { switch (pattern526 (x2, E_CCFPmode)) { case 0: if ( #line 469 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return 5; /* fccmpsf */ break; case 1: if ( #line 469 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return 6; /* fccmpdf */ break; default: break; } } if (!cc_register (operands[1], E_CCFPEmode)) return -1; switch (pattern526 (x2, E_CCFPEmode)) { case 0: if (! #line 484 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 7; /* fccmpesf */ case 1: if (! #line 484 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 8; /* fccmpedf */ default: return -1; } case LABEL_REF: x7 = XEXP (x2, 2); if (GET_CODE (x7) != PC) return -1; x8 = XEXP (x1, 0); if (GET_CODE (x8) != PC) return -1; operands[0] = x3; operands[1] = x5; x9 = XEXP (x6, 0); operands[2] = x9; return 9; /* condjump */ case CONST_INT: case REG: case SUBREG: operands[3] = x6; x8 = XEXP (x1, 0); operands[0] = x8; operands[1] = x3; operands[2] = x5; x7 = XEXP (x2, 2); operands[4] = x7; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern445 (x2, E_QImode) != 0 || ! #line 4081 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!((operands[3] == const1_rtx && operands[4] == constm1_rtx) || (operands[3] == constm1_rtx && operands[4] == const1_rtx)))) return -1; return 497; /* *cmovqi_insn */ case E_HImode: if (pattern445 (x2, E_HImode) != 0 || ! #line 4081 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!((operands[3] == const1_rtx && operands[4] == constm1_rtx) || (operands[3] == constm1_rtx && operands[4] == const1_rtx)))) return -1; return 498; /* *cmovhi_insn */ case E_SImode: if (pattern445 (x2, E_SImode) != 0 || ! #line 4081 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!((operands[3] == const1_rtx && operands[4] == constm1_rtx) || (operands[3] == constm1_rtx && operands[4] == const1_rtx)))) return -1; return 499; /* *cmovsi_insn */ case E_DImode: if (pattern445 (x2, E_DImode) != 0 || ! #line 4081 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!((operands[3] == const1_rtx && operands[4] == constm1_rtx) || (operands[3] == constm1_rtx && operands[4] == const1_rtx)))) return -1; return 500; /* *cmovdi_insn */ case E_SFmode: if (pattern446 (x2, E_SFmode) != 0 || ! #line 4137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 503; /* *cmovsf_insn */ case E_DFmode: if (pattern446 (x2, E_DFmode) != 0 || ! #line 4137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 504; /* *cmovdf_insn */ default: return -1; } case ZERO_EXTEND: if (GET_MODE (x6) != E_DImode) return -1; x7 = XEXP (x2, 2); if (GET_CODE (x7) != ZERO_EXTEND || GET_MODE (x7) != E_DImode) return -1; x8 = XEXP (x1, 0); operands[0] = x8; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; operands[1] = x3; operands[2] = x5; x9 = XEXP (x6, 0); operands[3] = x9; if (!register_operand (operands[3], E_SImode)) return -1; x12 = XEXP (x7, 0); operands[4] = x12; if (!register_operand (operands[4], E_SImode)) return -1; return 502; /* *cmovdi_insn_uxtw */ 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, x3, x4, x5, x6, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); if (GET_CODE (x3) != LABEL_REF) return -1; 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); switch (GET_CODE (x6)) { case EQ: switch (pattern288 (x2, pnum_clobbers)) { case 0: x7 = XEXP (x6, 1); operands[1] = x7; x8 = XEXP (x3, 0); operands[2] = x8; switch (pattern283 (x3)) { case 0: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return 10; /* *compare_condjumpsi */ break; case 1: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return 12; /* *compare_condjumpsi */ break; case 2: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return 14; /* *compare_condjumpdi */ break; case 3: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return 16; /* *compare_condjumpdi */ break; default: break; } if (XWINT (x7, 0) != 0L) return -1; operands[1] = x8; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 24; /* *cbeqsi1 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 26; /* *cbeqdi1 */ default: return -1; } case 1: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 28; /* *tbeqsi1 */ case 2: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 30; /* *tbeqdi1 */ default: return -1; } case NE: switch (pattern288 (x2, pnum_clobbers)) { case 0: x7 = XEXP (x6, 1); operands[1] = x7; x8 = XEXP (x3, 0); operands[2] = x8; switch (pattern283 (x3)) { case 0: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return 11; /* *compare_condjumpsi */ break; case 1: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return 13; /* *compare_condjumpsi */ break; case 2: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return 15; /* *compare_condjumpdi */ break; case 3: if (( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return 17; /* *compare_condjumpdi */ break; default: break; } if (XWINT (x7, 0) != 0L) return -1; operands[1] = x8; switch (GET_MODE (operands[0])) { case E_SImode: if (!register_operand (operands[0], E_SImode) || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 25; /* *cbnesi1 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 27; /* *cbnedi1 */ default: return -1; } case 1: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 29; /* *tbnesi1 */ case 2: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 31; /* *tbnedi1 */ default: return -1; } case LT: switch (pattern289 (x2, pnum_clobbers)) { case 0: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 32; /* *cbltqi1 */ case 1: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 34; /* *cblthi1 */ case 2: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 36; /* *cbltsi1 */ case 3: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 38; /* *cbltdi1 */ default: return -1; } case GE: switch (pattern289 (x2, pnum_clobbers)) { case 0: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 33; /* *cbgeqi1 */ case 1: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 35; /* *cbgehi1 */ case 2: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 37; /* *cbgesi1 */ case 3: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; *pnum_clobbers = 1; return 39; /* *cbgedi1 */ default: return -1; } 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, 0); switch (GET_CODE (x2)) { case PC: x3 = XEXP (x1, 1); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; return 1; /* indirect_jump */ case ZERO_EXTRACT: x4 = XEXP (x2, 0); operands[0] = x4; x5 = XEXP (x2, 1); operands[1] = x5; if (!const_int_operand (operands[1], E_VOIDmode)) return -1; x6 = XEXP (x2, 2); operands[2] = x6; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x3 = XEXP (x1, 1); operands[3] = x3; switch (GET_MODE (x2)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !register_operand (operands[3], E_SImode) || ! #line 5515 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!(UINTVAL (operands[1]) == 0 || (UINTVAL (operands[2]) + UINTVAL (operands[1]) > GET_MODE_BITSIZE (SImode))))) return -1; return 781; /* *insv_regsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !register_operand (operands[3], E_DImode) || ! #line 5515 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!(UINTVAL (operands[1]) == 0 || (UINTVAL (operands[2]) + UINTVAL (operands[1]) > GET_MODE_BITSIZE (DImode))))) return -1; return 782; /* *insv_regdi */ default: return -1; } case REG: case SUBREG: case MEM: operands[0] = x2; x3 = XEXP (x1, 1); operands[1] = x3; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16QImode) || !aarch64_sve_general_operand (operands[1], E_VNx16QImode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx16QImode) && nonmemory_operand (operands[1], VNx16QImode))))) return -1; return 3779; /* *aarch64_sve_movvnx16qi_le */ case E_VNx8HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8HImode) || !aarch64_sve_general_operand (operands[1], E_VNx8HImode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx8HImode) && nonmemory_operand (operands[1], VNx8HImode))))) return -1; return 3780; /* *aarch64_sve_movvnx8hi_le */ case E_VNx4SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4SImode) || !aarch64_sve_general_operand (operands[1], E_VNx4SImode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx4SImode) && nonmemory_operand (operands[1], VNx4SImode))))) return -1; return 3781; /* *aarch64_sve_movvnx4si_le */ case E_VNx2DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx2DImode) || !aarch64_sve_general_operand (operands[1], E_VNx2DImode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx2DImode) && nonmemory_operand (operands[1], VNx2DImode))))) return -1; return 3782; /* *aarch64_sve_movvnx2di_le */ case E_VNx8HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx8HFmode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx8HFmode) && nonmemory_operand (operands[1], VNx8HFmode))))) return -1; return 3783; /* *aarch64_sve_movvnx8hf_le */ case E_VNx4SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx4SFmode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx4SFmode) && nonmemory_operand (operands[1], VNx4SFmode))))) return -1; return 3784; /* *aarch64_sve_movvnx4sf_le */ case E_VNx2DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx2DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx2DFmode) || ! #line 122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN && ((lra_in_progress || reload_completed) || (register_operand (operands[0], VNx2DFmode) && nonmemory_operand (operands[1], VNx2DFmode))))) return -1; return 3785; /* *aarch64_sve_movvnx2df_le */ case E_VNx32QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx32QImode) || !aarch64_sve_general_operand (operands[1], E_VNx32QImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3822; /* *aarch64_sve_movvnx32qi_le */ case E_VNx16HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16HImode) || !aarch64_sve_general_operand (operands[1], E_VNx16HImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3823; /* *aarch64_sve_movvnx16hi_le */ case E_VNx8SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8SImode) || !aarch64_sve_general_operand (operands[1], E_VNx8SImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3824; /* *aarch64_sve_movvnx8si_le */ case E_VNx4DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4DImode) || !aarch64_sve_general_operand (operands[1], E_VNx4DImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3825; /* *aarch64_sve_movvnx4di_le */ case E_VNx16HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx16HFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3826; /* *aarch64_sve_movvnx16hf_le */ case E_VNx8SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx8SFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3827; /* *aarch64_sve_movvnx8sf_le */ case E_VNx4DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx4DFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3828; /* *aarch64_sve_movvnx4df_le */ case E_VNx48QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx48QImode) || !aarch64_sve_general_operand (operands[1], E_VNx48QImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3829; /* *aarch64_sve_movvnx48qi_le */ case E_VNx24HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx24HImode) || !aarch64_sve_general_operand (operands[1], E_VNx24HImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3830; /* *aarch64_sve_movvnx24hi_le */ case E_VNx12SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx12SImode) || !aarch64_sve_general_operand (operands[1], E_VNx12SImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3831; /* *aarch64_sve_movvnx12si_le */ case E_VNx6DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx6DImode) || !aarch64_sve_general_operand (operands[1], E_VNx6DImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3832; /* *aarch64_sve_movvnx6di_le */ case E_VNx24HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx24HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx24HFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3833; /* *aarch64_sve_movvnx24hf_le */ case E_VNx12SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx12SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx12SFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3834; /* *aarch64_sve_movvnx12sf_le */ case E_VNx6DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx6DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx6DFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3835; /* *aarch64_sve_movvnx6df_le */ case E_VNx64QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx64QImode) || !aarch64_sve_general_operand (operands[1], E_VNx64QImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3836; /* *aarch64_sve_movvnx64qi_le */ case E_VNx32HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx32HImode) || !aarch64_sve_general_operand (operands[1], E_VNx32HImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3837; /* *aarch64_sve_movvnx32hi_le */ case E_VNx16SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16SImode) || !aarch64_sve_general_operand (operands[1], E_VNx16SImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3838; /* *aarch64_sve_movvnx16si_le */ case E_VNx8DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8DImode) || !aarch64_sve_general_operand (operands[1], E_VNx8DImode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3839; /* *aarch64_sve_movvnx8di_le */ case E_VNx32HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx32HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx32HFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3840; /* *aarch64_sve_movvnx32hf_le */ case E_VNx16SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx16SFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3841; /* *aarch64_sve_movvnx16sf_le */ case E_VNx8DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx8DFmode) || ! #line 364 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !BYTES_BIG_ENDIAN)) return -1; return 3842; /* *aarch64_sve_movvnx8df_le */ default: return -1; } 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, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[2] = x2; x3 = XEXP (x1, 0); if (GET_CODE (x3) != ZERO_EXTRACT) return -1; x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 16]) return -1; x5 = XEXP (x3, 0); operands[0] = x5; x6 = XEXP (x3, 2); operands[1] = x6; switch (GET_MODE (x3)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !const_int_operand (operands[1], E_SImode) || !const_int_operand (operands[2], E_SImode) || ! #line 1196 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) < GET_MODE_BITSIZE (SImode) && UINTVAL (operands[1]) % 16 == 0)) return -1; return 48; /* insv_immsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !const_int_operand (operands[1], E_DImode) || !const_int_operand (operands[2], E_DImode) || ! #line 1196 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) < GET_MODE_BITSIZE (DImode) && UINTVAL (operands[1]) % 16 == 0)) return -1; return 49; /* insv_immdi */ 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, x5, x6; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 2); operands[2] = x4; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x5 = XEXP (x1, 1); x6 = XEXP (x5, 0); operands[3] = x6; switch (GET_MODE (x2)) { case E_SImode: switch (pattern426 (x5, E_SImode)) { case 0: if (! #line 5527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) <= 8)) return -1; return 783; /* *aarch64_bfisiqi4 */ case 1: if (! #line 5527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) <= 16)) return -1; return 785; /* *aarch64_bfisihi4 */ case 2: if (! #line 5527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) <= 32)) return -1; return 787; /* *aarch64_bfisisi4 */ default: return -1; } case E_DImode: switch (pattern426 (x5, E_DImode)) { case 0: if (! #line 5527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) <= 8)) return -1; return 784; /* *aarch64_bfidiqi4 */ case 1: if (! #line 5527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) <= 16)) return -1; return 786; /* *aarch64_bfidihi4 */ case 2: if (! #line 5527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[1]) <= 32)) return -1; return 788; /* *aarch64_bfidisi4 */ default: return -1; } 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, x9; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); x5 = XEXP (x4, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XEXP (x1, 0); operands[0] = x6; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x7 = XEXP (x4, 0); operands[2] = x7; if (!cc_register (operands[2], E_VOIDmode)) return -1; x8 = XEXP (x3, 1); operands[3] = x8; if (!aarch64_reg_zero_or_m1_or_1 (operands[3], E_SImode)) return -1; x9 = XEXP (x3, 2); operands[4] = x9; if (!aarch64_reg_zero_or_m1_or_1 (operands[4], E_SImode) || ! #line 4104 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!((operands[3] == const1_rtx && operands[4] == constm1_rtx) || (operands[3] == constm1_rtx && operands[4] == const1_rtx)))) return -1; return 501; /* *cmovsi_insn_uxtw */ } 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, x5, x6, x7, x8, x9; rtx x10, x11, x12; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case CONST_INT: case REG: case SUBREG: x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; operands[1] = x5; if (!register_operand (operands[1], E_SImode)) return -1; return 296; /* *subsi3_uxtw */ case ASHIFT: if (GET_MODE (x6) != E_SImode || !register_operand (x5, E_SImode)) return -1; x7 = XEXP (x6, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; operands[3] = x5; x8 = XEXP (x6, 1); operands[2] = x8; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 323; /* *sub_lsl_si_uxtw */ case SIGN_EXTEND: switch (pattern427 (x3)) { case 0: return 357; /* *sub_extendqi_shft_si_uxtw */ case 1: return 359; /* *sub_extendhi_shft_si_uxtw */ default: return -1; } case ZERO_EXTEND: switch (pattern427 (x3)) { case 0: return 358; /* *sub_zero_extendqi_shft_si_uxtw */ case 1: return 360; /* *sub_zero_extendhi_shft_si_uxtw */ default: return -1; } default: return -1; } case ASHIFTRT: if (pattern323 (x3) != 0) return -1; return 324; /* *sub_asr_si_uxtw */ case LSHIFTRT: if (pattern323 (x3) != 0) return -1; return 325; /* *sub_lsr_si_uxtw */ case MULT: if (GET_MODE (x6) != E_SImode) return -1; operands[3] = x5; if (!register_operand (operands[3], E_SImode)) return -1; x7 = XEXP (x6, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x8 = XEXP (x6, 1); operands[2] = x8; switch (GET_CODE (operands[2])) { case CONST_INT: if (!aarch64_pwr_2_si (operands[2], E_QImode)) return -1; return 328; /* *sub_mul_imm_si_uxtw */ case REG: case SUBREG: if (!register_operand (operands[2], E_SImode)) return -1; return 427; /* *msubsi_uxtw */ default: return -1; } case SIGN_EXTEND: switch (pattern324 (x3)) { case 0: return 341; /* *sub_extendqi_si_uxtw */ case 1: return 343; /* *sub_extendhi_si_uxtw */ default: return -1; } case ZERO_EXTEND: switch (pattern324 (x3)) { case 0: return 342; /* *sub_zero_extendqi_si_uxtw */ case 1: return 344; /* *sub_zero_extendhi_si_uxtw */ default: return -1; } case SIGN_EXTRACT: if (pattern325 (x3) != 0 || ! #line 3223 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 365; /* *sub_extvsi_multp2_uxtw */ case ZERO_EXTRACT: if (pattern325 (x3) != 0 || ! #line 3223 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 366; /* *sub_extzvsi_multp2_uxtw */ case GEU: case LTU: operands[2] = x6; if (!aarch64_borrow_operation (operands[2], E_SImode)) return -1; operands[1] = x5; if (!aarch64_reg_or_zero (operands[1], E_SImode)) return -1; return 369; /* *subsi3_carryin_uxtw */ case AND: if (GET_MODE (x6) != E_SImode) return -1; operands[4] = x5; if (!register_operand (operands[4], E_SImode)) return -1; x7 = XEXP (x6, 0); if (GET_MODE (x7) != E_SImode) return -1; x8 = XEXP (x6, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; switch (GET_CODE (x7)) { case ASHIFT: x9 = XEXP (x7, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x7, 1); operands[2] = x10; if (!aarch64_imm3 (operands[2], E_VOIDmode) || ! #line 3475 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (INTVAL (operands[2]),INTVAL (operands[3])) != 0)) return -1; return 388; /* *sub_uxtsi_shift2_uxtw */ case MULT: x9 = XEXP (x7, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x7, 1); operands[2] = x10; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode) || ! #line 3507 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),INTVAL (operands[3])) != 0)) return -1; return 391; /* *sub_uxtsi_multp2_uxtw */ default: return -1; } default: return -1; } case MINUS: if (GET_MODE (x5) != E_SImode) return -1; x11 = XEXP (x5, 0); operands[1] = x11; if (!aarch64_reg_or_zero (operands[1], E_SImode)) return -1; x12 = XEXP (x5, 1); switch (GET_CODE (x12)) { case REG: case SUBREG: operands[2] = x12; if (!register_operand (operands[2], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[3] = x6; if (!aarch64_borrow_operation (operands[3], E_SImode)) return -1; return 372; /* *subsi3_carryin_uxtw */ case GEU: case LTU: operands[3] = x12; if (!aarch64_borrow_operation (operands[3], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; return 375; /* *subsi3_carryin_alt_uxtw */ default: return -1; } case NEG: if (GET_MODE (x5) != E_SImode) return -1; x11 = XEXP (x5, 0); operands[2] = x11; if (!aarch64_borrow_operation (operands[2], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!register_operand (operands[1], E_SImode)) return -1; return 397; /* *ngcsi_uxtw */ 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, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[1] = x5; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[2] = x6; if (!aarch64_pluslong_operand (operands[2], E_SImode)) return -1; return 113; /* *addsi3_aarch64_uxtw */ case ASHIFT: if (GET_MODE (x5) != E_SImode) return -1; x7 = XEXP (x5, 1); operands[2] = x7; x6 = XEXP (x3, 1); operands[3] = x6; if (!register_operand (operands[3], E_SImode)) return -1; x8 = XEXP (x5, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; if (!register_operand (operands[1], E_SImode) || !aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 215; /* *add_lsl_si_uxtw */ case SIGN_EXTEND: switch (pattern447 (x8)) { case 0: return 252; /* *add_extendqi_shft_si_uxtw */ case 1: return 254; /* *add_extendhi_shft_si_uxtw */ default: return -1; } case ZERO_EXTEND: switch (pattern447 (x8)) { case 0: return 253; /* *add_zero_extendqi_shft_si_uxtw */ case 1: return 255; /* *add_zero_extendhi_shft_si_uxtw */ default: return -1; } default: return -1; } case ASHIFTRT: if (pattern292 (x3) != 0) return -1; return 216; /* *add_asr_si_uxtw */ case LSHIFTRT: if (pattern292 (x3) != 0) return -1; return 217; /* *add_lsr_si_uxtw */ case SIGN_EXTEND: switch (pattern294 (x3)) { case 0: return 232; /* *add_extendqi_si_uxtw */ case 1: return 234; /* *add_extendqi_si_uxtw */ case 2: return 236; /* *add_extendhi_si_uxtw */ case 3: return 238; /* *add_extendhi_si_uxtw */ default: return -1; } case ZERO_EXTEND: switch (pattern294 (x3)) { case 0: return 233; /* *add_zero_extendqi_si_uxtw */ case 1: return 235; /* *add_zero_extendqi_si_uxtw */ case 2: return 237; /* *add_zero_extendhi_si_uxtw */ case 3: return 239; /* *add_zero_extendhi_si_uxtw */ default: return -1; } case MULT: if (GET_MODE (x5) != E_SImode) return -1; x7 = XEXP (x5, 1); operands[2] = x7; x6 = XEXP (x3, 1); operands[3] = x6; if (!register_operand (operands[3], E_SImode)) return -1; x8 = XEXP (x5, 0); switch (GET_CODE (x8)) { case SIGN_EXTEND: switch (pattern448 (x8)) { case 0: return 268; /* *add_extendqi_mult_si_uxtw */ case 1: return 270; /* *add_extendhi_mult_si_uxtw */ default: return -1; } case ZERO_EXTEND: switch (pattern448 (x8)) { case 0: return 269; /* *add_zero_extendqi_mult_si_uxtw */ case 1: return 271; /* *add_zero_extendhi_mult_si_uxtw */ default: return -1; } case REG: case SUBREG: operands[1] = x8; if (!register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode)) return -1; return 424; /* *maddsi_uxtw */ default: return -1; } case SIGN_EXTRACT: if (pattern295 (x3) != 0 || ! #line 2489 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 276; /* *add_extvsi_multp2_uxtw */ case ZERO_EXTRACT: if (pattern295 (x3) != 0 || ! #line 2489 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 277; /* *add_extzvsi_multp2_uxtw */ case PLUS: if (GET_MODE (x5) != E_SImode) return -1; x8 = XEXP (x5, 0); operands[3] = x8; if (!aarch64_carry_operation (operands[3], E_SImode)) return -1; x7 = XEXP (x5, 1); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; return 280; /* *addsi3_carryin_uxtw */ case AND: if (GET_MODE (x5) != E_SImode) return -1; x8 = XEXP (x5, 0); if (GET_MODE (x8) != E_SImode) return -1; x7 = XEXP (x5, 1); operands[3] = x7; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x6 = XEXP (x3, 1); operands[4] = x6; if (!register_operand (operands[4], E_SImode)) return -1; switch (GET_CODE (x8)) { case ASHIFT: x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); operands[2] = x10; if (!aarch64_imm3 (operands[2], E_VOIDmode) || ! #line 2687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (INTVAL (operands[2]), INTVAL (operands[3])) != 0)) return -1; return 291; /* *add_uxtsi_shift2_uxtw */ case MULT: x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); operands[2] = x10; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode) || ! #line 2719 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])), INTVAL (operands[3])) != 0)) return -1; return 294; /* *add_uxtsi_multp2_uxtw */ default: return -1; } 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, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[1] = x5; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[2] = x6; if (!aarch64_logical_operand (operands[2], E_SImode)) return -1; return 533; /* *iorsi3_uxtw */ case ASHIFT: if (GET_MODE (x5) != E_SImode) return -1; x7 = XEXP (x5, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[3] = x6; if (!register_operand (operands[3], E_SImode)) return -1; x8 = XEXP (x5, 1); operands[2] = x8; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 581; /* *ior_ashlsi3_uxtw */ case LSHIFTRT: if (GET_MODE (x6) != E_SImode) return -1; x8 = XEXP (x5, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x9 = XEXP (x6, 0); operands[2] = x9; if (!register_operand (operands[2], E_SImode)) return -1; x10 = XEXP (x6, 1); operands[4] = x10; if (!const_int_operand (operands[4], E_VOIDmode) || ! #line 5343 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[3]) < 32 && (UINTVAL (operands[3]) + UINTVAL (operands[4]) == 32))) return -1; return 756; /* *extrsi5_insn_uxtw */ default: return -1; } case ASHIFTRT: if (pattern292 (x3) != 0) return -1; return 584; /* *ior_ashrsi3_uxtw */ case LSHIFTRT: if (GET_MODE (x5) != E_SImode) return -1; x7 = XEXP (x5, 0); if (!register_operand (x7, E_SImode)) return -1; x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[3] = x6; if (!register_operand (operands[3], E_SImode)) return -1; operands[1] = x7; x8 = XEXP (x5, 1); operands[2] = x8; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 587; /* *ior_lshrsi3_uxtw */ case ASHIFT: if (GET_MODE (x6) != E_SImode) return -1; operands[2] = x7; x8 = XEXP (x5, 1); operands[4] = x8; if (!const_int_operand (operands[4], E_VOIDmode)) return -1; x9 = XEXP (x6, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x6, 1); operands[3] = x10; if (!const_int_operand (operands[3], E_VOIDmode) || ! #line 5356 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[3]) < 32 && (UINTVAL (operands[3]) + UINTVAL (operands[4]) == 32))) return -1; return 757; /* *extrsi5_insn_uxtw_alt */ default: return -1; } case ROTATERT: if (pattern292 (x3) != 0) return -1; return 590; /* *ior_rotrsi3_uxtw */ case ROTATE: if (pattern292 (x3) != 0) return -1; return 593; /* *ior_rolsi3_uxtw */ case NOT: if (GET_MODE (x5) != E_SImode) return -1; x7 = XEXP (x5, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x6 = XEXP (x3, 1); operands[2] = x6; if (!register_operand (operands[2], E_SImode)) return -1; return 610; /* *ior_one_cmplsidi3_ze */ case AND: if (GET_MODE (x5) != E_SImode) return -1; x6 = XEXP (x3, 1); if (GET_CODE (x6) != AND || GET_MODE (x6) != E_SImode) return -1; x7 = XEXP (x5, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return -1; x8 = XEXP (x5, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_SImode)) return -1; x9 = XEXP (x6, 0); operands[2] = x9; if (!register_operand (operands[2], E_SImode)) return -1; x10 = XEXP (x6, 1); operands[4] = x10; if (!const_int_operand (operands[4], E_SImode) || ! #line 5755 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((INTVAL (operands[3]) == ~INTVAL (operands[4])) && (aarch64_high_bits_all_ones_p (INTVAL (operands[3])) || aarch64_high_bits_all_ones_p (INTVAL (operands[4]))))) return -1; return 824; /* *aarch64_bfxilsi_uxtw */ 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, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); switch (GET_CODE (x4)) { case CONST_INT: case CONST_POLY_INT: case CONST_VECTOR: case CONST: case REG: case SUBREG: operands[2] = x4; 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_SImode)) return -1; if (aarch64_pluslong_operand (operands[2], E_SImode)) return 111; /* *addsi3_aarch64 */ if (!aarch64_pluslong_or_poly_operand (operands[2], E_SImode) || ! #line 1868 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE && operands[0] != stack_pointer_rtx)) return -1; return 114; /* *addsi3_poly_1 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; if (aarch64_pluslong_operand (operands[2], E_DImode)) return 112; /* *adddi3_aarch64 */ if (!aarch64_pluslong_or_poly_operand (operands[2], E_DImode) || ! #line 1868 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE && operands[0] != stack_pointer_rtx)) return -1; return 115; /* *adddi3_poly_1 */ case E_HFmode: if (pattern13 (x2, E_HFmode) != 0 || !( #line 6207 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 983; /* addhf3 */ case E_SFmode: if (pattern13 (x2, E_SFmode) != 0 || ! #line 6207 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 984; /* addsf3 */ case E_DFmode: if (pattern13 (x2, E_DFmode) != 0 || ! #line 6207 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 985; /* adddf3 */ case E_V8QImode: if (pattern13 (x2, E_V8QImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1357; /* addv8qi3 */ case E_V16QImode: if (pattern13 (x2, E_V16QImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1358; /* addv16qi3 */ case E_V4HImode: if (pattern13 (x2, E_V4HImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1359; /* addv4hi3 */ case E_V8HImode: if (pattern13 (x2, E_V8HImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1360; /* addv8hi3 */ case E_V2SImode: if (pattern13 (x2, E_V2SImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1361; /* addv2si3 */ case E_V4SImode: if (pattern13 (x2, E_V4SImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1362; /* addv4si3 */ case E_V2DImode: if (pattern13 (x2, E_V2DImode) != 0 || ! #line 339 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1363; /* addv2di3 */ case E_V4HFmode: if (pattern13 (x2, E_V4HFmode) != 0 || !( #line 1820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1884; /* addv4hf3 */ case E_V8HFmode: if (pattern13 (x2, E_V8HFmode) != 0 || !( #line 1820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1885; /* addv8hf3 */ case E_V2SFmode: if (pattern13 (x2, E_V2SFmode) != 0 || ! #line 1820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1886; /* addv2sf3 */ case E_V4SFmode: if (pattern13 (x2, E_V4SFmode) != 0 || ! #line 1820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1887; /* addv4sf3 */ case E_V2DFmode: if (pattern13 (x2, E_V2DFmode) != 0 || ! #line 1820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1888; /* addv2df3 */ case E_VNx16QImode: if (pattern296 (x2, E_VNx16QImode) != 0 || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4098; /* addvnx16qi3 */ case E_VNx8HImode: if (pattern296 (x2, E_VNx8HImode) != 0 || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4099; /* addvnx8hi3 */ case E_VNx4SImode: if (pattern296 (x2, E_VNx4SImode) != 0 || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4100; /* addvnx4si3 */ case E_VNx2DImode: if (pattern296 (x2, E_VNx2DImode) != 0 || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4101; /* addvnx2di3 */ case E_VNx8HFmode: if (pattern13 (x2, E_VNx8HFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4894; /* *post_ra_faddvnx8hf3 */ case E_VNx4SFmode: if (pattern13 (x2, E_VNx4SFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4897; /* *post_ra_faddvnx4sf3 */ case E_VNx2DFmode: if (pattern13 (x2, E_VNx2DFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4900; /* *post_ra_faddvnx2df3 */ default: return -1; } case UNSPEC: switch (XVECLEN (x4, 0)) { case 2: x5 = XVECEXP (x4, 0, 0); operands[2] = x5; x6 = XVECEXP (x4, 0, 1); operands[3] = x6; switch (XINT (x4, 1)) { case 256: switch (GET_MODE (operands[0])) { case E_V4HFmode: if (pattern403 (x2, E_V4HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1394; /* aarch64_fcmla0v4hf */ case E_V8HFmode: if (pattern403 (x2, E_V8HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1398; /* aarch64_fcmla0v8hf */ case E_V2SFmode: if (pattern403 (x2, E_V2SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1402; /* aarch64_fcmla0v2sf */ case E_V4SFmode: if (pattern403 (x2, E_V4SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1406; /* aarch64_fcmla0v4sf */ case E_V2DFmode: if (pattern403 (x2, E_V2DFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1410; /* aarch64_fcmla0v2df */ default: return -1; } case 257: switch (GET_MODE (operands[0])) { case E_V4HFmode: if (pattern403 (x2, E_V4HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1395; /* aarch64_fcmla90v4hf */ case E_V8HFmode: if (pattern403 (x2, E_V8HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1399; /* aarch64_fcmla90v8hf */ case E_V2SFmode: if (pattern403 (x2, E_V2SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1403; /* aarch64_fcmla90v2sf */ case E_V4SFmode: if (pattern403 (x2, E_V4SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1407; /* aarch64_fcmla90v4sf */ case E_V2DFmode: if (pattern403 (x2, E_V2DFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1411; /* aarch64_fcmla90v2df */ default: return -1; } case 258: switch (GET_MODE (operands[0])) { case E_V4HFmode: if (pattern403 (x2, E_V4HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1396; /* aarch64_fcmla180v4hf */ case E_V8HFmode: if (pattern403 (x2, E_V8HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1400; /* aarch64_fcmla180v8hf */ case E_V2SFmode: if (pattern403 (x2, E_V2SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1404; /* aarch64_fcmla180v2sf */ case E_V4SFmode: if (pattern403 (x2, E_V4SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1408; /* aarch64_fcmla180v4sf */ case E_V2DFmode: if (pattern403 (x2, E_V2DFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1412; /* aarch64_fcmla180v2df */ default: return -1; } case 259: switch (GET_MODE (operands[0])) { case E_V4HFmode: if (pattern403 (x2, E_V4HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1397; /* aarch64_fcmla270v4hf */ case E_V8HFmode: if (pattern403 (x2, E_V8HFmode) != 0 || !( #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1401; /* aarch64_fcmla270v8hf */ case E_V2SFmode: if (pattern403 (x2, E_V2SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1405; /* aarch64_fcmla270v2sf */ case E_V4SFmode: if (pattern403 (x2, E_V4SFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1409; /* aarch64_fcmla270v4sf */ case E_V2DFmode: if (pattern403 (x2, E_V2DFmode) != 0 || ! #line 444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1413; /* aarch64_fcmla270v2df */ default: return -1; } case 209: switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern404 (x2, E_V8QImode, E_V2SImode) != 0 || ! #line 504 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1446; /* aarch64_sdotv8qi */ case E_V4SImode: if (pattern404 (x2, E_V16QImode, E_V4SImode) != 0 || ! #line 504 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1448; /* aarch64_sdotv16qi */ default: return -1; } case 210: switch (GET_MODE (operands[0])) { case E_V2SImode: if (pattern404 (x2, E_V8QImode, E_V2SImode) != 0 || ! #line 504 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1447; /* aarch64_udotv8qi */ case E_V4SImode: if (pattern404 (x2, E_V16QImode, E_V4SImode) != 0 || ! #line 504 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1449; /* aarch64_udotv16qi */ default: return -1; } default: return -1; } case 3: x5 = XVECEXP (x4, 0, 0); operands[2] = x5; x6 = XVECEXP (x4, 0, 1); operands[3] = x6; x7 = XVECEXP (x4, 0, 2); operands[4] = x7; switch (XINT (x4, 1)) { case 256: switch (pattern405 (x2)) { case 0: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1414; /* aarch64_fcmla_lane0v4hf */ case 1: if (! #line 472 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1434; /* aarch64_fcmla_laneq0v4hf */ case 2: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1418; /* aarch64_fcmla_lane0v8hf */ case 3: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1438; /* aarch64_fcmlaq_lane0v8hf */ case 4: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1422; /* aarch64_fcmla_lane0v2sf */ case 5: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1426; /* aarch64_fcmla_lane0v4sf */ case 6: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1442; /* aarch64_fcmlaq_lane0v4sf */ case 7: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1430; /* aarch64_fcmla_lane0v2df */ default: return -1; } case 257: switch (pattern405 (x2)) { case 0: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1415; /* aarch64_fcmla_lane90v4hf */ case 1: if (! #line 472 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1435; /* aarch64_fcmla_laneq90v4hf */ case 2: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1419; /* aarch64_fcmla_lane90v8hf */ case 3: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1439; /* aarch64_fcmlaq_lane90v8hf */ case 4: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1423; /* aarch64_fcmla_lane90v2sf */ case 5: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1427; /* aarch64_fcmla_lane90v4sf */ case 6: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1443; /* aarch64_fcmlaq_lane90v4sf */ case 7: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1431; /* aarch64_fcmla_lane90v2df */ default: return -1; } case 258: switch (pattern405 (x2)) { case 0: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1416; /* aarch64_fcmla_lane180v4hf */ case 1: if (! #line 472 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1436; /* aarch64_fcmla_laneq180v4hf */ case 2: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1420; /* aarch64_fcmla_lane180v8hf */ case 3: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1440; /* aarch64_fcmlaq_lane180v8hf */ case 4: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1424; /* aarch64_fcmla_lane180v2sf */ case 5: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1428; /* aarch64_fcmla_lane180v4sf */ case 6: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1444; /* aarch64_fcmlaq_lane180v4sf */ case 7: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1432; /* aarch64_fcmla_lane180v2df */ default: return -1; } case 259: switch (pattern405 (x2)) { case 0: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1417; /* aarch64_fcmla_lane270v4hf */ case 1: if (! #line 472 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1437; /* aarch64_fcmla_laneq270v4hf */ case 2: if (!( #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1421; /* aarch64_fcmla_lane270v8hf */ case 3: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1441; /* aarch64_fcmlaq_lane270v8hf */ case 4: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1425; /* aarch64_fcmla_lane270v2sf */ case 5: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1429; /* aarch64_fcmla_lane270v4sf */ case 6: if (! #line 487 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1445; /* aarch64_fcmlaq_lane270v4sf */ case 7: if (! #line 457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1433; /* aarch64_fcmla_lane270v2df */ default: return -1; } case 209: switch (pattern407 (x2)) { case 0: if (! #line 553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1450; /* aarch64_sdot_lanev8qi */ case 1: if (! #line 568 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1454; /* aarch64_sdot_laneqv8qi */ case 2: if (! #line 553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1452; /* aarch64_sdot_lanev16qi */ case 3: if (! #line 568 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1456; /* aarch64_sdot_laneqv16qi */ default: return -1; } case 210: switch (pattern407 (x2)) { case 0: if (! #line 553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1451; /* aarch64_udot_lanev8qi */ case 1: if (! #line 568 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1455; /* aarch64_udot_laneqv8qi */ case 2: if (! #line 553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1453; /* aarch64_udot_lanev16qi */ case 3: if (! #line 568 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_DOTPROD)) return -1; return 1457; /* aarch64_udot_laneqv16qi */ default: return -1; } default: return -1; } default: return -1; } 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, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: operands[2] = x5; operands[1] = x4; x6 = XEXP (x2, 1); operands[3] = x6; switch (pattern249 (x2)) { case 0: if (!register_operand (operands[3], E_SImode)) return -1; return 218; /* *add_mul_imm_si */ case 1: if (!register_operand (operands[3], E_DImode)) return -1; return 219; /* *add_mul_imm_di */ default: return -1; } case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern240 (x2, E_SImode) != 0) return -1; return 422; /* maddsi */ case E_DImode: if (pattern240 (x2, E_DImode) != 0) return -1; return 423; /* madddi */ case E_V8QImode: if (pattern241 (x2, E_V8QImode) != 0 || ! #line 1242 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1686; /* aarch64_mlav8qi */ case E_V16QImode: if (pattern241 (x2, E_V16QImode) != 0 || ! #line 1242 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1687; /* aarch64_mlav16qi */ case E_V4HImode: if (pattern241 (x2, E_V4HImode) != 0 || ! #line 1242 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1688; /* aarch64_mlav4hi */ case E_V8HImode: if (pattern241 (x2, E_V8HImode) != 0 || ! #line 1242 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1689; /* aarch64_mlav8hi */ case E_V2SImode: if (pattern241 (x2, E_V2SImode) != 0 || ! #line 1242 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1690; /* aarch64_mlav2si */ case E_V4SImode: if (pattern241 (x2, E_V4SImode) != 0 || ! #line 1242 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1691; /* aarch64_mlav4si */ default: return -1; } default: return -1; } case SIGN_EXTEND: switch (pattern146 (x2, SIGN_EXTEND)) { case 0: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: switch (pattern327 (x2)) { case 0: return 256; /* *add_extendqi_mult_si */ case 1: return 260; /* *add_extendhi_mult_si */ case 2: return 264; /* *add_extendsi_mult_si */ case 3: return 258; /* *add_extendqi_mult_di */ case 4: return 262; /* *add_extendhi_mult_di */ case 5: return 266; /* *add_extendsi_mult_di */ default: return -1; } case SIGN_EXTEND: switch (pattern329 (x2)) { case 0: return 433; /* maddsidi4 */ case 1: if (! #line 1717 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1860; /* *aarch64_smlalv8qi */ case 2: if (! #line 1717 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1862; /* *aarch64_smlalv4hi */ case 3: if (! #line 1717 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1864; /* *aarch64_smlalv2si */ default: return -1; } default: return -1; } case 1: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 1655 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1836; /* *aarch64_smlal_lov16qi */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 1671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1842; /* *aarch64_smlal_hiv16qi */ case 2: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 1655 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1838; /* *aarch64_smlal_lov8hi */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 1671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1844; /* *aarch64_smlal_hiv8hi */ case 3: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 1655 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1840; /* *aarch64_smlal_lov4si */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 1671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1846; /* *aarch64_smlal_hiv4si */ default: return -1; } case ZERO_EXTEND: switch (pattern146 (x2, ZERO_EXTEND)) { case 0: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: switch (pattern327 (x2)) { case 0: return 257; /* *add_zero_extendqi_mult_si */ case 1: return 261; /* *add_zero_extendhi_mult_si */ case 2: return 265; /* *add_zero_extendsi_mult_si */ case 3: return 259; /* *add_zero_extendqi_mult_di */ case 4: return 263; /* *add_zero_extendhi_mult_di */ case 5: return 267; /* *add_zero_extendsi_mult_di */ default: return -1; } case ZERO_EXTEND: switch (pattern329 (x2)) { case 0: return 434; /* umaddsidi4 */ case 1: if (! #line 1717 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1861; /* *aarch64_umlalv8qi */ case 2: if (! #line 1717 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1863; /* *aarch64_umlalv4hi */ case 3: if (! #line 1717 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1865; /* *aarch64_umlalv2si */ default: return -1; } default: return -1; } case 1: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 1655 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1837; /* *aarch64_umlal_lov16qi */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 1671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1843; /* *aarch64_umlal_hiv16qi */ case 2: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 1655 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1839; /* *aarch64_umlal_lov8hi */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 1671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1845; /* *aarch64_umlal_hiv8hi */ case 3: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 1655 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1841; /* *aarch64_umlal_lov4si */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 1671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1847; /* *aarch64_umlal_hiv4si */ default: return -1; } case VEC_DUPLICATE: x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case VEC_SELECT: x8 = XEXP (x7, 1); if (GET_CODE (x8) != PARALLEL || XVECLEN (x8, 0) != 1) return -1; x9 = XEXP (x7, 0); operands[1] = x9; x10 = XVECEXP (x8, 0, 0); operands[2] = x10; if (!immediate_operand (operands[2], E_SImode)) return -1; x5 = XEXP (x3, 1); operands[3] = x5; x6 = XEXP (x2, 1); operands[4] = x6; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern473 (x2, E_V4HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 1257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1692; /* *aarch64_mla_eltv4hi */ case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 1275 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1696; /* *aarch64_mla_elt_to_128v4hi */ default: return -1; } case E_V8HImode: if (pattern473 (x2, E_V8HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 1257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1693; /* *aarch64_mla_eltv8hi */ case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 1275 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1697; /* *aarch64_mla_elt_to_64v8hi */ default: return -1; } case E_V2SImode: if (pattern473 (x2, E_V2SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 1257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1694; /* *aarch64_mla_eltv2si */ case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 1275 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1698; /* *aarch64_mla_elt_to_128v2si */ default: return -1; } case E_V4SImode: if (pattern473 (x2, E_V4SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 1257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1695; /* *aarch64_mla_eltv4si */ case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 1275 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1699; /* *aarch64_mla_elt_to_64v4si */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[1] = x7; x5 = XEXP (x3, 1); operands[2] = x5; x6 = XEXP (x2, 1); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern369 (x2, E_V4HImode, E_HImode) != 0 || ! #line 1290 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1700; /* *aarch64_mla_elt_mergev4hi */ case E_V8HImode: if (pattern369 (x2, E_V8HImode, E_HImode) != 0 || ! #line 1290 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1701; /* *aarch64_mla_elt_mergev8hi */ case E_V2SImode: if (pattern369 (x2, E_V2SImode, E_SImode) != 0 || ! #line 1290 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1702; /* *aarch64_mla_elt_mergev2si */ case E_V4SImode: if (pattern369 (x2, E_V4SImode, E_SImode) != 0 || ! #line 1290 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1703; /* *aarch64_mla_elt_mergev4si */ default: return -1; } default: return -1; } 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, x6, x7, x8, x9; rtx x10; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case CONST_INT: operands[2] = x5; x6 = XEXP (x2, 0); operands[3] = x6; operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern409 (x2, E_SImode) != 0 || !aarch64_pwr_2_si (operands[2], E_QImode)) return -1; return 326; /* *sub_mul_imm_si */ case E_DImode: if (pattern409 (x2, E_DImode) != 0 || !aarch64_pwr_2_di (operands[2], E_QImode)) return -1; return 327; /* *sub_mul_imm_di */ default: return -1; } case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern302 (x2, E_SImode) != 0) return -1; return 425; /* *msubsi */ case E_DImode: if (pattern302 (x2, E_DImode) != 0) return -1; return 426; /* *msubdi */ case E_V8QImode: if (pattern303 (x2, E_V8QImode) != 0 || ! #line 1300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1704; /* aarch64_mlsv8qi */ case E_V16QImode: if (pattern303 (x2, E_V16QImode) != 0 || ! #line 1300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1705; /* aarch64_mlsv16qi */ case E_V4HImode: if (pattern303 (x2, E_V4HImode) != 0 || ! #line 1300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1706; /* aarch64_mlsv4hi */ case E_V8HImode: if (pattern303 (x2, E_V8HImode) != 0 || ! #line 1300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1707; /* aarch64_mlsv8hi */ case E_V2SImode: if (pattern303 (x2, E_V2SImode) != 0 || ! #line 1300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1708; /* aarch64_mlsv2si */ case E_V4SImode: if (pattern303 (x2, E_V4SImode) != 0 || ! #line 1300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1709; /* aarch64_mlsv4si */ default: return -1; } default: return -1; } case SIGN_EXTEND: switch (pattern203 (x2, SIGN_EXTEND)) { case 0: return 435; /* msubsidi4 */ case 1: if (! #line 1731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1866; /* *aarch64_smlslv8qi */ case 2: if (! #line 1731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1868; /* *aarch64_smlslv4hi */ case 3: if (! #line 1731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1870; /* *aarch64_smlslv2si */ case 4: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 1687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1848; /* *aarch64_smlsl_lov16qi */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 1703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1854; /* *aarch64_smlsl_hiv16qi */ case 5: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 1687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1850; /* *aarch64_smlsl_lov8hi */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 1703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1856; /* *aarch64_smlsl_hiv8hi */ case 6: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 1687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1852; /* *aarch64_smlsl_lov4si */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 1703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1858; /* *aarch64_smlsl_hiv4si */ default: return -1; } case ZERO_EXTEND: switch (pattern203 (x2, ZERO_EXTEND)) { case 0: return 436; /* umsubsidi4 */ case 1: if (! #line 1731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1867; /* *aarch64_umlslv8qi */ case 2: if (! #line 1731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1869; /* *aarch64_umlslv4hi */ case 3: if (! #line 1731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1871; /* *aarch64_umlslv2si */ case 4: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 1687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1849; /* *aarch64_umlsl_lov16qi */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 1703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1855; /* *aarch64_umlsl_hiv16qi */ case 5: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 1687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1851; /* *aarch64_umlsl_lov8hi */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 1703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1857; /* *aarch64_umlsl_hiv8hi */ case 6: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 1687 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1853; /* *aarch64_umlsl_lov4si */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 1703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1859; /* *aarch64_umlsl_hiv4si */ default: return -1; } case VEC_DUPLICATE: x5 = XEXP (x3, 1); operands[3] = x5; x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case VEC_SELECT: x8 = XEXP (x7, 1); if (GET_CODE (x8) != PARALLEL || XVECLEN (x8, 0) != 1) return -1; x6 = XEXP (x2, 0); operands[4] = x6; x9 = XEXP (x7, 0); operands[1] = x9; x10 = XVECEXP (x8, 0, 0); operands[2] = x10; if (!immediate_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern496 (x2, E_V4HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 1315 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1710; /* *aarch64_mls_eltv4hi */ case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 1333 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1714; /* *aarch64_mls_elt_to_128v4hi */ default: return -1; } case E_V8HImode: if (pattern496 (x2, E_V8HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 1315 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1711; /* *aarch64_mls_eltv8hi */ case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 1333 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1715; /* *aarch64_mls_elt_to_64v8hi */ default: return -1; } case E_V2SImode: if (pattern496 (x2, E_V2SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 1315 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1712; /* *aarch64_mls_eltv2si */ case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 1333 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1716; /* *aarch64_mls_elt_to_128v2si */ default: return -1; } case E_V4SImode: if (pattern496 (x2, E_V4SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 1315 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1713; /* *aarch64_mls_eltv4si */ case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 1333 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1717; /* *aarch64_mls_elt_to_64v4si */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[2] = x7; x6 = XEXP (x2, 0); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern410 (x2, E_V4HImode, E_HImode) != 0 || ! #line 1348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1718; /* *aarch64_mls_elt_mergev4hi */ case E_V8HImode: if (pattern410 (x2, E_V8HImode, E_HImode) != 0 || ! #line 1348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1719; /* *aarch64_mls_elt_mergev8hi */ case E_V2SImode: if (pattern410 (x2, E_V2SImode, E_SImode) != 0 || ! #line 1348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1720; /* *aarch64_mls_elt_mergev2si */ case E_V4SImode: if (pattern410 (x2, E_V4SImode, E_SImode) != 0 || ! #line 1348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1721; /* *aarch64_mls_elt_mergev4si */ default: return -1; } default: return -1; } 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, x6, x7; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x3, 1); if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0]) { x5 = XEXP (x3, 0); operands[2] = x5; if (cc_register (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[0])) { case E_QImode: if (register_operand (operands[0], E_QImode) && GET_MODE (x2) == E_QImode && aarch64_comparison_operator_mode (operands[1], E_QImode)) return 492; /* cstoreqi_neg */ break; case E_HImode: if (register_operand (operands[0], E_HImode) && GET_MODE (x2) == E_HImode && aarch64_comparison_operator_mode (operands[1], E_HImode)) return 493; /* cstorehi_neg */ break; case E_SImode: if (register_operand (operands[0], E_SImode) && GET_MODE (x2) == E_SImode && aarch64_comparison_operator_mode (operands[1], E_SImode)) return 494; /* cstoresi_neg */ break; case E_DImode: if (register_operand (operands[0], E_DImode) && GET_MODE (x2) == E_DImode && aarch64_comparison_operator_mode (operands[1], E_DImode)) return 495; /* cstoredi_neg */ break; default: break; } } } switch (GET_CODE (x3)) { case LT: switch (pattern161 (x2)) { case 0: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2923; /* aarch64_cmltv8qi */ case 1: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2928; /* aarch64_cmltv16qi */ case 2: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2933; /* aarch64_cmltv4hi */ case 3: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3013; /* aarch64_cmltv4hf */ case 4: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2938; /* aarch64_cmltv8hi */ case 5: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3018; /* aarch64_cmltv8hf */ case 6: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2943; /* aarch64_cmltv2si */ case 7: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3023; /* aarch64_cmltv2sf */ case 8: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2948; /* aarch64_cmltv4si */ case 9: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3028; /* aarch64_cmltv4sf */ case 10: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2953; /* aarch64_cmltv2di */ case 11: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3033; /* aarch64_cmltv2df */ case 12: if (pnum_clobbers != NULL && #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2958; /* aarch64_cmltdi */ } if (! #line 4666 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 2963; /* *aarch64_cmltdi */ case 13: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3048; /* aarch64_cmltdf */ case 14: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3038; /* aarch64_cmlthf */ case 15: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3043; /* aarch64_cmltsf */ case 16: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3053; /* aarch64_facltv4hf */ case 17: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3057; /* aarch64_facltv8hf */ case 18: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3061; /* aarch64_facltv2sf */ case 19: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3065; /* aarch64_facltv4sf */ case 20: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3069; /* aarch64_facltv2df */ case 21: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3073; /* aarch64_faclthf */ case 22: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3077; /* aarch64_facltsf */ case 23: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3081; /* aarch64_facltdf */ default: return -1; } case LE: switch (pattern161 (x2)) { case 0: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2924; /* aarch64_cmlev8qi */ case 1: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2929; /* aarch64_cmlev16qi */ case 2: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2934; /* aarch64_cmlev4hi */ case 3: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3014; /* aarch64_cmlev4hf */ case 4: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2939; /* aarch64_cmlev8hi */ case 5: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3019; /* aarch64_cmlev8hf */ case 6: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2944; /* aarch64_cmlev2si */ case 7: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3024; /* aarch64_cmlev2sf */ case 8: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2949; /* aarch64_cmlev4si */ case 9: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3029; /* aarch64_cmlev4sf */ case 10: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2954; /* aarch64_cmlev2di */ case 11: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3034; /* aarch64_cmlev2df */ case 12: if (pnum_clobbers != NULL && #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2959; /* aarch64_cmledi */ } if (! #line 4666 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 2964; /* *aarch64_cmledi */ case 13: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3049; /* aarch64_cmledf */ case 14: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3039; /* aarch64_cmlehf */ case 15: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3044; /* aarch64_cmlesf */ case 16: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3054; /* aarch64_faclev4hf */ case 17: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3058; /* aarch64_faclev8hf */ case 18: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3062; /* aarch64_faclev2sf */ case 19: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3066; /* aarch64_faclev4sf */ case 20: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3070; /* aarch64_faclev2df */ case 21: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3074; /* aarch64_faclehf */ case 22: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3078; /* aarch64_faclesf */ case 23: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3082; /* aarch64_facledf */ default: return -1; } case EQ: switch (pattern159 (x2)) { case 0: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2925; /* aarch64_cmeqv8qi */ case 1: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2930; /* aarch64_cmeqv16qi */ case 2: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2935; /* aarch64_cmeqv4hi */ case 3: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3015; /* aarch64_cmeqv4hf */ case 4: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2940; /* aarch64_cmeqv8hi */ case 5: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3020; /* aarch64_cmeqv8hf */ case 6: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2945; /* aarch64_cmeqv2si */ case 7: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3025; /* aarch64_cmeqv2sf */ case 8: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2950; /* aarch64_cmeqv4si */ case 9: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3030; /* aarch64_cmeqv4sf */ case 10: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2955; /* aarch64_cmeqv2di */ case 11: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3035; /* aarch64_cmeqv2df */ case 12: if (pnum_clobbers != NULL && #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2960; /* aarch64_cmeqdi */ } if (! #line 4666 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 2965; /* *aarch64_cmeqdi */ case 13: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3050; /* aarch64_cmeqdf */ case 14: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3040; /* aarch64_cmeqhf */ case 15: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3045; /* aarch64_cmeqsf */ default: return -1; } case GE: switch (pattern161 (x2)) { case 0: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2926; /* aarch64_cmgev8qi */ case 1: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2931; /* aarch64_cmgev16qi */ case 2: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2936; /* aarch64_cmgev4hi */ case 3: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3016; /* aarch64_cmgev4hf */ case 4: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2941; /* aarch64_cmgev8hi */ case 5: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3021; /* aarch64_cmgev8hf */ case 6: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2946; /* aarch64_cmgev2si */ case 7: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3026; /* aarch64_cmgev2sf */ case 8: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2951; /* aarch64_cmgev4si */ case 9: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3031; /* aarch64_cmgev4sf */ case 10: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2956; /* aarch64_cmgev2di */ case 11: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3036; /* aarch64_cmgev2df */ case 12: if (pnum_clobbers != NULL && #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2961; /* aarch64_cmgedi */ } if (! #line 4666 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 2966; /* *aarch64_cmgedi */ case 13: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3051; /* aarch64_cmgedf */ case 14: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3041; /* aarch64_cmgehf */ case 15: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3046; /* aarch64_cmgesf */ case 16: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3055; /* aarch64_facgev4hf */ case 17: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3059; /* aarch64_facgev8hf */ case 18: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3063; /* aarch64_facgev2sf */ case 19: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3067; /* aarch64_facgev4sf */ case 20: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3071; /* aarch64_facgev2df */ case 21: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3075; /* aarch64_facgehf */ case 22: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3079; /* aarch64_facgesf */ case 23: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3083; /* aarch64_facgedf */ default: return -1; } case GT: switch (pattern161 (x2)) { case 0: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2927; /* aarch64_cmgtv8qi */ case 1: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2932; /* aarch64_cmgtv16qi */ case 2: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2937; /* aarch64_cmgtv4hi */ case 3: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3017; /* aarch64_cmgtv4hf */ case 4: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2942; /* aarch64_cmgtv8hi */ case 5: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3022; /* aarch64_cmgtv8hf */ case 6: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2947; /* aarch64_cmgtv2si */ case 7: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3027; /* aarch64_cmgtv2sf */ case 8: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2952; /* aarch64_cmgtv4si */ case 9: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3032; /* aarch64_cmgtv4sf */ case 10: if (! #line 4617 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2957; /* aarch64_cmgtv2di */ case 11: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3037; /* aarch64_cmgtv2df */ case 12: if (pnum_clobbers != NULL && #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2962; /* aarch64_cmgtdi */ } if (! #line 4666 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 2967; /* *aarch64_cmgtdi */ case 13: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3052; /* aarch64_cmgtdf */ case 14: if (!( #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3042; /* aarch64_cmgthf */ case 15: if (! #line 4817 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3047; /* aarch64_cmgtsf */ case 16: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3056; /* aarch64_facgtv4hf */ case 17: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3060; /* aarch64_facgtv8hf */ case 18: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3064; /* aarch64_facgtv2sf */ case 19: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3068; /* aarch64_facgtv4sf */ case 20: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3072; /* aarch64_facgtv2df */ case 21: if (!( #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3076; /* aarch64_facgthf */ case 22: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3080; /* aarch64_facgtsf */ case 23: if (! #line 4837 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3084; /* aarch64_facgtdf */ default: return -1; } case LTU: switch (pattern162 (x2)) { case 0: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2968; /* aarch64_cmltuv8qi */ case 1: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2972; /* aarch64_cmltuv16qi */ case 2: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2976; /* aarch64_cmltuv4hi */ case 3: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2980; /* aarch64_cmltuv8hi */ case 4: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2984; /* aarch64_cmltuv2si */ case 5: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2988; /* aarch64_cmltuv4si */ case 6: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2992; /* aarch64_cmltuv2di */ case 7: if (pnum_clobbers != NULL && #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2996; /* aarch64_cmltudi */ } if (! #line 4729 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 3000; /* *aarch64_cmltudi */ default: return -1; } case LEU: switch (pattern162 (x2)) { case 0: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2969; /* aarch64_cmleuv8qi */ case 1: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2973; /* aarch64_cmleuv16qi */ case 2: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2977; /* aarch64_cmleuv4hi */ case 3: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2981; /* aarch64_cmleuv8hi */ case 4: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2985; /* aarch64_cmleuv2si */ case 5: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2989; /* aarch64_cmleuv4si */ case 6: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2993; /* aarch64_cmleuv2di */ case 7: if (pnum_clobbers != NULL && #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2997; /* aarch64_cmleudi */ } if (! #line 4729 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 3001; /* *aarch64_cmleudi */ default: return -1; } case GEU: switch (pattern162 (x2)) { case 0: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2970; /* aarch64_cmgeuv8qi */ case 1: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2974; /* aarch64_cmgeuv16qi */ case 2: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2978; /* aarch64_cmgeuv4hi */ case 3: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2982; /* aarch64_cmgeuv8hi */ case 4: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2986; /* aarch64_cmgeuv2si */ case 5: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2990; /* aarch64_cmgeuv4si */ case 6: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2994; /* aarch64_cmgeuv2di */ case 7: if (pnum_clobbers != NULL && #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2998; /* aarch64_cmgeudi */ } if (! #line 4729 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 3002; /* *aarch64_cmgeudi */ default: return -1; } case GTU: switch (pattern162 (x2)) { case 0: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2971; /* aarch64_cmgtuv8qi */ case 1: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2975; /* aarch64_cmgtuv16qi */ case 2: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2979; /* aarch64_cmgtuv4hi */ case 3: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2983; /* aarch64_cmgtuv8hi */ case 4: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2987; /* aarch64_cmgtuv2si */ case 5: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2991; /* aarch64_cmgtuv4si */ case 6: if (! #line 4682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2995; /* aarch64_cmgtuv2di */ case 7: if (pnum_clobbers != NULL && #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 2999; /* aarch64_cmgtudi */ } if (! #line 4729 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return -1; return 3003; /* *aarch64_cmgtudi */ default: return -1; } case NE: if (pattern51 (x2, 0, E_DImode, AND) != 0) return -1; x5 = XEXP (x3, 0); 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; if (pnum_clobbers != NULL && #line 4766 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) { *pnum_clobbers = 1; return 3011; /* aarch64_cmtstdi */ } if (! #line 4803 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3012; /* *aarch64_cmtstdi */ 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, 1); x3 = XVECEXP (x2, 0, 1); switch (XVECLEN (x3, 0)) { case 1: x4 = XVECEXP (x3, 0, 0); operands[2] = x4; switch (XINT (x3, 1)) { case 184: if (!register_operand (operands[1], E_VNx2BImode)) return -1; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern431 (x2, E_VNx16QImode) != 0 || ! #line 840 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4068; /* *aarch64_sve_rev64vnx16qi */ case E_VNx8HImode: if (pattern431 (x2, E_VNx8HImode) != 0 || ! #line 840 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4069; /* *aarch64_sve_rev64vnx8hi */ case E_VNx4SImode: if (pattern431 (x2, E_VNx4SImode) != 0 || ! #line 840 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4070; /* *aarch64_sve_rev64vnx4si */ case E_VNx8HFmode: if (pattern431 (x2, E_VNx8HFmode) != 0 || ! #line 840 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4071; /* *aarch64_sve_rev64vnx8hf */ case E_VNx4SFmode: if (!register_operand (operands[0], E_VNx4SFmode) || GET_MODE (x2) != E_VNx4SFmode || GET_MODE (x3) != E_VNx4SFmode || !register_operand (operands[2], E_VNx4SFmode) || ! #line 840 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4072; /* *aarch64_sve_rev64vnx4sf */ default: return -1; } case 185: if (!register_operand (operands[1], E_VNx4BImode)) return -1; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern431 (x2, E_VNx16QImode) != 0 || ! #line 851 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4073; /* *aarch64_sve_rev32vnx16qi */ case E_VNx8HImode: if (pattern431 (x2, E_VNx8HImode) != 0 || ! #line 851 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4074; /* *aarch64_sve_rev32vnx8hi */ case E_VNx8HFmode: if (pattern431 (x2, E_VNx8HFmode) != 0 || ! #line 851 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4075; /* *aarch64_sve_rev32vnx8hf */ default: return -1; } case 186: if (GET_MODE (x3) != E_VNx16QImode || !register_operand (operands[0], E_VNx16QImode) || GET_MODE (x2) != E_VNx16QImode || !register_operand (operands[1], E_VNx8BImode) || !register_operand (operands[2], E_VNx16QImode) || ! #line 862 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4076; /* *aarch64_sve_rev16vnx16qi */ case 23: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4927; /* *btruncvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4934; /* *btruncvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4941; /* *btruncvnx2df2 */ default: return -1; } case 21: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4928; /* *ceilvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4935; /* *ceilvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4942; /* *ceilvnx2df2 */ default: return -1; } case 19: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4929; /* *floorvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4936; /* *floorvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4943; /* *floorvnx2df2 */ default: return -1; } case 20: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4930; /* *frintnvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4937; /* *frintnvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4944; /* *frintnvnx2df2 */ default: return -1; } case 18: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4931; /* *nearbyintvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4938; /* *nearbyintvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4945; /* *nearbyintvnx2df2 */ default: return -1; } case 22: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4932; /* *rintvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4939; /* *rintvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4946; /* *rintvnx2df2 */ default: return -1; } case 17: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern412 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4933; /* *roundvnx8hf2 */ case E_VNx4SFmode: if (pattern413 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4940; /* *roundvnx4sf2 */ case E_VNx2DFmode: if (pattern412 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4947; /* *roundvnx2df2 */ default: return -1; } case 96: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern413 (x2, E_VNx8HFmode, E_VNx4BImode) != 0 || ! #line 2670 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4976; /* *truncvnx4sfvnx8hf2 */ case E_VNx4SFmode: if (!register_operand (operands[0], E_VNx4SFmode) || GET_MODE (x2) != E_VNx4SFmode || GET_MODE (x3) != E_VNx4SFmode) return -1; switch (GET_MODE (operands[1])) { case E_VNx2BImode: if (!register_operand (operands[1], E_VNx2BImode) || !register_operand (operands[2], E_VNx2DFmode) || ! #line 2670 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4977; /* *truncvnx2dfvnx4sf2 */ case E_VNx4BImode: if (!register_operand (operands[1], E_VNx4BImode) || !register_operand (operands[2], E_VNx8HFmode) || ! #line 2684 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4978; /* aarch64_sve_extendvnx8hfvnx4sf2 */ default: return -1; } case E_VNx2DFmode: if (pattern413 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2684 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4979; /* aarch64_sve_extendvnx4sfvnx2df2 */ default: return -1; } default: return -1; } case 2: x4 = XVECEXP (x3, 0, 0); operands[2] = x4; x5 = XVECEXP (x3, 0, 1); operands[3] = x5; switch (XINT (x3, 1)) { case 235: switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern414 (x2, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4122; /* *smulvnx16qi3_highpart */ case E_VNx8HImode: if (pattern414 (x2, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4124; /* *smulvnx8hi3_highpart */ case E_VNx4SImode: if (pattern414 (x2, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4126; /* *smulvnx4si3_highpart */ case E_VNx2DImode: if (pattern414 (x2, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4128; /* *smulvnx2di3_highpart */ default: return -1; } case 236: switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern414 (x2, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4123; /* *umulvnx16qi3_highpart */ case E_VNx8HImode: if (pattern414 (x2, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4125; /* *umulvnx8hi3_highpart */ case E_VNx4SImode: if (pattern414 (x2, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4127; /* *umulvnx4si3_highpart */ case E_VNx2DImode: if (pattern414 (x2, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4129; /* *umulvnx2di3_highpart */ default: return -1; } case 109: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern414 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4581; /* *smax_nanvnx8hf3 */ case E_VNx4SFmode: if (pattern414 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4585; /* *smax_nanvnx4sf3 */ case E_VNx2DFmode: if (pattern414 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4589; /* *smax_nanvnx2df3 */ default: return -1; } case 112: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern414 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4582; /* *smin_nanvnx8hf3 */ case E_VNx4SFmode: if (pattern414 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4586; /* *smin_nanvnx4sf3 */ case E_VNx2DFmode: if (pattern414 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4590; /* *smin_nanvnx2df3 */ default: return -1; } case 207: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern414 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4583; /* *fmaxvnx8hf3 */ case E_VNx4SFmode: if (pattern414 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4587; /* *fmaxvnx4sf3 */ case E_VNx2DFmode: if (pattern414 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4591; /* *fmaxvnx2df3 */ default: return -1; } case 208: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern414 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4584; /* *fminvnx8hf3 */ case E_VNx4SFmode: if (pattern414 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4588; /* *fminvnx4sf3 */ case E_VNx2DFmode: if (pattern414 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 1843 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4592; /* *fminvnx2df3 */ default: return -1; } default: return -1; } 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, x7, x8; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 1); operands[4] = x4; x5 = XEXP (x3, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[3] = x5; x6 = XEXP (x3, 2); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[2] = x6; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern451 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4903; /* *fmavnx8hf4 */ case E_VNx4SFmode: if (pattern451 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4904; /* *fmavnx4sf4 */ case E_VNx2DFmode: if (pattern451 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4905; /* *fmavnx2df4 */ default: return -1; } case NEG: x7 = XEXP (x6, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern452 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4909; /* *fmsvnx8hf4 */ case E_VNx4SFmode: if (pattern452 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4910; /* *fmsvnx4sf4 */ case E_VNx2DFmode: if (pattern452 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4911; /* *fmsvnx2df4 */ default: return -1; } default: return -1; } case NEG: x8 = XEXP (x5, 0); operands[3] = x8; x6 = XEXP (x3, 2); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[2] = x6; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern453 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2399 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4906; /* *fnmavnx8hf4 */ case E_VNx4SFmode: if (pattern453 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2399 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4907; /* *fnmavnx4sf4 */ case E_VNx2DFmode: if (pattern453 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2399 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4908; /* *fnmavnx2df4 */ default: return -1; } case NEG: x7 = XEXP (x6, 0); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern454 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2469 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4912; /* *fnmsvnx8hf4 */ case E_VNx4SFmode: if (pattern454 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2469 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4913; /* *fnmsvnx4sf4 */ case E_VNx2DFmode: if (pattern454 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2469 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4914; /* *fnmsvnx2df4 */ default: return -1; } default: return -1; } default: return -1; } } 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (pattern252 (x2)) { case 0: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16QImode) || register_operand (operands[2], VNx16QImode)))) return -1; return 3793; /* aarch64_pred_movvnx16qi */ case 1: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8HImode) || register_operand (operands[2], VNx8HImode)))) return -1; return 3794; /* aarch64_pred_movvnx8hi */ case 2: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4SImode) || register_operand (operands[2], VNx4SImode)))) return -1; return 3795; /* aarch64_pred_movvnx4si */ case 3: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx2DImode) || register_operand (operands[2], VNx2DImode)))) return -1; return 3796; /* aarch64_pred_movvnx2di */ case 4: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8HFmode) || register_operand (operands[2], VNx8HFmode)))) return -1; return 3797; /* aarch64_pred_movvnx8hf */ case 5: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4SFmode) || register_operand (operands[2], VNx4SFmode)))) return -1; return 3798; /* aarch64_pred_movvnx4sf */ case 6: if (! #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx2DFmode) || register_operand (operands[2], VNx2DFmode)))) return -1; return 3799; /* aarch64_pred_movvnx2df */ case 7: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx32QImode) || register_operand (operands[2], VNx32QImode)))) return -1; return 3864; /* aarch64_pred_movvnx32qi */ case 8: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16HImode) || register_operand (operands[2], VNx16HImode)))) return -1; return 3865; /* aarch64_pred_movvnx16hi */ case 9: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8SImode) || register_operand (operands[2], VNx8SImode)))) return -1; return 3866; /* aarch64_pred_movvnx8si */ case 10: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4DImode) || register_operand (operands[2], VNx4DImode)))) return -1; return 3867; /* aarch64_pred_movvnx4di */ case 11: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16HFmode) || register_operand (operands[2], VNx16HFmode)))) return -1; return 3868; /* aarch64_pred_movvnx16hf */ case 12: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8SFmode) || register_operand (operands[2], VNx8SFmode)))) return -1; return 3869; /* aarch64_pred_movvnx8sf */ case 13: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4DFmode) || register_operand (operands[2], VNx4DFmode)))) return -1; return 3870; /* aarch64_pred_movvnx4df */ case 14: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx48QImode) || register_operand (operands[2], VNx48QImode)))) return -1; return 3871; /* aarch64_pred_movvnx48qi */ case 15: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx24HImode) || register_operand (operands[2], VNx24HImode)))) return -1; return 3872; /* aarch64_pred_movvnx24hi */ case 16: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx12SImode) || register_operand (operands[2], VNx12SImode)))) return -1; return 3873; /* aarch64_pred_movvnx12si */ case 17: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx6DImode) || register_operand (operands[2], VNx6DImode)))) return -1; return 3874; /* aarch64_pred_movvnx6di */ case 18: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx24HFmode) || register_operand (operands[2], VNx24HFmode)))) return -1; return 3875; /* aarch64_pred_movvnx24hf */ case 19: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx12SFmode) || register_operand (operands[2], VNx12SFmode)))) return -1; return 3876; /* aarch64_pred_movvnx12sf */ case 20: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx6DFmode) || register_operand (operands[2], VNx6DFmode)))) return -1; return 3877; /* aarch64_pred_movvnx6df */ case 21: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx64QImode) || register_operand (operands[2], VNx64QImode)))) return -1; return 3878; /* aarch64_pred_movvnx64qi */ case 22: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx32HImode) || register_operand (operands[2], VNx32HImode)))) return -1; return 3879; /* aarch64_pred_movvnx32hi */ case 23: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16SImode) || register_operand (operands[2], VNx16SImode)))) return -1; return 3880; /* aarch64_pred_movvnx16si */ case 24: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8DImode) || register_operand (operands[2], VNx8DImode)))) return -1; return 3881; /* aarch64_pred_movvnx8di */ case 25: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx32HFmode) || register_operand (operands[2], VNx32HFmode)))) return -1; return 3882; /* aarch64_pred_movvnx32hf */ case 26: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16SFmode) || register_operand (operands[2], VNx16SFmode)))) return -1; return 3883; /* aarch64_pred_movvnx16sf */ case 27: if (! #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8DFmode) || register_operand (operands[2], VNx8DFmode)))) return -1; return 3884; /* aarch64_pred_movvnx8df */ 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); x4 = XEXP (x3, 0); operands[2] = x4; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_VNx4SImode: if (pattern253 (x2, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4130; /* *divvnx4si3 */ case E_VNx2DImode: if (pattern253 (x2, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4132; /* *divvnx2di3 */ case E_VNx8HFmode: if (pattern206 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2499 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4915; /* *divvnx8hf3 */ case E_VNx4SFmode: if (pattern206 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2499 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4916; /* *divvnx4sf3 */ case E_VNx2DFmode: if (pattern206 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2499 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4917; /* *divvnx2df3 */ 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (pattern274 (x2)) { case 0: if (! #line 2632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4963; /* *floatunsvnx16qivnx8hf2 */ case 1: if (! #line 2632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4965; /* *floatunsvnx8hivnx8hf2 */ case 2: if (! #line 2632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4967; /* *floatunsvnx4sivnx8hf2 */ case 3: if (! #line 2644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4969; /* *floatunsvnx4sivnx4sf2 */ case 4: if (! #line 2644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4971; /* *floatunsvnx2divnx4sf2 */ case 5: if (! #line 2656 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4973; /* aarch64_sve_floatunsvnx4sivnx2df2 */ case 6: if (! #line 2656 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4975; /* aarch64_sve_floatunsvnx2divnx2df2 */ default: return -1; } } 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, x6, x7; 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); switch (GET_CODE (x5)) { case REG: case SUBREG: case MEM: return recog_16 (x1, insn, pnum_clobbers); case UNSPEC: return recog_14 (x1, insn, pnum_clobbers); case MULT: switch (pattern255 (x3)) { case 0: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4106; /* *mulvnx16qi3 */ case 1: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4107; /* *mulvnx8hi3 */ case 2: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4108; /* *mulvnx4si3 */ case 3: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4109; /* *mulvnx2di3 */ case 4: if (! #line 2319 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4891; /* *mulvnx8hf3 */ case 5: if (! #line 2319 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4892; /* *mulvnx4sf3 */ case 6: if (! #line 2319 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4893; /* *mulvnx2df3 */ default: return -1; } case DIV: return recog_17 (x1, insn, pnum_clobbers); case UDIV: x6 = XEXP (x5, 0); operands[2] = x6; x7 = XEXP (x5, 1); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_VNx4SImode: if (pattern253 (x3, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4131; /* *udivvnx4si3 */ case E_VNx2DImode: if (pattern253 (x3, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4133; /* *udivvnx2di3 */ default: return -1; } case ABS: switch (pattern257 (x3)) { case 0: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4134; /* *absvnx16qi2 */ case 1: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4138; /* *absvnx8hi2 */ case 2: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4142; /* *absvnx4si2 */ case 3: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4146; /* *absvnx2di2 */ case 4: if (! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4918; /* *absvnx8hf2 */ case 5: if (! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4921; /* *absvnx4sf2 */ case 6: if (! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4924; /* *absvnx2df2 */ default: return -1; } case NEG: switch (pattern257 (x3)) { case 0: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4135; /* *negvnx16qi2 */ case 1: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4139; /* *negvnx8hi2 */ case 2: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4143; /* *negvnx4si2 */ case 3: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4147; /* *negvnx2di2 */ case 4: if (! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4919; /* *negvnx8hf2 */ case 5: if (! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4922; /* *negvnx4sf2 */ case 6: if (! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4925; /* *negvnx2df2 */ default: return -1; } case NOT: switch (pattern258 (x3)) { case 0: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4136; /* *one_cmplvnx16qi2 */ case 1: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4140; /* *one_cmplvnx8hi2 */ case 2: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4144; /* *one_cmplvnx4si2 */ case 3: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4148; /* *one_cmplvnx2di2 */ default: return -1; } case POPCOUNT: switch (pattern258 (x3)) { case 0: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4137; /* *popcountvnx16qi2 */ case 1: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4141; /* *popcountvnx8hi2 */ case 2: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4145; /* *popcountvnx4si2 */ case 3: if (! #line 1095 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4149; /* *popcountvnx2di2 */ default: return -1; } case ASHIFT: switch (pattern260 (x3)) { case 0: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4223; /* *vashlvnx16qi3 */ case 1: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4226; /* *vashlvnx8hi3 */ case 2: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4229; /* *vashlvnx4si3 */ case 3: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4232; /* *vashlvnx2di3 */ default: return -1; } case ASHIFTRT: switch (pattern262 (x3)) { case 0: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4224; /* *vashrvnx16qi3 */ case 1: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4227; /* *vashrvnx8hi3 */ case 2: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4230; /* *vashrvnx4si3 */ case 3: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4233; /* *vashrvnx2di3 */ default: return -1; } case LSHIFTRT: switch (pattern262 (x3)) { case 0: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4225; /* *vlshrvnx16qi3 */ case 1: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4228; /* *vlshrvnx8hi3 */ case 2: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4231; /* *vlshrvnx4si3 */ case 3: if (! #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4234; /* *vlshrvnx2di3 */ default: return -1; } case LT: switch (pattern263 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4267; /* *cmpltvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4277; /* *cmpltvnx8hi */ case 2: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4467; /* *fcmltvnx8hf */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4287; /* *cmpltvnx4si */ case 4: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4473; /* *fcmltvnx4sf */ case 5: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4297; /* *cmpltvnx2di */ case 6: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4479; /* *fcmltvnx2df */ default: return -1; } case LE: switch (pattern263 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4268; /* *cmplevnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4278; /* *cmplevnx8hi */ case 2: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4468; /* *fcmlevnx8hf */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4288; /* *cmplevnx4si */ case 4: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4474; /* *fcmlevnx4sf */ case 5: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4298; /* *cmplevnx2di */ case 6: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4480; /* *fcmlevnx2df */ default: return -1; } case EQ: switch (pattern263 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4269; /* *cmpeqvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4279; /* *cmpeqvnx8hi */ case 2: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4469; /* *fcmeqvnx8hf */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4289; /* *cmpeqvnx4si */ case 4: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4475; /* *fcmeqvnx4sf */ case 5: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4299; /* *cmpeqvnx2di */ case 6: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4481; /* *fcmeqvnx2df */ default: return -1; } case NE: switch (pattern263 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4270; /* *cmpnevnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4280; /* *cmpnevnx8hi */ case 2: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4470; /* *fcmnevnx8hf */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4290; /* *cmpnevnx4si */ case 4: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4476; /* *fcmnevnx4sf */ case 5: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4300; /* *cmpnevnx2di */ case 6: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4482; /* *fcmnevnx2df */ default: return -1; } case GE: switch (pattern263 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4271; /* *cmpgevnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4281; /* *cmpgevnx8hi */ case 2: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4471; /* *fcmgevnx8hf */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4291; /* *cmpgevnx4si */ case 4: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4477; /* *fcmgevnx4sf */ case 5: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4301; /* *cmpgevnx2di */ case 6: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4483; /* *fcmgevnx2df */ default: return -1; } case GT: switch (pattern263 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4272; /* *cmpgtvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4282; /* *cmpgtvnx8hi */ case 2: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4472; /* *fcmgtvnx8hf */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4292; /* *cmpgtvnx4si */ case 4: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4478; /* *fcmgtvnx4sf */ case 5: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4302; /* *cmpgtvnx2di */ case 6: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4484; /* *fcmgtvnx2df */ default: return -1; } case LTU: switch (pattern265 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4273; /* *cmplovnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4283; /* *cmplovnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4293; /* *cmplovnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4303; /* *cmplovnx2di */ default: return -1; } case LEU: switch (pattern265 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4274; /* *cmplsvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4284; /* *cmplsvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4294; /* *cmplsvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4304; /* *cmplsvnx2di */ default: return -1; } case GEU: switch (pattern265 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4275; /* *cmphsvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4285; /* *cmphsvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4295; /* *cmphsvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4305; /* *cmphsvnx2di */ default: return -1; } case GTU: switch (pattern265 (x3, pnum_clobbers)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4276; /* *cmphivnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4286; /* *cmphivnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4296; /* *cmphivnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4306; /* *cmphivnx2di */ default: return -1; } case UNORDERED: x6 = XEXP (x5, 0); operands[2] = x6; x7 = XEXP (x5, 1); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_VNx8BImode: if (pattern376 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 1508 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4485; /* *fcmuovnx8hf */ case E_VNx4BImode: if (pattern376 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 1508 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4486; /* *fcmuovnx4sf */ case E_VNx2BImode: if (pattern376 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 1508 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4487; /* *fcmuovnx2df */ default: return -1; } case SMAX: switch (pattern266 (x3)) { case 0: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4559; /* *smaxvnx16qi3 */ case 1: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4563; /* *smaxvnx8hi3 */ case 2: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4567; /* *smaxvnx4si3 */ case 3: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4571; /* *smaxvnx2di3 */ case 4: if (! #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4575; /* *smaxvnx8hf3 */ case 5: if (! #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4577; /* *smaxvnx4sf3 */ case 6: if (! #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4579; /* *smaxvnx2df3 */ default: return -1; } case SMIN: switch (pattern266 (x3)) { case 0: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4560; /* *sminvnx16qi3 */ case 1: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4564; /* *sminvnx8hi3 */ case 2: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4568; /* *sminvnx4si3 */ case 3: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4572; /* *sminvnx2di3 */ case 4: if (! #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4576; /* *sminvnx8hf3 */ case 5: if (! #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4578; /* *sminvnx4sf3 */ case 6: if (! #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4580; /* *sminvnx2df3 */ default: return -1; } case UMAX: switch (pattern267 (x3)) { case 0: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4561; /* *umaxvnx16qi3 */ case 1: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4565; /* *umaxvnx8hi3 */ case 2: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4569; /* *umaxvnx4si3 */ case 3: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4573; /* *umaxvnx2di3 */ default: return -1; } case UMIN: switch (pattern267 (x3)) { case 0: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4562; /* *uminvnx16qi3 */ case 1: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4566; /* *uminvnx8hi3 */ case 2: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4570; /* *uminvnx4si3 */ case 3: if (! #line 1783 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4574; /* *uminvnx2di3 */ default: return -1; } case PLUS: switch (pattern269 (x3)) { case 0: if (! #line 2243 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4885; /* *addvnx8hf3 */ case 1: if (! #line 2243 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4886; /* *addvnx4sf3 */ case 2: if (! #line 2243 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4887; /* *addvnx2df3 */ default: return -1; } case MINUS: switch (pattern271 (x3)) { case 0: if (! #line 2279 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[2], VNx8HFmode) || register_operand (operands[3], VNx8HFmode)))) return -1; return 4888; /* *subvnx8hf3 */ case 1: if (! #line 2279 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[2], VNx4SFmode) || register_operand (operands[3], VNx4SFmode)))) return -1; return 4889; /* *subvnx4sf3 */ case 2: if (! #line 2279 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[2], VNx2DFmode) || register_operand (operands[3], VNx2DFmode)))) return -1; return 4890; /* *subvnx2df3 */ default: return -1; } case FMA: return recog_15 (x1, insn, pnum_clobbers); case SQRT: x6 = XEXP (x5, 0); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern256 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4920; /* *sqrtvnx8hf2 */ case E_VNx4SFmode: if (pattern256 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4923; /* *sqrtvnx4sf2 */ case E_VNx2DFmode: if (pattern256 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 2527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4926; /* *sqrtvnx2df2 */ default: return -1; } case FIX: switch (pattern273 (x3)) { case 0: if (! #line 2580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4948; /* *fix_truncv16hsfvnx16qi2 */ case 1: if (! #line 2580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4950; /* *fix_truncv16hsfvnx8hi2 */ case 2: if (! #line 2580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4952; /* *fix_truncv16hsfvnx4si2 */ case 3: if (! #line 2592 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4954; /* *fix_truncvnx4sfvnx4si2 */ case 4: if (! #line 2604 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4958; /* *fix_truncvnx2dfvnx4si2 */ case 5: if (! #line 2592 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4956; /* *fix_truncvnx4sfvnx2di2 */ case 6: if (! #line 2604 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4960; /* *fix_truncvnx2dfvnx2di2 */ default: return -1; } case UNSIGNED_FIX: switch (pattern273 (x3)) { case 0: if (! #line 2580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4949; /* *fixuns_truncv16hsfvnx16qi2 */ case 1: if (! #line 2580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4951; /* *fixuns_truncv16hsfvnx8hi2 */ case 2: if (! #line 2580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4953; /* *fixuns_truncv16hsfvnx4si2 */ case 3: if (! #line 2592 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4955; /* *fixuns_truncvnx4sfvnx4si2 */ case 4: if (! #line 2604 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4959; /* *fixuns_truncvnx2dfvnx4si2 */ case 5: if (! #line 2592 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4957; /* *fixuns_truncvnx4sfvnx2di2 */ case 6: if (! #line 2604 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4961; /* *fixuns_truncvnx2dfvnx2di2 */ default: return -1; } case FLOAT: switch (pattern274 (x3)) { case 0: if (! #line 2632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4962; /* *floatvnx16qivnx8hf2 */ case 1: if (! #line 2632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4964; /* *floatvnx8hivnx8hf2 */ case 2: if (! #line 2632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4966; /* *floatvnx4sivnx8hf2 */ case 3: if (! #line 2644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4968; /* *floatvnx4sivnx4sf2 */ case 4: if (! #line 2644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4970; /* *floatvnx2divnx4sf2 */ case 5: if (! #line 2656 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4972; /* aarch64_sve_floatvnx4sivnx2df2 */ case 6: if (! #line 2656 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4974; /* aarch64_sve_floatvnx2divnx2df2 */ default: return -1; } case UNSIGNED_FLOAT: return recog_18 (x1, insn, pnum_clobbers); 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]; 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 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: switch (pattern63 (x3)) { case 0: if (!( #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2421; /* aarch64_fmulxv4hf */ case 1: if (!( #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2422; /* aarch64_fmulxv8hf */ case 2: if (! #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2423; /* aarch64_fmulxv2sf */ case 3: if (! #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2424; /* aarch64_fmulxv4sf */ case 4: if (! #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2425; /* aarch64_fmulxv2df */ case 5: if (!( #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2426; /* aarch64_fmulxhf */ case 6: if (! #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2427; /* aarch64_fmulxsf */ case 7: if (! #line 3575 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2428; /* aarch64_fmulxdf */ default: return -1; } case VEC_DUPLICATE: x6 = XEXP (x5, 0); switch (GET_CODE (x6)) { case VEC_SELECT: x7 = XEXP (x6, 1); if (GET_CODE (x7) != PARALLEL || XVECLEN (x7, 0) != 1) return -1; x8 = XEXP (x6, 0); operands[2] = x8; x9 = XVECEXP (x7, 0, 0); operands[3] = x9; if (!immediate_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V2SFmode: if (pattern474 (x3, E_SFmode, E_V2SFmode) != 0) return -1; switch (GET_MODE (operands[2])) { case E_V4SFmode: if (!register_operand (operands[2], E_V4SFmode) || ! #line 3591 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2429; /* *aarch64_mulx_elt_to_128v2sf */ case E_V2SFmode: if (!register_operand (operands[2], E_V2SFmode) || ! #line 3610 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2431; /* *aarch64_mulx_eltv2sf */ default: return -1; } case E_V4SFmode: if (pattern474 (x3, E_SFmode, E_V4SFmode) != 0) return -1; switch (GET_MODE (operands[2])) { case E_V2SFmode: if (!register_operand (operands[2], E_V2SFmode) || ! #line 3591 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2430; /* *aarch64_mulx_elt_to_64v4sf */ case E_V4SFmode: if (!register_operand (operands[2], E_V4SFmode) || ! #line 3610 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2432; /* *aarch64_mulx_eltv4sf */ default: return -1; } case E_V2DFmode: if (pattern474 (x3, E_DFmode, E_V2DFmode) != 0 || !register_operand (operands[2], E_V2DFmode) || ! #line 3610 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2433; /* *aarch64_mulx_eltv2df */ default: return -1; } case REG: case SUBREG: operands[2] = x6; switch (GET_MODE (operands[0])) { case E_V4HFmode: if (pattern375 (x3, E_HFmode, E_V4HFmode) != 0 || !( #line 3627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2434; /* *aarch64_mulx_elt_from_dupv4hf */ case E_V8HFmode: if (pattern375 (x3, E_HFmode, E_V8HFmode) != 0 || !( #line 3627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2435; /* *aarch64_mulx_elt_from_dupv8hf */ case E_V2SFmode: if (pattern375 (x3, E_SFmode, E_V2SFmode) != 0 || ! #line 3627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2436; /* *aarch64_mulx_elt_from_dupv2sf */ case E_V4SFmode: if (pattern375 (x3, E_SFmode, E_V4SFmode) != 0 || ! #line 3627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2437; /* *aarch64_mulx_elt_from_dupv4sf */ case E_V2DFmode: if (pattern375 (x3, E_DFmode, E_V2DFmode) != 0 || ! #line 3627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2438; /* *aarch64_mulx_elt_from_dupv2df */ default: return -1; } default: return -1; } case VEC_SELECT: x10 = XEXP (x5, 1); if (GET_CODE (x10) != PARALLEL || XVECLEN (x10, 0) != 1) return -1; x6 = XEXP (x5, 0); operands[2] = x6; x11 = XVECEXP (x10, 0, 0); operands[3] = x11; if (!immediate_operand (operands[3], E_SImode)) return -1; 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) || GET_MODE (x5) != E_SFmode) return -1; switch (GET_MODE (operands[2])) { case E_V2SFmode: if (!register_operand (operands[2], E_V2SFmode) || ! #line 3644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2439; /* *aarch64_vgetfmulxv2sf */ case E_V4SFmode: if (!register_operand (operands[2], E_V4SFmode) || ! #line 3644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2440; /* *aarch64_vgetfmulxv4sf */ default: return -1; } case E_DFmode: if (pattern375 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 3644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2441; /* *aarch64_vgetfmulxv2df */ default: return -1; } 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]; 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[2] = x4; x5 = XVECEXP (x3, 0, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_VNx32QImode: if (pattern313 (x3, E_VNx32QImode, E_VNx16BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3953; /* vec_mask_load_lanesvnx32qivnx16qi */ case E_VNx16HImode: if (pattern313 (x3, E_VNx16HImode, E_VNx8BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3954; /* vec_mask_load_lanesvnx16hivnx8hi */ case E_VNx8SImode: if (pattern313 (x3, E_VNx8SImode, E_VNx4BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3955; /* vec_mask_load_lanesvnx8sivnx4si */ case E_VNx4DImode: if (pattern313 (x3, E_VNx4DImode, E_VNx2BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3956; /* vec_mask_load_lanesvnx4divnx2di */ case E_VNx16HFmode: if (pattern313 (x3, E_VNx16HFmode, E_VNx8BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3957; /* vec_mask_load_lanesvnx16hfvnx8hf */ case E_VNx8SFmode: if (pattern313 (x3, E_VNx8SFmode, E_VNx4BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3958; /* vec_mask_load_lanesvnx8sfvnx4sf */ case E_VNx4DFmode: if (pattern313 (x3, E_VNx4DFmode, E_VNx2BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3959; /* vec_mask_load_lanesvnx4dfvnx2df */ case E_VNx48QImode: if (pattern313 (x3, E_VNx48QImode, E_VNx16BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3960; /* vec_mask_load_lanesvnx48qivnx16qi */ case E_VNx24HImode: if (pattern313 (x3, E_VNx24HImode, E_VNx8BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3961; /* vec_mask_load_lanesvnx24hivnx8hi */ case E_VNx12SImode: if (pattern313 (x3, E_VNx12SImode, E_VNx4BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3962; /* vec_mask_load_lanesvnx12sivnx4si */ case E_VNx6DImode: if (pattern313 (x3, E_VNx6DImode, E_VNx2BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3963; /* vec_mask_load_lanesvnx6divnx2di */ case E_VNx24HFmode: if (pattern313 (x3, E_VNx24HFmode, E_VNx8BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3964; /* vec_mask_load_lanesvnx24hfvnx8hf */ case E_VNx12SFmode: if (pattern313 (x3, E_VNx12SFmode, E_VNx4BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3965; /* vec_mask_load_lanesvnx12sfvnx4sf */ case E_VNx6DFmode: if (pattern313 (x3, E_VNx6DFmode, E_VNx2BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3966; /* vec_mask_load_lanesvnx6dfvnx2df */ case E_VNx64QImode: if (pattern313 (x3, E_VNx64QImode, E_VNx16BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3967; /* vec_mask_load_lanesvnx64qivnx16qi */ case E_VNx32HImode: if (pattern313 (x3, E_VNx32HImode, E_VNx8BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3968; /* vec_mask_load_lanesvnx32hivnx8hi */ case E_VNx16SImode: if (pattern313 (x3, E_VNx16SImode, E_VNx4BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3969; /* vec_mask_load_lanesvnx16sivnx4si */ case E_VNx8DImode: if (pattern313 (x3, E_VNx8DImode, E_VNx2BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3970; /* vec_mask_load_lanesvnx8divnx2di */ case E_VNx32HFmode: if (pattern313 (x3, E_VNx32HFmode, E_VNx8BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3971; /* vec_mask_load_lanesvnx32hfvnx8hf */ case E_VNx16SFmode: if (pattern313 (x3, E_VNx16SFmode, E_VNx4BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3972; /* vec_mask_load_lanesvnx16sfvnx4sf */ case E_VNx8DFmode: if (pattern313 (x3, E_VNx8DFmode, E_VNx2BImode) != 0 || ! #line 758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3973; /* vec_mask_load_lanesvnx8dfvnx2df */ 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]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (pattern98 (x1) != 0) return -1; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); x4 = XVECEXP (x3, 0, 0); switch (XWINT (x4, 0)) { case 3L: if (!register_operand (operands[0], E_CImode) || GET_MODE (x2) != E_CImode || !aarch64_simd_struct_operand (operands[1], E_CImode)) return -1; switch (GET_MODE (x3)) { case E_V8QImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3265; /* aarch64_ld1_x3_v8qi */ case E_V16QImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3266; /* aarch64_ld1_x3_v16qi */ case E_V4HImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3267; /* aarch64_ld1_x3_v4hi */ case E_V8HImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3268; /* aarch64_ld1_x3_v8hi */ case E_V2SImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3269; /* aarch64_ld1_x3_v2si */ case E_V4SImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3270; /* aarch64_ld1_x3_v4si */ case E_V2DImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3271; /* aarch64_ld1_x3_v2di */ case E_V4HFmode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3272; /* aarch64_ld1_x3_v4hf */ case E_V8HFmode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3273; /* aarch64_ld1_x3_v8hf */ case E_V2SFmode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3274; /* aarch64_ld1_x3_v2sf */ case E_V4SFmode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3275; /* aarch64_ld1_x3_v4sf */ case E_V2DFmode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3276; /* aarch64_ld1_x3_v2df */ case E_DImode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3277; /* aarch64_ld1_x3_di */ case E_DFmode: if (! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3278; /* aarch64_ld1_x3_df */ default: return -1; } case 0L: if (!register_operand (operands[0], E_OImode) || GET_MODE (x2) != E_OImode || !aarch64_simd_struct_operand (operands[1], E_OImode)) return -1; switch (GET_MODE (x3)) { case E_V16QImode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3529; /* aarch64_simd_ld1v16qi_x2 */ case E_V8HImode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3530; /* aarch64_simd_ld1v8hi_x2 */ case E_V4SImode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3531; /* aarch64_simd_ld1v4si_x2 */ case E_V2DImode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3532; /* aarch64_simd_ld1v2di_x2 */ case E_V8HFmode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3533; /* aarch64_simd_ld1v8hf_x2 */ case E_V4SFmode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3534; /* aarch64_simd_ld1v4sf_x2 */ case E_V2DFmode: if (! #line 5943 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3535; /* aarch64_simd_ld1v2df_x2 */ case E_V8QImode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3536; /* aarch64_simd_ld1v8qi_x2 */ case E_V4HImode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3537; /* aarch64_simd_ld1v4hi_x2 */ case E_V4HFmode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3538; /* aarch64_simd_ld1v4hf_x2 */ case E_V2SImode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3539; /* aarch64_simd_ld1v2si_x2 */ case E_V2SFmode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3540; /* aarch64_simd_ld1v2sf_x2 */ case E_DImode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3541; /* aarch64_simd_ld1di_x2 */ case E_DFmode: if (! #line 5953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3542; /* aarch64_simd_ld1df_x2 */ default: return -1; } 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]; rtx x2, x3, x4, x5; int res ATTRIBUTE_UNUSED; if (pnum_clobbers == NULL) return -1; 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_VNx16BImode: if (!register_operand (operands[0], E_VNx16BImode) || GET_MODE (x3) != E_VNx16BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4251; /* while_ultsivnx16bi */ } if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4252; /* while_ultdivnx16bi */ case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x3) != E_VNx8BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4253; /* while_ultsivnx8bi */ } if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4254; /* while_ultdivnx8bi */ case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x3) != E_VNx4BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4255; /* while_ultsivnx4bi */ } if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4256; /* while_ultdivnx4bi */ case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x3) != E_VNx2BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4257; /* while_ultsivnx2bi */ } if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4258; /* while_ultdivnx2bi */ 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]; rtx x2, x3, x4; int res ATTRIBUTE_UNUSED; if (pattern98 (x1) != 0) return -1; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); x4 = XVECEXP (x3, 0, 0); switch (XWINT (x4, 0)) { case 2L: switch (pattern411 (x2, E_OImode)) { case 0: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3279; /* aarch64_st1_x2_v8qi */ case 1: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3280; /* aarch64_st1_x2_v16qi */ case 2: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3281; /* aarch64_st1_x2_v4hi */ case 3: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3282; /* aarch64_st1_x2_v8hi */ case 4: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3283; /* aarch64_st1_x2_v2si */ case 5: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3284; /* aarch64_st1_x2_v4si */ case 6: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3285; /* aarch64_st1_x2_v2di */ case 7: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3286; /* aarch64_st1_x2_v4hf */ case 8: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3287; /* aarch64_st1_x2_v8hf */ case 9: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3288; /* aarch64_st1_x2_v2sf */ case 10: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3289; /* aarch64_st1_x2_v4sf */ case 11: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3290; /* aarch64_st1_x2_v2df */ case 12: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3291; /* aarch64_st1_x2_di */ case 13: if (! #line 5257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3292; /* aarch64_st1_x2_df */ default: return -1; } case 3L: switch (pattern411 (x2, E_CImode)) { case 0: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3293; /* aarch64_st1_x3_v8qi */ case 1: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3294; /* aarch64_st1_x3_v16qi */ case 2: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3295; /* aarch64_st1_x3_v4hi */ case 3: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3296; /* aarch64_st1_x3_v8hi */ case 4: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3297; /* aarch64_st1_x3_v2si */ case 5: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3298; /* aarch64_st1_x3_v4si */ case 6: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3299; /* aarch64_st1_x3_v2di */ case 7: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3300; /* aarch64_st1_x3_v4hf */ case 8: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3301; /* aarch64_st1_x3_v8hf */ case 9: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3302; /* aarch64_st1_x3_v2sf */ case 10: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3303; /* aarch64_st1_x3_v4sf */ case 11: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3304; /* aarch64_st1_x3_v2df */ case 12: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3305; /* aarch64_st1_x3_di */ case 13: if (! #line 5278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3306; /* aarch64_st1_x3_df */ default: return -1; } 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]; 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 (!aarch64_sve_ld1r_operand (operands[2], E_TImode)) return -1; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (!register_operand (operands[0], E_VNx16QImode) || GET_MODE (x3) != E_VNx16QImode || !register_operand (operands[1], E_VNx16BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3938; /* *sve_ld1rqb */ case E_VNx8HImode: if (!register_operand (operands[0], E_VNx8HImode) || GET_MODE (x3) != E_VNx8HImode || !register_operand (operands[1], E_VNx8BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3939; /* *sve_ld1rqh */ case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x3) != E_VNx4SImode || !register_operand (operands[1], E_VNx4BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3940; /* *sve_ld1rqw */ case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x3) != E_VNx2DImode || !register_operand (operands[1], E_VNx2BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3941; /* *sve_ld1rqd */ case E_VNx8HFmode: if (!register_operand (operands[0], E_VNx8HFmode) || GET_MODE (x3) != E_VNx8HFmode || !register_operand (operands[1], E_VNx8BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3942; /* *sve_ld1rqh */ case E_VNx4SFmode: if (!register_operand (operands[0], E_VNx4SFmode) || GET_MODE (x3) != E_VNx4SFmode || !register_operand (operands[1], E_VNx4BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3943; /* *sve_ld1rqw */ case E_VNx2DFmode: if (!register_operand (operands[0], E_VNx2DFmode) || GET_MODE (x3) != E_VNx2DFmode || !register_operand (operands[1], E_VNx2BImode) || ! #line 691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3944; /* *sve_ld1rqd */ 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]; 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_V8QImode: switch (pattern311 (x3, E_V8QImode)) { case 0: if (! #line 5635 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3360; /* aarch64_tbl1v8qi */ case 1: if (! #line 5657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3363; /* aarch64_tbl3v8qi */ case 2: if (! #line 5680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3367; /* aarch64_qtbl3v8qi */ case 3: if (! #line 5703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3371; /* aarch64_qtbl4v8qi */ default: return -1; } case E_V16QImode: switch (pattern311 (x3, E_V16QImode)) { case 0: if (! #line 5635 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3361; /* aarch64_tbl1v16qi */ case 1: if (! #line 5647 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3362; /* aarch64_tbl2v16qi */ case 2: if (! #line 5680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3368; /* aarch64_qtbl3v16qi */ case 3: if (! #line 5703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3372; /* aarch64_qtbl4v16qi */ default: return -1; } case E_VNx16QImode: if (pattern56 (x3, E_VNx16QImode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3995; /* *aarch64_sve_tblvnx16qi */ case E_VNx8HImode: if (pattern56 (x3, E_VNx8HImode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3996; /* *aarch64_sve_tblvnx8hi */ case E_VNx4SImode: if (pattern56 (x3, E_VNx4SImode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3997; /* *aarch64_sve_tblvnx4si */ case E_VNx2DImode: if (pattern56 (x3, E_VNx2DImode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3998; /* *aarch64_sve_tblvnx2di */ case E_VNx8HFmode: if (pattern312 (x3, E_VNx8HImode, E_VNx8HFmode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3999; /* *aarch64_sve_tblvnx8hf */ case E_VNx4SFmode: if (pattern312 (x3, E_VNx4SImode, E_VNx4SFmode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4000; /* *aarch64_sve_tblvnx4sf */ case E_VNx2DFmode: if (pattern312 (x3, E_VNx2DImode, E_VNx2DFmode) != 0 || ! #line 811 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4001; /* *aarch64_sve_tblvnx2df */ 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 (pattern101 (x1)) { case 0: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3381; /* aarch64_uzp2v8qi */ case 1: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3387; /* aarch64_uzp2v16qi */ case 2: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3393; /* aarch64_uzp2v4hi */ case 3: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3399; /* aarch64_uzp2v8hi */ case 4: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3405; /* aarch64_uzp2v2si */ case 5: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3411; /* aarch64_uzp2v4si */ case 6: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3417; /* aarch64_uzp2v2di */ case 7: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3423; /* aarch64_uzp2v4hf */ case 8: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3429; /* aarch64_uzp2v8hf */ case 9: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3435; /* aarch64_uzp2v2sf */ case 10: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3441; /* aarch64_uzp2v4sf */ case 11: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3447; /* aarch64_uzp2v2df */ case 12: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4007; /* *aarch64_sve_uzp2vnx16bi */ case 13: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4013; /* *aarch64_sve_uzp2vnx8bi */ case 14: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4019; /* *aarch64_sve_uzp2vnx4bi */ case 15: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4025; /* *aarch64_sve_uzp2vnx2bi */ case 16: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4031; /* aarch64_sve_uzp2vnx16qi */ case 17: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4037; /* aarch64_sve_uzp2vnx8hi */ case 18: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4043; /* aarch64_sve_uzp2vnx4si */ case 19: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4049; /* aarch64_sve_uzp2vnx2di */ case 20: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4055; /* aarch64_sve_uzp2vnx8hf */ case 21: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4061; /* aarch64_sve_uzp2vnx4sf */ case 22: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4067; /* aarch64_sve_uzp2vnx2df */ 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 (pattern101 (x1)) { case 0: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3380; /* aarch64_uzp1v8qi */ case 1: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3386; /* aarch64_uzp1v16qi */ case 2: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3392; /* aarch64_uzp1v4hi */ case 3: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3398; /* aarch64_uzp1v8hi */ case 4: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3404; /* aarch64_uzp1v2si */ case 5: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3410; /* aarch64_uzp1v4si */ case 6: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3416; /* aarch64_uzp1v2di */ case 7: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3422; /* aarch64_uzp1v4hf */ case 8: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3428; /* aarch64_uzp1v8hf */ case 9: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3434; /* aarch64_uzp1v2sf */ case 10: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3440; /* aarch64_uzp1v4sf */ case 11: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3446; /* aarch64_uzp1v2df */ case 12: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4006; /* *aarch64_sve_uzp1vnx16bi */ case 13: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4012; /* *aarch64_sve_uzp1vnx8bi */ case 14: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4018; /* *aarch64_sve_uzp1vnx4bi */ case 15: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4024; /* *aarch64_sve_uzp1vnx2bi */ case 16: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4030; /* aarch64_sve_uzp1vnx16qi */ case 17: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4036; /* aarch64_sve_uzp1vnx8hi */ case 18: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4042; /* aarch64_sve_uzp1vnx4si */ case 19: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4048; /* aarch64_sve_uzp1vnx2di */ case 20: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4054; /* aarch64_sve_uzp1vnx8hf */ case 21: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4060; /* aarch64_sve_uzp1vnx4sf */ case 22: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4066; /* aarch64_sve_uzp1vnx2df */ 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 (pattern101 (x1)) { case 0: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3379; /* aarch64_trn2v8qi */ case 1: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3385; /* aarch64_trn2v16qi */ case 2: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3391; /* aarch64_trn2v4hi */ case 3: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3397; /* aarch64_trn2v8hi */ case 4: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3403; /* aarch64_trn2v2si */ case 5: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3409; /* aarch64_trn2v4si */ case 6: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3415; /* aarch64_trn2v2di */ case 7: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3421; /* aarch64_trn2v4hf */ case 8: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3427; /* aarch64_trn2v8hf */ case 9: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3433; /* aarch64_trn2v2sf */ case 10: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3439; /* aarch64_trn2v4sf */ case 11: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3445; /* aarch64_trn2v2df */ case 12: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4005; /* *aarch64_sve_trn2vnx16bi */ case 13: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4011; /* *aarch64_sve_trn2vnx8bi */ case 14: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4017; /* *aarch64_sve_trn2vnx4bi */ case 15: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4023; /* *aarch64_sve_trn2vnx2bi */ case 16: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4029; /* aarch64_sve_trn2vnx16qi */ case 17: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4035; /* aarch64_sve_trn2vnx8hi */ case 18: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4041; /* aarch64_sve_trn2vnx4si */ case 19: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4047; /* aarch64_sve_trn2vnx2di */ case 20: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4053; /* aarch64_sve_trn2vnx8hf */ case 21: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4059; /* aarch64_sve_trn2vnx4sf */ case 22: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4065; /* aarch64_sve_trn2vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern101 (x1)) { case 0: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3378; /* aarch64_trn1v8qi */ case 1: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3384; /* aarch64_trn1v16qi */ case 2: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3390; /* aarch64_trn1v4hi */ case 3: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3396; /* aarch64_trn1v8hi */ case 4: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3402; /* aarch64_trn1v2si */ case 5: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3408; /* aarch64_trn1v4si */ case 6: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3414; /* aarch64_trn1v2di */ case 7: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3420; /* aarch64_trn1v4hf */ case 8: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3426; /* aarch64_trn1v8hf */ case 9: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3432; /* aarch64_trn1v2sf */ case 10: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3438; /* aarch64_trn1v4sf */ case 11: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3444; /* aarch64_trn1v2df */ case 12: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4004; /* *aarch64_sve_trn1vnx16bi */ case 13: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4010; /* *aarch64_sve_trn1vnx8bi */ case 14: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4016; /* *aarch64_sve_trn1vnx4bi */ case 15: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4022; /* *aarch64_sve_trn1vnx2bi */ case 16: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4028; /* aarch64_sve_trn1vnx16qi */ case 17: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4034; /* aarch64_sve_trn1vnx8hi */ case 18: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4040; /* aarch64_sve_trn1vnx4si */ case 19: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4046; /* aarch64_sve_trn1vnx2di */ case 20: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4052; /* aarch64_sve_trn1vnx8hf */ case 21: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4058; /* aarch64_sve_trn1vnx4sf */ case 22: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4064; /* aarch64_sve_trn1vnx2df */ 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 (pattern101 (x1)) { case 0: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3377; /* aarch64_zip2v8qi */ case 1: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3383; /* aarch64_zip2v16qi */ case 2: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3389; /* aarch64_zip2v4hi */ case 3: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3395; /* aarch64_zip2v8hi */ case 4: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3401; /* aarch64_zip2v2si */ case 5: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3407; /* aarch64_zip2v4si */ case 6: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3413; /* aarch64_zip2v2di */ case 7: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3419; /* aarch64_zip2v4hf */ case 8: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3425; /* aarch64_zip2v8hf */ case 9: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3431; /* aarch64_zip2v2sf */ case 10: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3437; /* aarch64_zip2v4sf */ case 11: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3443; /* aarch64_zip2v2df */ case 12: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4003; /* *aarch64_sve_zip2vnx16bi */ case 13: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4009; /* *aarch64_sve_zip2vnx8bi */ case 14: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4015; /* *aarch64_sve_zip2vnx4bi */ case 15: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4021; /* *aarch64_sve_zip2vnx2bi */ case 16: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4027; /* aarch64_sve_zip2vnx16qi */ case 17: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4033; /* aarch64_sve_zip2vnx8hi */ case 18: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4039; /* aarch64_sve_zip2vnx4si */ case 19: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4045; /* aarch64_sve_zip2vnx2di */ case 20: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4051; /* aarch64_sve_zip2vnx8hf */ case 21: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4057; /* aarch64_sve_zip2vnx4sf */ case 22: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4063; /* aarch64_sve_zip2vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern101 (x1)) { case 0: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3376; /* aarch64_zip1v8qi */ case 1: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3382; /* aarch64_zip1v16qi */ case 2: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3388; /* aarch64_zip1v4hi */ case 3: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3394; /* aarch64_zip1v8hi */ case 4: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3400; /* aarch64_zip1v2si */ case 5: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3406; /* aarch64_zip1v4si */ case 6: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3412; /* aarch64_zip1v2di */ case 7: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3418; /* aarch64_zip1v4hf */ case 8: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3424; /* aarch64_zip1v8hf */ case 9: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3430; /* aarch64_zip1v2sf */ case 10: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3436; /* aarch64_zip1v4sf */ case 11: if (! #line 5743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3442; /* aarch64_zip1v2df */ case 12: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4002; /* *aarch64_sve_zip1vnx16bi */ case 13: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4008; /* *aarch64_sve_zip1vnx8bi */ case 14: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4014; /* *aarch64_sve_zip1vnx4bi */ case 15: if (! #line 820 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4020; /* *aarch64_sve_zip1vnx2bi */ case 16: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4026; /* aarch64_sve_zip1vnx16qi */ case 17: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4032; /* aarch64_sve_zip1vnx8hi */ case 18: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4038; /* aarch64_sve_zip1vnx4si */ case 19: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4044; /* aarch64_sve_zip1vnx2di */ case 20: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4050; /* aarch64_sve_zip1vnx8hf */ case 21: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4056; /* aarch64_sve_zip1vnx4sf */ case 22: if (! #line 829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4062; /* aarch64_sve_zip1vnx2df */ 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]; 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_V8QImode: if (pattern80 (x3, E_V8QImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2854; /* aarch64_sqshlu_nv8qi */ case E_V16QImode: if (pattern80 (x3, E_V16QImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2857; /* aarch64_sqshlu_nv16qi */ case E_V4HImode: if (pattern81 (x3, E_V4HImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2860; /* aarch64_sqshlu_nv4hi */ case E_V8HImode: if (pattern81 (x3, E_V8HImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2863; /* aarch64_sqshlu_nv8hi */ case E_V2SImode: if (pattern82 (x3, E_V2SImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2866; /* aarch64_sqshlu_nv2si */ case E_V4SImode: if (pattern82 (x3, E_V4SImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2869; /* aarch64_sqshlu_nv4si */ case E_V2DImode: if (pattern83 (x3, E_V2DImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2872; /* aarch64_sqshlu_nv2di */ case E_QImode: if (pattern80 (x3, E_QImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2875; /* aarch64_sqshlu_nqi */ case E_HImode: if (pattern81 (x3, E_HImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2878; /* aarch64_sqshlu_nhi */ case E_SImode: if (pattern82 (x3, E_SImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2881; /* aarch64_sqshlu_nsi */ case E_DImode: if (pattern83 (x3, E_DImode) != 0 || ! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2884; /* aarch64_sqshlu_ndi */ 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 (pattern84 (x1)) { case 0: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2719; /* aarch64_uqshlv8qi */ case 1: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2723; /* aarch64_uqshlv16qi */ case 2: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2727; /* aarch64_uqshlv4hi */ case 3: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2731; /* aarch64_uqshlv8hi */ case 4: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2735; /* aarch64_uqshlv2si */ case 5: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2739; /* aarch64_uqshlv4si */ case 6: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2743; /* aarch64_uqshlv2di */ case 7: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2747; /* aarch64_uqshlqi */ case 8: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2751; /* aarch64_uqshlhi */ case 9: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2755; /* aarch64_uqshlsi */ case 10: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2759; /* aarch64_uqshldi */ case 11: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2856; /* aarch64_uqshl_nv8qi */ case 12: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2859; /* aarch64_uqshl_nv16qi */ case 13: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2862; /* aarch64_uqshl_nv4hi */ case 14: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2865; /* aarch64_uqshl_nv8hi */ case 15: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2868; /* aarch64_uqshl_nv2si */ case 16: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2871; /* aarch64_uqshl_nv4si */ case 17: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2874; /* aarch64_uqshl_nv2di */ case 18: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2877; /* aarch64_uqshl_nqi */ case 19: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2880; /* aarch64_uqshl_nhi */ case 20: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2883; /* aarch64_uqshl_nsi */ case 21: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2886; /* aarch64_uqshl_ndi */ 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 (pattern84 (x1)) { case 0: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2718; /* aarch64_sqshlv8qi */ case 1: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2722; /* aarch64_sqshlv16qi */ case 2: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2726; /* aarch64_sqshlv4hi */ case 3: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2730; /* aarch64_sqshlv8hi */ case 4: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2734; /* aarch64_sqshlv2si */ case 5: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2738; /* aarch64_sqshlv4si */ case 6: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2742; /* aarch64_sqshlv2di */ case 7: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2746; /* aarch64_sqshlqi */ case 8: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2750; /* aarch64_sqshlhi */ case 9: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2754; /* aarch64_sqshlsi */ case 10: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2758; /* aarch64_sqshldi */ case 11: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2855; /* aarch64_sqshl_nv8qi */ case 12: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2858; /* aarch64_sqshl_nv16qi */ case 13: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2861; /* aarch64_sqshl_nv4hi */ case 14: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2864; /* aarch64_sqshl_nv8hi */ case 15: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2867; /* aarch64_sqshl_nv2si */ case 16: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2870; /* aarch64_sqshl_nv4si */ case 17: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2873; /* aarch64_sqshl_nv2di */ case 18: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2876; /* aarch64_sqshl_nqi */ case 19: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2879; /* aarch64_sqshl_nhi */ case 20: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2882; /* aarch64_sqshl_nsi */ case 21: if (! #line 4586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2885; /* aarch64_sqshl_ndi */ 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]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (pattern97 (x1, E_XImode) != 0) return -1; switch (GET_MODE (operands[0])) { case E_XImode: if (!aarch64_simd_struct_operand (operands[0], E_XImode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_XImode) return -1; x3 = XVECEXP (x2, 0, 1); switch (GET_MODE (x3)) { case E_V16QImode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3241; /* aarch64_simd_st4v16qi */ case E_V8HImode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3242; /* aarch64_simd_st4v8hi */ case E_V4SImode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3243; /* aarch64_simd_st4v4si */ case E_V2DImode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3244; /* aarch64_simd_st4v2di */ case E_V8HFmode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3245; /* aarch64_simd_st4v8hf */ case E_V4SFmode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3246; /* aarch64_simd_st4v4sf */ case E_V2DFmode: if (! #line 5141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3247; /* aarch64_simd_st4v2df */ default: return -1; } case E_BLKmode: if (!aarch64_simd_struct_operand (operands[0], E_BLKmode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XVECEXP (x2, 0, 1); switch (GET_MODE (x3)) { case E_V8QImode: if (! #line 5824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3510; /* aarch64_st4v8qi_dreg */ case E_V4HImode: if (! #line 5824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3511; /* aarch64_st4v4hi_dreg */ case E_V4HFmode: if (! #line 5824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3512; /* aarch64_st4v4hf_dreg */ case E_V2SImode: if (! #line 5824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3513; /* aarch64_st4v2si_dreg */ case E_V2SFmode: if (! #line 5824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3514; /* aarch64_st4v2sf_dreg */ case E_DImode: if (! #line 5834 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3515; /* aarch64_st4di_dreg */ case E_DFmode: if (! #line 5834 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3516; /* aarch64_st4df_dreg */ default: return -1; } 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]; rtx x2, x3; int res ATTRIBUTE_UNUSED; if (pattern97 (x1, E_CImode) != 0) return -1; switch (GET_MODE (operands[0])) { case E_CImode: if (!aarch64_simd_struct_operand (operands[0], E_CImode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_CImode) return -1; x3 = XVECEXP (x2, 0, 1); switch (GET_MODE (x3)) { case E_V16QImode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3185; /* aarch64_simd_st3v16qi */ case E_V8HImode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3186; /* aarch64_simd_st3v8hi */ case E_V4SImode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3187; /* aarch64_simd_st3v4si */ case E_V2DImode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3188; /* aarch64_simd_st3v2di */ case E_V8HFmode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3189; /* aarch64_simd_st3v8hf */ case E_V4SFmode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3190; /* aarch64_simd_st3v4sf */ case E_V2DFmode: if (! #line 5043 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3191; /* aarch64_simd_st3v2df */ default: return -1; } case E_BLKmode: if (!aarch64_simd_struct_operand (operands[0], E_BLKmode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XVECEXP (x2, 0, 1); switch (GET_MODE (x3)) { case E_V8QImode: if (! #line 5804 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3503; /* aarch64_st3v8qi_dreg */ case E_V4HImode: if (! #line 5804 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3504; /* aarch64_st3v4hi_dreg */ case E_V4HFmode: if (! #line 5804 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3505; /* aarch64_st3v4hf_dreg */ case E_V2SImode: if (! #line 5804 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3506; /* aarch64_st3v2si_dreg */ case E_V2SFmode: if (! #line 5804 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3507; /* aarch64_st3v2sf_dreg */ case E_DImode: if (! #line 5814 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3508; /* aarch64_st3di_dreg */ case E_DFmode: if (! #line 5814 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3509; /* aarch64_st3df_dreg */ default: return -1; } 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; int res ATTRIBUTE_UNUSED; if (pattern97 (x1, E_OImode) != 0) return -1; switch (GET_MODE (operands[0])) { case E_OImode: if (!aarch64_simd_struct_operand (operands[0], E_OImode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_OImode) return -1; x3 = XVECEXP (x2, 0, 1); switch (GET_MODE (x3)) { case E_V16QImode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3129; /* aarch64_simd_st2v16qi */ case E_V8HImode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3130; /* aarch64_simd_st2v8hi */ case E_V4SImode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3131; /* aarch64_simd_st2v4si */ case E_V2DImode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3132; /* aarch64_simd_st2v2di */ case E_V8HFmode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3133; /* aarch64_simd_st2v8hf */ case E_V4SFmode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3134; /* aarch64_simd_st2v4sf */ case E_V2DFmode: if (! #line 4945 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3135; /* aarch64_simd_st2v2df */ default: return -1; } case E_BLKmode: if (!aarch64_simd_struct_operand (operands[0], E_BLKmode)) return -1; x2 = XEXP (x1, 1); if (GET_MODE (x2) != E_BLKmode) return -1; x3 = XVECEXP (x2, 0, 1); switch (GET_MODE (x3)) { case E_V8QImode: if (! #line 5784 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3496; /* aarch64_st2v8qi_dreg */ case E_V4HImode: if (! #line 5784 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3497; /* aarch64_st2v4hi_dreg */ case E_V4HFmode: if (! #line 5784 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3498; /* aarch64_st2v4hf_dreg */ case E_V2SImode: if (! #line 5784 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3499; /* aarch64_st2v2si_dreg */ case E_V2SFmode: if (! #line 5784 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3500; /* aarch64_st2v2sf_dreg */ case E_DImode: if (! #line 5794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3501; /* aarch64_st2di_dreg */ case E_DFmode: if (! #line 5794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3502; /* aarch64_st2df_dreg */ default: return -1; } 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, 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 (!immediate_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 1212 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1681; /* vec_shr_v8qi */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 1212 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1682; /* vec_shr_v4hi */ case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode) || ! #line 1212 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1683; /* vec_shr_v4hf */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 1212 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1684; /* vec_shr_v2si */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 1212 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1685; /* vec_shr_v2sf */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern78 (x1)) { case 0: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2549; /* aarch64_sqrdmulhv4hi */ case 1: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2551; /* aarch64_sqrdmulhv8hi */ case 2: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2553; /* aarch64_sqrdmulhv2si */ case 3: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2555; /* aarch64_sqrdmulhv4si */ case 4: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2557; /* aarch64_sqrdmulhhi */ case 5: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2559; /* aarch64_sqrdmulhsi */ case 6: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2561; /* aarch64_sqrdmulh_lanev4hi */ case 7: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2569; /* aarch64_sqrdmulh_laneqv4hi */ case 8: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2563; /* aarch64_sqrdmulh_lanev8hi */ case 9: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2571; /* aarch64_sqrdmulh_laneqv8hi */ case 10: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2565; /* aarch64_sqrdmulh_lanev2si */ case 11: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2573; /* aarch64_sqrdmulh_laneqv2si */ case 12: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2567; /* aarch64_sqrdmulh_lanev4si */ case 13: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2575; /* aarch64_sqrdmulh_laneqv4si */ case 14: if (! #line 3760 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2577; /* aarch64_sqrdmulh_lanehi */ case 15: if (! #line 3775 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2581; /* aarch64_sqrdmulh_laneqhi */ case 16: if (! #line 3760 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2579; /* aarch64_sqrdmulh_lanesi */ case 17: if (! #line 3775 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2583; /* aarch64_sqrdmulh_laneqsi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern78 (x1)) { case 0: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2548; /* aarch64_sqdmulhv4hi */ case 1: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2550; /* aarch64_sqdmulhv8hi */ case 2: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2552; /* aarch64_sqdmulhv2si */ case 3: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2554; /* aarch64_sqdmulhv4si */ case 4: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2556; /* aarch64_sqdmulhhi */ case 5: if (! #line 3715 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2558; /* aarch64_sqdmulhsi */ case 6: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2560; /* aarch64_sqdmulh_lanev4hi */ case 7: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2568; /* aarch64_sqdmulh_laneqv4hi */ case 8: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2562; /* aarch64_sqdmulh_lanev8hi */ case 9: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2570; /* aarch64_sqdmulh_laneqv8hi */ case 10: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2564; /* aarch64_sqdmulh_lanev2si */ case 11: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2572; /* aarch64_sqdmulh_laneqv2si */ case 12: if (! #line 3730 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2566; /* aarch64_sqdmulh_lanev4si */ case 13: if (! #line 3745 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2574; /* aarch64_sqdmulh_laneqv4si */ case 14: if (! #line 3760 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2576; /* aarch64_sqdmulh_lanehi */ case 15: if (! #line 3775 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2580; /* aarch64_sqdmulh_laneqhi */ case 16: if (! #line 3760 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2578; /* aarch64_sqdmulh_lanesi */ case 17: if (! #line 3775 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2582; /* aarch64_sqdmulh_laneqsi */ default: return -1; } } 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; 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_VNx16QImode: if (pattern312 (x3, E_QImode, E_VNx16QImode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5130; /* vec_shl_insert_vnx16qi */ case E_VNx8HImode: if (pattern312 (x3, E_HImode, E_VNx8HImode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5131; /* vec_shl_insert_vnx8hi */ case E_VNx4SImode: if (pattern312 (x3, E_SImode, E_VNx4SImode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5132; /* vec_shl_insert_vnx4si */ case E_VNx2DImode: if (pattern312 (x3, E_DImode, E_VNx2DImode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5133; /* vec_shl_insert_vnx2di */ case E_VNx8HFmode: if (pattern312 (x3, E_HFmode, E_VNx8HFmode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5134; /* vec_shl_insert_vnx8hf */ case E_VNx4SFmode: if (pattern312 (x3, E_SFmode, E_VNx4SFmode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5135; /* vec_shl_insert_vnx4sf */ case E_VNx2DFmode: if (pattern312 (x3, E_DFmode, E_VNx2DFmode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5136; /* vec_shl_insert_vnx2df */ 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; 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_QImode: if (pattern70 (x3, E_VNx16QImode, E_VNx16BImode, E_QImode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3917; /* extract_last_vnx16qi */ case E_HImode: if (pattern70 (x3, E_VNx8HImode, E_VNx8BImode, E_HImode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3918; /* extract_last_vnx8hi */ case E_SImode: if (pattern70 (x3, E_VNx4SImode, E_VNx4BImode, E_SImode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3919; /* extract_last_vnx4si */ case E_DImode: if (pattern70 (x3, E_VNx2DImode, E_VNx2BImode, E_DImode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3920; /* extract_last_vnx2di */ case E_HFmode: if (pattern70 (x3, E_VNx8HFmode, E_VNx8BImode, E_HFmode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3921; /* extract_last_vnx8hf */ case E_SFmode: if (pattern70 (x3, E_VNx4SFmode, E_VNx4BImode, E_SFmode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3922; /* extract_last_vnx4sf */ case E_DFmode: if (pattern70 (x3, E_VNx2DFmode, E_VNx2BImode, E_DFmode) != 0 || ! #line 616 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3923; /* extract_last_vnx2df */ 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[2] = x4; x5 = XVECEXP (x3, 0, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern313 (x3, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3800; /* maskloadvnx16qivnx16bi */ case E_VNx8HImode: if (pattern313 (x3, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3801; /* maskloadvnx8hivnx8bi */ case E_VNx4SImode: if (pattern313 (x3, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3802; /* maskloadvnx4sivnx4bi */ case E_VNx2DImode: if (pattern313 (x3, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3803; /* maskloadvnx2divnx2bi */ case E_VNx8HFmode: if (pattern313 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3804; /* maskloadvnx8hfvnx8bi */ case E_VNx4SFmode: if (pattern313 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3805; /* maskloadvnx4sfvnx4bi */ case E_VNx2DFmode: if (pattern313 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3806; /* maskloadvnx2dfvnx2bi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern96 (x1, E_XImode)) { case 0: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3213; /* aarch64_simd_ld4rv8qi */ case 1: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3214; /* aarch64_simd_ld4rv16qi */ case 2: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3215; /* aarch64_simd_ld4rv4hi */ case 3: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3216; /* aarch64_simd_ld4rv8hi */ case 4: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3217; /* aarch64_simd_ld4rv2si */ case 5: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3218; /* aarch64_simd_ld4rv4si */ case 6: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3219; /* aarch64_simd_ld4rv2di */ case 7: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3220; /* aarch64_simd_ld4rv4hf */ case 8: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3221; /* aarch64_simd_ld4rv8hf */ case 9: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3222; /* aarch64_simd_ld4rv2sf */ case 10: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3223; /* aarch64_simd_ld4rv4sf */ case 11: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3224; /* aarch64_simd_ld4rv2df */ case 12: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3225; /* aarch64_simd_ld4rdi */ case 13: if (! #line 5097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3226; /* aarch64_simd_ld4rdf */ default: return -1; } } 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]; int res ATTRIBUTE_UNUSED; switch (pattern96 (x1, E_CImode)) { case 0: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3157; /* aarch64_simd_ld3rv8qi */ case 1: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3158; /* aarch64_simd_ld3rv16qi */ case 2: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3159; /* aarch64_simd_ld3rv4hi */ case 3: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3160; /* aarch64_simd_ld3rv8hi */ case 4: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3161; /* aarch64_simd_ld3rv2si */ case 5: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3162; /* aarch64_simd_ld3rv4si */ case 6: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3163; /* aarch64_simd_ld3rv2di */ case 7: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3164; /* aarch64_simd_ld3rv4hf */ case 8: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3165; /* aarch64_simd_ld3rv8hf */ case 9: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3166; /* aarch64_simd_ld3rv2sf */ case 10: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3167; /* aarch64_simd_ld3rv4sf */ case 11: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3168; /* aarch64_simd_ld3rv2df */ case 12: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3169; /* aarch64_simd_ld3rdi */ case 13: if (! #line 4999 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3170; /* aarch64_simd_ld3rdf */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern96 (x1, E_OImode)) { case 0: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3101; /* aarch64_simd_ld2rv8qi */ case 1: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3102; /* aarch64_simd_ld2rv16qi */ case 2: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3103; /* aarch64_simd_ld2rv4hi */ case 3: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3104; /* aarch64_simd_ld2rv8hi */ case 4: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3105; /* aarch64_simd_ld2rv2si */ case 5: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3106; /* aarch64_simd_ld2rv4si */ case 6: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3107; /* aarch64_simd_ld2rv2di */ case 7: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3108; /* aarch64_simd_ld2rv4hf */ case 8: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3109; /* aarch64_simd_ld2rv8hf */ case 9: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3110; /* aarch64_simd_ld2rv2sf */ case 10: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3111; /* aarch64_simd_ld2rv4sf */ case 11: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3112; /* aarch64_simd_ld2rv2df */ case 12: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3113; /* aarch64_simd_ld2rdi */ case 13: if (! #line 4901 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3114; /* aarch64_simd_ld2rdf */ 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; 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_VNx16BImode: if (pattern65 (x3, E_VNx8BImode, E_VNx16BImode) != 0 || ! #line 2798 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4998; /* vec_pack_trunc_vnx8bi */ case E_VNx8BImode: if (pattern65 (x3, E_VNx4BImode, E_VNx8BImode) != 0 || ! #line 2798 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4999; /* vec_pack_trunc_vnx4bi */ case E_VNx4BImode: if (pattern65 (x3, E_VNx2BImode, E_VNx4BImode) != 0 || ! #line 2798 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5000; /* vec_pack_trunc_vnx2bi */ case E_VNx16QImode: if (pattern65 (x3, E_VNx8HImode, E_VNx16QImode) != 0 || ! #line 2810 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5001; /* vec_pack_trunc_vnx8hi */ case E_VNx8HImode: if (pattern65 (x3, E_VNx4SImode, E_VNx8HImode) != 0 || ! #line 2810 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5002; /* vec_pack_trunc_vnx4si */ case E_VNx4SImode: if (pattern65 (x3, E_VNx2DImode, E_VNx4SImode) != 0 || ! #line 2810 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5003; /* vec_pack_trunc_vnx2di */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern75 (x1)) { case 0: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2721; /* aarch64_uqrshlv8qi */ case 1: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2725; /* aarch64_uqrshlv16qi */ case 2: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2729; /* aarch64_uqrshlv4hi */ case 3: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2733; /* aarch64_uqrshlv8hi */ case 4: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2737; /* aarch64_uqrshlv2si */ case 5: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2741; /* aarch64_uqrshlv4si */ case 6: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2745; /* aarch64_uqrshlv2di */ case 7: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2749; /* aarch64_uqrshlqi */ case 8: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2753; /* aarch64_uqrshlhi */ case 9: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2757; /* aarch64_uqrshlsi */ case 10: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2761; /* aarch64_uqrshldi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern75 (x1)) { case 0: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2720; /* aarch64_sqrshlv8qi */ case 1: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2724; /* aarch64_sqrshlv16qi */ case 2: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2728; /* aarch64_sqrshlv4hi */ case 3: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2732; /* aarch64_sqrshlv8hi */ case 4: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2736; /* aarch64_sqrshlv2si */ case 5: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2740; /* aarch64_sqrshlv4si */ case 6: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2744; /* aarch64_sqrshlv2di */ case 7: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2748; /* aarch64_sqrshlqi */ case 8: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2752; /* aarch64_sqrshlhi */ case 9: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2756; /* aarch64_sqrshlsi */ case 10: if (! #line 4497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2760; /* aarch64_sqrshldi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern75 (x1)) { case 0: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2487; /* aarch64_usqaddv8qi */ case 1: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2489; /* aarch64_usqaddv16qi */ case 2: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2491; /* aarch64_usqaddv4hi */ case 3: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2493; /* aarch64_usqaddv8hi */ case 4: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2495; /* aarch64_usqaddv2si */ case 5: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2497; /* aarch64_usqaddv4si */ case 6: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2499; /* aarch64_usqaddv2di */ case 7: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2501; /* aarch64_usqaddqi */ case 8: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2503; /* aarch64_usqaddhi */ case 9: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2505; /* aarch64_usqaddsi */ case 10: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2507; /* aarch64_usqadddi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern75 (x1)) { case 0: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2486; /* aarch64_suqaddv8qi */ case 1: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2488; /* aarch64_suqaddv16qi */ case 2: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2490; /* aarch64_suqaddv4hi */ case 3: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2492; /* aarch64_suqaddv8hi */ case 4: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2494; /* aarch64_suqaddv2si */ case 5: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2496; /* aarch64_suqaddv4si */ case 6: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2498; /* aarch64_suqaddv2di */ case 7: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2500; /* aarch64_suqaddqi */ case 8: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2502; /* aarch64_suqaddhi */ case 9: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2504; /* aarch64_suqaddsi */ case 10: if (! #line 3669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2506; /* aarch64_suqadddi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern71 (x1)) { case 0: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1749; /* aarch64_sminpv8qi */ case 1: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1753; /* aarch64_sminpv16qi */ case 2: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1757; /* aarch64_sminpv4hi */ case 3: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1761; /* aarch64_sminpv8hi */ case 4: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1765; /* aarch64_sminpv2si */ case 5: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1769; /* aarch64_sminpv4si */ case 6: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4842; /* *reduc_smin_scal_vnx16qi */ case 7: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4846; /* *reduc_smin_scal_vnx8hi */ case 8: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4850; /* *reduc_smin_scal_vnx4si */ case 9: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4854; /* *reduc_smin_scal_vnx2di */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern71 (x1)) { case 0: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1747; /* aarch64_uminpv8qi */ case 1: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1751; /* aarch64_uminpv16qi */ case 2: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1755; /* aarch64_uminpv4hi */ case 3: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1759; /* aarch64_uminpv8hi */ case 4: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1763; /* aarch64_uminpv2si */ case 5: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1767; /* aarch64_uminpv4si */ case 6: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4840; /* *reduc_umin_scal_vnx16qi */ case 7: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4844; /* *reduc_umin_scal_vnx8hi */ case 8: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4848; /* *reduc_umin_scal_vnx4si */ case 9: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4852; /* *reduc_umin_scal_vnx2di */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern71 (x1)) { case 0: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1748; /* aarch64_smaxpv8qi */ case 1: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1752; /* aarch64_smaxpv16qi */ case 2: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1756; /* aarch64_smaxpv4hi */ case 3: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1760; /* aarch64_smaxpv8hi */ case 4: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1764; /* aarch64_smaxpv2si */ case 5: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1768; /* aarch64_smaxpv4si */ case 6: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4841; /* *reduc_smax_scal_vnx16qi */ case 7: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4845; /* *reduc_smax_scal_vnx8hi */ case 8: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4849; /* *reduc_smax_scal_vnx4si */ case 9: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4853; /* *reduc_smax_scal_vnx2di */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern71 (x1)) { case 0: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1746; /* aarch64_umaxpv8qi */ case 1: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1750; /* aarch64_umaxpv16qi */ case 2: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1754; /* aarch64_umaxpv4hi */ case 3: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1758; /* aarch64_umaxpv8hi */ case 4: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1762; /* aarch64_umaxpv2si */ case 5: if (! #line 1402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1766; /* aarch64_umaxpv4si */ case 6: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4839; /* *reduc_umax_scal_vnx16qi */ case 7: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4843; /* *reduc_umax_scal_vnx8hi */ case 8: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4847; /* *reduc_umax_scal_vnx4si */ case 9: if (! #line 2134 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4851; /* *reduc_umax_scal_vnx2di */ 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); x3 = XVECEXP (x2, 0, 1); if (GET_CODE (x3) != UNSPEC || XVECLEN (x3, 0) != 3 || XINT (x3, 1) != 228) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XVECEXP (x2, 0, 0); operands[1] = x5; x6 = XVECEXP (x3, 0, 0); operands[2] = x6; x7 = XVECEXP (x3, 0, 1); operands[3] = x7; x8 = XVECEXP (x3, 0, 2); operands[4] = x8; switch (GET_MODE (operands[0])) { case E_HFmode: if (pattern455 (x2, E_VNx8HFmode, E_VNx8BImode, E_HFmode) != 0 || ! #line 2215 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4882; /* *pred_fold_left_plus_vnx8hf */ case E_SFmode: if (pattern455 (x2, E_VNx4SFmode, E_VNx4BImode, E_SFmode) != 0 || ! #line 2215 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4883; /* *pred_fold_left_plus_vnx4sf */ case E_DFmode: if (pattern455 (x2, E_VNx2DFmode, E_VNx2BImode, E_DFmode) != 0 || ! #line 2215 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4884; /* *pred_fold_left_plus_vnx2df */ 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; if (!aarch64_tls_ie_symref (operands[1], E_VOIDmode)) return -1; x5 = XVECEXP (x3, 0, 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[2], E_SImode) || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; return 1050; /* tlsie_tiny_si */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[2], E_DImode) || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1051; /* tlsie_tiny_di */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern64 (x1)) { case 0: if (!( #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3554; /* aarch64_frecpsv4hf */ case 1: if (!( #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3555; /* aarch64_frecpsv8hf */ case 2: if (! #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3556; /* aarch64_frecpsv2sf */ case 3: if (! #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3557; /* aarch64_frecpsv4sf */ case 4: if (! #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3558; /* aarch64_frecpsv2df */ case 5: if (!( #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3559; /* aarch64_frecpshf */ case 6: if (! #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3560; /* aarch64_frecpssf */ case 7: if (! #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3561; /* aarch64_frecpsdf */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern90 (x1)) { case 0: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2775; /* aarch64_urshr_nv8qi */ case 1: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2777; /* aarch64_urshr_nv16qi */ case 2: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2779; /* aarch64_urshr_nv4hi */ case 3: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2781; /* aarch64_urshr_nv8hi */ case 4: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2783; /* aarch64_urshr_nv2si */ case 5: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2785; /* aarch64_urshr_nv4si */ case 6: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2787; /* aarch64_urshr_nv2di */ case 7: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2789; /* aarch64_urshr_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern90 (x1)) { case 0: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2774; /* aarch64_srshr_nv8qi */ case 1: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2776; /* aarch64_srshr_nv16qi */ case 2: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2778; /* aarch64_srshr_nv4hi */ case 3: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2780; /* aarch64_srshr_nv8hi */ case 4: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2782; /* aarch64_srshr_nv2si */ case 5: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2784; /* aarch64_srshr_nv4si */ case 6: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2786; /* aarch64_srshr_nv2di */ case 7: if (! #line 4545 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2788; /* aarch64_srshr_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern79 (x1)) { case 0: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2689; /* aarch64_urshlv8qi */ case 1: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2693; /* aarch64_urshlv16qi */ case 2: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2697; /* aarch64_urshlv4hi */ case 3: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2701; /* aarch64_urshlv8hi */ case 4: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2705; /* aarch64_urshlv2si */ case 5: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2709; /* aarch64_urshlv4si */ case 6: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2713; /* aarch64_urshlv2di */ case 7: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2717; /* aarch64_urshldi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern79 (x1)) { case 0: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2688; /* aarch64_srshlv8qi */ case 1: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2692; /* aarch64_srshlv16qi */ case 2: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2696; /* aarch64_srshlv4hi */ case 3: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2700; /* aarch64_srshlv8hi */ case 4: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2704; /* aarch64_srshlv2si */ case 5: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2708; /* aarch64_srshlv4si */ case 6: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2712; /* aarch64_srshlv2di */ case 7: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2716; /* aarch64_srshldi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern79 (x1)) { case 0: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2687; /* aarch64_ushlv8qi */ case 1: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2691; /* aarch64_ushlv16qi */ case 2: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2695; /* aarch64_ushlv4hi */ case 3: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2699; /* aarch64_ushlv8hi */ case 4: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2703; /* aarch64_ushlv2si */ case 5: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2707; /* aarch64_ushlv4si */ case 6: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2711; /* aarch64_ushlv2di */ case 7: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2715; /* aarch64_ushldi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern79 (x1)) { case 0: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2686; /* aarch64_sshlv8qi */ case 1: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2690; /* aarch64_sshlv16qi */ case 2: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2694; /* aarch64_sshlv4hi */ case 3: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2698; /* aarch64_sshlv8hi */ case 4: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2702; /* aarch64_sshlv2si */ case 5: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2706; /* aarch64_sshlv4si */ case 6: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2710; /* aarch64_sshlv2di */ case 7: if (! #line 4483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2714; /* aarch64_sshldi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern72 (x1)) { case 0: if (!( #line 2370 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2131; /* aarch64_faddpv4hf */ case 1: if (!( #line 2370 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2132; /* aarch64_faddpv8hf */ case 2: if (! #line 2370 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2133; /* aarch64_faddpv2sf */ case 3: if (! #line 2370 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2134; /* aarch64_faddpv4sf */ case 4: if (! #line 2370 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2135; /* aarch64_faddpv2df */ case 5: if (! #line 2112 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4836; /* *reduc_plus_scal_vnx8hf */ case 6: if (! #line 2112 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4837; /* *reduc_plus_scal_vnx4sf */ case 7: if (! #line 2112 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4838; /* *reduc_plus_scal_vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern72 (x1)) { case 0: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1773; /* aarch64_sminpv4hf */ case 1: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1777; /* aarch64_sminpv8hf */ case 2: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1781; /* aarch64_sminpv2sf */ case 3: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1785; /* aarch64_sminpv4sf */ case 4: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1789; /* aarch64_sminpv2df */ case 5: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4858; /* *reduc_smin_scal_vnx8hf */ case 6: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4862; /* *reduc_smin_scal_vnx4sf */ case 7: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4866; /* *reduc_smin_scal_vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern72 (x1)) { case 0: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1772; /* aarch64_smaxpv4hf */ case 1: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1776; /* aarch64_smaxpv8hf */ case 2: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1780; /* aarch64_smaxpv2sf */ case 3: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1784; /* aarch64_smaxpv4sf */ case 4: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1788; /* aarch64_smaxpv2df */ case 5: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4857; /* *reduc_smax_scal_vnx8hf */ case 6: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4861; /* *reduc_smax_scal_vnx4sf */ case 7: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4865; /* *reduc_smax_scal_vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern72 (x1)) { case 0: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1771; /* aarch64_smin_nanpv4hf */ case 1: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1775; /* aarch64_smin_nanpv8hf */ case 2: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1779; /* aarch64_smin_nanpv2sf */ case 3: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1783; /* aarch64_smin_nanpv4sf */ case 4: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1787; /* aarch64_smin_nanpv2df */ case 5: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4856; /* *reduc_smin_nan_scal_vnx8hf */ case 6: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4860; /* *reduc_smin_nan_scal_vnx4sf */ case 7: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4864; /* *reduc_smin_nan_scal_vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern72 (x1)) { case 0: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1770; /* aarch64_smax_nanpv4hf */ case 1: if (!( #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1774; /* aarch64_smax_nanpv8hf */ case 2: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1778; /* aarch64_smax_nanpv2sf */ case 3: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1782; /* aarch64_smax_nanpv4sf */ case 4: if (! #line 1413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1786; /* aarch64_smax_nanpv2df */ case 5: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4855; /* *reduc_smax_nan_scal_vnx8hf */ case 6: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4859; /* *reduc_smax_nan_scal_vnx4sf */ case 7: if (! #line 2156 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4863; /* *reduc_smax_nan_scal_vnx2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern64 (x1)) { case 0: if (!( #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1490; /* aarch64_rsqrtsv4hf */ case 1: if (!( #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1491; /* aarch64_rsqrtsv8hf */ case 2: if (! #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1492; /* aarch64_rsqrtsv2sf */ case 3: if (! #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1493; /* aarch64_rsqrtsv4sf */ case 4: if (! #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1494; /* aarch64_rsqrtsv2df */ case 5: if (!( #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1495; /* aarch64_rsqrtshf */ case 6: if (! #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1496; /* aarch64_rsqrtssf */ case 7: if (! #line 650 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1497; /* aarch64_rsqrtsdf */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern57 (x1)) { case 0: if (!( #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 1015; /* fminhf3 */ case 1: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1019; /* fminsf3 */ case 2: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1023; /* fmindf3 */ case 3: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2114; /* fminv4hf3 */ case 4: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2118; /* fminv8hf3 */ case 5: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2122; /* fminv2sf3 */ case 6: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2126; /* fminv4sf3 */ case 7: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2130; /* fminv2df3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern57 (x1)) { case 0: if (!( #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 1014; /* fmaxhf3 */ case 1: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1018; /* fmaxsf3 */ case 2: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1022; /* fmaxdf3 */ case 3: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2113; /* fmaxv4hf3 */ case 4: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2117; /* fmaxv8hf3 */ case 5: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2121; /* fmaxv2sf3 */ case 6: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2125; /* fmaxv4sf3 */ case 7: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2129; /* fmaxv2df3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern57 (x1)) { case 0: if (!( #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 1013; /* smin_nanhf3 */ case 1: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1017; /* smin_nansf3 */ case 2: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1021; /* smin_nandf3 */ case 3: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2112; /* smin_nanv4hf3 */ case 4: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2116; /* smin_nanv8hf3 */ case 5: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2120; /* smin_nanv2sf3 */ case 6: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2124; /* smin_nanv4sf3 */ case 7: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2128; /* smin_nanv2df3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern57 (x1)) { case 0: if (!( #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 1012; /* smax_nanhf3 */ case 1: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1016; /* smax_nansf3 */ case 2: if (! #line 6336 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1020; /* smax_nandf3 */ case 3: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2111; /* smax_nanv4hf3 */ case 4: if (!( #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2115; /* smax_nanv8hf3 */ case 5: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2119; /* smax_nanv2sf3 */ case 6: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2123; /* smax_nanv4sf3 */ case 7: if (! #line 2344 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2127; /* smax_nanv2df3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern55 (x1)) { case 0: return 968; /* ucvtfsi3 */ case 1: return 970; /* ucvtfdi3 */ case 2: if (! #line 6173 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 976; /* ucvtfsihf3 */ case 3: if (! #line 6173 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 978; /* ucvtfdihf3 */ case 4: if (! #line 6193 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 982; /* ucvtfhi3 */ case 5: if (!( #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 202 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2082; /* ucvtfv4hi3 */ case 6: if (!( #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 203 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2084; /* ucvtfv8hi3 */ case 7: if (! #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2086; /* ucvtfv2si3 */ case 8: if (! #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2088; /* ucvtfv4si3 */ case 9: if (! #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2090; /* ucvtfv2di3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern55 (x1)) { case 0: return 967; /* scvtfsi3 */ case 1: return 969; /* scvtfdi3 */ case 2: if (! #line 6173 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 975; /* scvtfsihf3 */ case 3: if (! #line 6173 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 977; /* scvtfdihf3 */ case 4: if (! #line 6193 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 981; /* scvtfhi3 */ case 5: if (!( #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 202 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2081; /* scvtfv4hi3 */ case 6: if (!( #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 203 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2083; /* scvtfv8hi3 */ case 7: if (! #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2085; /* scvtfv2si3 */ case 8: if (! #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2087; /* scvtfv4si3 */ case 9: if (! #line 2166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2089; /* scvtfv2di3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern54 (x1)) { case 0: return 964; /* fcvtzusf3 */ case 1: if (! #line 6163 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 972; /* fcvtzuhfsi3 */ case 2: return 966; /* fcvtzudf3 */ case 3: if (! #line 6163 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 974; /* fcvtzuhfdi3 */ case 4: if (! #line 6183 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 980; /* fcvtzuhf3 */ case 5: if (!( #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2072; /* fcvtzuv4hf3 */ case 6: if (!( #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2074; /* fcvtzuv8hf3 */ case 7: if (! #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2076; /* fcvtzuv2sf3 */ case 8: if (! #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2078; /* fcvtzuv4sf3 */ case 9: if (! #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2080; /* fcvtzuv2df3 */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern54 (x1)) { case 0: return 963; /* fcvtzssf3 */ case 1: if (! #line 6163 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 971; /* fcvtzshfsi3 */ case 2: return 965; /* fcvtzsdf3 */ case 3: if (! #line 6163 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 973; /* fcvtzshfdi3 */ case 4: if (! #line 6183 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 979; /* fcvtzshf3 */ case 5: if (!( #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2071; /* fcvtzsv4hf3 */ case 6: if (!( #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2073; /* fcvtzsv8hf3 */ case 7: if (! #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2075; /* fcvtzsv2sf3 */ case 8: if (! #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2077; /* fcvtzsv4sf3 */ case 9: if (! #line 2155 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2079; /* fcvtzsv2df3 */ 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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (pattern205 (x3)) { case 0: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3772; /* *aarch64_sve_movvnx16qi_subreg_be */ case 1: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3773; /* *aarch64_sve_movvnx8hi_subreg_be */ case 2: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3774; /* *aarch64_sve_movvnx4si_subreg_be */ case 3: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3775; /* *aarch64_sve_movvnx2di_subreg_be */ case 4: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3776; /* *aarch64_sve_movvnx8hf_subreg_be */ case 5: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3777; /* *aarch64_sve_movvnx4sf_subreg_be */ case 6: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return -1; return 3778; /* *aarch64_sve_movvnx2df_subreg_be */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern99 (x1, E_XImode)) { case 0: if (! #line 5475 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3353; /* aarch64_ld4v8qi_dreg */ case 1: if (! #line 5475 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3354; /* aarch64_ld4v4hi_dreg */ case 2: if (! #line 5475 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3355; /* aarch64_ld4v4hf_dreg */ case 3: if (! #line 5475 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3356; /* aarch64_ld4v2si_dreg */ case 4: if (! #line 5475 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3357; /* aarch64_ld4v2sf_dreg */ case 5: if (! #line 5485 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3358; /* aarch64_ld4di_dreg */ case 6: if (! #line 5485 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3359; /* aarch64_ld4df_dreg */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern99 (x1, E_CImode)) { case 0: if (! #line 5455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3346; /* aarch64_ld3v8qi_dreg */ case 1: if (! #line 5455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3347; /* aarch64_ld3v4hi_dreg */ case 2: if (! #line 5455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3348; /* aarch64_ld3v4hf_dreg */ case 3: if (! #line 5455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3349; /* aarch64_ld3v2si_dreg */ case 4: if (! #line 5455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3350; /* aarch64_ld3v2sf_dreg */ case 5: if (! #line 5465 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3351; /* aarch64_ld3di_dreg */ case 6: if (! #line 5465 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3352; /* aarch64_ld3df_dreg */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern99 (x1, E_OImode)) { case 0: if (! #line 5435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3339; /* aarch64_ld2v8qi_dreg */ case 1: if (! #line 5435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3340; /* aarch64_ld2v4hi_dreg */ case 2: if (! #line 5435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3341; /* aarch64_ld2v4hf_dreg */ case 3: if (! #line 5435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3342; /* aarch64_ld2v2si_dreg */ case 4: if (! #line 5435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3343; /* aarch64_ld2v2sf_dreg */ case 5: if (! #line 5445 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3344; /* aarch64_ld2di_dreg */ case 6: if (! #line 5445 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3345; /* aarch64_ld2df_dreg */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern95 (x1, E_XImode)) { case 0: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3206; /* aarch64_simd_ld4v16qi */ case 1: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3207; /* aarch64_simd_ld4v8hi */ case 2: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3208; /* aarch64_simd_ld4v4si */ case 3: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3209; /* aarch64_simd_ld4v2di */ case 4: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3210; /* aarch64_simd_ld4v8hf */ case 5: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3211; /* aarch64_simd_ld4v4sf */ case 6: if (! #line 5087 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3212; /* aarch64_simd_ld4v2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern95 (x1, E_CImode)) { case 0: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3150; /* aarch64_simd_ld3v16qi */ case 1: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3151; /* aarch64_simd_ld3v8hi */ case 2: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3152; /* aarch64_simd_ld3v4si */ case 3: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3153; /* aarch64_simd_ld3v2di */ case 4: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3154; /* aarch64_simd_ld3v8hf */ case 5: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3155; /* aarch64_simd_ld3v4sf */ case 6: if (! #line 4989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3156; /* aarch64_simd_ld3v2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern95 (x1, E_OImode)) { case 0: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3094; /* aarch64_simd_ld2v16qi */ case 1: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3095; /* aarch64_simd_ld2v8hi */ case 2: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3096; /* aarch64_simd_ld2v4si */ case 3: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3097; /* aarch64_simd_ld2v2di */ case 4: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3098; /* aarch64_simd_ld2v8hf */ case 5: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3099; /* aarch64_simd_ld2v4sf */ case 6: if (! #line 4891 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3100; /* aarch64_simd_ld2v2df */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern69 (x1)) { case 0: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1674; /* aarch64_simd_reg_shlv8qi_signed */ case 1: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1675; /* aarch64_simd_reg_shlv16qi_signed */ case 2: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1676; /* aarch64_simd_reg_shlv4hi_signed */ case 3: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1677; /* aarch64_simd_reg_shlv8hi_signed */ case 4: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1678; /* aarch64_simd_reg_shlv2si_signed */ case 5: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1679; /* aarch64_simd_reg_shlv4si_signed */ case 6: if (! #line 989 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1680; /* aarch64_simd_reg_shlv2di_signed */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern69 (x1)) { case 0: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1667; /* aarch64_simd_reg_shlv8qi_unsigned */ case 1: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1668; /* aarch64_simd_reg_shlv16qi_unsigned */ case 2: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1669; /* aarch64_simd_reg_shlv4hi_unsigned */ case 3: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1670; /* aarch64_simd_reg_shlv8hi_unsigned */ case 4: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1671; /* aarch64_simd_reg_shlv2si_unsigned */ case 5: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1672; /* aarch64_simd_reg_shlv4si_unsigned */ case 6: if (! #line 979 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1673; /* aarch64_simd_reg_shlv2di_unsigned */ 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, 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_V8QImode: if (pattern56 (x3, E_V8QImode) != 0 || ! #line 4850 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3085; /* aarch64_addpv8qi */ case E_V4HImode: if (pattern56 (x3, E_V4HImode) != 0 || ! #line 4850 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3086; /* aarch64_addpv4hi */ case E_V2SImode: if (pattern56 (x3, E_V2SImode) != 0 || ! #line 4850 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3087; /* aarch64_addpv2si */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern94 (x1)) { case 0: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2892; /* aarch64_uqrshrn_nv8hi */ case 1: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2898; /* aarch64_uqrshrn_nv4si */ case 2: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2904; /* aarch64_uqrshrn_nv2di */ case 3: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2910; /* aarch64_uqrshrn_nhi */ case 4: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2916; /* aarch64_uqrshrn_nsi */ case 5: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2922; /* aarch64_uqrshrn_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern94 (x1)) { case 0: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2891; /* aarch64_sqrshrn_nv8hi */ case 1: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2897; /* aarch64_sqrshrn_nv4si */ case 2: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2903; /* aarch64_sqrshrn_nv2di */ case 3: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2909; /* aarch64_sqrshrn_nhi */ case 4: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2915; /* aarch64_sqrshrn_nsi */ case 5: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2921; /* aarch64_sqrshrn_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern94 (x1)) { case 0: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2890; /* aarch64_uqshrn_nv8hi */ case 1: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2896; /* aarch64_uqshrn_nv4si */ case 2: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2902; /* aarch64_uqshrn_nv2di */ case 3: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2908; /* aarch64_uqshrn_nhi */ case 4: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2914; /* aarch64_uqshrn_nsi */ case 5: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2920; /* aarch64_uqshrn_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern94 (x1)) { case 0: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2889; /* aarch64_sqshrn_nv8hi */ case 1: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2895; /* aarch64_sqshrn_nv4si */ case 2: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2901; /* aarch64_sqshrn_nv2di */ case 3: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2907; /* aarch64_sqshrn_nhi */ case 4: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2913; /* aarch64_sqshrn_nsi */ case 5: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2919; /* aarch64_sqshrn_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern94 (x1)) { case 0: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2888; /* aarch64_sqrshrun_nv8hi */ case 1: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2894; /* aarch64_sqrshrun_nv4si */ case 2: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2900; /* aarch64_sqrshrun_nv2di */ case 3: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2906; /* aarch64_sqrshrun_nhi */ case 4: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2912; /* aarch64_sqrshrun_nsi */ case 5: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2918; /* aarch64_sqrshrun_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern94 (x1)) { case 0: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2887; /* aarch64_sqshrun_nv8hi */ case 1: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2893; /* aarch64_sqshrun_nv4si */ case 2: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2899; /* aarch64_sqshrun_nv2di */ case 3: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2905; /* aarch64_sqshrun_nhi */ case 4: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2911; /* aarch64_sqshrun_nsi */ case 5: if (! #line 4600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2917; /* aarch64_sqshrun_ndi */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern85 (x1)) { case 0: if (! #line 4510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2763; /* aarch64_ushll_nv8qi */ case 1: if (! #line 4527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2769; /* aarch64_ushll2_nv16qi */ case 2: if (! #line 4510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2765; /* aarch64_ushll_nv4hi */ case 3: if (! #line 4527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2771; /* aarch64_ushll2_nv8hi */ case 4: if (! #line 4510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2767; /* aarch64_ushll_nv2si */ case 5: if (! #line 4527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2773; /* aarch64_ushll2_nv4si */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern85 (x1)) { case 0: if (! #line 4510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2762; /* aarch64_sshll_nv8qi */ case 1: if (! #line 4527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2768; /* aarch64_sshll2_nv16qi */ case 2: if (! #line 4510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2764; /* aarch64_sshll_nv4hi */ case 3: if (! #line 4527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2770; /* aarch64_sshll2_nv8hi */ case 4: if (! #line 4510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2766; /* aarch64_sshll_nv2si */ case 5: if (! #line 4527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2772; /* aarch64_sshll2_nv4si */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2354; /* aarch64_urhsubv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2362; /* aarch64_urhsubv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2370; /* aarch64_urhsubv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2378; /* aarch64_urhsubv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2386; /* aarch64_urhsubv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2394; /* aarch64_urhsubv4si */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2353; /* aarch64_srhsubv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2361; /* aarch64_srhsubv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2369; /* aarch64_srhsubv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2377; /* aarch64_srhsubv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2385; /* aarch64_srhsubv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2393; /* aarch64_srhsubv4si */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2352; /* aarch64_uhsubv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2360; /* aarch64_uhsubv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2368; /* aarch64_uhsubv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2376; /* aarch64_uhsubv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2384; /* aarch64_uhsubv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2392; /* aarch64_uhsubv4si */ 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]; int res ATTRIBUTE_UNUSED; switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2351; /* aarch64_shsubv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2359; /* aarch64_shsubv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2367; /* aarch64_shsubv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2375; /* aarch64_shsubv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2383; /* aarch64_shsubv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2391; /* aarch64_shsubv4si */ 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; 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_V8QImode: if (!aarch64_simd_struct_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3323; /* aarch64_be_st1v8qi */ case E_V16QImode: if (!aarch64_simd_struct_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3324; /* aarch64_be_st1v16qi */ case E_V4HImode: if (!aarch64_simd_struct_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3325; /* aarch64_be_st1v4hi */ case E_V8HImode: if (!aarch64_simd_struct_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3326; /* aarch64_be_st1v8hi */ case E_V2SImode: if (!aarch64_simd_struct_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3327; /* aarch64_be_st1v2si */ case E_V4SImode: if (!aarch64_simd_struct_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3328; /* aarch64_be_st1v4si */ case E_V2DImode: if (!aarch64_simd_struct_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3329; /* aarch64_be_st1v2di */ case E_V4HFmode: if (!aarch64_simd_struct_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3330; /* aarch64_be_st1v4hf */ case E_V8HFmode: if (!aarch64_simd_struct_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3331; /* aarch64_be_st1v8hf */ case E_V2SFmode: if (!aarch64_simd_struct_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3332; /* aarch64_be_st1v2sf */ case E_V4SFmode: if (!aarch64_simd_struct_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3333; /* aarch64_be_st1v4sf */ case E_V2DFmode: if (!aarch64_simd_struct_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3334; /* aarch64_be_st1v2df */ case E_DImode: if (!aarch64_simd_struct_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 5312 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3335; /* aarch64_be_st1di */ default: return -1; } } static int recog_103 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; 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_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !aarch64_simd_struct_operand (operands[1], E_V8QImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3310; /* aarch64_be_ld1v8qi */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !aarch64_simd_struct_operand (operands[1], E_V16QImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3311; /* aarch64_be_ld1v16qi */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !aarch64_simd_struct_operand (operands[1], E_V4HImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3312; /* aarch64_be_ld1v4hi */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !aarch64_simd_struct_operand (operands[1], E_V8HImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3313; /* aarch64_be_ld1v8hi */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !aarch64_simd_struct_operand (operands[1], E_V2SImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3314; /* aarch64_be_ld1v2si */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !aarch64_simd_struct_operand (operands[1], E_V4SImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3315; /* aarch64_be_ld1v4si */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !aarch64_simd_struct_operand (operands[1], E_V2DImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3316; /* aarch64_be_ld1v2di */ case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !aarch64_simd_struct_operand (operands[1], E_V4HFmode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3317; /* aarch64_be_ld1v4hf */ case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !aarch64_simd_struct_operand (operands[1], E_V8HFmode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3318; /* aarch64_be_ld1v8hf */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !aarch64_simd_struct_operand (operands[1], E_V2SFmode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3319; /* aarch64_be_ld1v2sf */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !aarch64_simd_struct_operand (operands[1], E_V4SFmode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3320; /* aarch64_be_ld1v4sf */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !aarch64_simd_struct_operand (operands[1], E_V2DFmode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3321; /* aarch64_be_ld1v2df */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !aarch64_simd_struct_operand (operands[1], E_DImode) || ! #line 5303 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3322; /* aarch64_be_ld1di */ 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; 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_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1513; /* aarch64_absv8qi */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1514; /* aarch64_absv16qi */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1515; /* aarch64_absv4hi */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1516; /* aarch64_absv8hi */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1517; /* aarch64_absv2si */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1518; /* aarch64_absv4si */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1519; /* aarch64_absv2di */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode) || ! #line 703 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1520; /* aarch64_absdi */ default: return -1; } } static int recog_105 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pnum_clobbers ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx x2, x3, x4; 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_VNx16QImode: if (!register_operand (operands[0], E_VNx16QImode) || GET_MODE (x3) != E_VNx16QImode || !register_operand (operands[1], E_VNx16QImode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4077; /* *aarch64_sve_revvnx16qi */ case E_VNx8HImode: if (!register_operand (operands[0], E_VNx8HImode) || GET_MODE (x3) != E_VNx8HImode || !register_operand (operands[1], E_VNx8HImode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4078; /* *aarch64_sve_revvnx8hi */ case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x3) != E_VNx4SImode || !register_operand (operands[1], E_VNx4SImode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4079; /* *aarch64_sve_revvnx4si */ case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x3) != E_VNx2DImode || !register_operand (operands[1], E_VNx2DImode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4080; /* *aarch64_sve_revvnx2di */ case E_VNx8HFmode: if (!register_operand (operands[0], E_VNx8HFmode) || GET_MODE (x3) != E_VNx8HFmode || !register_operand (operands[1], E_VNx8HFmode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4081; /* *aarch64_sve_revvnx8hf */ case E_VNx4SFmode: if (!register_operand (operands[0], E_VNx4SFmode) || GET_MODE (x3) != E_VNx4SFmode || !register_operand (operands[1], E_VNx4SFmode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4082; /* *aarch64_sve_revvnx4sf */ case E_VNx2DFmode: if (!register_operand (operands[0], E_VNx2DFmode) || GET_MODE (x3) != E_VNx2DFmode || !register_operand (operands[1], E_VNx2DFmode) || ! #line 870 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4083; /* *aarch64_sve_revvnx2df */ default: return -1; } } static int recog_106 (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_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 2379 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2136; /* aarch64_reduc_plus_internalv8qi */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 2379 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2137; /* aarch64_reduc_plus_internalv16qi */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 2379 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2138; /* aarch64_reduc_plus_internalv4hi */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 2379 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2139; /* aarch64_reduc_plus_internalv8hi */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 2379 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2140; /* aarch64_reduc_plus_internalv4si */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 2379 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2141; /* aarch64_reduc_plus_internalv2di */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 2388 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2142; /* aarch64_reduc_plus_internalv2si */ default: return -1; } } static int recog_107 (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) || GET_MODE (x3) != E_SImode || !register_operand (operands[1], E_SImode)) return -1; return 679; /* rbitsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 680; /* rbitdi2 */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1382; /* aarch64_rbitv8qi */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1383; /* aarch64_rbitv16qi */ default: return -1; } } static int recog_108 (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, 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 = XVECEXP (x2, 0, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_SImode) || ! #line 6111 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3574; /* aarch64_crypto_sha1hsi */ case VEC_SELECT: if (GET_MODE (x4) != E_SImode) return -1; x5 = XEXP (x4, 1); if (GET_CODE (x5) != PARALLEL || XVECLEN (x5, 0) != 1) return -1; x6 = XVECEXP (x5, 0, 0); if (GET_CODE (x6) != CONST_INT) return -1; x7 = XEXP (x4, 0); operands[1] = x7; if (!register_operand (operands[1], E_V4SImode)) return -1; switch (XWINT (x6, 0)) { case 0L: if (! #line 6121 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2 && !BYTES_BIG_ENDIAN)) return -1; return 3575; /* aarch64_crypto_sha1hv4si */ case 3L: if (! #line 6131 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2 && BYTES_BIG_ENDIAN)) return -1; return 3576; /* aarch64_be_crypto_sha1hv4si */ default: return -1; } default: return -1; } } static int recog_109 (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_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode || !register_operand (operands[1], E_HFmode) || !( #line 5973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 3551; /* aarch64_frecpxhf */ case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || ! #line 5973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3552; /* aarch64_frecpxsf */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || ! #line 5973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3553; /* aarch64_frecpxdf */ default: return -1; } } static int recog_110 (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 (pattern114 (x1)) { case 0: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3461; /* aarch64_rev32v8qi */ case 1: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3464; /* aarch64_rev32v16qi */ case 2: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3467; /* aarch64_rev32v4hi */ case 3: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3470; /* aarch64_rev32v8hi */ case 4: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3473; /* aarch64_rev32v2si */ case 5: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3476; /* aarch64_rev32v4si */ case 6: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3479; /* aarch64_rev32v2di */ case 7: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3482; /* aarch64_rev32v4hf */ case 8: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3485; /* aarch64_rev32v8hf */ case 9: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3488; /* aarch64_rev32v2sf */ case 10: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3491; /* aarch64_rev32v4sf */ case 11: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3494; /* aarch64_rev32v2df */ default: return -1; } } static int recog_111 (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 (pattern114 (x1)) { case 0: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3462; /* aarch64_rev16v8qi */ case 1: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3465; /* aarch64_rev16v16qi */ case 2: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3468; /* aarch64_rev16v4hi */ case 3: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3471; /* aarch64_rev16v8hi */ case 4: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3474; /* aarch64_rev16v2si */ case 5: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3477; /* aarch64_rev16v4si */ case 6: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3480; /* aarch64_rev16v2di */ case 7: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3483; /* aarch64_rev16v4hf */ case 8: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3486; /* aarch64_rev16v8hf */ case 9: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3489; /* aarch64_rev16v2sf */ case 10: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3492; /* aarch64_rev16v4sf */ case 11: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3495; /* aarch64_rev16v2df */ default: return -1; } } static int recog_112 (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 (pattern114 (x1)) { case 0: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3460; /* aarch64_rev64v8qi */ case 1: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3463; /* aarch64_rev64v16qi */ case 2: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3466; /* aarch64_rev64v4hi */ case 3: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3469; /* aarch64_rev64v8hi */ case 4: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3472; /* aarch64_rev64v2si */ case 5: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3475; /* aarch64_rev64v4si */ case 6: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3478; /* aarch64_rev64v2di */ case 7: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3481; /* aarch64_rev64v4hf */ case 8: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3484; /* aarch64_rev64v8hf */ case 9: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3487; /* aarch64_rev64v2sf */ case 10: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3490; /* aarch64_rev64v4sf */ case 11: if (! #line 5774 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3493; /* aarch64_rev64v2df */ default: return -1; } } static int recog_113 (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; if (pnum_clobbers == NULL) return -1; x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != 0) return -1; x3 = XEXP (x1, 1); x4 = XVECEXP (x3, 0, 0); operands[0] = x4; if (!aarch64_valid_symref (operands[0], E_VOIDmode)) return -1; switch (GET_MODE (x2)) { case E_SImode: if (GET_MODE (x3) != E_SImode) return -1; if (( #line 6761 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && !TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode))) { *pnum_clobbers = 3; return 1061; /* tlsdesc_small_advsimd_si */ } if (!( #line 6824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode))) return -1; *pnum_clobbers = 51; return 1063; /* tlsdesc_small_sve_si */ case E_DImode: if (GET_MODE (x3) != E_DImode) return -1; if (( #line 6761 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && !TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode))) { *pnum_clobbers = 3; return 1062; /* tlsdesc_small_advsimd_di */ } if (!( #line 6824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode))) return -1; *pnum_clobbers = 51; return 1064; /* tlsdesc_small_sve_di */ default: return -1; } } static int recog_114 (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_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 5993 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3562; /* aarch64_urecpev2si */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 5993 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3563; /* aarch64_urecpev4si */ default: return -1; } } static int recog_115 (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 (pattern110 (x1)) { case 0: if (!( #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3543; /* aarch64_frecpev4hf */ case 1: if (!( #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3544; /* aarch64_frecpev8hf */ case 2: if (! #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3545; /* aarch64_frecpev2sf */ case 3: if (! #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3546; /* aarch64_frecpev4sf */ case 4: if (! #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3547; /* aarch64_frecpev2df */ case 5: if (!( #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3548; /* aarch64_frecpehf */ case 6: if (! #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3549; /* aarch64_frecpesf */ case 7: if (! #line 5964 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3550; /* aarch64_frecpedf */ default: return -1; } } static int recog_116 (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_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 2397 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2143; /* reduc_plus_scal_v2sf */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 2397 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2144; /* reduc_plus_scal_v2df */ default: return -1; } } static int recog_117 (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 (pattern110 (x1)) { case 0: if (!( #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1482; /* aarch64_rsqrtev4hf */ case 1: if (!( #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1483; /* aarch64_rsqrtev8hf */ case 2: if (! #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1484; /* aarch64_rsqrtev2sf */ case 3: if (! #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1485; /* aarch64_rsqrtev4sf */ case 4: if (! #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1486; /* aarch64_rsqrtev2df */ case 5: if (!( #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1487; /* aarch64_rsqrtehf */ case 6: if (! #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1488; /* aarch64_rsqrtesf */ case 7: if (! #line 641 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1489; /* aarch64_rsqrtedf */ default: return -1; } } static int recog_118 (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 = XVECEXP (x2, 0, 1); x4 = XVECEXP (x3, 0, 0); operands[2] = x4; x5 = XVECEXP (x3, 0, 1); operands[3] = x5; switch (XINT (x3, 1)) { case 237: switch (pattern416 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5004; /* *cond_addvnx8hf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5022; /* *cond_addvnx8hf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5040; /* *cond_addvnx8hf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5076; /* *cond_addvnx8hf_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5010; /* *cond_addvnx4sf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5028; /* *cond_addvnx4sf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5046; /* *cond_addvnx4sf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5082; /* *cond_addvnx4sf_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5016; /* *cond_addvnx2df_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5034; /* *cond_addvnx2df_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5052; /* *cond_addvnx2df_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5088; /* *cond_addvnx2df_any */ case 3: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5058; /* *cond_addvnx8hf_z */ case 4: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5064; /* *cond_addvnx4sf_z */ case 5: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5070; /* *cond_addvnx2df_z */ default: return -1; } case 238: switch (pattern416 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5005; /* *cond_subvnx8hf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5023; /* *cond_subvnx8hf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5041; /* *cond_subvnx8hf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5077; /* *cond_subvnx8hf_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5011; /* *cond_subvnx4sf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5029; /* *cond_subvnx4sf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5047; /* *cond_subvnx4sf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5083; /* *cond_subvnx4sf_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5017; /* *cond_subvnx2df_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5035; /* *cond_subvnx2df_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5053; /* *cond_subvnx2df_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5089; /* *cond_subvnx2df_any */ case 3: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5059; /* *cond_subvnx8hf_z */ case 4: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5065; /* *cond_subvnx4sf_z */ case 5: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5071; /* *cond_subvnx2df_z */ default: return -1; } case 239: switch (pattern416 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5006; /* *cond_mulvnx8hf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5024; /* *cond_mulvnx8hf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5042; /* *cond_mulvnx8hf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5078; /* *cond_mulvnx8hf_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5012; /* *cond_mulvnx4sf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5030; /* *cond_mulvnx4sf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5048; /* *cond_mulvnx4sf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5084; /* *cond_mulvnx4sf_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5018; /* *cond_mulvnx2df_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5036; /* *cond_mulvnx2df_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5054; /* *cond_mulvnx2df_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5090; /* *cond_mulvnx2df_any */ case 3: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5060; /* *cond_mulvnx8hf_z */ case 4: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5066; /* *cond_mulvnx4sf_z */ case 5: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5072; /* *cond_mulvnx2df_z */ default: return -1; } case 240: switch (pattern416 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5007; /* *cond_divvnx8hf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5025; /* *cond_divvnx8hf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5043; /* *cond_divvnx8hf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5079; /* *cond_divvnx8hf_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5013; /* *cond_divvnx4sf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5031; /* *cond_divvnx4sf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5049; /* *cond_divvnx4sf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5085; /* *cond_divvnx4sf_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5019; /* *cond_divvnx2df_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5037; /* *cond_divvnx2df_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5055; /* *cond_divvnx2df_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5091; /* *cond_divvnx2df_any */ case 3: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5061; /* *cond_divvnx8hf_z */ case 4: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5067; /* *cond_divvnx4sf_z */ case 5: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5073; /* *cond_divvnx2df_z */ default: return -1; } case 241: switch (pattern416 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5008; /* *cond_smaxvnx8hf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5026; /* *cond_smaxvnx8hf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5044; /* *cond_smaxvnx8hf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5080; /* *cond_smaxvnx8hf_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5014; /* *cond_smaxvnx4sf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5032; /* *cond_smaxvnx4sf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5050; /* *cond_smaxvnx4sf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5086; /* *cond_smaxvnx4sf_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5020; /* *cond_smaxvnx2df_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5038; /* *cond_smaxvnx2df_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5056; /* *cond_smaxvnx2df_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5092; /* *cond_smaxvnx2df_any */ case 3: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5062; /* *cond_smaxvnx8hf_z */ case 4: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5068; /* *cond_smaxvnx4sf_z */ case 5: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5074; /* *cond_smaxvnx2df_z */ default: return -1; } case 242: switch (pattern416 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5009; /* *cond_sminvnx8hf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5027; /* *cond_sminvnx8hf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5045; /* *cond_sminvnx8hf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5081; /* *cond_sminvnx8hf_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5015; /* *cond_sminvnx4sf_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5033; /* *cond_sminvnx4sf_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5051; /* *cond_sminvnx4sf_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5087; /* *cond_sminvnx4sf_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 2886 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5021; /* *cond_sminvnx2df_0 */ if (rtx_equal_p (x6, operands[2]) && #line 2905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5039; /* *cond_sminvnx2df_2 */ if (rtx_equal_p (x6, operands[3]) && #line 2923 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5057; /* *cond_sminvnx2df_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5093; /* *cond_sminvnx2df_any */ case 3: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5063; /* *cond_sminvnx8hf_z */ case 4: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5069; /* *cond_sminvnx4sf_z */ case 5: if (! #line 2941 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 5075; /* *cond_sminvnx2df_z */ default: return -1; } default: return -1; } } static int recog_119 (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, 1); x3 = XVECEXP (x2, 0, 0); operands[1] = x3; x4 = XVECEXP (x2, 0, 1); switch (XVECLEN (x4, 0)) { case 2: return recog_118 (x1, insn, pnum_clobbers); case 3: x5 = XVECEXP (x4, 0, 0); operands[2] = x5; x6 = XVECEXP (x4, 0, 1); operands[3] = x6; x7 = XVECEXP (x4, 0, 2); operands[4] = x7; switch (XINT (x4, 1)) { case 243: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern456 (x2, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5094; /* *cond_fmavnx8hf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5106; /* *cond_fmavnx8hf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx8HFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5118; /* *cond_fmavnx8hf_any */ case E_VNx4SFmode: if (pattern456 (x2, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5098; /* *cond_fmavnx4sf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5110; /* *cond_fmavnx4sf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx4SFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5122; /* *cond_fmavnx4sf_any */ case E_VNx2DFmode: if (pattern456 (x2, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5102; /* *cond_fmavnx2df_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5114; /* *cond_fmavnx2df_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx2DFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5126; /* *cond_fmavnx2df_any */ default: return -1; } case 244: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern456 (x2, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5095; /* *cond_fnmavnx8hf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5107; /* *cond_fnmavnx8hf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx8HFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5119; /* *cond_fnmavnx8hf_any */ case E_VNx4SFmode: if (pattern456 (x2, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5099; /* *cond_fnmavnx4sf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5111; /* *cond_fnmavnx4sf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx4SFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5123; /* *cond_fnmavnx4sf_any */ case E_VNx2DFmode: if (pattern456 (x2, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5103; /* *cond_fnmavnx2df_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5115; /* *cond_fnmavnx2df_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx2DFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5127; /* *cond_fnmavnx2df_any */ default: return -1; } case 245: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern456 (x2, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5096; /* *cond_fnmsvnx8hf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5108; /* *cond_fnmsvnx8hf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx8HFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5120; /* *cond_fnmsvnx8hf_any */ case E_VNx4SFmode: if (pattern456 (x2, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5100; /* *cond_fnmsvnx4sf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5112; /* *cond_fnmsvnx4sf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx4SFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5124; /* *cond_fnmsvnx4sf_any */ case E_VNx2DFmode: if (pattern456 (x2, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5104; /* *cond_fnmsvnx2df_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5116; /* *cond_fnmsvnx2df_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx2DFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5128; /* *cond_fnmsvnx2df_any */ default: return -1; } case 246: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern456 (x2, E_VNx8HFmode, E_VNx8BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5097; /* *cond_fmsvnx8hf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5109; /* *cond_fmsvnx8hf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx8HFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5121; /* *cond_fmsvnx8hf_any */ case E_VNx4SFmode: if (pattern456 (x2, E_VNx4SFmode, E_VNx4BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5101; /* *cond_fmsvnx4sf_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5113; /* *cond_fmsvnx4sf_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx4SFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5125; /* *cond_fmsvnx4sf_any */ case E_VNx2DFmode: if (pattern456 (x2, E_VNx2DFmode, E_VNx2BImode) != 0) return -1; x8 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x8, operands[2]) && #line 3006 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5105; /* *cond_fmsvnx2df_2 */ if (rtx_equal_p (x8, operands[4]) && #line 3025 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 5117; /* *cond_fmsvnx2df_4 */ operands[5] = x8; if (!aarch64_simd_reg_or_zero (operands[5], E_VNx2DFmode) || ! #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5]))) return -1; return 5129; /* *cond_fmsvnx2df_any */ default: return -1; } default: return -1; } default: return -1; } } static int recog_120 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4602; /* *cond_xorvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4646; /* *cond_xorvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4690; /* *cond_xorvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4778; /* *cond_xorvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4612; /* *cond_xorvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4656; /* *cond_xorvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4700; /* *cond_xorvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4788; /* *cond_xorvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4622; /* *cond_xorvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4666; /* *cond_xorvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4710; /* *cond_xorvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4798; /* *cond_xorvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4632; /* *cond_xorvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4676; /* *cond_xorvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4720; /* *cond_xorvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4808; /* *cond_xorvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4734; /* *cond_xorvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4744; /* *cond_xorvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4754; /* *cond_xorvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4764; /* *cond_xorvnx2di_z */ default: return -1; } } static int recog_121 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4601; /* *cond_iorvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4645; /* *cond_iorvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4689; /* *cond_iorvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4777; /* *cond_iorvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4611; /* *cond_iorvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4655; /* *cond_iorvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4699; /* *cond_iorvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4787; /* *cond_iorvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4621; /* *cond_iorvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4665; /* *cond_iorvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4709; /* *cond_iorvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4797; /* *cond_iorvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4631; /* *cond_iorvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4675; /* *cond_iorvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4719; /* *cond_iorvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4807; /* *cond_iorvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4733; /* *cond_iorvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4743; /* *cond_iorvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4753; /* *cond_iorvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4763; /* *cond_iorvnx2di_z */ default: return -1; } } static int recog_122 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4600; /* *cond_andvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4644; /* *cond_andvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4688; /* *cond_andvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4776; /* *cond_andvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4610; /* *cond_andvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4654; /* *cond_andvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4698; /* *cond_andvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4786; /* *cond_andvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4620; /* *cond_andvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4664; /* *cond_andvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4708; /* *cond_andvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4796; /* *cond_andvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4630; /* *cond_andvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4674; /* *cond_andvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4718; /* *cond_andvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4806; /* *cond_andvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4732; /* *cond_andvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4742; /* *cond_andvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4752; /* *cond_andvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4762; /* *cond_andvnx2di_z */ default: return -1; } } static int recog_123 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4599; /* *cond_uminvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4643; /* *cond_uminvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4687; /* *cond_uminvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4775; /* *cond_uminvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4609; /* *cond_uminvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4653; /* *cond_uminvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4697; /* *cond_uminvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4785; /* *cond_uminvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4619; /* *cond_uminvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4663; /* *cond_uminvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4707; /* *cond_uminvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4795; /* *cond_uminvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4629; /* *cond_uminvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4673; /* *cond_uminvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4717; /* *cond_uminvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4805; /* *cond_uminvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4731; /* *cond_uminvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4741; /* *cond_uminvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4751; /* *cond_uminvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4761; /* *cond_uminvnx2di_z */ default: return -1; } } static int recog_124 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4598; /* *cond_sminvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4642; /* *cond_sminvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4686; /* *cond_sminvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4774; /* *cond_sminvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4608; /* *cond_sminvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4652; /* *cond_sminvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4696; /* *cond_sminvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4784; /* *cond_sminvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4618; /* *cond_sminvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4662; /* *cond_sminvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4706; /* *cond_sminvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4794; /* *cond_sminvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4628; /* *cond_sminvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4672; /* *cond_sminvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4716; /* *cond_sminvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4804; /* *cond_sminvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4730; /* *cond_sminvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4740; /* *cond_sminvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4750; /* *cond_sminvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4760; /* *cond_sminvnx2di_z */ default: return -1; } } static int recog_125 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4597; /* *cond_umaxvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4641; /* *cond_umaxvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4685; /* *cond_umaxvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4773; /* *cond_umaxvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4607; /* *cond_umaxvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4651; /* *cond_umaxvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4695; /* *cond_umaxvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4783; /* *cond_umaxvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4617; /* *cond_umaxvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4661; /* *cond_umaxvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4705; /* *cond_umaxvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4793; /* *cond_umaxvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4627; /* *cond_umaxvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4671; /* *cond_umaxvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4715; /* *cond_umaxvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4803; /* *cond_umaxvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4729; /* *cond_umaxvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4739; /* *cond_umaxvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4749; /* *cond_umaxvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4759; /* *cond_umaxvnx2di_z */ default: return -1; } } static int recog_126 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4596; /* *cond_smaxvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4640; /* *cond_smaxvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4684; /* *cond_smaxvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4772; /* *cond_smaxvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4606; /* *cond_smaxvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4650; /* *cond_smaxvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4694; /* *cond_smaxvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4782; /* *cond_smaxvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4616; /* *cond_smaxvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4660; /* *cond_smaxvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4704; /* *cond_smaxvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4792; /* *cond_smaxvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4626; /* *cond_smaxvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4670; /* *cond_smaxvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4714; /* *cond_smaxvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4802; /* *cond_smaxvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4728; /* *cond_smaxvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4738; /* *cond_smaxvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4748; /* *cond_smaxvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4758; /* *cond_smaxvnx2di_z */ default: return -1; } } static int recog_127 (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 (pattern208 (x2)) { case 0: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4595; /* *cond_mulvnx16qi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4639; /* *cond_mulvnx16qi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4683; /* *cond_mulvnx16qi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4771; /* *cond_mulvnx16qi_any */ case 1: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4605; /* *cond_mulvnx8hi_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4649; /* *cond_mulvnx8hi_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4693; /* *cond_mulvnx8hi_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4781; /* *cond_mulvnx8hi_any */ case 2: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4615; /* *cond_mulvnx4si_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4659; /* *cond_mulvnx4si_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4703; /* *cond_mulvnx4si_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4791; /* *cond_mulvnx4si_any */ case 3: x3 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x3, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4625; /* *cond_mulvnx2di_0 */ if (rtx_equal_p (x3, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4669; /* *cond_mulvnx2di_2 */ if (rtx_equal_p (x3, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4713; /* *cond_mulvnx2di_3 */ operands[4] = x3; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4801; /* *cond_mulvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4727; /* *cond_mulvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4737; /* *cond_mulvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4747; /* *cond_mulvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4757; /* *cond_mulvnx2di_z */ default: return -1; } } static int recog_128 (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 = XVECEXP (x2, 0, 1); switch (GET_CODE (x3)) { case VEC_DUPLICATE: x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x5 = XEXP (x3, 0); operands[2] = x5; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern377 (x2, E_VNx16QImode, E_QImode, E_VNx16BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3931; /* sve_ld1rvnx16qi */ case E_VNx8HImode: if (pattern377 (x2, E_VNx8HImode, E_HImode, E_VNx8BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3932; /* sve_ld1rvnx8hi */ case E_VNx4SImode: if (pattern377 (x2, E_VNx4SImode, E_SImode, E_VNx4BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3933; /* sve_ld1rvnx4si */ case E_VNx2DImode: if (pattern377 (x2, E_VNx2DImode, E_DImode, E_VNx2BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3934; /* sve_ld1rvnx2di */ case E_VNx8HFmode: if (pattern377 (x2, E_VNx8HFmode, E_HFmode, E_VNx8BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3935; /* sve_ld1rvnx8hf */ case E_VNx4SFmode: if (pattern377 (x2, E_VNx4SFmode, E_SFmode, E_VNx4BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3936; /* sve_ld1rvnx4sf */ case E_VNx2DFmode: if (pattern377 (x2, E_VNx2DFmode, E_DFmode, E_VNx2BImode) != 0 || ! #line 678 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3937; /* sve_ld1rvnx2df */ default: return -1; } case REG: case SUBREG: operands[1] = x3; x4 = XVECEXP (x2, 0, 0); operands[3] = x4; x6 = XVECEXP (x2, 0, 2); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern378 (x2, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4548; /* vcond_mask_vnx16qivnx16bi */ case E_VNx8HImode: if (pattern378 (x2, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4549; /* vcond_mask_vnx8hivnx8bi */ case E_VNx4SImode: if (pattern378 (x2, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4550; /* vcond_mask_vnx4sivnx4bi */ case E_VNx2DImode: if (pattern378 (x2, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4551; /* vcond_mask_vnx2divnx2bi */ case E_VNx8HFmode: if (pattern378 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4552; /* vcond_mask_vnx8hfvnx8bi */ case E_VNx4SFmode: if (pattern378 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4553; /* vcond_mask_vnx4sfvnx4bi */ case E_VNx2DFmode: if (pattern378 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 1614 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4554; /* vcond_mask_vnx2dfvnx2bi */ default: return -1; } case CONST_VECTOR: case CONST: operands[2] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; x6 = XVECEXP (x2, 0, 2); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern379 (x2, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 1626 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4555; /* aarch64_sve_dupvnx16qi_const */ case E_VNx8HImode: if (pattern379 (x2, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 1626 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4556; /* aarch64_sve_dupvnx8hi_const */ case E_VNx4SImode: if (pattern379 (x2, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1626 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4557; /* aarch64_sve_dupvnx4si_const */ case E_VNx2DImode: if (pattern379 (x2, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1626 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4558; /* aarch64_sve_dupvnx2di_const */ default: return -1; } case PLUS: switch (pattern208 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4593; /* *cond_addvnx16qi_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4637; /* *cond_addvnx16qi_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4681; /* *cond_addvnx16qi_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4769; /* *cond_addvnx16qi_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4603; /* *cond_addvnx8hi_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4647; /* *cond_addvnx8hi_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4691; /* *cond_addvnx8hi_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4779; /* *cond_addvnx8hi_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4613; /* *cond_addvnx4si_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4657; /* *cond_addvnx4si_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4701; /* *cond_addvnx4si_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4789; /* *cond_addvnx4si_any */ case 3: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4623; /* *cond_addvnx2di_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4667; /* *cond_addvnx2di_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4711; /* *cond_addvnx2di_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4799; /* *cond_addvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4725; /* *cond_addvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4735; /* *cond_addvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4745; /* *cond_addvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4755; /* *cond_addvnx2di_z */ default: return -1; } case MINUS: switch (pattern208 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4594; /* *cond_subvnx16qi_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4638; /* *cond_subvnx16qi_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4682; /* *cond_subvnx16qi_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx16QImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4770; /* *cond_subvnx16qi_any */ case 1: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4604; /* *cond_subvnx8hi_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4648; /* *cond_subvnx8hi_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4692; /* *cond_subvnx8hi_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx8HImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4780; /* *cond_subvnx8hi_any */ case 2: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4614; /* *cond_subvnx4si_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4658; /* *cond_subvnx4si_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4702; /* *cond_subvnx4si_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4790; /* *cond_subvnx4si_any */ case 3: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4624; /* *cond_subvnx2di_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1920 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4668; /* *cond_subvnx2di_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1953 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4712; /* *cond_subvnx2di_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2015 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4800; /* *cond_subvnx2di_any */ case 4: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4726; /* *cond_subvnx16qi_z */ case 5: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4736; /* *cond_subvnx8hi_z */ case 6: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4746; /* *cond_subvnx4si_z */ case 7: if (! #line 1986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4756; /* *cond_subvnx2di_z */ default: return -1; } case MULT: return recog_127 (x1, insn, pnum_clobbers); case SMAX: return recog_126 (x1, insn, pnum_clobbers); case UMAX: return recog_125 (x1, insn, pnum_clobbers); case SMIN: return recog_124 (x1, insn, pnum_clobbers); case UMIN: return recog_123 (x1, insn, pnum_clobbers); case AND: return recog_122 (x1, insn, pnum_clobbers); case IOR: return recog_121 (x1, insn, pnum_clobbers); case XOR: return recog_120 (x1, insn, pnum_clobbers); case DIV: switch (pattern209 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1902 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4633; /* *cond_divvnx4si_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1936 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4677; /* *cond_divvnx4si_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4721; /* *cond_divvnx4si_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4817; /* *cond_divvnx4si_any */ case 1: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4809; /* *cond_divvnx16qi_any */ case 2: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4813; /* *cond_divvnx8hi_any */ case 3: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4821; /* *cond_divvnx2di_any */ case 4: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1902 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4635; /* *cond_divvnx2di_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1936 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4679; /* *cond_divvnx2di_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4723; /* *cond_divvnx2di_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4823; /* *cond_divvnx2di_any */ case 5: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4811; /* *cond_divvnx16qi_any */ case 6: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4815; /* *cond_divvnx8hi_any */ case 7: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4819; /* *cond_divvnx4si_any */ case 8: if (! #line 2000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4765; /* *cond_divvnx4si_z */ case 9: if (! #line 2000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4767; /* *cond_divvnx2di_z */ default: return -1; } case UDIV: switch (pattern209 (x2)) { case 0: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1902 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4634; /* *cond_udivvnx4si_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1936 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4678; /* *cond_udivvnx4si_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4722; /* *cond_udivvnx4si_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx4SImode) || ! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4818; /* *cond_udivvnx4si_any */ case 1: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4810; /* *cond_udivvnx16qi_any */ case 2: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4814; /* *cond_udivvnx8hi_any */ case 3: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4822; /* *cond_udivvnx2di_any */ case 4: x6 = XVECEXP (x2, 0, 2); if (rtx_equal_p (x6, operands[0]) && #line 1902 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4636; /* *cond_udivvnx2di_0 */ if (rtx_equal_p (x6, operands[2]) && #line 1936 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4680; /* *cond_udivvnx2di_2 */ if (rtx_equal_p (x6, operands[3]) && #line 1969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4724; /* *cond_udivvnx2di_3 */ operands[4] = x6; if (!register_operand (operands[4], E_VNx2DImode) || ! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4824; /* *cond_udivvnx2di_any */ case 5: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4812; /* *cond_udivvnx16qi_any */ case 6: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4816; /* *cond_udivvnx8hi_any */ case 7: if (! #line 2028 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4820; /* *cond_udivvnx4si_any */ case 8: if (! #line 2000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4766; /* *cond_udivvnx4si_z */ case 9: if (! #line 2000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4768; /* *cond_udivvnx2di_z */ default: return -1; } case UNSPEC: return recog_119 (x1, insn, pnum_clobbers); default: return -1; } } static int recog_129 (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); operands[2] = x3; x4 = XVECEXP (x2, 0, 1); operands[1] = x4; x5 = XVECEXP (x2, 0, 2); if (!rtx_equal_p (x5, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_VNx32QImode: if (pattern340 (x2, E_VNx32QImode, E_VNx16BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3974; /* vec_mask_store_lanesvnx32qivnx16qi */ case E_VNx16HImode: if (pattern340 (x2, E_VNx16HImode, E_VNx8BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3975; /* vec_mask_store_lanesvnx16hivnx8hi */ case E_VNx8SImode: if (pattern340 (x2, E_VNx8SImode, E_VNx4BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3976; /* vec_mask_store_lanesvnx8sivnx4si */ case E_VNx4DImode: if (pattern340 (x2, E_VNx4DImode, E_VNx2BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3977; /* vec_mask_store_lanesvnx4divnx2di */ case E_VNx16HFmode: if (pattern340 (x2, E_VNx16HFmode, E_VNx8BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3978; /* vec_mask_store_lanesvnx16hfvnx8hf */ case E_VNx8SFmode: if (pattern340 (x2, E_VNx8SFmode, E_VNx4BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3979; /* vec_mask_store_lanesvnx8sfvnx4sf */ case E_VNx4DFmode: if (pattern340 (x2, E_VNx4DFmode, E_VNx2BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3980; /* vec_mask_store_lanesvnx4dfvnx2df */ case E_VNx48QImode: if (pattern340 (x2, E_VNx48QImode, E_VNx16BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3981; /* vec_mask_store_lanesvnx48qivnx16qi */ case E_VNx24HImode: if (pattern340 (x2, E_VNx24HImode, E_VNx8BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3982; /* vec_mask_store_lanesvnx24hivnx8hi */ case E_VNx12SImode: if (pattern340 (x2, E_VNx12SImode, E_VNx4BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3983; /* vec_mask_store_lanesvnx12sivnx4si */ case E_VNx6DImode: if (pattern340 (x2, E_VNx6DImode, E_VNx2BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3984; /* vec_mask_store_lanesvnx6divnx2di */ case E_VNx24HFmode: if (pattern340 (x2, E_VNx24HFmode, E_VNx8BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3985; /* vec_mask_store_lanesvnx24hfvnx8hf */ case E_VNx12SFmode: if (pattern340 (x2, E_VNx12SFmode, E_VNx4BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3986; /* vec_mask_store_lanesvnx12sfvnx4sf */ case E_VNx6DFmode: if (pattern340 (x2, E_VNx6DFmode, E_VNx2BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3987; /* vec_mask_store_lanesvnx6dfvnx2df */ case E_VNx64QImode: if (pattern340 (x2, E_VNx64QImode, E_VNx16BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3988; /* vec_mask_store_lanesvnx64qivnx16qi */ case E_VNx32HImode: if (pattern340 (x2, E_VNx32HImode, E_VNx8BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3989; /* vec_mask_store_lanesvnx32hivnx8hi */ case E_VNx16SImode: if (pattern340 (x2, E_VNx16SImode, E_VNx4BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3990; /* vec_mask_store_lanesvnx16sivnx4si */ case E_VNx8DImode: if (pattern340 (x2, E_VNx8DImode, E_VNx2BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3991; /* vec_mask_store_lanesvnx8divnx2di */ case E_VNx32HFmode: if (pattern340 (x2, E_VNx32HFmode, E_VNx8BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3992; /* vec_mask_store_lanesvnx32hfvnx8hf */ case E_VNx16SFmode: if (pattern340 (x2, E_VNx16SFmode, E_VNx4BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3993; /* vec_mask_store_lanesvnx16sfvnx4sf */ case E_VNx8DFmode: if (pattern340 (x2, E_VNx8DFmode, E_VNx2BImode) != 0 || ! #line 788 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3994; /* vec_mask_store_lanesvnx8dfvnx2df */ default: return -1; } } static int recog_130 (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); operands[1] = x3; x4 = XVECEXP (x2, 0, 1); operands[2] = x4; x5 = XVECEXP (x2, 0, 2); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern338 (x2, E_V8QImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3448; /* aarch64_extv8qi */ case E_V16QImode: if (pattern338 (x2, E_V16QImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3449; /* aarch64_extv16qi */ case E_V4HImode: if (pattern338 (x2, E_V4HImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3450; /* aarch64_extv4hi */ case E_V8HImode: if (pattern338 (x2, E_V8HImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3451; /* aarch64_extv8hi */ case E_V2SImode: if (pattern338 (x2, E_V2SImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3452; /* aarch64_extv2si */ case E_V4SImode: if (pattern338 (x2, E_V4SImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3453; /* aarch64_extv4si */ case E_V2DImode: if (pattern338 (x2, E_V2DImode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3454; /* aarch64_extv2di */ case E_V4HFmode: if (pattern338 (x2, E_V4HFmode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3455; /* aarch64_extv4hf */ case E_V8HFmode: if (pattern338 (x2, E_V8HFmode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3456; /* aarch64_extv8hf */ case E_V2SFmode: if (pattern338 (x2, E_V2SFmode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3457; /* aarch64_extv2sf */ case E_V4SFmode: if (pattern338 (x2, E_V4SFmode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3458; /* aarch64_extv4sf */ case E_V2DFmode: if (pattern338 (x2, E_V2DFmode) != 0 || ! #line 5758 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3459; /* aarch64_extv2df */ case E_VNx16QImode: if (pattern339 (x2, E_VNx16QImode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (QImode), 0, 255))) return -1; return 4091; /* *aarch64_sve_extvnx16qi */ case E_VNx8HImode: if (pattern339 (x2, E_VNx8HImode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (HImode), 0, 255))) return -1; return 4092; /* *aarch64_sve_extvnx8hi */ case E_VNx4SImode: if (pattern339 (x2, E_VNx4SImode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (SImode), 0, 255))) return -1; return 4093; /* *aarch64_sve_extvnx4si */ case E_VNx2DImode: if (pattern339 (x2, E_VNx2DImode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (DImode), 0, 255))) return -1; return 4094; /* *aarch64_sve_extvnx2di */ case E_VNx8HFmode: if (pattern339 (x2, E_VNx8HFmode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (HFmode), 0, 255))) return -1; return 4095; /* *aarch64_sve_extvnx8hf */ case E_VNx4SFmode: if (pattern339 (x2, E_VNx4SFmode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (SFmode), 0, 255))) return -1; return 4096; /* *aarch64_sve_extvnx4sf */ case E_VNx2DFmode: if (pattern339 (x2, E_VNx2DFmode) != 0 || ! #line 892 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[3]) * GET_MODE_SIZE (DFmode), 0, 255))) return -1; return 4097; /* *aarch64_sve_extvnx2df */ default: return -1; } } static int recog_131 (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; x2 = XEXP (x1, 1); switch (pattern171 (x2)) { case 0: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2585; /* aarch64_sqrdmlshv4hi */ case 1: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2587; /* aarch64_sqrdmlshv8hi */ case 2: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2589; /* aarch64_sqrdmlshv2si */ case 3: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2591; /* aarch64_sqrdmlshv4si */ case 4: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2593; /* aarch64_sqrdmlshhi */ case 5: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2595; /* aarch64_sqrdmlshsi */ case 6: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2597; /* aarch64_sqrdmlsh_lanev4hi */ case 7: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2609; /* aarch64_sqrdmlsh_laneqv4hi */ case 8: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2599; /* aarch64_sqrdmlsh_lanev8hi */ case 9: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2611; /* aarch64_sqrdmlsh_laneqv8hi */ case 10: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2601; /* aarch64_sqrdmlsh_lanev2si */ case 11: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2613; /* aarch64_sqrdmlsh_laneqv2si */ case 12: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2603; /* aarch64_sqrdmlsh_lanev4si */ case 13: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2615; /* aarch64_sqrdmlsh_laneqv4si */ case 14: if (! #line 3825 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2605; /* aarch64_sqrdmlsh_lanehi */ case 15: if (! #line 3863 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2617; /* aarch64_sqrdmlsh_laneqhi */ case 16: if (! #line 3825 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2607; /* aarch64_sqrdmlsh_lanesi */ case 17: if (! #line 3863 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2619; /* aarch64_sqrdmlsh_laneqsi */ default: return -1; } } static int recog_132 (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; x2 = XEXP (x1, 1); switch (pattern171 (x2)) { case 0: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2584; /* aarch64_sqrdmlahv4hi */ case 1: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2586; /* aarch64_sqrdmlahv8hi */ case 2: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2588; /* aarch64_sqrdmlahv2si */ case 3: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2590; /* aarch64_sqrdmlahv4si */ case 4: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2592; /* aarch64_sqrdmlahhi */ case 5: if (! #line 3791 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2594; /* aarch64_sqrdmlahsi */ case 6: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2596; /* aarch64_sqrdmlah_lanev4hi */ case 7: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2608; /* aarch64_sqrdmlah_laneqv4hi */ case 8: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2598; /* aarch64_sqrdmlah_lanev8hi */ case 9: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2610; /* aarch64_sqrdmlah_laneqv8hi */ case 10: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2600; /* aarch64_sqrdmlah_lanev2si */ case 11: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2612; /* aarch64_sqrdmlah_laneqv2si */ case 12: if (! #line 3807 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2602; /* aarch64_sqrdmlah_lanev4si */ case 13: if (! #line 3845 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2614; /* aarch64_sqrdmlah_laneqv4si */ case 14: if (! #line 3825 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2604; /* aarch64_sqrdmlah_lanehi */ case 15: if (! #line 3863 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2616; /* aarch64_sqrdmlah_laneqhi */ case 16: if (! #line 3825 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2606; /* aarch64_sqrdmlah_lanesi */ case 17: if (! #line 3863 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_RDMA)) return -1; return 2618; /* aarch64_sqrdmlah_laneqsi */ default: return -1; } } static int recog_133 (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); operands[2] = x3; x4 = XVECEXP (x2, 0, 1); operands[1] = x4; x5 = XVECEXP (x2, 0, 2); if (!rtx_equal_p (x5, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern340 (x2, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3807; /* maskstorevnx16qivnx16bi */ case E_VNx8HImode: if (pattern340 (x2, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3808; /* maskstorevnx8hivnx8bi */ case E_VNx4SImode: if (pattern340 (x2, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3809; /* maskstorevnx4sivnx4bi */ case E_VNx2DImode: if (pattern340 (x2, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3810; /* maskstorevnx2divnx2bi */ case E_VNx8HFmode: if (pattern340 (x2, E_VNx8HFmode, E_VNx8BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3811; /* maskstorevnx8hfvnx8bi */ case E_VNx4SFmode: if (pattern340 (x2, E_VNx4SFmode, E_VNx4BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3812; /* maskstorevnx4sfvnx4bi */ case E_VNx2DFmode: if (pattern340 (x2, E_VNx2DFmode, E_VNx2BImode) != 0 || ! #line 218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3813; /* maskstorevnx2dfvnx2bi */ default: return -1; } } static int recog_134 (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); operands[1] = x3; x4 = XVECEXP (x2, 0, 1); operands[2] = x4; x5 = XVECEXP (x2, 0, 2); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern341 (x2, E_VNx16QImode, E_VNx16BImode, E_QImode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4825; /* fold_extract_last_vnx16qi */ case E_HImode: if (pattern341 (x2, E_VNx8HImode, E_VNx8BImode, E_HImode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4826; /* fold_extract_last_vnx8hi */ case E_SImode: if (pattern341 (x2, E_VNx4SImode, E_VNx4BImode, E_SImode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4827; /* fold_extract_last_vnx4si */ case E_DImode: if (pattern341 (x2, E_VNx2DImode, E_VNx2BImode, E_DImode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4828; /* fold_extract_last_vnx2di */ case E_HFmode: if (pattern341 (x2, E_VNx8HFmode, E_VNx8BImode, E_HFmode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4829; /* fold_extract_last_vnx8hf */ case E_SFmode: if (pattern341 (x2, E_VNx4SFmode, E_VNx4BImode, E_SFmode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4830; /* fold_extract_last_vnx4sf */ case E_DFmode: if (pattern341 (x2, E_VNx2DFmode, E_VNx2BImode, E_DFmode) != 0 || ! #line 2066 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4831; /* fold_extract_last_vnx2df */ default: return -1; } } static int recog_135 (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; x2 = XEXP (x1, 1); switch (pattern182 (x2, E_XImode)) { case 0: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3248; /* aarch64_vec_store_lanesxi_lanev8qi */ case 1: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3249; /* aarch64_vec_store_lanesxi_lanev16qi */ case 2: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3250; /* aarch64_vec_store_lanesxi_lanev4hi */ case 3: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3251; /* aarch64_vec_store_lanesxi_lanev8hi */ case 4: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3252; /* aarch64_vec_store_lanesxi_lanev2si */ case 5: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3253; /* aarch64_vec_store_lanesxi_lanev4si */ case 6: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3254; /* aarch64_vec_store_lanesxi_lanev2di */ case 7: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3255; /* aarch64_vec_store_lanesxi_lanev4hf */ case 8: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3256; /* aarch64_vec_store_lanesxi_lanev8hf */ case 9: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3257; /* aarch64_vec_store_lanesxi_lanev2sf */ case 10: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3258; /* aarch64_vec_store_lanesxi_lanev4sf */ case 11: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3259; /* aarch64_vec_store_lanesxi_lanev2df */ case 12: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3260; /* aarch64_vec_store_lanesxi_lanedi */ case 13: if (! #line 5153 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3261; /* aarch64_vec_store_lanesxi_lanedf */ default: return -1; } } static int recog_136 (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; x2 = XEXP (x1, 1); switch (pattern182 (x2, E_CImode)) { case 0: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3192; /* aarch64_vec_store_lanesci_lanev8qi */ case 1: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3193; /* aarch64_vec_store_lanesci_lanev16qi */ case 2: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3194; /* aarch64_vec_store_lanesci_lanev4hi */ case 3: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3195; /* aarch64_vec_store_lanesci_lanev8hi */ case 4: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3196; /* aarch64_vec_store_lanesci_lanev2si */ case 5: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3197; /* aarch64_vec_store_lanesci_lanev4si */ case 6: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3198; /* aarch64_vec_store_lanesci_lanev2di */ case 7: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3199; /* aarch64_vec_store_lanesci_lanev4hf */ case 8: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3200; /* aarch64_vec_store_lanesci_lanev8hf */ case 9: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3201; /* aarch64_vec_store_lanesci_lanev2sf */ case 10: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3202; /* aarch64_vec_store_lanesci_lanev4sf */ case 11: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3203; /* aarch64_vec_store_lanesci_lanev2df */ case 12: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3204; /* aarch64_vec_store_lanesci_lanedi */ case 13: if (! #line 5055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3205; /* aarch64_vec_store_lanesci_lanedf */ default: return -1; } } static int recog_137 (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); switch (XINT (x2, 1)) { case 48: return recog_107 (x1, insn, pnum_clobbers); case 53: if (GET_MODE (x2) != E_QImode) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_QImode)) return -1; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_QImode) || ! #line 5265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 739; /* *aarch64_sisd_neg_qi */ case 23: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 830; /* btrunchf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 837; /* btruncsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 844; /* btruncdf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1954; /* btruncv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1961; /* btruncv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1968; /* btruncv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1975; /* btruncv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1982; /* btruncv2df2 */ default: return -1; } case 21: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 831; /* ceilhf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 838; /* ceilsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 845; /* ceildf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1955; /* ceilv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1962; /* ceilv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1969; /* ceilv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1976; /* ceilv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1983; /* ceilv2df2 */ default: return -1; } case 19: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 832; /* floorhf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 839; /* floorsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 846; /* floordf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1956; /* floorv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1963; /* floorv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1970; /* floorv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1977; /* floorv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1984; /* floorv2df2 */ default: return -1; } case 20: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 833; /* frintnhf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 840; /* frintnsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 847; /* frintndf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1957; /* frintnv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1964; /* frintnv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1971; /* frintnv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1978; /* frintnv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1985; /* frintnv2df2 */ default: return -1; } case 18: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 834; /* nearbyinthf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 841; /* nearbyintsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 848; /* nearbyintdf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1958; /* nearbyintv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1965; /* nearbyintv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1972; /* nearbyintv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1979; /* nearbyintv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1986; /* nearbyintv2df2 */ default: return -1; } case 22: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 835; /* rinthf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 842; /* rintsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 849; /* rintdf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1959; /* rintv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1966; /* rintv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1973; /* rintv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1980; /* rintv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1987; /* rintv2df2 */ default: return -1; } case 17: switch (pattern105 (x1)) { case 0: if (!( #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 836; /* roundhf2 */ case 1: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 843; /* roundsf2 */ case 2: if (! #line 5826 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 850; /* rounddf2 */ case 3: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1960; /* roundv4hf2 */ case 4: if (!( #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1967; /* roundv8hf2 */ case 5: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1974; /* roundv2sf2 */ case 6: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1981; /* roundv4sf2 */ case 7: if (! #line 2035 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1988; /* roundv2df2 */ default: return -1; } case 24: switch (pattern107 (x1)) { case 0: if (! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; return 1037; /* ldr_got_small_si */ case 1: if (! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1038; /* ldr_got_small_di */ default: return -1; } case 25: switch (pattern107 (x1)) { case 0: if (! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; return 1040; /* ldr_got_small_28k_si */ case 1: if (! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1041; /* ldr_got_small_28k_di */ default: return -1; } case 27: 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 (!aarch64_valid_symref (operands[1], E_DImode)) return -1; return 1043; /* ldr_got_tiny */ case 64: if (GET_MODE (x2) != E_DImode) return -1; x4 = XVECEXP (x2, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; return 1044; /* aarch64_load_tp_hard */ case 26: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XVECEXP (x2, 0, 0); operands[1] = x4; if (!aarch64_tls_ie_symref (operands[1], E_VOIDmode)) return -1; switch (pattern108 (x2)) { case 0: if (! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; return 1047; /* tlsie_small_si */ case 1: if (! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1048; /* tlsie_small_di */ default: return -1; } case 68: switch (pattern109 (x1)) { case 0: if (! #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) return -1; return 1057; /* tlsle32_si */ case 1: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) return -1; return 1058; /* tlsle32_di */ default: return -1; } case 69: switch (pattern109 (x1)) { case 0: if (! #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) return -1; return 1059; /* tlsle48_si */ case 1: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) return -1; return 1060; /* tlsle48_di */ default: return -1; } case 65: return recog_113 (x1, insn, pnum_clobbers); case 83: if (pattern61 (x1, 30) != 0) return -1; return 1070; /* xpaclri */ case 76: x4 = XVECEXP (x2, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x3 = XEXP (x1, 0); operands[0] = x3; switch (pattern108 (x2)) { case 0: if (!( #line 6962 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_stack_protector_guard != SSP_GLOBAL) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode))) return -1; return 1075; /* reg_stack_protect_address_si */ case 1: if (!( #line 6962 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_stack_protector_guard != SSP_GLOBAL) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode))) return -1; return 1076; /* reg_stack_protect_address_di */ default: return -1; } case 80: return recog_117 (x1, insn, pnum_clobbers); case 108: return recog_104 (x1, insn, pnum_clobbers); case 116: return recog_106 (x1, insn, pnum_clobbers); case 115: return recog_116 (x1, insn, pnum_clobbers); case 119: switch (pattern111 (x1)) { case 0: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2159; /* aarch64_reduc_umax_internalv8qi */ case 1: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2163; /* aarch64_reduc_umax_internalv16qi */ case 2: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2167; /* aarch64_reduc_umax_internalv4hi */ case 3: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2171; /* aarch64_reduc_umax_internalv8hi */ case 4: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2175; /* aarch64_reduc_umax_internalv4si */ case 5: if (! #line 2488 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2179; /* aarch64_reduc_umax_internalv2si */ default: return -1; } case 120: switch (pattern111 (x1)) { case 0: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2160; /* aarch64_reduc_umin_internalv8qi */ case 1: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2164; /* aarch64_reduc_umin_internalv16qi */ case 2: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2168; /* aarch64_reduc_umin_internalv4hi */ case 3: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2172; /* aarch64_reduc_umin_internalv8hi */ case 4: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2176; /* aarch64_reduc_umin_internalv4si */ case 5: if (! #line 2488 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2180; /* aarch64_reduc_umin_internalv2si */ default: return -1; } case 117: switch (pattern111 (x1)) { case 0: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2161; /* aarch64_reduc_smax_internalv8qi */ case 1: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2165; /* aarch64_reduc_smax_internalv16qi */ case 2: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2169; /* aarch64_reduc_smax_internalv4hi */ case 3: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2173; /* aarch64_reduc_smax_internalv8hi */ case 4: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2177; /* aarch64_reduc_smax_internalv4si */ case 5: if (! #line 2488 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2181; /* aarch64_reduc_smax_internalv2si */ default: return -1; } case 118: switch (pattern111 (x1)) { case 0: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2162; /* aarch64_reduc_smin_internalv8qi */ case 1: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2166; /* aarch64_reduc_smin_internalv16qi */ case 2: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2170; /* aarch64_reduc_smin_internalv4hi */ case 3: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2174; /* aarch64_reduc_smin_internalv8hi */ case 4: if (! #line 2479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2178; /* aarch64_reduc_smin_internalv4si */ case 5: if (! #line 2488 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2182; /* aarch64_reduc_smin_internalv2si */ default: return -1; } case 111: switch (pattern112 (x1)) { case 0: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2183; /* aarch64_reduc_smax_nan_internalv4hf */ case 1: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2187; /* aarch64_reduc_smax_nan_internalv8hf */ case 2: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2191; /* aarch64_reduc_smax_nan_internalv2sf */ case 3: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2195; /* aarch64_reduc_smax_nan_internalv4sf */ case 4: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2199; /* aarch64_reduc_smax_nan_internalv2df */ default: return -1; } case 114: switch (pattern112 (x1)) { case 0: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2184; /* aarch64_reduc_smin_nan_internalv4hf */ case 1: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2188; /* aarch64_reduc_smin_nan_internalv8hf */ case 2: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2192; /* aarch64_reduc_smin_nan_internalv2sf */ case 3: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2196; /* aarch64_reduc_smin_nan_internalv4sf */ case 4: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2200; /* aarch64_reduc_smin_nan_internalv2df */ default: return -1; } case 110: switch (pattern112 (x1)) { case 0: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2185; /* aarch64_reduc_smax_internalv4hf */ case 1: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2189; /* aarch64_reduc_smax_internalv8hf */ case 2: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2193; /* aarch64_reduc_smax_internalv2sf */ case 3: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2197; /* aarch64_reduc_smax_internalv4sf */ case 4: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2201; /* aarch64_reduc_smax_internalv2df */ default: return -1; } case 113: switch (pattern112 (x1)) { case 0: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2186; /* aarch64_reduc_smin_internalv4hf */ case 1: if (!( #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2190; /* aarch64_reduc_smin_internalv8hf */ case 2: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2194; /* aarch64_reduc_smin_internalv2sf */ case 3: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2198; /* aarch64_reduc_smin_internalv4sf */ case 4: if (! #line 2497 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2202; /* aarch64_reduc_smin_internalv2df */ default: return -1; } case 143: switch (pattern113 (x1)) { case 0: if (! #line 3680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2508; /* aarch64_sqmovunv8hi */ case 1: if (! #line 3680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2509; /* aarch64_sqmovunv4si */ case 2: if (! #line 3680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2510; /* aarch64_sqmovunv2di */ case 3: if (! #line 3680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2511; /* aarch64_sqmovunhi */ case 4: if (! #line 3680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2512; /* aarch64_sqmovunsi */ case 5: if (! #line 3680 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2513; /* aarch64_sqmovundi */ default: return -1; } case 144: switch (pattern113 (x1)) { case 0: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2514; /* aarch64_sqmovnv8hi */ case 1: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2516; /* aarch64_sqmovnv4si */ case 2: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2518; /* aarch64_sqmovnv2di */ case 3: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2520; /* aarch64_sqmovnhi */ case 4: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2522; /* aarch64_sqmovnsi */ case 5: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2524; /* aarch64_sqmovndi */ default: return -1; } case 145: switch (pattern113 (x1)) { case 0: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2515; /* aarch64_uqmovnv8hi */ case 1: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2517; /* aarch64_uqmovnv4si */ case 2: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2519; /* aarch64_uqmovnv2di */ case 3: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2521; /* aarch64_uqmovnhi */ case 4: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2523; /* aarch64_uqmovnsi */ case 5: if (! #line 3691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2525; /* aarch64_uqmovndi */ default: return -1; } case 173: 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_V2DImode) || ! #line 4860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3088; /* aarch64_addpdi */ case 29: return recog_103 (x1, insn, pnum_clobbers); case 57: return recog_102 (x1, insn, pnum_clobbers); case 184: return recog_112 (x1, insn, pnum_clobbers); case 185: return recog_110 (x1, insn, pnum_clobbers); case 186: return recog_111 (x1, insn, pnum_clobbers); case 14: return recog_115 (x1, insn, pnum_clobbers); case 16: return recog_109 (x1, insn, pnum_clobbers); case 13: return recog_114 (x1, insn, pnum_clobbers); case 189: switch (pattern115 (x1, 187)) { case 0: if (! #line 6055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3570; /* aarch64_crypto_aesmcv16qi */ case 1: if (! #line 6078 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES && aarch64_fusion_enabled_p (AARCH64_FUSE_AES_AESMC))) return -1; return 3572; /* *aarch64_crypto_aese_fused */ default: return -1; } case 190: switch (pattern115 (x1, 188)) { case 0: if (! #line 6055 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3571; /* aarch64_crypto_aesimcv16qi */ case 1: if (! #line 6097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES && aarch64_fusion_enabled_p (AARCH64_FUSE_AES_AESMC))) return -1; return 3573; /* *aarch64_crypto_aesd_fused */ default: return -1; } case 194: return recog_108 (x1, insn, pnum_clobbers); case 47: return recog_105 (x1, insn, pnum_clobbers); case 94: switch (pattern116 (x1)) { case 0: if (! #line 2710 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4980; /* aarch64_sve_punpklo_vnx16bi */ case 1: if (! #line 2710 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4982; /* aarch64_sve_punpklo_vnx8bi */ case 2: if (! #line 2710 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4984; /* aarch64_sve_punpklo_vnx4bi */ case 3: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4989; /* aarch64_sve_uunpklo_vnx16qi */ case 4: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4993; /* aarch64_sve_uunpklo_vnx8hi */ case 5: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4997; /* aarch64_sve_uunpklo_vnx4si */ default: return -1; } case 92: switch (pattern116 (x1)) { case 0: if (! #line 2710 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4981; /* aarch64_sve_punpkhi_vnx16bi */ case 1: if (! #line 2710 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4983; /* aarch64_sve_punpkhi_vnx8bi */ case 2: if (! #line 2710 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4985; /* aarch64_sve_punpkhi_vnx4bi */ case 3: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4987; /* aarch64_sve_uunpkhi_vnx16qi */ case 4: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4991; /* aarch64_sve_uunpkhi_vnx8hi */ case 5: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4995; /* aarch64_sve_uunpkhi_vnx4si */ default: return -1; } case 91: switch (pattern117 (x1)) { case 0: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4986; /* aarch64_sve_sunpkhi_vnx16qi */ case 1: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4990; /* aarch64_sve_sunpkhi_vnx8hi */ case 2: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4994; /* aarch64_sve_sunpkhi_vnx4si */ default: return -1; } case 93: switch (pattern117 (x1)) { case 0: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4988; /* aarch64_sve_sunpklo_vnx16qi */ case 1: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4992; /* aarch64_sve_sunpklo_vnx8hi */ case 2: if (! #line 2735 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4996; /* aarch64_sve_sunpklo_vnx4si */ default: return -1; } default: return -1; } } static int recog_138 (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 3: if (pattern52 (x1, E_SImode, E_QImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 505; /* aarch64_crc32b */ case 8: if (pattern52 (x1, E_SImode, E_HImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 506; /* aarch64_crc32h */ case 9: if (pattern53 (x1, E_SImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 507; /* aarch64_crc32w */ case 10: if (pattern52 (x1, E_SImode, E_DImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 508; /* aarch64_crc32x */ case 4: if (pattern52 (x1, E_SImode, E_QImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 509; /* aarch64_crc32cb */ case 5: if (pattern52 (x1, E_SImode, E_HImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 510; /* aarch64_crc32ch */ case 6: if (pattern53 (x1, E_SImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 511; /* aarch64_crc32cw */ case 7: if (pattern52 (x1, E_SImode, E_DImode) != 0 || ! #line 4224 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_CRC32)) return -1; return 512; /* aarch64_crc32cx */ case 55: if (pattern52 (x1, E_DImode, E_QImode) != 0 || ! #line 5226 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 735; /* *aarch64_sisd_ushl */ case 74: if (pattern52 (x1, E_SImode, E_QImode) != 0 || ! #line 5236 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 736; /* *aarch64_ushl_2s */ case 54: if (pattern52 (x1, E_DImode, E_QImode) != 0 || ! #line 5246 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 737; /* *aarch64_sisd_sshl */ case 56: if (pattern52 (x1, E_SImode, E_QImode) != 0 || ! #line 5256 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD)) return -1; return 738; /* *aarch64_sshl_2s */ case 11: return recog_79 (x1, insn, pnum_clobbers); case 12: return recog_78 (x1, insn, pnum_clobbers); case 52: return recog_77 (x1, insn, pnum_clobbers); case 73: return recog_76 (x1, insn, pnum_clobbers); case 109: return recog_75 (x1, insn, pnum_clobbers); case 112: return recog_74 (x1, insn, pnum_clobbers); case 207: return recog_73 (x1, insn, pnum_clobbers); case 208: return recog_72 (x1, insn, pnum_clobbers); case 28: return recog_58 (x1, insn, pnum_clobbers); case 66: switch (pattern58 (x1)) { case 0: if (! #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) return -1; return 1053; /* tlsle12_si */ case 1: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) return -1; return 1054; /* tlsle12_di */ default: return -1; } case 67: switch (pattern58 (x1)) { case 0: if (! #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) return -1; return 1055; /* tlsle24_si */ case 1: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) return -1; return 1056; /* tlsle24_di */ default: return -1; } case 46: if (pattern59 (x1) != 0) return -1; x3 = XVECEXP (x2, 0, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return -1; x4 = XVECEXP (x2, 0, 1); operands[1] = x4; if (!register_operand (operands[1], E_DImode)) return -1; return 1065; /* stack_tie */ case 45: if (pattern60 (x1, 30, 31) != 0) return -1; return 1066; /* pacisp */ case 1: if (pattern60 (x1, 30, 31) != 0) return -1; return 1067; /* autisp */ case 44: if (pattern60 (x1, 17, 16) != 0) return -1; return 1068; /* paci1716 */ case 0: if (pattern60 (x1, 17, 16) != 0) return -1; return 1069; /* auti1716 */ case 78: if (pnum_clobbers == NULL) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; x4 = XVECEXP (x2, 0, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern335 (x2, E_SImode) != 0 || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; *pnum_clobbers = 1; return 1079; /* stack_protect_test_si */ case E_DImode: if (pattern335 (x2, E_DImode) != 0 || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; *pnum_clobbers = 1; return 1080; /* stack_protect_test_di */ default: return -1; } case 104: if (pattern61 (x1, 15) != 0) return -1; x4 = XVECEXP (x2, 0, 1); operands[0] = x4; return 1085; /* speculation_tracker */ case 254: switch (pattern62 (x1)) { case 0: if (!( #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1384; /* aarch64_fcadd90v4hf */ case 1: if (!( #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1386; /* aarch64_fcadd90v8hf */ case 2: if (! #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1388; /* aarch64_fcadd90v2sf */ case 3: if (! #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1390; /* aarch64_fcadd90v4sf */ case 4: if (! #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1392; /* aarch64_fcadd90v2df */ default: return -1; } case 255: switch (pattern62 (x1)) { case 0: if (!( #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1385; /* aarch64_fcadd270v4hf */ case 1: if (!( #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1387; /* aarch64_fcadd270v8hf */ case 2: if (! #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1389; /* aarch64_fcadd270v2sf */ case 3: if (! #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1391; /* aarch64_fcadd270v4sf */ case 4: if (! #line 433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_COMPLEX)) return -1; return 1393; /* aarch64_fcadd270v2df */ default: return -1; } case 81: return recog_71 (x1, insn, pnum_clobbers); case 50: switch (pattern66 (x1)) { case 0: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1533; /* aarch64_sabdl2v8qi_3 */ case 1: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1535; /* aarch64_sabdl2v16qi_3 */ case 2: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1537; /* aarch64_sabdl2v4hi_3 */ case 3: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1539; /* aarch64_sabdl2v8hi_3 */ case 4: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1541; /* aarch64_sabdl2v4si_3 */ default: return -1; } case 71: switch (pattern66 (x1)) { case 0: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1534; /* aarch64_uabdl2v8qi_3 */ case 1: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1536; /* aarch64_uabdl2v16qi_3 */ case 2: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1538; /* aarch64_uabdl2v4hi_3 */ case 3: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1540; /* aarch64_uabdl2v8hi_3 */ case 4: if (! #line 732 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1542; /* aarch64_uabdl2v4si_3 */ default: return -1; } case 51: switch (pattern68 (x1)) { case 0: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1553; /* aarch64_sadalpv8qi_3 */ case 1: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1555; /* aarch64_sadalpv16qi_3 */ case 2: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1557; /* aarch64_sadalpv4hi_3 */ case 3: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1559; /* aarch64_sadalpv8hi_3 */ case 4: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1561; /* aarch64_sadalpv4si_3 */ default: return -1; } case 72: switch (pattern68 (x1)) { case 0: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1554; /* aarch64_uadalpv8qi_3 */ case 1: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1556; /* aarch64_uadalpv16qi_3 */ case 2: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1558; /* aarch64_uadalpv4hi_3 */ case 3: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1560; /* aarch64_uadalpv8hi_3 */ case 4: if (! #line 753 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1562; /* aarch64_uadalpv4si_3 */ default: return -1; } case 107: return recog_88 (x1, insn, pnum_clobbers); case 106: return recog_87 (x1, insn, pnum_clobbers); case 204: return recog_39 (x1, insn, pnum_clobbers); case 119: return recog_56 (x1, insn, pnum_clobbers); case 120: return recog_54 (x1, insn, pnum_clobbers); case 117: return recog_55 (x1, insn, pnum_clobbers); case 118: return recog_53 (x1, insn, pnum_clobbers); case 111: return recog_70 (x1, insn, pnum_clobbers); case 114: return recog_69 (x1, insn, pnum_clobbers); case 110: return recog_68 (x1, insn, pnum_clobbers); case 113: return recog_67 (x1, insn, pnum_clobbers); case 115: return recog_66 (x1, insn, pnum_clobbers); case 121: switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2347; /* aarch64_shaddv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2355; /* aarch64_shaddv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2363; /* aarch64_shaddv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2371; /* aarch64_shaddv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2379; /* aarch64_shaddv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2387; /* aarch64_shaddv4si */ default: return -1; } case 122: switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2348; /* aarch64_uhaddv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2356; /* aarch64_uhaddv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2364; /* aarch64_uhaddv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2372; /* aarch64_uhaddv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2380; /* aarch64_uhaddv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2388; /* aarch64_uhaddv4si */ default: return -1; } case 123: switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2349; /* aarch64_srhaddv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2357; /* aarch64_srhaddv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2365; /* aarch64_srhaddv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2373; /* aarch64_srhaddv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2381; /* aarch64_srhaddv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2389; /* aarch64_srhaddv4si */ default: return -1; } case 124: switch (pattern73 (x1)) { case 0: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2350; /* aarch64_urhaddv8qi */ case 1: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2358; /* aarch64_urhaddv16qi */ case 2: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2366; /* aarch64_urhaddv4hi */ case 3: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2374; /* aarch64_urhaddv8hi */ case 4: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2382; /* aarch64_urhaddv2si */ case 5: if (! #line 3527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2390; /* aarch64_urhaddv4si */ default: return -1; } case 125: return recog_101 (x1, insn, pnum_clobbers); case 126: return recog_100 (x1, insn, pnum_clobbers); case 127: return recog_99 (x1, insn, pnum_clobbers); case 128: return recog_98 (x1, insn, pnum_clobbers); case 129: switch (pattern74 (x1)) { case 0: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2395; /* aarch64_addhnv8hi */ case 1: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2399; /* aarch64_addhnv4si */ case 2: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2403; /* aarch64_addhnv2di */ default: return -1; } case 130: switch (pattern74 (x1)) { case 0: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2396; /* aarch64_raddhnv8hi */ case 1: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2400; /* aarch64_raddhnv4si */ case 2: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2404; /* aarch64_raddhnv2di */ default: return -1; } case 131: switch (pattern74 (x1)) { case 0: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2397; /* aarch64_subhnv8hi */ case 1: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2401; /* aarch64_subhnv4si */ case 2: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2405; /* aarch64_subhnv2di */ default: return -1; } case 132: switch (pattern74 (x1)) { case 0: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2398; /* aarch64_rsubhnv8hi */ case 1: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2402; /* aarch64_rsubhnv4si */ case 2: if (! #line 3539 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2406; /* aarch64_rsubhnv2di */ default: return -1; } case 139: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; x4 = XVECEXP (x2, 0, 1); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern56 (x2, E_V8QImode) != 0 || ! #line 3562 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2419; /* aarch64_pmulv8qi */ case E_V16QImode: if (pattern56 (x2, E_V16QImode) != 0 || ! #line 3562 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2420; /* aarch64_pmulv16qi */ default: return -1; } case 140: return recog_20 (x1, insn, pnum_clobbers); case 142: return recog_52 (x1, insn, pnum_clobbers); case 141: return recog_51 (x1, insn, pnum_clobbers); case 137: return recog_41 (x1, insn, pnum_clobbers); case 138: return recog_40 (x1, insn, pnum_clobbers); case 161: return recog_65 (x1, insn, pnum_clobbers); case 162: return recog_64 (x1, insn, pnum_clobbers); case 163: return recog_63 (x1, insn, pnum_clobbers); case 164: return recog_62 (x1, insn, pnum_clobbers); case 153: return recog_35 (x1, insn, pnum_clobbers); case 154: return recog_34 (x1, insn, pnum_clobbers); case 165: return recog_50 (x1, insn, pnum_clobbers); case 166: return recog_49 (x1, insn, pnum_clobbers); case 171: return recog_97 (x1, insn, pnum_clobbers); case 172: return recog_96 (x1, insn, pnum_clobbers); case 150: return recog_61 (x1, insn, pnum_clobbers); case 151: return recog_60 (x1, insn, pnum_clobbers); case 152: return recog_33 (x1, insn, pnum_clobbers); case 155: return recog_95 (x1, insn, pnum_clobbers); case 156: return recog_94 (x1, insn, pnum_clobbers); case 157: return recog_93 (x1, insn, pnum_clobbers); case 158: return recog_92 (x1, insn, pnum_clobbers); case 159: return recog_91 (x1, insn, pnum_clobbers); case 160: return recog_90 (x1, insn, pnum_clobbers); case 173: return recog_89 (x1, insn, pnum_clobbers); case 30: return recog_86 (x1, insn, pnum_clobbers); case 32: return recog_47 (x1, insn, pnum_clobbers); case 58: return recog_38 (x1, insn, pnum_clobbers); case 33: return recog_85 (x1, insn, pnum_clobbers); case 35: return recog_46 (x1, insn, pnum_clobbers); case 59: return recog_37 (x1, insn, pnum_clobbers); case 36: return recog_84 (x1, insn, pnum_clobbers); case 38: return recog_45 (x1, insn, pnum_clobbers); case 60: return recog_36 (x1, insn, pnum_clobbers); case 203: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; switch (pattern204 (x2)) { case 0: if (! #line 5186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3262; /* aarch64_rev_reglistoi */ case 1: if (! #line 5186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3263; /* aarch64_rev_reglistci */ case 2: if (! #line 5186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3264; /* aarch64_rev_reglistxi */ default: return -1; } case 29: return recog_22 (x1, insn, pnum_clobbers); case 57: return recog_24 (x1, insn, pnum_clobbers); case 31: return recog_83 (x1, insn, pnum_clobbers); case 34: return recog_82 (x1, insn, pnum_clobbers); case 37: return recog_81 (x1, insn, pnum_clobbers); case 174: return recog_26 (x1, insn, pnum_clobbers); case 176: if (pattern100 (x1, E_OImode, E_V16QImode) != 0 || ! #line 5724 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3375; /* aarch64_combinev16qi */ case 177: return recog_32 (x1, insn, pnum_clobbers); case 178: return recog_31 (x1, insn, pnum_clobbers); case 181: return recog_30 (x1, insn, pnum_clobbers); case 182: return recog_29 (x1, insn, pnum_clobbers); case 179: return recog_28 (x1, insn, pnum_clobbers); case 180: return recog_27 (x1, insn, pnum_clobbers); case 15: return recog_59 (x1, insn, pnum_clobbers); case 187: switch (pattern102 (x1)) { case 0: if (! #line 6017 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3564; /* aarch64_crypto_aesev16qi */ case 1: if (! #line 6029 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3566; /* *aarch64_crypto_aesev16qi_xor_combine */ case 2: if (! #line 6040 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3568; /* *aarch64_crypto_aesev16qi_xor_combine */ default: return -1; } case 188: switch (pattern102 (x1)) { case 0: if (! #line 6017 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3565; /* aarch64_crypto_aesdv16qi */ case 1: if (! #line 6029 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3567; /* *aarch64_crypto_aesdv16qi_xor_combine */ case 2: if (! #line 6040 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3569; /* *aarch64_crypto_aesdv16qi_xor_combine */ default: return -1; } case 196: if (pattern53 (x1, E_V4SImode) != 0 || ! #line 6141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3577; /* aarch64_crypto_sha1su1v4si */ case 199: if (pattern53 (x1, E_V4SImode) != 0 || ! #line 6186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3584; /* aarch64_crypto_sha256su0v4si */ case 222: if (pattern100 (x1, E_V2DImode, E_V2DImode) != 0 || ! #line 6220 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3588; /* aarch64_crypto_sha512su0qv2di */ case 218: if (pattern53 (x1, E_V4SImode) != 0 || ! #line 6330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3607; /* aarch64_sm4eqv4si */ case 219: if (pattern53 (x1, E_V4SImode) != 0 || ! #line 6340 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3608; /* aarch64_sm4ekeyqv4si */ case 201: if (GET_MODE (x2) != E_TImode) return -1; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], E_TImode)) return -1; x3 = XVECEXP (x2, 0, 0); operands[1] = x3; if (!register_operand (operands[1], E_DImode)) return -1; x4 = XVECEXP (x2, 0, 1); operands[2] = x4; if (!register_operand (operands[2], E_DImode) || ! #line 6926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3633; /* aarch64_crypto_pmulldi */ case 202: if (pattern100 (x1, E_TImode, E_V2DImode) != 0 || ! #line 6936 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_AES)) return -1; return 3634; /* aarch64_crypto_pmullv2di */ case 42: if (GET_MODE (x2) != E_BLKmode) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x4 = XVECEXP (x2, 0, 1); operands[1] = x4; if (!const_int_operand (operands[1], E_SImode)) return -1; x3 = XVECEXP (x2, 0, 0); if (!rtx_equal_p (x3, operands[0])) return -1; return 3771; /* *dmb */ case 103: return recog_80 (x1, insn, pnum_clobbers); case 89: return recog_19 (x1, insn, pnum_clobbers); case 84: return recog_44 (x1, insn, pnum_clobbers); case 253: return recog_43 (x1, insn, pnum_clobbers); case 86: return recog_25 (x1, insn, pnum_clobbers); case 98: return recog_21 (x1, insn, pnum_clobbers); case 232: switch (pattern103 (x1)) { case 0: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4162; /* *andvnx8hf3 */ case 1: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4165; /* *andvnx4sf3 */ case 2: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4168; /* *andvnx2df3 */ default: return -1; } case 233: switch (pattern103 (x1)) { case 0: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4163; /* *iorvnx8hf3 */ case 1: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4166; /* *iorvnx4sf3 */ case 2: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4169; /* *iorvnx2df3 */ default: return -1; } case 234: switch (pattern103 (x1)) { case 0: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4164; /* *xorvnx8hf3 */ case 1: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4167; /* *xorvnx4sf3 */ case 2: if (! #line 1119 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4170; /* *xorvnx2df3 */ default: return -1; } case 97: return recog_23 (x1, insn, pnum_clobbers); case 116: switch (pattern104 (x1)) { case 0: if (! #line 2090 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4832; /* *reduc_plus_scal_vnx16qi */ case 1: if (! #line 2090 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4833; /* *reduc_plus_scal_vnx8hi */ case 2: if (! #line 2090 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4834; /* *reduc_plus_scal_vnx4si */ case 3: if (! #line 2090 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4835; /* *reduc_plus_scal_vnx2di */ default: return -1; } case 229: switch (pattern104 (x1)) { case 0: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4867; /* *reduc_and_scal_vnx16qi */ case 1: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4870; /* *reduc_and_scal_vnx8hi */ case 2: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4873; /* *reduc_and_scal_vnx4si */ case 3: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4876; /* *reduc_and_scal_vnx2di */ default: return -1; } case 230: switch (pattern104 (x1)) { case 0: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4868; /* *reduc_ior_scal_vnx16qi */ case 1: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4871; /* *reduc_ior_scal_vnx8hi */ case 2: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4874; /* *reduc_ior_scal_vnx4si */ case 3: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4877; /* *reduc_ior_scal_vnx2di */ default: return -1; } case 231: switch (pattern104 (x1)) { case 0: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4869; /* *reduc_xor_scal_vnx16qi */ case 1: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4872; /* *reduc_xor_scal_vnx8hi */ case 2: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4875; /* *reduc_xor_scal_vnx4si */ case 3: if (! #line 2176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4878; /* *reduc_xor_scal_vnx2di */ default: return -1; } case 102: return recog_57 (x1, insn, pnum_clobbers); case 95: return recog_48 (x1, insn, pnum_clobbers); case 100: return recog_42 (x1, insn, pnum_clobbers); default: return -1; } } static int recog_139 (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); switch (XINT (x3, 1)) { case 105: 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_SFmode: if (pattern336 (x3, E_SImode, E_SFmode) != 0 || ! #line 6391 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && TARGET_SIMD)) return -1; return 1024; /* copysignsf3_insn */ case E_DFmode: if (pattern336 (x3, E_DImode, E_DFmode) != 0 || ! #line 6391 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && TARGET_SIMD)) return -1; return 1025; /* copysigndf3_insn */ default: return -1; } case 49: switch (pattern165 (x3)) { case 0: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1543; /* aarch64_sabalv8qi_4 */ case 1: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1545; /* aarch64_sabalv16qi_4 */ case 2: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1547; /* aarch64_sabalv4hi_4 */ case 3: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1549; /* aarch64_sabalv8hi_4 */ case 4: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1551; /* aarch64_sabalv4si_4 */ default: return -1; } case 70: switch (pattern165 (x3)) { case 0: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1544; /* aarch64_uabalv8qi_4 */ case 1: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1546; /* aarch64_uabalv16qi_4 */ case 2: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1548; /* aarch64_uabalv4hi_4 */ case 3: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1550; /* aarch64_uabalv8hi_4 */ case 4: if (! #line 743 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1552; /* aarch64_uabalv4si_4 */ default: return -1; } case 133: switch (pattern167 (x3)) { case 0: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2407; /* aarch64_addhn2v8hi */ case 1: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2411; /* aarch64_addhn2v4si */ case 2: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2415; /* aarch64_addhn2v2di */ default: return -1; } case 134: switch (pattern167 (x3)) { case 0: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2408; /* aarch64_raddhn2v8hi */ case 1: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2412; /* aarch64_raddhn2v4si */ case 2: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2416; /* aarch64_raddhn2v2di */ default: return -1; } case 135: switch (pattern167 (x3)) { case 0: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2409; /* aarch64_subhn2v8hi */ case 1: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2413; /* aarch64_subhn2v4si */ case 2: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2417; /* aarch64_subhn2v2di */ default: return -1; } case 136: switch (pattern167 (x3)) { case 0: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2410; /* aarch64_rsubhn2v8hi */ case 1: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2414; /* aarch64_rsubhn2v4si */ case 2: if (! #line 3550 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2418; /* aarch64_rsubhn2v2di */ default: return -1; } case 205: return recog_132 (x1, insn, pnum_clobbers); case 206: return recog_131 (x1, insn, pnum_clobbers); case 146: switch (pattern176 (x3)) { case 0: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2790; /* aarch64_ssra_nv8qi */ case 1: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2794; /* aarch64_ssra_nv16qi */ case 2: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2798; /* aarch64_ssra_nv4hi */ case 3: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2802; /* aarch64_ssra_nv8hi */ case 4: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2806; /* aarch64_ssra_nv2si */ case 5: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2810; /* aarch64_ssra_nv4si */ case 6: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2814; /* aarch64_ssra_nv2di */ case 7: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2818; /* aarch64_ssra_ndi */ default: return -1; } case 147: switch (pattern176 (x3)) { case 0: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2791; /* aarch64_usra_nv8qi */ case 1: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2795; /* aarch64_usra_nv16qi */ case 2: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2799; /* aarch64_usra_nv4hi */ case 3: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2803; /* aarch64_usra_nv8hi */ case 4: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2807; /* aarch64_usra_nv2si */ case 5: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2811; /* aarch64_usra_nv4si */ case 6: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2815; /* aarch64_usra_nv2di */ case 7: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2819; /* aarch64_usra_ndi */ default: return -1; } case 148: switch (pattern176 (x3)) { case 0: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2792; /* aarch64_srsra_nv8qi */ case 1: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2796; /* aarch64_srsra_nv16qi */ case 2: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2800; /* aarch64_srsra_nv4hi */ case 3: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2804; /* aarch64_srsra_nv8hi */ case 4: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2808; /* aarch64_srsra_nv2si */ case 5: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2812; /* aarch64_srsra_nv4si */ case 6: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2816; /* aarch64_srsra_nv2di */ case 7: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2820; /* aarch64_srsra_ndi */ default: return -1; } case 149: switch (pattern176 (x3)) { case 0: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2793; /* aarch64_ursra_nv8qi */ case 1: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2797; /* aarch64_ursra_nv16qi */ case 2: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2801; /* aarch64_ursra_nv4hi */ case 3: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2805; /* aarch64_ursra_nv8hi */ case 4: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2809; /* aarch64_ursra_nv2si */ case 5: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2813; /* aarch64_ursra_nv4si */ case 6: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2817; /* aarch64_ursra_nv2di */ case 7: if (! #line 4559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2821; /* aarch64_ursra_ndi */ default: return -1; } case 167: switch (pattern181 (x3)) { case 0: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2822; /* aarch64_ssli_nv8qi */ case 1: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2826; /* aarch64_ssli_nv16qi */ case 2: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2830; /* aarch64_ssli_nv4hi */ case 3: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2834; /* aarch64_ssli_nv8hi */ case 4: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2838; /* aarch64_ssli_nv2si */ case 5: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2842; /* aarch64_ssli_nv4si */ case 6: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2846; /* aarch64_ssli_nv2di */ case 7: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2850; /* aarch64_ssli_ndi */ default: return -1; } case 168: switch (pattern181 (x3)) { case 0: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2823; /* aarch64_usli_nv8qi */ case 1: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2827; /* aarch64_usli_nv16qi */ case 2: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2831; /* aarch64_usli_nv4hi */ case 3: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2835; /* aarch64_usli_nv8hi */ case 4: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2839; /* aarch64_usli_nv2si */ case 5: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2843; /* aarch64_usli_nv4si */ case 6: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2847; /* aarch64_usli_nv2di */ case 7: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2851; /* aarch64_usli_ndi */ default: return -1; } case 169: switch (pattern176 (x3)) { case 0: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2824; /* aarch64_ssri_nv8qi */ case 1: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2828; /* aarch64_ssri_nv16qi */ case 2: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2832; /* aarch64_ssri_nv4hi */ case 3: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2836; /* aarch64_ssri_nv8hi */ case 4: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2840; /* aarch64_ssri_nv2si */ case 5: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2844; /* aarch64_ssri_nv4si */ case 6: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2848; /* aarch64_ssri_nv2di */ case 7: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2852; /* aarch64_ssri_ndi */ default: return -1; } case 170: switch (pattern176 (x3)) { case 0: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2825; /* aarch64_usri_nv8qi */ case 1: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2829; /* aarch64_usri_nv16qi */ case 2: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2833; /* aarch64_usri_nv4hi */ case 3: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2837; /* aarch64_usri_nv8hi */ case 4: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2841; /* aarch64_usri_nv2si */ case 5: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2845; /* aarch64_usri_nv4si */ case 6: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2849; /* aarch64_usri_nv2di */ case 7: if (! #line 4573 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2853; /* aarch64_usri_ndi */ default: return -1; } case 61: switch (pattern182 (x3, E_OImode)) { case 0: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3136; /* aarch64_vec_store_lanesoi_lanev8qi */ case 1: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3137; /* aarch64_vec_store_lanesoi_lanev16qi */ case 2: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3138; /* aarch64_vec_store_lanesoi_lanev4hi */ case 3: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3139; /* aarch64_vec_store_lanesoi_lanev8hi */ case 4: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3140; /* aarch64_vec_store_lanesoi_lanev2si */ case 5: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3141; /* aarch64_vec_store_lanesoi_lanev4si */ case 6: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3142; /* aarch64_vec_store_lanesoi_lanev2di */ case 7: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3143; /* aarch64_vec_store_lanesoi_lanev4hf */ case 8: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3144; /* aarch64_vec_store_lanesoi_lanev8hf */ case 9: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3145; /* aarch64_vec_store_lanesoi_lanev2sf */ case 10: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3146; /* aarch64_vec_store_lanesoi_lanev4sf */ case 11: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3147; /* aarch64_vec_store_lanesoi_lanev2df */ case 12: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3148; /* aarch64_vec_store_lanesoi_lanedi */ case 13: if (! #line 4957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3149; /* aarch64_vec_store_lanesoi_lanedf */ default: return -1; } case 62: return recog_136 (x1, insn, pnum_clobbers); case 63: return recog_135 (x1, insn, pnum_clobbers); case 175: 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_V8QImode: switch (pattern337 (x3, E_V8QImode)) { case 0: if (! #line 5668 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3365; /* aarch64_tbx4v8qi */ case 1: if (! #line 5691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3369; /* aarch64_qtbx3v8qi */ case 2: if (! #line 5714 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3373; /* aarch64_qtbx4v8qi */ default: return -1; } case E_V16QImode: switch (pattern337 (x3, E_V16QImode)) { case 0: if (! #line 5668 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3366; /* aarch64_tbx4v16qi */ case 1: if (! #line 5691 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3370; /* aarch64_qtbx3v16qi */ case 2: if (! #line 5714 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3374; /* aarch64_qtbx4v16qi */ default: return -1; } default: return -1; } case 183: return recog_130 (x1, insn, pnum_clobbers); case 191: if (pattern183 (x3) != 0 || ! #line 6152 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3578; /* aarch64_crypto_sha1cv4si */ case 192: if (pattern183 (x3) != 0 || ! #line 6152 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3579; /* aarch64_crypto_sha1mv4si */ case 193: if (pattern183 (x3) != 0 || ! #line 6152 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3580; /* aarch64_crypto_sha1pv4si */ case 195: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6163 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3581; /* aarch64_crypto_sha1su0v4si */ case 197: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3582; /* aarch64_crypto_sha256hv4si */ case 198: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3583; /* aarch64_crypto_sha256h2v4si */ case 200: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6197 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA2)) return -1; return 3585; /* aarch64_crypto_sha256su1v4si */ case 220: if (pattern184 (x3, E_V2DImode) != 0 || ! #line 6210 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3586; /* aarch64_crypto_sha512hqv2di */ case 221: if (pattern184 (x3, E_V2DImode) != 0 || ! #line 6210 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3587; /* aarch64_crypto_sha512h2qv2di */ case 223: if (pattern184 (x3, E_V2DImode) != 0 || ! #line 6231 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3589; /* aarch64_crypto_sha512su1qv2di */ case 211: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6294 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3600; /* aarch64_sm3ss1qv4si */ case 216: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6318 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3605; /* aarch64_sm3partw1qv4si */ case 217: if (pattern184 (x3, E_V4SImode) != 0 || ! #line 6318 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3606; /* aarch64_sm3partw2qv4si */ case 85: return recog_133 (x1, insn, pnum_clobbers); case 228: return recog_128 (x1, insn, pnum_clobbers); case 99: return recog_129 (x1, insn, pnum_clobbers); case 247: switch (pattern186 (x3)) { case 0: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4530; /* *pred_fcmltvnx8hf */ case 1: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4536; /* *pred_fcmltvnx4sf */ case 2: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4542; /* *pred_fcmltvnx2df */ default: return -1; } case 248: switch (pattern186 (x3)) { case 0: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4531; /* *pred_fcmlevnx8hf */ case 1: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4537; /* *pred_fcmlevnx4sf */ case 2: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4543; /* *pred_fcmlevnx2df */ default: return -1; } case 249: switch (pattern186 (x3)) { case 0: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4532; /* *pred_fcmeqvnx8hf */ case 1: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4538; /* *pred_fcmeqvnx4sf */ case 2: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4544; /* *pred_fcmeqvnx2df */ default: return -1; } case 250: switch (pattern186 (x3)) { case 0: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4533; /* *pred_fcmnevnx8hf */ case 1: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4539; /* *pred_fcmnevnx4sf */ case 2: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4545; /* *pred_fcmnevnx2df */ default: return -1; } case 251: switch (pattern186 (x3)) { case 0: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4534; /* *pred_fcmgevnx8hf */ case 1: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4540; /* *pred_fcmgevnx4sf */ case 2: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4546; /* *pred_fcmgevnx2df */ default: return -1; } case 252: switch (pattern186 (x3)) { case 0: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4535; /* *pred_fcmgtvnx8hf */ case 1: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4541; /* *pred_fcmgtvnx4sf */ case 2: if (! #line 1598 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4547; /* *pred_fcmgtvnx2df */ default: return -1; } case 101: return recog_134 (x1, insn, pnum_clobbers); case 102: 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_HFmode: if (pattern342 (x3, E_VNx8HFmode, E_HFmode, E_VNx8BImode) != 0 || ! #line 2200 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4879; /* *fold_left_plus_vnx8hf */ case E_SFmode: if (pattern342 (x3, E_VNx4SFmode, E_SFmode, E_VNx4BImode) != 0 || ! #line 2200 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4880; /* *fold_left_plus_vnx4sf */ case E_DFmode: if (pattern342 (x3, E_VNx2DFmode, E_DFmode, E_VNx2BImode) != 0 || ! #line 2200 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4881; /* *fold_left_plus_vnx2df */ default: return -1; } default: return -1; } } static int recog_140 (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 (XVECLEN (x3, 0) != 2 || XINT (x3, 1) != 89) return -1; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[4] = x5; x6 = XVECEXP (x3, 0, 1); switch (GET_CODE (x6)) { case LT: switch (pattern344 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4387; /* *pred_cmpltvnx16qi_combine */ case 1: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx8BImode, E_VNx8HImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4397; /* *pred_cmpltvnx8hi_combine */ } if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode) || !register_operand (operands[4], E_VNx8BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4488; /* *fcmltvnx8hf_and_combine */ case 2: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx4BImode, E_VNx4SImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4407; /* *pred_cmpltvnx4si_combine */ } if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode) || !register_operand (operands[4], E_VNx4BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4494; /* *fcmltvnx4sf_and_combine */ case 3: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx2BImode, E_VNx2DImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4417; /* *pred_cmpltvnx2di_combine */ } if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode) || !register_operand (operands[4], E_VNx2BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4500; /* *fcmltvnx2df_and_combine */ default: return -1; } case LE: switch (pattern344 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4388; /* *pred_cmplevnx16qi_combine */ case 1: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx8BImode, E_VNx8HImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4398; /* *pred_cmplevnx8hi_combine */ } if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode) || !register_operand (operands[4], E_VNx8BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4489; /* *fcmlevnx8hf_and_combine */ case 2: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx4BImode, E_VNx4SImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4408; /* *pred_cmplevnx4si_combine */ } if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode) || !register_operand (operands[4], E_VNx4BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4495; /* *fcmlevnx4sf_and_combine */ case 3: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx2BImode, E_VNx2DImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4418; /* *pred_cmplevnx2di_combine */ } if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode) || !register_operand (operands[4], E_VNx2BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4501; /* *fcmlevnx2df_and_combine */ default: return -1; } case EQ: switch (pattern344 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4389; /* *pred_cmpeqvnx16qi_combine */ case 1: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx8BImode, E_VNx8HImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4399; /* *pred_cmpeqvnx8hi_combine */ } if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode) || !register_operand (operands[4], E_VNx8BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4490; /* *fcmeqvnx8hf_and_combine */ case 2: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx4BImode, E_VNx4SImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4409; /* *pred_cmpeqvnx4si_combine */ } if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode) || !register_operand (operands[4], E_VNx4BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4496; /* *fcmeqvnx4sf_and_combine */ case 3: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx2BImode, E_VNx2DImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4419; /* *pred_cmpeqvnx2di_combine */ } if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode) || !register_operand (operands[4], E_VNx2BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4502; /* *fcmeqvnx2df_and_combine */ default: return -1; } case NE: switch (pattern344 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4390; /* *pred_cmpnevnx16qi_combine */ case 1: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx8BImode, E_VNx8HImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4400; /* *pred_cmpnevnx8hi_combine */ } if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode) || !register_operand (operands[4], E_VNx8BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4491; /* *fcmnevnx8hf_and_combine */ case 2: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx4BImode, E_VNx4SImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4410; /* *pred_cmpnevnx4si_combine */ } if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode) || !register_operand (operands[4], E_VNx4BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4497; /* *fcmnevnx4sf_and_combine */ case 3: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx2BImode, E_VNx2DImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4420; /* *pred_cmpnevnx2di_combine */ } if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode) || !register_operand (operands[4], E_VNx2BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4503; /* *fcmnevnx2df_and_combine */ default: return -1; } case GE: switch (pattern344 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4391; /* *pred_cmpgevnx16qi_combine */ case 1: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx8BImode, E_VNx8HImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4401; /* *pred_cmpgevnx8hi_combine */ } if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode) || !register_operand (operands[4], E_VNx8BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4492; /* *fcmgevnx8hf_and_combine */ case 2: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx4BImode, E_VNx4SImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4411; /* *pred_cmpgevnx4si_combine */ } if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode) || !register_operand (operands[4], E_VNx4BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4498; /* *fcmgevnx4sf_and_combine */ case 3: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx2BImode, E_VNx2DImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4421; /* *pred_cmpgevnx2di_combine */ } if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode) || !register_operand (operands[4], E_VNx2BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4504; /* *fcmgevnx2df_and_combine */ default: return -1; } case GT: switch (pattern344 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4392; /* *pred_cmpgtvnx16qi_combine */ case 1: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx8BImode, E_VNx8HImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4402; /* *pred_cmpgtvnx8hi_combine */ } if (!register_operand (operands[2], E_VNx8HFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx8HFmode) || !register_operand (operands[4], E_VNx8BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4493; /* *fcmgtvnx8hf_and_combine */ case 2: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx4BImode, E_VNx4SImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4412; /* *pred_cmpgtvnx4si_combine */ } if (!register_operand (operands[2], E_VNx4SFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx4SFmode) || !register_operand (operands[4], E_VNx4BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4499; /* *fcmgtvnx4sf_and_combine */ case 3: if (pnum_clobbers != NULL && pattern343 (x6, E_VNx2BImode, E_VNx2DImode) == 0 && #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) { *pnum_clobbers = 1; return 4422; /* *pred_cmpgtvnx2di_combine */ } if (!register_operand (operands[2], E_VNx2DFmode) || !aarch64_simd_reg_or_zero (operands[3], E_VNx2DFmode) || !register_operand (operands[4], E_VNx2BImode) || ! #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4505; /* *fcmgtvnx2df_and_combine */ default: return -1; } case LTU: switch (pattern346 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4393; /* *pred_cmplovnx16qi_combine */ case 1: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4403; /* *pred_cmplovnx8hi_combine */ case 2: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4413; /* *pred_cmplovnx4si_combine */ case 3: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4423; /* *pred_cmplovnx2di_combine */ default: return -1; } case LEU: switch (pattern346 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4394; /* *pred_cmplsvnx16qi_combine */ case 1: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4404; /* *pred_cmplsvnx8hi_combine */ case 2: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4414; /* *pred_cmplsvnx4si_combine */ case 3: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4424; /* *pred_cmplsvnx2di_combine */ default: return -1; } case GEU: switch (pattern346 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4395; /* *pred_cmphsvnx16qi_combine */ case 1: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4405; /* *pred_cmphsvnx8hi_combine */ case 2: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4415; /* *pred_cmphsvnx4si_combine */ case 3: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4425; /* *pred_cmphsvnx2di_combine */ default: return -1; } case GTU: switch (pattern346 (x2, pnum_clobbers)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4396; /* *pred_cmphivnx16qi_combine */ case 1: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4406; /* *pred_cmphivnx8hi_combine */ case 2: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4416; /* *pred_cmphivnx4si_combine */ case 3: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4426; /* *pred_cmphivnx2di_combine */ default: return -1; } case UNORDERED: switch (pattern348 (x2)) { case 0: if (! #line 1551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4506; /* *fcmuovnx8hf_and_combine */ case 1: if (! #line 1551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4507; /* *fcmuovnx4sf_and_combine */ case 2: if (! #line 1551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4508; /* *fcmuovnx2df_and_combine */ default: return -1; } default: return -1; } } static int recog_141 (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 = XEXP (x2, 0); operands[1] = x3; x4 = XEXP (x2, 1); operands[2] = x4; 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_SImode)) return -1; if (aarch64_logical_and_immediate (operands[2], E_SImode)) return 524; /* *aarch64_andsi_imm2 */ if (!aarch64_logical_operand (operands[2], E_SImode)) return -1; return 526; /* andsi3 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; if (aarch64_logical_and_immediate (operands[2], E_DImode)) return 525; /* *aarch64_anddi_imm2 */ if (!aarch64_logical_operand (operands[2], E_DImode)) return -1; return 529; /* anddi3 */ case E_V8QImode: if (pattern275 (x2, E_V8QImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1577; /* andv8qi3 */ case E_V16QImode: if (pattern275 (x2, E_V16QImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1578; /* andv16qi3 */ case E_V4HImode: if (pattern275 (x2, E_V4HImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1579; /* andv4hi3 */ case E_V8HImode: if (pattern275 (x2, E_V8HImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1580; /* andv8hi3 */ case E_V2SImode: if (pattern275 (x2, E_V2SImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1581; /* andv2si3 */ case E_V4SImode: if (pattern275 (x2, E_V4SImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1582; /* andv4si3 */ case E_V2DImode: if (pattern275 (x2, E_V2DImode) != 0 || ! #line 815 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1583; /* andv2di3 */ case E_VNx16QImode: if (pattern276 (x2, E_VNx16QImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4150; /* andvnx16qi3 */ case E_VNx8HImode: if (pattern276 (x2, E_VNx8HImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4153; /* andvnx8hi3 */ case E_VNx4SImode: if (pattern276 (x2, E_VNx4SImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4156; /* andvnx4si3 */ case E_VNx2DImode: if (pattern276 (x2, E_VNx2DImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4159; /* andvnx2di3 */ case E_VNx16BImode: if (pattern13 (x2, E_VNx16BImode) != 0 || ! #line 1139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4175; /* andvnx16bi3 */ case E_VNx8BImode: if (pattern13 (x2, E_VNx8BImode) != 0 || ! #line 1139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4176; /* andvnx8bi3 */ case E_VNx4BImode: if (pattern13 (x2, E_VNx4BImode) != 0 || ! #line 1139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4177; /* andvnx4bi3 */ case E_VNx2BImode: if (pattern13 (x2, E_VNx2BImode) != 0 || ! #line 1139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4178; /* andvnx2bi3 */ default: return -1; } } static int recog_142 (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); if (GET_CODE (x3) != AND) return -1; x4 = XEXP (x2, 0); x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); operands[1] = x6; x7 = XEXP (x4, 1); operands[3] = x7; x8 = XEXP (x3, 0); operands[4] = x8; x9 = XEXP (x3, 1); operands[5] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern458 (x2, E_SImode) != 0 || !aarch64_simd_shift_imm_si (operands[2], E_SImode) || pattern543 (x3, E_SImode) != 0 || ! #line 5561 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (SImode, UINTVAL (operands[5]), UINTVAL (operands[2]), UINTVAL(operands[3])))) return -1; return 791; /* *aarch64_bfisi5_shift_alt */ case E_DImode: if (pattern458 (x2, E_DImode) != 0 || !aarch64_simd_shift_imm_di (operands[2], E_DImode) || pattern543 (x3, E_DImode) != 0 || ! #line 5561 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (DImode, UINTVAL (operands[5]), UINTVAL (operands[2]), UINTVAL(operands[3])))) return -1; return 792; /* *aarch64_bfidi5_shift_alt */ default: return -1; } } static int recog_143 (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); switch (GET_CODE (x2)) { case REG: case SUBREG: operands[0] = x2; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (pattern217 (x3)) { case 0: if (! #line 5453 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (SImode) - 1))) return -1; return 778; /* *extzvsi */ case 1: if (! #line 5453 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (DImode) - 1))) return -1; return 780; /* *extzvdi */ default: return -1; } case ZERO_EXTRACT: x6 = XEXP (x2, 2); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x7 = XEXP (x2, 0); operands[0] = x7; x8 = XEXP (x2, 1); operands[1] = x8; if (!const_int_operand (operands[1], E_VOIDmode)) return -1; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); operands[2] = x4; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x5 = XEXP (x3, 1); if (!rtx_equal_p (x5, operands[1])) return -1; switch (GET_MODE (x2)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !register_operand (operands[2], E_SImode) || ! #line 5640 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!(UINTVAL (operands[1]) == 0 || (UINTVAL (operands[3]) + UINTVAL (operands[1]) > GET_MODE_BITSIZE (SImode))))) return -1; return 801; /* *extr_insv_lower_regsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[2], E_DImode) || ! #line 5640 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!(UINTVAL (operands[1]) == 0 || (UINTVAL (operands[3]) + UINTVAL (operands[1]) > GET_MODE_BITSIZE (DImode))))) return -1; return 802; /* *extr_insv_lower_regdi */ default: return -1; } default: return -1; } } static int recog_144 (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); x3 = XEXP (x2, 1); if (GET_CODE (x3) != FLOAT_EXTEND) return -1; x4 = XEXP (x2, 2); operands[1] = x4; x5 = XEXP (x2, 0); x6 = XEXP (x5, 0); switch (GET_CODE (x6)) { case VEC_SELECT: x7 = XEXP (x6, 0); operands[2] = x7; x8 = XEXP (x6, 1); operands[4] = x8; x9 = XEXP (x3, 0); switch (pattern354 (x9)) { case 0: if (pattern461 (x2, E_V2SFmode, E_V4HFmode, E_V2HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V4HFmode) && vect_par_cnst_lo_half (operands[5], E_V4HFmode) && #line 6402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3609; /* aarch64_simd_fmlal_lowv2sf */ if (!vect_par_cnst_hi_half (operands[4], E_V4HFmode) || !vect_par_cnst_hi_half (operands[5], E_V4HFmode) || ! #line 6437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3613; /* aarch64_simd_fmlal_highv2sf */ case 1: if (pattern461 (x2, E_V4SFmode, E_V8HFmode, E_V4HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V8HFmode) && vect_par_cnst_lo_half (operands[5], E_V8HFmode) && #line 6402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3610; /* aarch64_simd_fmlalq_lowv4sf */ if (!vect_par_cnst_hi_half (operands[4], E_V8HFmode) || !vect_par_cnst_hi_half (operands[5], E_V8HFmode) || ! #line 6437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3614; /* aarch64_simd_fmlalq_highv4sf */ case 2: if (pattern519 (x2, E_V2SFmode, E_V2HFmode, E_V4HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V4HFmode)) { switch (pattern578 ()) { case 0: if ( #line 6514 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3617; /* aarch64_simd_fmlal_lane_lowv2sf */ break; case 1: if ( #line 6744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3625; /* aarch64_simd_fmlal_laneq_lowv2sf */ break; default: break; } } if (!vect_par_cnst_hi_half (operands[4], E_V4HFmode)) return -1; switch (pattern578 ()) { case 0: if (! #line 6551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3619; /* aarch64_simd_fmlal_lane_highv2sf */ case 1: if (! #line 6781 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3627; /* aarch64_simd_fmlal_laneq_highv2sf */ default: return -1; } case 3: if (pattern519 (x2, E_V4SFmode, E_V4HFmode, E_V8HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V8HFmode)) { switch (pattern579 ()) { case 0: if ( #line 6628 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3621; /* aarch64_simd_fmlalq_laneq_lowv4sf */ break; case 1: if ( #line 6858 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3629; /* aarch64_simd_fmlalq_lane_lowv4sf */ break; default: break; } } if (!vect_par_cnst_hi_half (operands[4], E_V8HFmode)) return -1; switch (pattern579 ()) { case 0: if (! #line 6665 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3623; /* aarch64_simd_fmlalq_laneq_highv4sf */ case 1: if (! #line 6895 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3631; /* aarch64_simd_fmlalq_lane_highv4sf */ default: return -1; } default: return -1; } case NEG: x7 = XEXP (x6, 0); if (GET_CODE (x7) != VEC_SELECT) return -1; x10 = XEXP (x7, 0); operands[2] = x10; x11 = XEXP (x7, 1); operands[4] = x11; x9 = XEXP (x3, 0); switch (pattern354 (x9)) { case 0: if (pattern477 (x2, E_V2SFmode, E_V4HFmode, E_V2HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V4HFmode) && vect_par_cnst_lo_half (operands[5], E_V4HFmode) && #line 6420 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3611; /* aarch64_simd_fmlsl_lowv2sf */ if (!vect_par_cnst_hi_half (operands[4], E_V4HFmode) || !vect_par_cnst_hi_half (operands[5], E_V4HFmode) || ! #line 6455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3615; /* aarch64_simd_fmlsl_highv2sf */ case 1: if (pattern477 (x2, E_V4SFmode, E_V8HFmode, E_V4HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V8HFmode) && vect_par_cnst_lo_half (operands[5], E_V8HFmode) && #line 6420 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3612; /* aarch64_simd_fmlslq_lowv4sf */ if (!vect_par_cnst_hi_half (operands[4], E_V8HFmode) || !vect_par_cnst_hi_half (operands[5], E_V8HFmode) || ! #line 6455 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3616; /* aarch64_simd_fmlslq_highv4sf */ case 2: if (pattern531 (x2, E_V2SFmode, E_V2HFmode, E_V4HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V4HFmode)) { switch (pattern578 ()) { case 0: if ( #line 6533 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3618; /* aarch64_simd_fmlsl_lane_lowv2sf */ break; case 1: if ( #line 6763 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3626; /* aarch64_simd_fmlsl_laneq_lowv2sf */ break; default: break; } } if (!vect_par_cnst_hi_half (operands[4], E_V4HFmode)) return -1; switch (pattern578 ()) { case 0: if (! #line 6570 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3620; /* aarch64_simd_fmlsl_lane_highv2sf */ case 1: if (! #line 6800 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3628; /* aarch64_simd_fmlsl_laneq_highv2sf */ default: return -1; } case 3: if (pattern531 (x2, E_V4SFmode, E_V4HFmode, E_V8HFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[4], E_V8HFmode)) { switch (pattern579 ()) { case 0: if ( #line 6647 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3622; /* aarch64_simd_fmlslq_laneq_lowv4sf */ break; case 1: if ( #line 6877 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return 3630; /* aarch64_simd_fmlslq_lane_lowv4sf */ break; default: break; } } if (!vect_par_cnst_hi_half (operands[4], E_V8HFmode)) return -1; switch (pattern579 ()) { case 0: if (! #line 6684 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3624; /* aarch64_simd_fmlslq_laneq_highv4sf */ case 1: if (! #line 6914 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_F16FML)) return -1; return 3632; /* aarch64_simd_fmlslq_lane_highv4sf */ default: return -1; } default: return -1; } default: return -1; } } static int recog_145 (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); x3 = XEXP (x2, 0); operands[1] = x3; switch (GET_CODE (operands[1])) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_V8QImode: if (register_operand (operands[0], E_V8QImode) && GET_MODE (x2) == E_V8QImode && register_operand (operands[1], E_QImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1101; /* aarch64_simd_dupv8qi */ break; case E_V16QImode: if (register_operand (operands[0], E_V16QImode) && GET_MODE (x2) == E_V16QImode && register_operand (operands[1], E_QImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1102; /* aarch64_simd_dupv16qi */ break; case E_V4HImode: if (register_operand (operands[0], E_V4HImode) && GET_MODE (x2) == E_V4HImode && register_operand (operands[1], E_HImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1103; /* aarch64_simd_dupv4hi */ break; case E_V8HImode: if (register_operand (operands[0], E_V8HImode) && GET_MODE (x2) == E_V8HImode && register_operand (operands[1], E_HImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1104; /* aarch64_simd_dupv8hi */ break; case E_V2SImode: if (register_operand (operands[0], E_V2SImode) && GET_MODE (x2) == E_V2SImode && register_operand (operands[1], E_SImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1105; /* aarch64_simd_dupv2si */ break; case E_V4SImode: if (register_operand (operands[0], E_V4SImode) && GET_MODE (x2) == E_V4SImode && register_operand (operands[1], E_SImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1106; /* aarch64_simd_dupv4si */ break; case E_V2DImode: if (register_operand (operands[0], E_V2DImode) && GET_MODE (x2) == E_V2DImode && register_operand (operands[1], E_DImode) && #line 58 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1107; /* aarch64_simd_dupv2di */ break; case E_V4HFmode: if (register_operand (operands[0], E_V4HFmode) && GET_MODE (x2) == E_V4HFmode && register_operand (operands[1], E_HFmode) && #line 69 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1108; /* aarch64_simd_dupv4hf */ break; case E_V8HFmode: if (register_operand (operands[0], E_V8HFmode) && GET_MODE (x2) == E_V8HFmode && register_operand (operands[1], E_HFmode) && #line 69 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1109; /* aarch64_simd_dupv8hf */ break; case E_V2SFmode: if (register_operand (operands[0], E_V2SFmode) && GET_MODE (x2) == E_V2SFmode && register_operand (operands[1], E_SFmode) && #line 69 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1110; /* aarch64_simd_dupv2sf */ break; case E_V4SFmode: if (register_operand (operands[0], E_V4SFmode) && GET_MODE (x2) == E_V4SFmode && register_operand (operands[1], E_SFmode) && #line 69 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1111; /* aarch64_simd_dupv4sf */ break; case E_V2DFmode: if (register_operand (operands[0], E_V2DFmode) && GET_MODE (x2) == E_V2DFmode && register_operand (operands[1], E_DFmode) && #line 69 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1112; /* aarch64_simd_dupv2df */ break; default: break; } break; case MEM: switch (GET_MODE (operands[0])) { case E_V8QImode: if (register_operand (operands[0], E_V8QImode) && GET_MODE (x2) == E_V8QImode && aarch64_simd_struct_operand (operands[1], E_QImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3517; /* *aarch64_simd_ld1rv8qi */ break; case E_V16QImode: if (register_operand (operands[0], E_V16QImode) && GET_MODE (x2) == E_V16QImode && aarch64_simd_struct_operand (operands[1], E_QImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3518; /* *aarch64_simd_ld1rv16qi */ break; case E_V4HImode: if (register_operand (operands[0], E_V4HImode) && GET_MODE (x2) == E_V4HImode && aarch64_simd_struct_operand (operands[1], E_HImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3519; /* *aarch64_simd_ld1rv4hi */ break; case E_V8HImode: if (register_operand (operands[0], E_V8HImode) && GET_MODE (x2) == E_V8HImode && aarch64_simd_struct_operand (operands[1], E_HImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3520; /* *aarch64_simd_ld1rv8hi */ break; case E_V2SImode: if (register_operand (operands[0], E_V2SImode) && GET_MODE (x2) == E_V2SImode && aarch64_simd_struct_operand (operands[1], E_SImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3521; /* *aarch64_simd_ld1rv2si */ break; case E_V4SImode: if (register_operand (operands[0], E_V4SImode) && GET_MODE (x2) == E_V4SImode && aarch64_simd_struct_operand (operands[1], E_SImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3522; /* *aarch64_simd_ld1rv4si */ break; case E_V2DImode: if (register_operand (operands[0], E_V2DImode) && GET_MODE (x2) == E_V2DImode && aarch64_simd_struct_operand (operands[1], E_DImode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3523; /* *aarch64_simd_ld1rv2di */ break; case E_V4HFmode: if (register_operand (operands[0], E_V4HFmode) && GET_MODE (x2) == E_V4HFmode && aarch64_simd_struct_operand (operands[1], E_HFmode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3524; /* *aarch64_simd_ld1rv4hf */ break; case E_V8HFmode: if (register_operand (operands[0], E_V8HFmode) && GET_MODE (x2) == E_V8HFmode && aarch64_simd_struct_operand (operands[1], E_HFmode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3525; /* *aarch64_simd_ld1rv8hf */ break; case E_V2SFmode: if (register_operand (operands[0], E_V2SFmode) && GET_MODE (x2) == E_V2SFmode && aarch64_simd_struct_operand (operands[1], E_SFmode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3526; /* *aarch64_simd_ld1rv2sf */ break; case E_V4SFmode: if (register_operand (operands[0], E_V4SFmode) && GET_MODE (x2) == E_V4SFmode && aarch64_simd_struct_operand (operands[1], E_SFmode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3527; /* *aarch64_simd_ld1rv4sf */ break; case E_V2DFmode: if (register_operand (operands[0], E_V2DFmode) && GET_MODE (x2) == E_V2DFmode && aarch64_simd_struct_operand (operands[1], E_DFmode) && #line 5933 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 3528; /* *aarch64_simd_ld1rv2df */ break; default: break; } break; default: break; } if (pnum_clobbers == NULL) return -1; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (!register_operand (operands[0], E_VNx16QImode) || GET_MODE (x2) != E_VNx16QImode || !aarch64_sve_dup_operand (operands[1], E_QImode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3924; /* *vec_duplicatevnx16qi_reg */ case E_VNx8HImode: if (!register_operand (operands[0], E_VNx8HImode) || GET_MODE (x2) != E_VNx8HImode || !aarch64_sve_dup_operand (operands[1], E_HImode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3925; /* *vec_duplicatevnx8hi_reg */ case E_VNx4SImode: if (!register_operand (operands[0], E_VNx4SImode) || GET_MODE (x2) != E_VNx4SImode || !aarch64_sve_dup_operand (operands[1], E_SImode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3926; /* *vec_duplicatevnx4si_reg */ case E_VNx2DImode: if (!register_operand (operands[0], E_VNx2DImode) || GET_MODE (x2) != E_VNx2DImode || !aarch64_sve_dup_operand (operands[1], E_DImode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3927; /* *vec_duplicatevnx2di_reg */ case E_VNx8HFmode: if (!register_operand (operands[0], E_VNx8HFmode) || GET_MODE (x2) != E_VNx8HFmode || !aarch64_sve_dup_operand (operands[1], E_HFmode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3928; /* *vec_duplicatevnx8hf_reg */ case E_VNx4SFmode: if (!register_operand (operands[0], E_VNx4SFmode) || GET_MODE (x2) != E_VNx4SFmode || !aarch64_sve_dup_operand (operands[1], E_SFmode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3929; /* *vec_duplicatevnx4sf_reg */ case E_VNx2DFmode: if (!register_operand (operands[0], E_VNx2DFmode) || GET_MODE (x2) != E_VNx2DFmode || !aarch64_sve_dup_operand (operands[1], E_DFmode) || ! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 3930; /* *vec_duplicatevnx2df_reg */ default: return -1; } } static int recog_146 (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 = XEXP (x2, 1); x4 = XVECEXP (x3, 0, 0); operands[2] = x4; switch (GET_MODE (operands[0])) { case E_QImode: if (GET_MODE (x2) == E_QImode) { if (memory_operand (operands[0], E_QImode) && const_int_operand (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[1])) { case E_V8QImode: if (register_operand (operands[1], E_V8QImode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (8, INTVAL (operands[2])) == 0)) return 1147; /* aarch64_store_lane0v8qi */ break; case E_V16QImode: if (register_operand (operands[1], E_V16QImode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (16, INTVAL (operands[2])) == 0)) return 1148; /* aarch64_store_lane0v16qi */ break; default: break; } } if (aarch64_simd_nonimmediate_operand (operands[0], E_QImode) && immediate_operand (operands[2], E_SImode)) { switch (GET_MODE (operands[1])) { case E_V8QImode: if (register_operand (operands[1], E_V8QImode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2235; /* aarch64_get_lanev8qi */ break; case E_V16QImode: if (register_operand (operands[1], E_V16QImode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2236; /* aarch64_get_lanev16qi */ break; default: break; } } } break; case E_HImode: if (GET_MODE (x2) == E_HImode) { if (memory_operand (operands[0], E_HImode) && const_int_operand (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[1])) { case E_V4HImode: if (register_operand (operands[1], E_V4HImode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (4, INTVAL (operands[2])) == 0)) return 1149; /* aarch64_store_lane0v4hi */ break; case E_V8HImode: if (register_operand (operands[1], E_V8HImode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (8, INTVAL (operands[2])) == 0)) return 1150; /* aarch64_store_lane0v8hi */ break; default: break; } } if (aarch64_simd_nonimmediate_operand (operands[0], E_HImode) && immediate_operand (operands[2], E_SImode)) { switch (GET_MODE (operands[1])) { case E_V4HImode: if (register_operand (operands[1], E_V4HImode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2237; /* aarch64_get_lanev4hi */ break; case E_V8HImode: if (register_operand (operands[1], E_V8HImode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2238; /* aarch64_get_lanev8hi */ break; default: break; } } } break; case E_SImode: if (GET_MODE (x2) == E_SImode) { if (memory_operand (operands[0], E_SImode) && const_int_operand (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[1])) { case E_V2SImode: if (register_operand (operands[1], E_V2SImode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (2, INTVAL (operands[2])) == 0)) return 1151; /* aarch64_store_lane0v2si */ break; case E_V4SImode: if (register_operand (operands[1], E_V4SImode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (4, INTVAL (operands[2])) == 0)) return 1152; /* aarch64_store_lane0v4si */ break; default: break; } } if (aarch64_simd_nonimmediate_operand (operands[0], E_SImode) && immediate_operand (operands[2], E_SImode)) { switch (GET_MODE (operands[1])) { case E_V2SImode: if (register_operand (operands[1], E_V2SImode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2239; /* aarch64_get_lanev2si */ break; case E_V4SImode: if (register_operand (operands[1], E_V4SImode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2240; /* aarch64_get_lanev4si */ break; default: break; } } } break; case E_DImode: if (pattern319 (x2, E_V2DImode, E_DImode) == 0 && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (2, INTVAL (operands[2])) == 0)) return 1153; /* aarch64_store_lane0v2di */ break; case E_HFmode: if (GET_MODE (x2) == E_HFmode) { if (memory_operand (operands[0], E_HFmode) && const_int_operand (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[1])) { case E_V4HFmode: if (register_operand (operands[1], E_V4HFmode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (4, INTVAL (operands[2])) == 0)) return 1154; /* aarch64_store_lane0v4hf */ break; case E_V8HFmode: if (register_operand (operands[1], E_V8HFmode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (8, INTVAL (operands[2])) == 0)) return 1155; /* aarch64_store_lane0v8hf */ break; default: break; } } if (aarch64_simd_nonimmediate_operand (operands[0], E_HFmode) && immediate_operand (operands[2], E_SImode)) { switch (GET_MODE (operands[1])) { case E_V4HFmode: if (register_operand (operands[1], E_V4HFmode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2242; /* aarch64_get_lanev4hf */ break; case E_V8HFmode: if (register_operand (operands[1], E_V8HFmode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2243; /* aarch64_get_lanev8hf */ break; default: break; } } } break; case E_SFmode: if (GET_MODE (x2) == E_SFmode) { if (memory_operand (operands[0], E_SFmode) && const_int_operand (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[1])) { case E_V2SFmode: if (register_operand (operands[1], E_V2SFmode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (2, INTVAL (operands[2])) == 0)) return 1156; /* aarch64_store_lane0v2sf */ break; case E_V4SFmode: if (register_operand (operands[1], E_V4SFmode) && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (4, INTVAL (operands[2])) == 0)) return 1157; /* aarch64_store_lane0v4sf */ break; default: break; } } if (aarch64_simd_nonimmediate_operand (operands[0], E_SFmode) && immediate_operand (operands[2], E_SImode)) { switch (GET_MODE (operands[1])) { case E_V2SFmode: if (register_operand (operands[1], E_V2SFmode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2244; /* aarch64_get_lanev2sf */ break; case E_V4SFmode: if (register_operand (operands[1], E_V4SFmode) && #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2245; /* aarch64_get_lanev4sf */ break; default: break; } } } break; case E_DFmode: if (pattern319 (x2, E_V2DFmode, E_DFmode) == 0 && #line 174 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && ENDIAN_LANE_N (2, INTVAL (operands[2])) == 0)) return 1158; /* aarch64_store_lane0v2df */ break; default: break; } if (GET_CODE (x4) != CONST_INT) return -1; if (XWINT (x4, 0) == 0L) { switch (pattern286 (x2)) { case 0: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3889; /* *vec_extractvnx16qiqi_0 */ break; case 1: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3890; /* *vec_extractvnx8hihi_0 */ break; case 2: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3891; /* *vec_extractvnx4sisi_0 */ break; case 3: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3892; /* *vec_extractvnx2didi_0 */ break; case 4: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3893; /* *vec_extractvnx8hfhf_0 */ break; case 5: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3894; /* *vec_extractvnx4sfsf_0 */ break; case 6: if ( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 3895; /* *vec_extractvnx2dfdf_0 */ break; default: break; } } operands[2] = x4; if (!const_int_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (GET_MODE (x2) != E_QImode || !register_operand (operands[1], E_VNx16QImode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_QImode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (QImode), 1, 15))) return 3896; /* *vec_extractvnx16qiqi_v128 */ if (!register_operand (operands[0], E_QImode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (QImode), 16, 63))) return 3903; /* *vec_extractvnx16qiqi_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (QImode) >= 64)) return -1; return 3910; /* *vec_extractvnx16qiqi_ext */ case E_HImode: if (GET_MODE (x2) != E_HImode || !register_operand (operands[1], E_VNx8HImode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_HImode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (HImode), 1, 15))) return 3897; /* *vec_extractvnx8hihi_v128 */ if (!register_operand (operands[0], E_HImode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (HImode), 16, 63))) return 3904; /* *vec_extractvnx8hihi_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (HImode) >= 64)) return -1; return 3911; /* *vec_extractvnx8hihi_ext */ case E_SImode: if (GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_VNx4SImode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_SImode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (SImode), 1, 15))) return 3898; /* *vec_extractvnx4sisi_v128 */ if (!register_operand (operands[0], E_SImode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (SImode), 16, 63))) return 3905; /* *vec_extractvnx4sisi_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (SImode) >= 64)) return -1; return 3912; /* *vec_extractvnx4sisi_ext */ case E_DImode: if (GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_VNx2DImode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_DImode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (DImode), 1, 15))) return 3899; /* *vec_extractvnx2didi_v128 */ if (!register_operand (operands[0], E_DImode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (DImode), 16, 63))) return 3906; /* *vec_extractvnx2didi_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (DImode) >= 64)) return -1; return 3913; /* *vec_extractvnx2didi_ext */ case E_HFmode: if (GET_MODE (x2) != E_HFmode || !register_operand (operands[1], E_VNx8HFmode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_HFmode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (HFmode), 1, 15))) return 3900; /* *vec_extractvnx8hfhf_v128 */ if (!register_operand (operands[0], E_HFmode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (HFmode), 16, 63))) return 3907; /* *vec_extractvnx8hfhf_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (HFmode) >= 64)) return -1; return 3914; /* *vec_extractvnx8hfhf_ext */ case E_SFmode: if (GET_MODE (x2) != E_SFmode || !register_operand (operands[1], E_VNx4SFmode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_SFmode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (SFmode), 1, 15))) return 3901; /* *vec_extractvnx4sfsf_v128 */ if (!register_operand (operands[0], E_SFmode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (SFmode), 16, 63))) return 3908; /* *vec_extractvnx4sfsf_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (SFmode) >= 64)) return -1; return 3915; /* *vec_extractvnx4sfsf_ext */ case E_DFmode: if (GET_MODE (x2) != E_DFmode || !register_operand (operands[1], E_VNx2DFmode)) return -1; if (aarch64_simd_nonimmediate_operand (operands[0], E_DFmode) && #line 559 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (DFmode), 1, 15))) return 3902; /* *vec_extractvnx2dfdf_v128 */ if (!register_operand (operands[0], E_DFmode)) return -1; if ( #line 585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (DFmode), 16, 63))) return 3909; /* *vec_extractvnx2dfdf_dup */ if (! #line 600 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && INTVAL (operands[2]) * GET_MODE_SIZE (DFmode) >= 64)) return -1; return 3916; /* *vec_extractvnx2dfdf_ext */ default: return -1; } } static int recog_147 (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); operands[1] = x3; x4 = XEXP (x2, 1); switch (GET_CODE (x4)) { case VEC_DUPLICATE: x5 = XEXP (x4, 0); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern363 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 1433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1790; /* move_lo_quad_internal_v16qi */ case E_V8HImode: if (pattern363 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 1433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1791; /* move_lo_quad_internal_v8hi */ case E_V4SImode: if (pattern363 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 1433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1792; /* move_lo_quad_internal_v4si */ case E_V8HFmode: if (pattern363 (x2, E_V4HFmode, E_V8HFmode) != 0 || ! #line 1433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1793; /* move_lo_quad_internal_v8hf */ case E_V4SFmode: if (pattern363 (x2, E_V2SFmode, E_V4SFmode) != 0 || ! #line 1433 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1794; /* move_lo_quad_internal_v4sf */ default: return -1; } case CONST_INT: if (XWINT (x4, 0) != 0L) return -1; 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_DImode) || ! #line 1448 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1795; /* move_lo_quad_internal_v2di */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x2) != E_V2DFmode || !register_operand (operands[1], E_DFmode) || ! #line 1448 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1796; /* move_lo_quad_internal_v2df */ default: return -1; } case VEC_SELECT: x6 = XEXP (x4, 1); operands[2] = x6; x5 = XEXP (x4, 0); if (!rtx_equal_p (x5, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern385 (x2, E_V16QImode, E_V8QImode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1811; /* aarch64_simd_move_hi_quad_be_v16qi */ case E_V8HImode: if (pattern385 (x2, E_V8HImode, E_V4HImode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1812; /* aarch64_simd_move_hi_quad_be_v8hi */ case E_V4SImode: if (pattern385 (x2, E_V4SImode, E_V2SImode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1813; /* aarch64_simd_move_hi_quad_be_v4si */ case E_V2DImode: if (pattern385 (x2, E_V2DImode, E_DImode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1814; /* aarch64_simd_move_hi_quad_be_v2di */ case E_V8HFmode: if (pattern385 (x2, E_V8HFmode, E_V4HFmode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1815; /* aarch64_simd_move_hi_quad_be_v8hf */ case E_V4SFmode: if (pattern385 (x2, E_V4SFmode, E_V2SFmode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1816; /* aarch64_simd_move_hi_quad_be_v4sf */ case E_V2DFmode: if (pattern385 (x2, E_V2DFmode, E_DFmode) != 0 || ! #line 1527 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1817; /* aarch64_simd_move_hi_quad_be_v2df */ default: return -1; } case FLOAT_TRUNCATE: x5 = XEXP (x4, 0); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V4SFmode: if (pattern364 (x2, E_V2DFmode, E_V2SFmode, E_V4SFmode) != 0 || ! #line 2240 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 2097; /* aarch64_float_truncate_hi_v4sf_le */ case E_V8HFmode: if (pattern364 (x2, E_V4SFmode, E_V4HFmode, E_V8HFmode) != 0 || ! #line 2240 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 2098; /* aarch64_float_truncate_hi_v8hf_le */ default: return -1; } case REG: case SUBREG: case MEM: operands[2] = x4; switch (GET_CODE (operands[0])) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern386 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 2247; /* load_pair_lanesv8qi */ case E_V8HImode: if (pattern386 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 2248; /* load_pair_lanesv4hi */ case E_V8HFmode: if (pattern386 (x2, E_V4HFmode, E_V8HFmode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 2249; /* load_pair_lanesv4hf */ case E_V4SImode: if (pattern386 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 2250; /* load_pair_lanesv2si */ case E_V4SFmode: if (pattern386 (x2, E_V2SFmode, E_V4SFmode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 2251; /* load_pair_lanesv2sf */ case E_V2DImode: if (pattern386 (x2, E_DImode, E_V2DImode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DImode))))) return -1; return 2252; /* load_pair_lanesdi */ case E_V2DFmode: if (pattern386 (x2, E_DFmode, E_V2DFmode) != 0 || ! #line 3162 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !STRICT_ALIGNMENT && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 2253; /* load_pair_lanesdf */ default: return -1; } case MEM: switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern387 (x2, E_V8QImode, E_V16QImode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2254; /* store_pair_lanesv8qi */ case E_V8HImode: if (pattern387 (x2, E_V4HImode, E_V8HImode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2255; /* store_pair_lanesv4hi */ case E_V8HFmode: if (pattern387 (x2, E_V4HFmode, E_V8HFmode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2256; /* store_pair_lanesv4hf */ case E_V4SImode: if (pattern387 (x2, E_V2SImode, E_V4SImode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2257; /* store_pair_lanesv2si */ case E_V4SFmode: if (pattern387 (x2, E_V2SFmode, E_V4SFmode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2258; /* store_pair_lanesv2sf */ case E_V2DImode: if (pattern387 (x2, E_DImode, E_V2DImode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2259; /* store_pair_lanesdi */ case E_V2DFmode: if (pattern387 (x2, E_DFmode, E_V2DFmode) != 0 || ! #line 3176 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2260; /* store_pair_lanesdf */ default: return -1; } default: return -1; } default: return -1; } } static int recog_148 (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 = XEXP (x1, 1); x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case REG: case SUBREG: case MEM: x4 = XEXP (x1, 0); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[0] = x4; operands[1] = x3; switch (GET_MODE (operands[0])) { case E_DImode: switch (pattern192 (x2)) { case 0: return 99; /* *zero_extendsidi2_aarch64 */ case 1: return 106; /* *zero_extendqidi2_aarch64 */ case 2: return 108; /* *zero_extendhidi2_aarch64 */ default: return -1; } case E_SImode: switch (pattern193 (x2)) { case 0: return 105; /* *zero_extendqisi2_aarch64 */ case 1: return 107; /* *zero_extendhisi2_aarch64 */ default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x2) != E_HImode || !nonimmediate_operand (operands[1], E_QImode)) return -1; return 110; /* *zero_extendqihi2_aarch64 */ case E_TImode: if (!register_operand (operands[0], E_TImode) || GET_MODE (x2) != E_TImode || !register_operand (operands[1], E_DImode) || ! #line 6520 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1032; /* aarch64_movtilow_di */ case E_TFmode: if (!register_operand (operands[0], E_TFmode) || GET_MODE (x2) != E_TFmode || !register_operand (operands[1], E_DImode) || ! #line 6520 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1033; /* aarch64_movtflow_di */ default: return -1; } case ZERO_EXTRACT: x5 = XEXP (x4, 1); if (GET_CODE (x5) != CONST_INT) return -1; operands[1] = x5; if (const_int_operand (operands[1], E_VOIDmode)) { res = recog_5 (x1, insn, pnum_clobbers); if (res >= 0) return res; } if (XWINT (x5, 0) != 64L) return -1; x6 = XEXP (x4, 2); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 64]) return -1; x7 = XEXP (x4, 0); operands[0] = x7; operands[1] = x3; if (!register_operand (operands[1], E_DImode)) return -1; switch (GET_MODE (x4)) { case E_TImode: if (!register_operand (operands[0], E_TImode) || GET_MODE (x2) != E_TImode || ! #line 6511 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1030; /* aarch64_movtihigh_di */ case E_TFmode: if (!register_operand (operands[0], E_TFmode) || GET_MODE (x2) != E_TFmode || ! #line 6511 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1031; /* aarch64_movtfhigh_di */ default: return -1; } default: return -1; } case PLUS: return recog_8 (x1, insn, pnum_clobbers); case MINUS: return recog_7 (x1, insn, pnum_clobbers); case NEG: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x8 = XEXP (x3, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; if (!register_operand (operands[1], E_SImode)) return -1; return 394; /* *negsi2_uxtw */ case ASHIFT: if (GET_MODE (x8) != E_SImode) return -1; x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); operands[2] = x10; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 413; /* *neg_lsl_si2_uxtw */ case ASHIFTRT: if (GET_MODE (x8) != E_SImode) return -1; x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); operands[2] = x10; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 414; /* *neg_asr_si2_uxtw */ case LSHIFTRT: if (GET_MODE (x8) != E_SImode) return -1; x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); operands[2] = x10; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; return 415; /* *neg_lsr_si2_uxtw */ case MULT: if (GET_MODE (x8) != E_SImode) return -1; x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); operands[2] = x10; if (!aarch64_pwr_2_si (operands[2], E_QImode)) return -1; return 418; /* *neg_mul_imm_si2_uxtw */ case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: operands[1] = x8; if (!aarch64_comparison_operator_mode (operands[1], E_SImode)) return -1; x10 = XEXP (x8, 1); if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x9 = XEXP (x8, 0); operands[2] = x9; if (!cc_register (operands[2], E_VOIDmode)) return -1; return 496; /* *cstoresi_neg_uxtw */ default: return -1; } case MULT: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x11 = XEXP (x3, 1); operands[2] = x11; if (!register_operand (operands[2], E_SImode)) return -1; x8 = XEXP (x3, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; if (!register_operand (operands[1], E_SImode)) return -1; return 421; /* *mulsi3_uxtw */ case NEG: if (GET_MODE (x8) != E_SImode) return -1; x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; return 430; /* *mulsi_neg_uxtw */ default: return -1; } case DIV: if (pattern30 (x1) != 0) return -1; return 445; /* *divsi3_uxtw */ case UDIV: if (pattern30 (x1) != 0) return -1; return 446; /* *udivsi3_uxtw */ case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: operands[1] = x3; if (!aarch64_comparison_operator_mode (operands[1], E_SImode)) return -1; x11 = XEXP (x3, 1); if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x8 = XEXP (x3, 0); operands[2] = x8; if (!cc_register (operands[2], E_VOIDmode)) return -1; return 491; /* *cstoresi_insn_uxtw */ case IF_THEN_ELSE: if (GET_MODE (x3) != E_SImode) return -1; x8 = XEXP (x3, 0); switch (GET_CODE (x8)) { case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: operands[1] = x8; if (aarch64_comparison_operator (operands[1], E_VOIDmode)) { res = recog_6 (x1, insn, pnum_clobbers); if (res >= 0) return res; } if (!aarch64_comparison_operation (operands[1], E_VOIDmode)) return -1; x11 = XEXP (x3, 1); if (GET_CODE (x11) != NEG || GET_MODE (x11) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x12 = XEXP (x11, 0); operands[2] = x12; if (!register_operand (operands[2], E_SImode)) return -1; x13 = XEXP (x3, 2); operands[3] = x13; if (!aarch64_reg_or_zero (operands[3], E_SImode)) return -1; return 519; /* csneg3_uxtw_insn */ default: return -1; } case AND: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x8 = XEXP (x3, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; if (!register_operand (operands[1], E_SImode)) return -1; x11 = XEXP (x3, 1); operands[2] = x11; if (!aarch64_logical_operand (operands[2], E_SImode)) return -1; return 532; /* *andsi3_uxtw */ case ASHIFT: if (pattern292 (x3) != 0) return -1; return 580; /* *and_ashlsi3_uxtw */ case ASHIFTRT: if (pattern292 (x3) != 0) return -1; return 583; /* *and_ashrsi3_uxtw */ case LSHIFTRT: if (pattern292 (x3) != 0) return -1; return 586; /* *and_lshrsi3_uxtw */ case ROTATERT: if (pattern292 (x3) != 0) return -1; return 589; /* *and_rotrsi3_uxtw */ case ROTATE: if (pattern292 (x3) != 0) return -1; return 592; /* *and_rolsi3_uxtw */ case NOT: if (GET_MODE (x8) != E_SImode) return -1; x9 = XEXP (x8, 0); operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; x11 = XEXP (x3, 1); operands[2] = x11; if (!register_operand (operands[2], E_SImode)) return -1; return 609; /* *and_one_cmplsidi3_ze */ default: return -1; } case IOR: return recog_9 (x1, insn, pnum_clobbers); case XOR: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x8 = XEXP (x3, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; if (!register_operand (operands[1], E_SImode)) return -1; x11 = XEXP (x3, 1); operands[2] = x11; if (!aarch64_logical_operand (operands[2], E_SImode)) return -1; return 534; /* *xorsi3_uxtw */ case ASHIFT: if (pattern292 (x3) != 0) return -1; return 582; /* *xor_ashlsi3_uxtw */ case ASHIFTRT: if (pattern292 (x3) != 0) return -1; return 585; /* *xor_ashrsi3_uxtw */ case LSHIFTRT: if (pattern292 (x3) != 0) return -1; return 588; /* *xor_lshrsi3_uxtw */ case ROTATERT: if (pattern292 (x3) != 0) return -1; return 591; /* *xor_rotrsi3_uxtw */ case ROTATE: if (pattern292 (x3) != 0) return -1; return 594; /* *xor_rolsi3_uxtw */ default: return -1; } case NOT: if (GET_MODE (x3) != E_SImode) return -1; x8 = XEXP (x3, 0); if (GET_CODE (x8) != XOR || GET_MODE (x8) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x10 = XEXP (x8, 1); if (!register_operand (x10, E_SImode)) return -1; x9 = XEXP (x8, 0); switch (GET_CODE (x9)) { case REG: case SUBREG: operands[1] = x9; if (!register_operand (operands[1], E_SImode)) return -1; operands[2] = x10; return 611; /* *xor_one_cmplsidi3_ze */ case ASHIFT: if (GET_MODE (x9) != E_SImode) return -1; x14 = XEXP (x9, 0); operands[1] = x14; if (!register_operand (operands[1], E_SImode)) return -1; x15 = XEXP (x9, 1); operands[2] = x15; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; operands[3] = x10; return 651; /* *eor_one_cmpl_ashlsidi3_alt_ze */ case ASHIFTRT: if (GET_MODE (x9) != E_SImode) return -1; x14 = XEXP (x9, 0); operands[1] = x14; if (!register_operand (operands[1], E_SImode)) return -1; x15 = XEXP (x9, 1); operands[2] = x15; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; operands[3] = x10; return 652; /* *eor_one_cmpl_ashrsidi3_alt_ze */ case LSHIFTRT: if (GET_MODE (x9) != E_SImode) return -1; x14 = XEXP (x9, 0); operands[1] = x14; if (!register_operand (operands[1], E_SImode)) return -1; x15 = XEXP (x9, 1); operands[2] = x15; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; operands[3] = x10; return 653; /* *eor_one_cmpl_lshrsidi3_alt_ze */ case ROTATERT: if (GET_MODE (x9) != E_SImode) return -1; x14 = XEXP (x9, 0); operands[1] = x14; if (!register_operand (operands[1], E_SImode)) return -1; x15 = XEXP (x9, 1); operands[2] = x15; if (!aarch64_shift_imm_si (operands[2], E_QImode)) return -1; operands[3] = x10; return 654; /* *eor_one_cmpl_rotrsidi3_alt_ze */ default: return -1; } case ASHIFT: switch (pattern31 (x1)) { case 0: return 742; /* *ashlsi3_insn_uxtw */ case 1: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 764; /* *zero_extenddi_ashlqi */ case 2: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 768; /* *zero_extenddi_ashlhi */ case 3: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 762; /* *zero_extendsi_ashlqi */ case 4: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 766; /* *zero_extendsi_ashlhi */ default: return -1; } case ASHIFTRT: if (pattern32 (x1) != 0) return -1; return 743; /* *ashrsi3_insn_uxtw */ case LSHIFTRT: switch (pattern31 (x1)) { case 0: return 744; /* *lshrsi3_insn_uxtw */ case 1: if (! #line 5406 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 770; /* *zero_extenddi_lshrqi */ case 2: if (! #line 5406 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 772; /* *zero_extenddi_lshrhi */ case 3: if (! #line 5406 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 769; /* *zero_extendsi_lshrqi */ case 4: if (! #line 5406 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 771; /* *zero_extendsi_lshrhi */ default: return -1; } case ROTATERT: if (pattern32 (x1) != 0) return -1; return 745; /* *rotrsi3_insn_uxtw */ case ROTATE: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (pattern144 (x2, E_SImode) != 0 || ! #line 5380 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 760; /* *rorsi3_insn_uxtw */ case BSWAP: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x8 = XEXP (x3, 0); operands[1] = x8; if (!register_operand (operands[1], E_SImode)) return -1; return 829; /* *bswapsi2_uxtw */ case UNSIGNED_FIX: if (GET_MODE (x3) != E_SImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x8 = XEXP (x3, 0); operands[1] = x8; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode) || ! #line 6044 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 949; /* *fix_to_zero_extendsfdi2 */ case E_DFmode: if (!register_operand (operands[1], E_DFmode) || ! #line 6044 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 950; /* *fix_to_zero_extenddfdi2 */ default: return -1; } case TRUNCATE: if (GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_TImode) || GET_MODE (x2) != E_TImode) return -1; x8 = XEXP (x3, 0); operands[1] = x8; if (!register_operand (operands[1], E_TImode) || ! #line 6530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1034; /* aarch64_movtilow_tilow */ case UNSPEC: x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || GET_MODE (x3) != E_SImode) return -1; switch (XVECLEN (x3, 0)) { case 1: switch (XINT (x3, 1)) { case 24: x16 = XVECEXP (x3, 0, 0); if (pattern326 (x16) != 0 || ! #line 6584 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_ILP32)) return -1; return 1039; /* ldr_got_small_sidi */ case 25: x16 = XVECEXP (x3, 0, 0); if (pattern326 (x16) != 0 || ! #line 6607 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_ILP32)) return -1; return 1042; /* ldr_got_small_28k_sidi */ case 26: x16 = XVECEXP (x3, 0, 0); operands[1] = x16; if (!aarch64_tls_ie_symref (operands[1], E_VOIDmode)) return -1; return 1049; /* tlsie_small_sidi */ default: return -1; } case 2: if (XINT (x3, 1) != 28) return -1; x16 = XVECEXP (x3, 0, 0); operands[1] = x16; if (!aarch64_tls_ie_symref (operands[1], E_VOIDmode)) return -1; x17 = XVECEXP (x3, 0, 1); operands[2] = x17; if (!register_operand (operands[2], E_DImode)) return -1; return 1052; /* tlsie_tiny_sidi */ default: return -1; } case VEC_SELECT: x11 = XEXP (x3, 1); if (GET_CODE (x11) != PARALLEL) return -1; operands[2] = x11; x4 = XEXP (x1, 0); operands[0] = x4; switch (pattern195 (x2)) { case 0: if (vect_par_cnst_lo_half (operands[2], E_V16QImode) && #line 1602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1825; /* aarch64_simd_vec_unpacku_lo_v16qi */ if (vect_par_cnst_hi_half (operands[2], E_V16QImode) && #line 1613 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1831; /* aarch64_simd_vec_unpacku_hi_v16qi */ break; case 1: if (vect_par_cnst_lo_half (operands[2], E_V8HImode) && #line 1602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1827; /* aarch64_simd_vec_unpacku_lo_v8hi */ if (vect_par_cnst_hi_half (operands[2], E_V8HImode) && #line 1613 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1833; /* aarch64_simd_vec_unpacku_hi_v8hi */ break; case 2: if (vect_par_cnst_lo_half (operands[2], E_V4SImode) && #line 1602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1829; /* aarch64_simd_vec_unpacku_lo_v4si */ if (vect_par_cnst_hi_half (operands[2], E_V4SImode) && #line 1613 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1835; /* aarch64_simd_vec_unpacku_hi_v4si */ break; default: break; } if (XVECLEN (x11, 0) != 1) return -1; operands[0] = x4; switch (pattern197 (x2)) { case 0: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2227; /* *aarch64_get_lane_zero_extendsiv8qi */ case 1: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2229; /* *aarch64_get_lane_zero_extendsiv16qi */ case 2: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2231; /* *aarch64_get_lane_zero_extendsiv4hi */ case 3: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2233; /* *aarch64_get_lane_zero_extendsiv8hi */ case 4: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2228; /* *aarch64_get_lane_zero_extenddiv8qi */ case 5: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2230; /* *aarch64_get_lane_zero_extenddiv16qi */ case 6: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2232; /* *aarch64_get_lane_zero_extenddiv4hi */ case 7: if (! #line 3122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2234; /* *aarch64_get_lane_zero_extenddiv8hi */ default: return -1; } case UNSPEC_VOLATILE: if (XVECLEN (x3, 0) != 2 || XINT (x3, 1) != 12) return -1; x4 = XEXP (x1, 0); operands[0] = x4; if (!register_operand (operands[0], E_SImode) || GET_MODE (x2) != E_SImode) return -1; x16 = XVECEXP (x3, 0, 0); operands[1] = x16; x17 = XVECEXP (x3, 0, 1); operands[2] = x17; if (!const_int_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (x3)) { case E_QImode: if (!aarch64_sync_memory_operand (operands[1], E_QImode)) return -1; return 3763; /* aarch64_load_exclusiveqi */ case E_HImode: if (!aarch64_sync_memory_operand (operands[1], E_HImode)) return -1; return 3764; /* aarch64_load_exclusivehi */ default: return -1; } default: return -1; } } static int recog_149 (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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); if (GET_CODE (x2) != REG || REGNO (x2) != 66) return -1; x3 = XEXP (x1, 1); x4 = XEXP (x3, 0); switch (GET_CODE (x4)) { case PLUS: x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[0] = x5; x6 = XEXP (x4, 1); operands[1] = x6; x7 = XEXP (x3, 1); switch (GET_CODE (x7)) { case REG: case SUBREG: if (!rtx_equal_p (x7, operands[0])) return -1; switch (pattern371 (x1, E_CC_Cmode)) { case 0: return 119; /* *addsi3_compareC_cconly */ case 1: return 120; /* *adddi3_compareC_cconly */ default: return -1; } case CONST_INT: if (XWINT (x7, 0) != 0L) return -1; switch (pattern371 (x1, E_CC_NZmode)) { case 0: return 203; /* *addsi3nr_compare0 */ case 1: return 204; /* *adddi3nr_compare0 */ default: return -1; } default: return -1; } case SIGN_EXTEND: if (pattern198 (x1, PLUS, SIGN_EXTEND) != 0) return -1; x6 = XEXP (x4, 1); switch (GET_CODE (x6)) { case CONST_INT: case CONST_WIDE_INT: operands[1] = x6; x7 = XEXP (x3, 1); x8 = XEXP (x7, 0); x9 = XEXP (x8, 1); operands[2] = x9; switch (GET_MODE (x4)) { case E_DImode: if (pattern509 (x3, E_SImode, E_DImode) != 0 || ! #line 2113 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[1]) == INTVAL (operands[2]))) return -1; return 123; /* *addsi3_compareV_cconly_imm */ case E_TImode: if (pattern509 (x3, E_DImode, E_TImode) != 0 || ! #line 2113 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[1]) == INTVAL (operands[2]))) return -1; return 124; /* *adddi3_compareV_cconly_imm */ default: return -1; } case SIGN_EXTEND: x10 = XEXP (x6, 0); operands[1] = x10; x7 = XEXP (x3, 1); x8 = XEXP (x7, 0); x9 = XEXP (x8, 1); if (!rtx_equal_p (x9, operands[1])) return -1; switch (GET_MODE (x4)) { case E_DImode: if (pattern510 (x3, E_SImode, E_DImode) != 0) return -1; return 125; /* *addsi3_compareV_cconly */ case E_TImode: if (pattern510 (x3, E_DImode, E_TImode) != 0) return -1; return 126; /* *adddi3_compareV_cconly */ default: return -1; } default: return -1; } default: return -1; } case MINUS: x7 = XEXP (x3, 1); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x2) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); operands[1] = x6; switch (pattern370 (x4)) { case 0: return 205; /* aarch64_subsi_compare0 */ case 1: return 206; /* aarch64_subdi_compare0 */ default: return -1; } case NEG: if (GET_MODE (x2) != E_CC_Zmode || GET_MODE (x3) != E_CC_Zmode) return -1; x5 = XEXP (x4, 0); operands[0] = x5; x7 = XEXP (x3, 1); operands[1] = x7; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !register_operand (operands[1], E_SImode)) return -1; return 207; /* *compare_negsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !register_operand (operands[1], E_DImode)) return -1; return 208; /* *compare_negdi */ default: return -1; } case SIGN_EXTEND: x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case NEG: if (pattern198 (x1, SIGN_EXTEND, NEG) != 0) return -1; switch (GET_MODE (x4)) { case E_DImode: if (pattern449 (x3, E_DImode, E_SImode) != 0) return -1; return 304; /* negvsi_cmp_only */ case E_TImode: if (pattern449 (x3, E_TImode, E_DImode) != 0) return -1; return 305; /* negvdi_cmp_only */ default: return -1; } case MINUS: x7 = XEXP (x3, 1); if (GET_CODE (x7) != MINUS) return -1; x8 = XEXP (x7, 0); if (GET_CODE (x8) != SIGN_EXTEND) return -1; x11 = XEXP (x7, 1); if (GET_CODE (x11) != SIGN_EXTEND || GET_MODE (x2) != E_CC_Vmode || GET_MODE (x3) != E_CC_Vmode) return -1; x12 = XEXP (x5, 0); operands[0] = x12; x13 = XEXP (x5, 1); operands[1] = x13; x14 = XEXP (x8, 0); if (!rtx_equal_p (x14, operands[0])) return -1; x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; switch (GET_MODE (x4)) { case E_DImode: if (pattern511 (x3, E_DImode, E_SImode) != 0) return -1; return 306; /* *cmpvsi_insn */ case E_TImode: if (pattern511 (x3, E_TImode, E_DImode) != 0) return -1; return 307; /* *cmpvdi_insn */ default: return -1; } case REG: case SUBREG: operands[0] = x5; if (GET_MODE (x2) != E_CC_SWPmode || GET_MODE (x3) != E_CC_SWPmode) return -1; switch (pattern300 (x3)) { case 0: return 459; /* *cmp_swp_extendqi_regsi */ case 1: return 463; /* *cmp_swp_extendhi_regsi */ case 2: return 467; /* *cmp_swp_extendsi_regsi */ case 3: return 461; /* *cmp_swp_extendqi_regdi */ case 4: return 465; /* *cmp_swp_extendhi_regdi */ case 5: return 469; /* *cmp_swp_extendsi_regdi */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[0] = x4; x7 = XEXP (x3, 1); operands[1] = x7; switch (GET_MODE (x2)) { case E_CCmode: if (GET_MODE (x3) == E_CCmode) { switch (GET_MODE (operands[0])) { case E_SImode: if (register_operand (operands[0], E_SImode) && aarch64_plus_operand (operands[1], E_SImode)) return 447; /* cmpsi */ break; case E_DImode: if (register_operand (operands[0], E_DImode) && aarch64_plus_operand (operands[1], E_DImode)) return 448; /* cmpdi */ break; default: break; } } break; case E_CCFPmode: switch (pattern298 (x3, E_CCFPmode)) { case 0: if ( #line 3874 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return 449; /* fcmpsf */ break; case 1: if ( #line 3874 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return 450; /* fcmpdf */ break; default: break; } break; case E_CCFPEmode: switch (pattern298 (x3, E_CCFPEmode)) { case 0: if ( #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return 451; /* fcmpesf */ break; case 1: if ( #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return 452; /* fcmpedf */ break; default: break; } break; default: break; } if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x2) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode)) return -1; return 683; /* *andqi_compare0 */ case E_HImode: if (!register_operand (operands[0], E_HImode)) return -1; return 684; /* *andhi_compare0 */ default: return -1; } case ASHIFT: if (GET_MODE (x2) != E_CC_SWPmode || GET_MODE (x3) != E_CC_SWPmode) return -1; x6 = XEXP (x4, 1); operands[1] = x6; x7 = XEXP (x3, 1); operands[2] = x7; x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[0] = x5; switch (pattern147 (x4)) { case 0: return 453; /* *cmp_swp_lsl_regsi */ case 1: return 456; /* *cmp_swp_lsl_regdi */ default: return -1; } case SIGN_EXTEND: switch (pattern373 (x4)) { case 0: return 471; /* *cmp_swp_extendqi_shft_si */ case 1: return 475; /* *cmp_swp_extendhi_shft_si */ case 2: return 479; /* *cmp_swp_extendsi_shft_si */ case 3: return 473; /* *cmp_swp_extendqi_shft_di */ case 4: return 477; /* *cmp_swp_extendhi_shft_di */ case 5: return 481; /* *cmp_swp_extendsi_shft_di */ default: return -1; } case ZERO_EXTEND: switch (pattern373 (x4)) { case 0: return 472; /* *cmp_swp_zero_extendqi_shft_si */ case 1: return 476; /* *cmp_swp_zero_extendhi_shft_si */ case 2: return 480; /* *cmp_swp_zero_extendsi_shft_si */ case 3: return 474; /* *cmp_swp_zero_extendqi_shft_di */ case 4: return 478; /* *cmp_swp_zero_extendhi_shft_di */ case 5: return 482; /* *cmp_swp_zero_extendsi_shft_di */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern148 (x1)) { case 0: return 454; /* *cmp_swp_asr_regsi */ case 1: return 457; /* *cmp_swp_asr_regdi */ default: return -1; } case LSHIFTRT: switch (pattern148 (x1)) { case 0: return 455; /* *cmp_swp_lsr_regsi */ case 1: return 458; /* *cmp_swp_lsr_regdi */ default: return -1; } case ZERO_EXTEND: if (GET_MODE (x2) != E_CC_SWPmode || GET_MODE (x3) != E_CC_SWPmode) return -1; x5 = XEXP (x4, 0); operands[0] = x5; switch (pattern300 (x3)) { case 0: return 460; /* *cmp_swp_zero_extendqi_regsi */ case 1: return 464; /* *cmp_swp_zero_extendhi_regsi */ case 2: return 468; /* *cmp_swp_zero_extendsi_regsi */ case 3: return 462; /* *cmp_swp_zero_extendqi_regdi */ case 4: return 466; /* *cmp_swp_zero_extendhi_regdi */ case 5: return 470; /* *cmp_swp_zero_extendsi_regdi */ default: return -1; } case AND: x7 = XEXP (x3, 1); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x2) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case NOT: x12 = XEXP (x5, 0); switch (GET_CODE (x12)) { case REG: case SUBREG: operands[0] = x12; x6 = XEXP (x4, 1); operands[1] = x6; switch (GET_MODE (x4)) { case E_SImode: if (GET_MODE (x5) != E_SImode || !register_operand (operands[0], E_SImode) || !register_operand (operands[1], E_SImode)) return -1; return 617; /* *and_one_cmplsi3_compare0_no_reuse */ case E_DImode: if (GET_MODE (x5) != E_DImode || !register_operand (operands[0], E_DImode) || !register_operand (operands[1], E_DImode)) return -1; return 618; /* *and_one_cmpldi3_compare0_no_reuse */ default: return -1; } case ASHIFT: switch (pattern374 (x4)) { case 0: return 667; /* *and_one_cmpl_ashlsi3_compare0_no_reuse */ case 1: return 671; /* *and_one_cmpl_ashldi3_compare0_no_reuse */ default: return -1; } case ASHIFTRT: switch (pattern374 (x4)) { case 0: return 668; /* *and_one_cmpl_ashrsi3_compare0_no_reuse */ case 1: return 672; /* *and_one_cmpl_ashrdi3_compare0_no_reuse */ default: return -1; } case LSHIFTRT: switch (pattern374 (x4)) { case 0: return 669; /* *and_one_cmpl_lshrsi3_compare0_no_reuse */ case 1: return 673; /* *and_one_cmpl_lshrdi3_compare0_no_reuse */ default: return -1; } case ROTATERT: switch (pattern374 (x4)) { case 0: return 670; /* *and_one_cmpl_rotrsi3_compare0_no_reuse */ case 1: return 674; /* *and_one_cmpl_rotrdi3_compare0_no_reuse */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[0] = x5; x6 = XEXP (x4, 1); operands[1] = x6; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !aarch64_logical_operand (operands[1], E_SImode)) return -1; return 689; /* *andsi3nr_compare0 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_logical_operand (operands[1], E_DImode)) return -1; return 690; /* *anddi3nr_compare0 */ default: return -1; } case ASHIFT: switch (pattern331 (x4)) { case 0: return 693; /* *and_ashlsi3nr_compare0 */ case 1: return 697; /* *and_ashldi3nr_compare0 */ default: return -1; } case ASHIFTRT: switch (pattern331 (x4)) { case 0: return 694; /* *and_ashrsi3nr_compare0 */ case 1: return 698; /* *and_ashrdi3nr_compare0 */ default: return -1; } case LSHIFTRT: switch (pattern331 (x4)) { case 0: return 695; /* *and_lshrsi3nr_compare0 */ case 1: return 699; /* *and_lshrdi3nr_compare0 */ default: return -1; } case ROTATERT: switch (pattern331 (x4)) { case 0: return 696; /* *and_rotrsi3nr_compare0 */ case 1: return 700; /* *and_rotrdi3nr_compare0 */ default: return -1; } default: return -1; } case ZERO_EXTRACT: x7 = XEXP (x3, 1); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x2) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return -1; x5 = XEXP (x4, 0); operands[0] = x5; x6 = XEXP (x4, 1); operands[1] = x6; x16 = XEXP (x4, 2); operands[2] = x16; switch (GET_MODE (x4)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !const_int_operand (operands[1], E_SImode) || !const_int_operand (operands[2], E_SImode) || ! #line 4858 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[1]) > 0 && ((INTVAL (operands[1]) + INTVAL (operands[2])) <= GET_MODE_BITSIZE (SImode)) && aarch64_bitmask_imm ( UINTVAL (aarch64_mask_from_zextract_ops (operands[1], operands[2])), SImode))) return -1; return 691; /* *andsi3nr_compare0_zextract */ case E_DImode: if (!register_operand (operands[0], E_DImode) || !const_int_operand (operands[1], E_DImode) || !const_int_operand (operands[2], E_DImode) || ! #line 4858 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[1]) > 0 && ((INTVAL (operands[1]) + INTVAL (operands[2])) <= GET_MODE_BITSIZE (DImode)) && aarch64_bitmask_imm ( UINTVAL (aarch64_mask_from_zextract_ops (operands[1], operands[2])), DImode))) return -1; return 692; /* *anddi3nr_compare0_zextract */ default: return -1; } case UNSPEC: if (XVECLEN (x4, 0) != 2 || XINT (x4, 1) != 90 || GET_MODE (x4) != E_SImode) return -1; x7 = XEXP (x3, 1); if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x2) != E_CCmode || GET_MODE (x3) != E_CCmode) return -1; x17 = XVECEXP (x4, 0, 1); switch (GET_CODE (x17)) { case REG: case SUBREG: operands[1] = x17; x18 = XVECEXP (x4, 0, 0); operands[0] = x18; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (!register_operand (operands[0], E_VNx16BImode) || !register_operand (operands[1], E_VNx16BImode) || ! #line 1329 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4247; /* ptest_ptruevnx16bi */ case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || !register_operand (operands[1], E_VNx8BImode) || ! #line 1329 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4248; /* ptest_ptruevnx8bi */ case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || !register_operand (operands[1], E_VNx4BImode) || ! #line 1329 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4249; /* ptest_ptruevnx4bi */ case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || !register_operand (operands[1], E_VNx2BImode) || ! #line 1329 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4250; /* ptest_ptruevnx2bi */ default: return -1; } case UNSPEC: if (pnum_clobbers == NULL || XVECLEN (x17, 0) != 2 || XINT (x17, 1) != 89) return -1; x18 = XVECEXP (x4, 0, 0); operands[1] = x18; x19 = XVECEXP (x17, 0, 0); if (!rtx_equal_p (x19, operands[1])) return -1; x20 = XVECEXP (x17, 0, 1); switch (GET_CODE (x20)) { case LT: switch (pattern528 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4307; /* *cmpltvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4317; /* *cmpltvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4327; /* *cmpltvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4337; /* *cmpltvnx2di_ptest */ default: return -1; } case LE: switch (pattern528 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4308; /* *cmplevnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4318; /* *cmplevnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4328; /* *cmplevnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4338; /* *cmplevnx2di_ptest */ default: return -1; } case EQ: switch (pattern528 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4309; /* *cmpeqvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4319; /* *cmpeqvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4329; /* *cmpeqvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4339; /* *cmpeqvnx2di_ptest */ default: return -1; } case NE: switch (pattern528 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4310; /* *cmpnevnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4320; /* *cmpnevnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4330; /* *cmpnevnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4340; /* *cmpnevnx2di_ptest */ default: return -1; } case GE: switch (pattern528 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4311; /* *cmpgevnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4321; /* *cmpgevnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4331; /* *cmpgevnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4341; /* *cmpgevnx2di_ptest */ default: return -1; } case GT: switch (pattern528 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4312; /* *cmpgtvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4322; /* *cmpgtvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4332; /* *cmpgtvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4342; /* *cmpgtvnx2di_ptest */ default: return -1; } case LTU: switch (pattern530 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4313; /* *cmplovnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4323; /* *cmplovnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4333; /* *cmplovnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4343; /* *cmplovnx2di_ptest */ default: return -1; } case LEU: switch (pattern530 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4314; /* *cmplsvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4324; /* *cmplsvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4334; /* *cmplsvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4344; /* *cmplsvnx2di_ptest */ default: return -1; } case GEU: switch (pattern530 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4315; /* *cmphsvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4325; /* *cmphsvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4335; /* *cmphsvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4345; /* *cmphsvnx2di_ptest */ default: return -1; } case GTU: switch (pattern530 (x17)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4316; /* *cmphivnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4326; /* *cmphivnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4336; /* *cmphivnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4346; /* *cmphivnx2di_ptest */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_150 (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; 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_VECTOR: case CONST: case REG: case SUBREG: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[2] = x5; operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern13 (x3, E_SImode) != 0) return -1; return 295; /* subsi3 */ case E_DImode: if (pattern13 (x3, E_DImode) != 0) return -1; return 297; /* subdi3 */ case E_HFmode: if (pattern13 (x3, E_HFmode) != 0 || !( #line 6217 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 986; /* subhf3 */ case E_SFmode: if (pattern13 (x3, E_SFmode) != 0 || ! #line 6217 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 987; /* subsf3 */ case E_DFmode: if (pattern13 (x3, E_DFmode) != 0 || ! #line 6217 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 988; /* subdf3 */ case E_V8QImode: if (pattern13 (x3, E_V8QImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1364; /* subv8qi3 */ case E_V16QImode: if (pattern13 (x3, E_V16QImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1365; /* subv16qi3 */ case E_V4HImode: if (pattern13 (x3, E_V4HImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1366; /* subv4hi3 */ case E_V8HImode: if (pattern13 (x3, E_V8HImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1367; /* subv8hi3 */ case E_V2SImode: if (pattern13 (x3, E_V2SImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1368; /* subv2si3 */ case E_V4SImode: if (pattern13 (x3, E_V4SImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1369; /* subv4si3 */ case E_V2DImode: if (pattern13 (x3, E_V2DImode) != 0 || ! #line 348 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1370; /* subv2di3 */ case E_V4HFmode: if (pattern13 (x3, E_V4HFmode) != 0 || !( #line 1829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1889; /* subv4hf3 */ case E_V8HFmode: if (pattern13 (x3, E_V8HFmode) != 0 || !( #line 1829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1890; /* subv8hf3 */ case E_V2SFmode: if (pattern13 (x3, E_V2SFmode) != 0 || ! #line 1829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1891; /* subv2sf3 */ case E_V4SFmode: if (pattern13 (x3, E_V4SFmode) != 0 || ! #line 1829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1892; /* subv4sf3 */ case E_V2DFmode: if (pattern13 (x3, E_V2DFmode) != 0 || ! #line 1829 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1893; /* subv2df3 */ case E_VNx16QImode: if (pattern301 (x3, E_VNx16QImode) != 0 || ! #line 918 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4102; /* subvnx16qi3 */ case E_VNx8HImode: if (pattern301 (x3, E_VNx8HImode) != 0 || ! #line 918 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4103; /* subvnx8hi3 */ case E_VNx4SImode: if (pattern301 (x3, E_VNx4SImode) != 0 || ! #line 918 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4104; /* subvnx4si3 */ case E_VNx2DImode: if (pattern301 (x3, E_VNx2DImode) != 0 || ! #line 918 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4105; /* subvnx2di3 */ case E_VNx8HFmode: if (pattern13 (x3, E_VNx8HFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4895; /* *post_ra_fsubvnx8hf3 */ case E_VNx4SFmode: if (pattern13 (x3, E_VNx4SFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4898; /* *post_ra_fsubvnx4sf3 */ case E_VNx2DFmode: if (pattern13 (x3, E_VNx2DFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4901; /* *post_ra_fsubvnx2df3 */ default: return -1; } case ASHIFT: x6 = XEXP (x5, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[1] = x6; operands[3] = x4; switch (pattern149 (x3)) { case 0: return 317; /* *sub_lsl_si */ case 1: return 320; /* *sub_lsl_di */ default: return -1; } case SIGN_EXTEND: switch (pattern200 (x3)) { case 0: return 345; /* *sub_extendqi_shft_si */ case 1: return 349; /* *sub_extendhi_shft_si */ case 2: return 353; /* *sub_extendsi_shft_si */ case 3: return 347; /* *sub_extendqi_shft_di */ case 4: return 351; /* *sub_extendhi_shft_di */ case 5: return 355; /* *sub_extendsi_shft_di */ default: return -1; } case ZERO_EXTEND: switch (pattern200 (x3)) { case 0: return 346; /* *sub_zero_extendqi_shft_si */ case 1: return 350; /* *sub_zero_extendhi_shft_si */ case 2: return 354; /* *sub_zero_extendsi_shft_si */ case 3: return 348; /* *sub_zero_extendqi_shft_di */ case 4: return 352; /* *sub_zero_extendhi_shft_di */ case 5: return 356; /* *sub_zero_extendsi_shft_di */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern150 (x3)) { case 0: return 318; /* *sub_asr_si */ case 1: return 321; /* *sub_asr_di */ default: return -1; } case LSHIFTRT: switch (pattern150 (x3)) { case 0: return 319; /* *sub_lsr_si */ case 1: return 322; /* *sub_lsr_di */ default: return -1; } case MULT: return recog_12 (x1, insn, pnum_clobbers); case SIGN_EXTEND: switch (pattern154 (x3)) { case 0: return 329; /* *sub_extendqi_si */ case 1: return 333; /* *sub_extendhi_si */ case 2: return 337; /* *sub_extendsi_si */ case 3: return 331; /* *sub_extendqi_di */ case 4: return 335; /* *sub_extendhi_di */ case 5: return 339; /* *sub_extendsi_di */ case 6: if (! #line 3390 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2311; /* aarch64_ssubwv8qi */ case 7: if (! #line 3390 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2313; /* aarch64_ssubwv4hi */ case 8: if (! #line 3390 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2315; /* aarch64_ssubwv2si */ case 9: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 3402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2317; /* aarch64_ssubwv16qi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 3414 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2323; /* aarch64_ssubw2v16qi_internal */ case 10: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 3402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2319; /* aarch64_ssubwv8hi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 3414 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2325; /* aarch64_ssubw2v8hi_internal */ case 11: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 3402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2321; /* aarch64_ssubwv4si_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 3414 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2327; /* aarch64_ssubw2v4si_internal */ default: return -1; } case ZERO_EXTEND: switch (pattern154 (x3)) { case 0: return 330; /* *sub_zero_extendqi_si */ case 1: return 334; /* *sub_zero_extendhi_si */ case 2: return 338; /* *sub_zero_extendsi_si */ case 3: return 332; /* *sub_zero_extendqi_di */ case 4: return 336; /* *sub_zero_extendhi_di */ case 5: return 340; /* *sub_zero_extendsi_di */ case 6: if (! #line 3390 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2312; /* aarch64_usubwv8qi */ case 7: if (! #line 3390 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2314; /* aarch64_usubwv4hi */ case 8: if (! #line 3390 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2316; /* aarch64_usubwv2si */ case 9: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 3402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2318; /* aarch64_usubwv16qi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 3414 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2324; /* aarch64_usubw2v16qi_internal */ case 10: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 3402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2320; /* aarch64_usubwv8hi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 3414 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2326; /* aarch64_usubw2v8hi_internal */ case 11: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 3402 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2322; /* aarch64_usubwv4si_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 3414 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2328; /* aarch64_usubw2v4si_internal */ default: return -1; } case SIGN_EXTRACT: switch (pattern156 (x3)) { case 0: if (! #line 3208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 361; /* *sub_extvsi_multp2 */ case 1: if (! #line 3208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 363; /* *sub_extvdi_multp2 */ default: return -1; } case ZERO_EXTRACT: switch (pattern156 (x3)) { case 0: if (! #line 3208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 362; /* *sub_extzvsi_multp2 */ case 1: if (! #line 3208 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 364; /* *sub_extzvdi_multp2 */ default: return -1; } case GEU: case LTU: operands[2] = x5; operands[1] = x4; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern304 (x3, E_SImode) != 0) return -1; return 367; /* *subsi3_carryin0 */ case E_DImode: if (pattern304 (x3, E_DImode) != 0) return -1; return 368; /* *subdi3_carryin0 */ default: return -1; } case AND: operands[4] = x4; x7 = XEXP (x5, 1); operands[3] = x7; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x6 = XEXP (x5, 0); switch (GET_CODE (x6)) { case ASHIFT: x8 = XEXP (x6, 0); operands[1] = x8; x9 = XEXP (x6, 1); operands[2] = x9; if (!aarch64_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern155 (x3, E_SImode) != 0 || ! #line 3458 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (INTVAL (operands[2]),INTVAL (operands[3])) != 0)) return -1; return 386; /* *sub_uxtsi_shift2 */ case E_DImode: if (pattern155 (x3, E_DImode) != 0 || ! #line 3458 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (INTVAL (operands[2]),INTVAL (operands[3])) != 0)) return -1; return 387; /* *sub_uxtdi_shift2 */ default: return -1; } case MULT: x8 = XEXP (x6, 0); operands[1] = x8; x9 = XEXP (x6, 1); operands[2] = x9; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern155 (x3, E_SImode) != 0 || ! #line 3490 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),INTVAL (operands[3])) != 0)) return -1; return 389; /* *sub_uxtsi_multp2 */ case E_DImode: if (pattern155 (x3, E_DImode) != 0 || ! #line 3490 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),INTVAL (operands[3])) != 0)) return -1; return 390; /* *sub_uxtdi_multp2 */ default: return -1; } default: return -1; } case UNSPEC: if (XVECLEN (x5, 0) != 2 || XINT (x5, 1) != 89) return -1; x10 = XVECEXP (x5, 0, 1); if (GET_CODE (x10) != MULT) return -1; operands[4] = x4; x11 = XVECEXP (x5, 0, 0); operands[1] = x11; x12 = XEXP (x10, 0); operands[2] = x12; x13 = XEXP (x10, 1); operands[3] = x13; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern450 (x3, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 1003 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4118; /* *msubvnx16qi3 */ case E_VNx8HImode: if (pattern450 (x3, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 1003 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4119; /* *msubvnx8hi3 */ case E_VNx4SImode: if (pattern450 (x3, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 1003 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4120; /* *msubvnx4si3 */ case E_VNx2DImode: if (pattern450 (x3, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 1003 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4121; /* *msubvnx2di3 */ default: return -1; } default: return -1; } case MINUS: x14 = XEXP (x4, 0); operands[1] = x14; x15 = XEXP (x4, 1); switch (GET_CODE (x15)) { case REG: case SUBREG: operands[2] = x15; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern332 (x3, E_SImode) != 0) return -1; return 370; /* *subsi3_carryin */ case E_DImode: if (pattern332 (x3, E_DImode) != 0) return -1; return 371; /* *subdi3_carryin */ default: return -1; } case GEU: case LTU: operands[3] = x15; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern333 (x3, E_SImode) != 0) return -1; return 373; /* *subsi3_carryin_alt */ case E_DImode: if (pattern333 (x3, E_DImode) != 0) return -1; return 374; /* *subdi3_carryin_alt */ default: return -1; } default: return -1; } case NEG: x14 = XEXP (x4, 0); operands[2] = x14; x5 = XEXP (x3, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern248 (x3, E_SImode) != 0) return -1; return 395; /* *ngcsi */ case E_DImode: if (pattern248 (x3, E_DImode) != 0) return -1; return 396; /* *ngcdi */ default: return -1; } case UMAX: x14 = XEXP (x4, 0); operands[1] = x14; x15 = XEXP (x4, 1); operands[2] = x15; switch (GET_CODE (operands[2])) { case CONST_POLY_INT: x5 = XEXP (x3, 1); if (!rtx_equal_p (x5, operands[2])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern334 (x3, E_SImode) != 0 || ! #line 4340 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE)) return -1; return 522; /* aarch64_uqdecsi */ case E_DImode: if (pattern334 (x3, E_DImode) != 0 || ! #line 4340 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE)) return -1; return 523; /* aarch64_uqdecdi */ default: return -1; } case REG: case SUBREG: x5 = XEXP (x3, 1); if (!aarch64_umin (x5, E_VOIDmode)) return -1; operands[3] = x5; switch (pattern305 (x3)) { case 0: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1522; /* *aarch64_uabdv8qi_3 */ case 1: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1524; /* *aarch64_uabdv16qi_3 */ case 2: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1526; /* *aarch64_uabdv4hi_3 */ case 3: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1528; /* *aarch64_uabdv8hi_3 */ case 4: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1530; /* *aarch64_uabdv2si_3 */ case 5: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1532; /* *aarch64_uabdv4si_3 */ default: return -1; } default: return -1; } case SMAX: x5 = XEXP (x3, 1); if (!aarch64_smin (x5, E_VOIDmode)) return -1; operands[3] = x5; x14 = XEXP (x4, 0); operands[1] = x14; x15 = XEXP (x4, 1); operands[2] = x15; switch (pattern305 (x3)) { case 0: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1521; /* *aarch64_sabdv8qi_3 */ case 1: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1523; /* *aarch64_sabdv16qi_3 */ case 2: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1525; /* *aarch64_sabdv4hi_3 */ case 3: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1527; /* *aarch64_sabdv8hi_3 */ case 4: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1529; /* *aarch64_sabdv2si_3 */ case 5: if (! #line 722 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1531; /* *aarch64_sabdv4si_3 */ default: return -1; } case SIGN_EXTEND: switch (pattern46 (x3, SIGN_EXTEND)) { case 0: if (vect_par_cnst_hi_half (operands[3], E_V16QImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2276; /* aarch64_ssublv16qi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V16QImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2288; /* aarch64_ssublv16qi_lo_internal */ case 1: if (vect_par_cnst_hi_half (operands[3], E_V8HImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2280; /* aarch64_ssublv8hi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V8HImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2292; /* aarch64_ssublv8hi_lo_internal */ case 2: if (vect_par_cnst_hi_half (operands[3], E_V4SImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2284; /* aarch64_ssublv4si_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V4SImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2296; /* aarch64_ssublv4si_lo_internal */ case 3: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2300; /* aarch64_ssublv8qi */ case 4: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2304; /* aarch64_ssublv4hi */ case 5: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2308; /* aarch64_ssublv2si */ default: return -1; } case ZERO_EXTEND: switch (pattern46 (x3, ZERO_EXTEND)) { case 0: if (vect_par_cnst_hi_half (operands[3], E_V16QImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2278; /* aarch64_usublv16qi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V16QImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2290; /* aarch64_usublv16qi_lo_internal */ case 1: if (vect_par_cnst_hi_half (operands[3], E_V8HImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2282; /* aarch64_usublv8hi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V8HImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2294; /* aarch64_usublv8hi_lo_internal */ case 2: if (vect_par_cnst_hi_half (operands[3], E_V4SImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2286; /* aarch64_usublv4si_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V4SImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2298; /* aarch64_usublv4si_lo_internal */ case 3: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2302; /* aarch64_usublv8qi */ case 4: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2306; /* aarch64_usublv4hi */ case 5: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2310; /* aarch64_usublv2si */ default: return -1; } default: return -1; } } static int recog_151 (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); switch (GET_CODE (x2)) { case LABEL_REF: x3 = XEXP (x1, 0); if (GET_CODE (x3) == PC) { x4 = XEXP (x2, 0); operands[0] = x4; return 2; /* jump */ } break; case CONST_INT: case CONST_WIDE_INT: case CONST_VECTOR: case CONST: case REG: case SUBREG: case MEM: switch (GET_CODE (x2)) { case CONST_VECTOR: case CONST: case REG: case SUBREG: case MEM: res = recog_3 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case CONST_INT: res = recog_4 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; default: break; } operands[1] = x2; if (aarch64_movti_operand (operands[1], E_TImode)) { x3 = XEXP (x1, 0); operands[0] = x3; if (nonimmediate_operand (operands[0], E_TImode) && #line 1225 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((register_operand (operands[0], TImode) || aarch64_reg_or_zero (operands[1], TImode)))) return 50; /* *movti_aarch64 */ } break; default: break; } operands[1] = x2; x3 = XEXP (x1, 0); operands[0] = x3; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (register_operand (operands[0], E_VNx16QImode) && aarch64_nonmemory_operand (operands[1], E_VNx16QImode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3786; /* *aarch64_sve_movvnx16qi_be */ break; case E_VNx8HImode: if (register_operand (operands[0], E_VNx8HImode) && aarch64_nonmemory_operand (operands[1], E_VNx8HImode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3787; /* *aarch64_sve_movvnx8hi_be */ break; case E_VNx4SImode: if (register_operand (operands[0], E_VNx4SImode) && aarch64_nonmemory_operand (operands[1], E_VNx4SImode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3788; /* *aarch64_sve_movvnx4si_be */ break; case E_VNx2DImode: if (register_operand (operands[0], E_VNx2DImode) && aarch64_nonmemory_operand (operands[1], E_VNx2DImode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3789; /* *aarch64_sve_movvnx2di_be */ break; case E_VNx8HFmode: if (register_operand (operands[0], E_VNx8HFmode) && aarch64_nonmemory_operand (operands[1], E_VNx8HFmode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3790; /* *aarch64_sve_movvnx8hf_be */ break; case E_VNx4SFmode: if (register_operand (operands[0], E_VNx4SFmode) && aarch64_nonmemory_operand (operands[1], E_VNx4SFmode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3791; /* *aarch64_sve_movvnx4sf_be */ break; case E_VNx2DFmode: if (register_operand (operands[0], E_VNx2DFmode) && aarch64_nonmemory_operand (operands[1], E_VNx2DFmode) && #line 139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3792; /* *aarch64_sve_movvnx2df_be */ break; case E_VNx32QImode: if (register_operand (operands[0], E_VNx32QImode) && aarch64_nonmemory_operand (operands[1], E_VNx32QImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3843; /* *aarch64_sve_movvnx32qi_le */ break; case E_VNx16HImode: if (register_operand (operands[0], E_VNx16HImode) && aarch64_nonmemory_operand (operands[1], E_VNx16HImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3844; /* *aarch64_sve_movvnx16hi_le */ break; case E_VNx8SImode: if (register_operand (operands[0], E_VNx8SImode) && aarch64_nonmemory_operand (operands[1], E_VNx8SImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3845; /* *aarch64_sve_movvnx8si_le */ break; case E_VNx4DImode: if (register_operand (operands[0], E_VNx4DImode) && aarch64_nonmemory_operand (operands[1], E_VNx4DImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3846; /* *aarch64_sve_movvnx4di_le */ break; case E_VNx16HFmode: if (register_operand (operands[0], E_VNx16HFmode) && aarch64_nonmemory_operand (operands[1], E_VNx16HFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3847; /* *aarch64_sve_movvnx16hf_le */ break; case E_VNx8SFmode: if (register_operand (operands[0], E_VNx8SFmode) && aarch64_nonmemory_operand (operands[1], E_VNx8SFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3848; /* *aarch64_sve_movvnx8sf_le */ break; case E_VNx4DFmode: if (register_operand (operands[0], E_VNx4DFmode) && aarch64_nonmemory_operand (operands[1], E_VNx4DFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3849; /* *aarch64_sve_movvnx4df_le */ break; case E_VNx48QImode: if (register_operand (operands[0], E_VNx48QImode) && aarch64_nonmemory_operand (operands[1], E_VNx48QImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3850; /* *aarch64_sve_movvnx48qi_le */ break; case E_VNx24HImode: if (register_operand (operands[0], E_VNx24HImode) && aarch64_nonmemory_operand (operands[1], E_VNx24HImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3851; /* *aarch64_sve_movvnx24hi_le */ break; case E_VNx12SImode: if (register_operand (operands[0], E_VNx12SImode) && aarch64_nonmemory_operand (operands[1], E_VNx12SImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3852; /* *aarch64_sve_movvnx12si_le */ break; case E_VNx6DImode: if (register_operand (operands[0], E_VNx6DImode) && aarch64_nonmemory_operand (operands[1], E_VNx6DImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3853; /* *aarch64_sve_movvnx6di_le */ break; case E_VNx24HFmode: if (register_operand (operands[0], E_VNx24HFmode) && aarch64_nonmemory_operand (operands[1], E_VNx24HFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3854; /* *aarch64_sve_movvnx24hf_le */ break; case E_VNx12SFmode: if (register_operand (operands[0], E_VNx12SFmode) && aarch64_nonmemory_operand (operands[1], E_VNx12SFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3855; /* *aarch64_sve_movvnx12sf_le */ break; case E_VNx6DFmode: if (register_operand (operands[0], E_VNx6DFmode) && aarch64_nonmemory_operand (operands[1], E_VNx6DFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3856; /* *aarch64_sve_movvnx6df_le */ break; case E_VNx64QImode: if (register_operand (operands[0], E_VNx64QImode) && aarch64_nonmemory_operand (operands[1], E_VNx64QImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3857; /* *aarch64_sve_movvnx64qi_le */ break; case E_VNx32HImode: if (register_operand (operands[0], E_VNx32HImode) && aarch64_nonmemory_operand (operands[1], E_VNx32HImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3858; /* *aarch64_sve_movvnx32hi_le */ break; case E_VNx16SImode: if (register_operand (operands[0], E_VNx16SImode) && aarch64_nonmemory_operand (operands[1], E_VNx16SImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3859; /* *aarch64_sve_movvnx16si_le */ break; case E_VNx8DImode: if (register_operand (operands[0], E_VNx8DImode) && aarch64_nonmemory_operand (operands[1], E_VNx8DImode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3860; /* *aarch64_sve_movvnx8di_le */ break; case E_VNx32HFmode: if (register_operand (operands[0], E_VNx32HFmode) && aarch64_nonmemory_operand (operands[1], E_VNx32HFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3861; /* *aarch64_sve_movvnx32hf_le */ break; case E_VNx16SFmode: if (register_operand (operands[0], E_VNx16SFmode) && aarch64_nonmemory_operand (operands[1], E_VNx16SFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3862; /* *aarch64_sve_movvnx16sf_le */ break; case E_VNx8DFmode: if (register_operand (operands[0], E_VNx8DFmode) && aarch64_nonmemory_operand (operands[1], E_VNx8DFmode) && #line 374 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN)) return 3863; /* *aarch64_sve_movvnx8df_le */ break; default: break; } switch (GET_MODE (operands[0])) { case E_QImode: if (!nonimmediate_operand (operands[0], E_QImode) || !aarch64_mov_operand (operands[1], E_QImode) || ! #line 1057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((register_operand (operands[0], QImode) || aarch64_reg_or_zero (operands[1], QImode)))) return -1; return 44; /* *movqi_aarch64 */ case E_HImode: if (!nonimmediate_operand (operands[0], E_HImode) || !aarch64_mov_operand (operands[1], E_HImode) || ! #line 1057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((register_operand (operands[0], HImode) || aarch64_reg_or_zero (operands[1], HImode)))) return -1; return 45; /* *movhi_aarch64 */ case E_SImode: if (!nonimmediate_operand (operands[0], E_SImode) || !aarch64_mov_operand (operands[1], E_SImode) || ! #line 1122 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((register_operand (operands[0], SImode) || aarch64_reg_or_zero (operands[1], SImode)))) return -1; return 46; /* *movsi_aarch64 */ case E_DImode: if (!nonimmediate_operand (operands[0], E_DImode) || !aarch64_mov_operand (operands[1], E_DImode) || ! #line 1157 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((register_operand (operands[0], DImode) || aarch64_reg_or_zero (operands[1], DImode)))) return -1; return 47; /* *movdi_aarch64 */ case E_HFmode: if (!nonimmediate_operand (operands[0], E_HFmode) || !general_operand (operands[1], E_HFmode) || ! #line 1278 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (register_operand (operands[0], HFmode) || aarch64_reg_or_fp_zero (operands[1], HFmode)))) return -1; return 51; /* *movhf_aarch64 */ case E_SFmode: if (!nonimmediate_operand (operands[0], E_SFmode) || !general_operand (operands[1], E_SFmode) || ! #line 1301 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (register_operand (operands[0], SFmode) || aarch64_reg_or_fp_zero (operands[1], SFmode)))) return -1; return 52; /* *movsf_aarch64 */ case E_DFmode: if (!nonimmediate_operand (operands[0], E_DFmode) || !general_operand (operands[1], E_DFmode) || ! #line 1325 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (register_operand (operands[0], DFmode) || aarch64_reg_or_fp_zero (operands[1], DFmode)))) return -1; return 53; /* *movdf_aarch64 */ case E_TFmode: if (!nonimmediate_operand (operands[0], E_TFmode) || !general_operand (operands[1], E_TFmode) || ! #line 1371 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (register_operand (operands[0], TFmode) || aarch64_reg_or_fp_zero (operands[1], TFmode)))) return -1; return 54; /* *movtf_aarch64 */ case E_V8QImode: if (!nonimmediate_operand (operands[0], E_V8QImode) || !general_operand (operands[1], E_V8QImode) || ! #line 109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V8QImode) || aarch64_simd_reg_or_zero (operands[1], V8QImode)))) return -1; return 1135; /* *aarch64_simd_movv8qi */ case E_V4HImode: if (!nonimmediate_operand (operands[0], E_V4HImode) || !general_operand (operands[1], E_V4HImode) || ! #line 109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V4HImode) || aarch64_simd_reg_or_zero (operands[1], V4HImode)))) return -1; return 1136; /* *aarch64_simd_movv4hi */ case E_V4HFmode: if (!nonimmediate_operand (operands[0], E_V4HFmode) || !general_operand (operands[1], E_V4HFmode) || ! #line 109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V4HFmode) || aarch64_simd_reg_or_zero (operands[1], V4HFmode)))) return -1; return 1137; /* *aarch64_simd_movv4hf */ case E_V2SImode: if (!nonimmediate_operand (operands[0], E_V2SImode) || !general_operand (operands[1], E_V2SImode) || ! #line 109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V2SImode) || aarch64_simd_reg_or_zero (operands[1], V2SImode)))) return -1; return 1138; /* *aarch64_simd_movv2si */ case E_V2SFmode: if (!nonimmediate_operand (operands[0], E_V2SFmode) || !general_operand (operands[1], E_V2SFmode) || ! #line 109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V2SFmode) || aarch64_simd_reg_or_zero (operands[1], V2SFmode)))) return -1; return 1139; /* *aarch64_simd_movv2sf */ case E_V16QImode: if (!nonimmediate_operand (operands[0], E_V16QImode) || !general_operand (operands[1], E_V16QImode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V16QImode) || aarch64_simd_reg_or_zero (operands[1], V16QImode)))) return -1; return 1140; /* *aarch64_simd_movv16qi */ case E_V8HImode: if (!nonimmediate_operand (operands[0], E_V8HImode) || !general_operand (operands[1], E_V8HImode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V8HImode) || aarch64_simd_reg_or_zero (operands[1], V8HImode)))) return -1; return 1141; /* *aarch64_simd_movv8hi */ case E_V4SImode: if (!nonimmediate_operand (operands[0], E_V4SImode) || !general_operand (operands[1], E_V4SImode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V4SImode) || aarch64_simd_reg_or_zero (operands[1], V4SImode)))) return -1; return 1142; /* *aarch64_simd_movv4si */ case E_V2DImode: if (!nonimmediate_operand (operands[0], E_V2DImode) || !general_operand (operands[1], E_V2DImode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V2DImode) || aarch64_simd_reg_or_zero (operands[1], V2DImode)))) return -1; return 1143; /* *aarch64_simd_movv2di */ case E_V8HFmode: if (!nonimmediate_operand (operands[0], E_V8HFmode) || !general_operand (operands[1], E_V8HFmode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V8HFmode) || aarch64_simd_reg_or_zero (operands[1], V8HFmode)))) return -1; return 1144; /* *aarch64_simd_movv8hf */ case E_V4SFmode: if (!nonimmediate_operand (operands[0], E_V4SFmode) || !general_operand (operands[1], E_V4SFmode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V4SFmode) || aarch64_simd_reg_or_zero (operands[1], V4SFmode)))) return -1; return 1145; /* *aarch64_simd_movv4sf */ case E_V2DFmode: if (!nonimmediate_operand (operands[0], E_V2DFmode) || !general_operand (operands[1], E_V2DFmode) || ! #line 137 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && (register_operand (operands[0], V2DFmode) || aarch64_simd_reg_or_zero (operands[1], V2DFmode)))) return -1; return 1146; /* *aarch64_simd_movv2df */ case E_OImode: if (aarch64_simd_nonimmediate_operand (operands[0], E_OImode) && aarch64_simd_general_operand (operands[1], E_OImode) && #line 5286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN && (register_operand (operands[0], OImode) || register_operand (operands[1], OImode)))) return 3307; /* *aarch64_movoi */ if (!nonimmediate_operand (operands[0], E_OImode) || !general_operand (operands[1], E_OImode) || ! #line 5320 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN && (register_operand (operands[0], OImode) || register_operand (operands[1], OImode)))) return -1; return 3336; /* *aarch64_be_movoi */ case E_CImode: if (aarch64_simd_nonimmediate_operand (operands[0], E_CImode) && aarch64_simd_general_operand (operands[1], E_CImode) && #line 5286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN && (register_operand (operands[0], CImode) || register_operand (operands[1], CImode)))) return 3308; /* *aarch64_movci */ if (!nonimmediate_operand (operands[0], E_CImode) || !general_operand (operands[1], E_CImode) || ! #line 5334 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN && (register_operand (operands[0], CImode) || register_operand (operands[1], CImode)))) return -1; return 3337; /* *aarch64_be_movci */ case E_XImode: if (aarch64_simd_nonimmediate_operand (operands[0], E_XImode) && aarch64_simd_general_operand (operands[1], E_XImode) && #line 5286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN && (register_operand (operands[0], XImode) || register_operand (operands[1], XImode)))) return 3309; /* *aarch64_movxi */ if (!nonimmediate_operand (operands[0], E_XImode) || !general_operand (operands[1], E_XImode) || ! #line 5345 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN && (register_operand (operands[0], XImode) || register_operand (operands[1], XImode)))) return -1; return 3338; /* *aarch64_be_movxi */ case E_VNx16BImode: if (!nonimmediate_operand (operands[0], E_VNx16BImode) || !general_operand (operands[1], E_VNx16BImode) || ! #line 448 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16BImode) || register_operand (operands[1], VNx16BImode)))) return -1; return 3885; /* *aarch64_sve_movvnx16bi */ case E_VNx8BImode: if (!nonimmediate_operand (operands[0], E_VNx8BImode) || !general_operand (operands[1], E_VNx8BImode) || ! #line 448 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8BImode) || register_operand (operands[1], VNx8BImode)))) return -1; return 3886; /* *aarch64_sve_movvnx8bi */ case E_VNx4BImode: if (!nonimmediate_operand (operands[0], E_VNx4BImode) || !general_operand (operands[1], E_VNx4BImode) || ! #line 448 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4BImode) || register_operand (operands[1], VNx4BImode)))) return -1; return 3887; /* *aarch64_sve_movvnx4bi */ case E_VNx2BImode: if (!nonimmediate_operand (operands[0], E_VNx2BImode) || !general_operand (operands[1], E_VNx2BImode) || ! #line 448 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx2BImode) || register_operand (operands[1], VNx2BImode)))) return -1; return 3888; /* *aarch64_sve_movvnx2bi */ default: return -1; } } static int recog_152 (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; 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: return recog_10 (x1, insn, pnum_clobbers); case ASHIFT: x5 = XEXP (x4, 1); operands[2] = x5; x6 = XEXP (x3, 1); operands[3] = x6; x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: operands[1] = x7; switch (pattern36 (x3)) { case 0: return 209; /* *add_lsl_si */ case 1: return 212; /* *add_lsl_di */ default: return -1; } case SIGN_EXTEND: switch (pattern239 (x3)) { case 0: return 240; /* *add_extendqi_shft_si */ case 1: return 244; /* *add_extendhi_shft_si */ case 2: return 248; /* *add_extendsi_shft_si */ case 3: return 242; /* *add_extendqi_shft_di */ case 4: return 246; /* *add_extendhi_shft_di */ case 5: return 250; /* *add_extendsi_shft_di */ default: return -1; } case ZERO_EXTEND: switch (pattern239 (x3)) { case 0: return 241; /* *add_zero_extendqi_shft_si */ case 1: return 245; /* *add_zero_extendhi_shft_si */ case 2: return 249; /* *add_zero_extendsi_shft_si */ case 3: return 243; /* *add_zero_extendqi_shft_di */ case 4: return 247; /* *add_zero_extendhi_shft_di */ case 5: return 251; /* *add_zero_extendsi_shft_di */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern37 (x3)) { case 0: return 210; /* *add_asr_si */ case 1: return 213; /* *add_asr_di */ default: return -1; } case LSHIFTRT: switch (pattern37 (x3)) { case 0: return 211; /* *add_lsr_si */ case 1: return 214; /* *add_lsr_di */ default: return -1; } case MULT: return recog_11 (x1, insn, pnum_clobbers); case SIGN_EXTEND: x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern242 (x3, E_SImode)) { case 0: return 220; /* *add_extendqi_si */ case 1: return 224; /* *add_extendhi_si */ case 2: return 228; /* *add_extendsi_si */ default: return -1; } case E_DImode: switch (pattern242 (x3, E_DImode)) { case 0: return 222; /* *add_extendqi_di */ case 1: return 226; /* *add_extendhi_di */ case 2: return 230; /* *add_extendsi_di */ default: return -1; } case E_V8HImode: if (pattern243 (x3, E_V8HImode, E_V8QImode) != 0 || ! #line 3424 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2329; /* aarch64_saddwv8qi */ case E_V4SImode: if (pattern243 (x3, E_V4SImode, E_V4HImode) != 0 || ! #line 3424 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2331; /* aarch64_saddwv4hi */ case E_V2DImode: if (pattern243 (x3, E_V2DImode, E_V2SImode) != 0 || ! #line 3424 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2333; /* aarch64_saddwv2si */ default: return -1; } case SIGN_EXTEND: switch (pattern45 (x3)) { case 0: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2299; /* aarch64_saddlv8qi */ case 1: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2303; /* aarch64_saddlv4hi */ case 2: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2307; /* aarch64_saddlv2si */ default: return -1; } default: return -1; } case VEC_SELECT: x8 = XEXP (x7, 1); operands[3] = x8; x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case SIGN_EXTEND: switch (pattern244 (x3)) { case 0: if (vect_par_cnst_hi_half (operands[3], E_V16QImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2275; /* aarch64_saddlv16qi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V16QImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2287; /* aarch64_saddlv16qi_lo_internal */ case 1: if (vect_par_cnst_hi_half (operands[3], E_V8HImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2279; /* aarch64_saddlv8hi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V8HImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2291; /* aarch64_saddlv8hi_lo_internal */ case 2: if (vect_par_cnst_hi_half (operands[3], E_V4SImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2283; /* aarch64_saddlv4si_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V4SImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2295; /* aarch64_saddlv4si_lo_internal */ default: return -1; } case REG: case SUBREG: switch (pattern246 (x3)) { case 0: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 3437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2335; /* aarch64_saddwv16qi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 3450 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2341; /* aarch64_saddw2v16qi_internal */ case 1: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 3437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2337; /* aarch64_saddwv8hi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 3450 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2343; /* aarch64_saddw2v8hi_internal */ case 2: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 3437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2339; /* aarch64_saddwv4si_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 3450 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2345; /* aarch64_saddw2v4si_internal */ default: return -1; } default: return -1; } default: return -1; } case ZERO_EXTEND: x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern242 (x3, E_SImode)) { case 0: return 221; /* *add_zero_extendqi_si */ case 1: return 225; /* *add_zero_extendhi_si */ case 2: return 229; /* *add_zero_extendsi_si */ default: return -1; } case E_DImode: switch (pattern242 (x3, E_DImode)) { case 0: return 223; /* *add_zero_extendqi_di */ case 1: return 227; /* *add_zero_extendhi_di */ case 2: return 231; /* *add_zero_extendsi_di */ default: return -1; } case E_V8HImode: if (pattern243 (x3, E_V8HImode, E_V8QImode) != 0 || ! #line 3424 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2330; /* aarch64_uaddwv8qi */ case E_V4SImode: if (pattern243 (x3, E_V4SImode, E_V4HImode) != 0 || ! #line 3424 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2332; /* aarch64_uaddwv4hi */ case E_V2DImode: if (pattern243 (x3, E_V2DImode, E_V2SImode) != 0 || ! #line 3424 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2334; /* aarch64_uaddwv2si */ default: return -1; } case ZERO_EXTEND: switch (pattern45 (x3)) { case 0: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2301; /* aarch64_uaddlv8qi */ case 1: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2305; /* aarch64_uaddlv4hi */ case 2: if (! #line 3322 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2309; /* aarch64_uaddlv2si */ default: return -1; } default: return -1; } case VEC_SELECT: x8 = XEXP (x7, 1); operands[3] = x8; x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case ZERO_EXTEND: switch (pattern244 (x3)) { case 0: if (vect_par_cnst_hi_half (operands[3], E_V16QImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2277; /* aarch64_uaddlv16qi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V16QImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2289; /* aarch64_uaddlv16qi_lo_internal */ case 1: if (vect_par_cnst_hi_half (operands[3], E_V8HImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2281; /* aarch64_uaddlv8hi_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V8HImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2293; /* aarch64_uaddlv8hi_lo_internal */ case 2: if (vect_par_cnst_hi_half (operands[3], E_V4SImode) && #line 3249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2285; /* aarch64_uaddlv4si_hi_internal */ if (!vect_par_cnst_lo_half (operands[3], E_V4SImode) || ! #line 3262 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2297; /* aarch64_uaddlv4si_lo_internal */ default: return -1; } case REG: case SUBREG: switch (pattern246 (x3)) { case 0: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 3437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2336; /* aarch64_uaddwv16qi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 3450 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2342; /* aarch64_uaddw2v16qi_internal */ case 1: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 3437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2338; /* aarch64_uaddwv8hi_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 3450 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2344; /* aarch64_uaddw2v8hi_internal */ case 2: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 3437 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2340; /* aarch64_uaddwv4si_internal */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 3450 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2346; /* aarch64_uaddw2v4si_internal */ default: return -1; } default: return -1; } default: return -1; } case SIGN_EXTRACT: switch (pattern39 (x3)) { case 0: if (! #line 2474 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 272; /* *add_extvsi_multp2 */ case 1: if (! #line 2474 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 274; /* *add_extvdi_multp2 */ default: return -1; } case ZERO_EXTRACT: switch (pattern39 (x3)) { case 0: if (! #line 2474 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 273; /* *add_extzvsi_multp2 */ case 1: if (! #line 2474 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 275; /* *add_extzvdi_multp2 */ default: return -1; } case PLUS: x7 = XEXP (x4, 0); operands[3] = x7; x5 = XEXP (x4, 1); operands[1] = x5; x6 = XEXP (x3, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern297 (x3, E_SImode) != 0) return -1; return 278; /* *addsi3_carryin */ case E_DImode: if (pattern297 (x3, E_DImode) != 0) return -1; return 279; /* *adddi3_carryin */ default: return -1; } case AND: x5 = XEXP (x4, 1); operands[3] = x5; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x6 = XEXP (x3, 1); operands[4] = x6; x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case ASHIFT: x9 = XEXP (x7, 0); operands[1] = x9; x8 = XEXP (x7, 1); operands[2] = x8; if (!aarch64_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern38 (x3, E_SImode) != 0 || ! #line 2670 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (INTVAL (operands[2]), INTVAL (operands[3])) != 0)) return -1; return 289; /* *add_uxtsi_shift2 */ case E_DImode: if (pattern38 (x3, E_DImode) != 0 || ! #line 2670 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (INTVAL (operands[2]), INTVAL (operands[3])) != 0)) return -1; return 290; /* *add_uxtdi_shift2 */ default: return -1; } case MULT: x9 = XEXP (x7, 0); operands[1] = x9; x8 = XEXP (x7, 1); operands[2] = x8; if (!aarch64_pwr_imm3 (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern38 (x3, E_SImode) != 0 || ! #line 2702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])), INTVAL (operands[3])) != 0)) return -1; return 292; /* *add_uxtsi_multp2 */ case E_DImode: if (pattern38 (x3, E_DImode) != 0 || ! #line 2702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])), INTVAL (operands[3])) != 0)) return -1; return 293; /* *add_uxtdi_multp2 */ default: return -1; } default: return -1; } case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: operands[2] = x4; if (aarch64_comparison_operation (operands[2], E_VOIDmode)) { x6 = XEXP (x3, 1); operands[1] = x6; 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 513; /* *csinc2si_insn */ break; case E_DImode: if (register_operand (operands[0], E_DImode) && GET_MODE (x3) == E_DImode && register_operand (operands[1], E_DImode)) return 514; /* *csinc2di_insn */ break; default: break; } } if (GET_CODE (x4) != EQ) return -1; x7 = XEXP (x4, 0); if (GET_CODE (x7) != AND) return -1; x9 = XEXP (x7, 0); operands[1] = x9; x8 = XEXP (x7, 1); operands[2] = x8; x5 = XEXP (x4, 1); operands[3] = x5; x6 = XEXP (x3, 1); operands[4] = x6; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern408 (x3, E_V8QImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3004; /* aarch64_cmtstv8qi */ case E_V16QImode: if (pattern408 (x3, E_V16QImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3005; /* aarch64_cmtstv16qi */ case E_V4HImode: if (pattern408 (x3, E_V4HImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3006; /* aarch64_cmtstv4hi */ case E_V8HImode: if (pattern408 (x3, E_V8HImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3007; /* aarch64_cmtstv8hi */ case E_V2SImode: if (pattern408 (x3, E_V2SImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3008; /* aarch64_cmtstv2si */ case E_V4SImode: if (pattern408 (x3, E_V4SImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3009; /* aarch64_cmtstv4si */ case E_V2DImode: if (pattern408 (x3, E_V2DImode) != 0 || ! #line 4752 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3010; /* aarch64_cmtstv2di */ default: return -1; } case ABS: x7 = XEXP (x4, 0); if (GET_CODE (x7) != MINUS) return -1; x9 = XEXP (x7, 0); operands[1] = x9; x8 = XEXP (x7, 1); operands[2] = x8; x6 = XEXP (x3, 1); operands[3] = x6; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern330 (x3, E_V8QImode) != 0 || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1563; /* abav8qi_3 */ case E_V16QImode: if (pattern330 (x3, E_V16QImode) != 0 || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1564; /* abav16qi_3 */ case E_V4HImode: if (pattern330 (x3, E_V4HImode) != 0 || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1565; /* abav4hi_3 */ case E_V8HImode: if (pattern330 (x3, E_V8HImode) != 0 || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1566; /* abav8hi_3 */ case E_V2SImode: if (pattern330 (x3, E_V2SImode) != 0 || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1567; /* abav2si_3 */ case E_V4SImode: if (pattern330 (x3, E_V4SImode) != 0 || ! #line 794 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1568; /* abav4si_3 */ default: return -1; } case VEC_DUPLICATE: x7 = XEXP (x4, 0); operands[1] = x7; x6 = XEXP (x3, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern247 (x3, E_VNx16QImode, E_QImode) != 0 || ! #line 731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && aarch64_check_zero_based_sve_index_immediate (operands[2]))) return -1; return 3949; /* *vec_seriesvnx16qi_plus */ case E_VNx8HImode: if (pattern247 (x3, E_VNx8HImode, E_HImode) != 0 || ! #line 731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && aarch64_check_zero_based_sve_index_immediate (operands[2]))) return -1; return 3950; /* *vec_seriesvnx8hi_plus */ case E_VNx4SImode: if (pattern247 (x3, E_VNx4SImode, E_SImode) != 0 || ! #line 731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && aarch64_check_zero_based_sve_index_immediate (operands[2]))) return -1; return 3951; /* *vec_seriesvnx4si_plus */ case E_VNx2DImode: if (pattern247 (x3, E_VNx2DImode, E_DImode) != 0 || ! #line 731 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && aarch64_check_zero_based_sve_index_immediate (operands[2]))) return -1; return 3952; /* *vec_seriesvnx2di_plus */ default: return -1; } case UNSPEC: if (XVECLEN (x4, 0) != 2 || XINT (x4, 1) != 89) return -1; x10 = XVECEXP (x4, 0, 1); if (GET_CODE (x10) != MULT) return -1; x11 = XVECEXP (x4, 0, 0); operands[1] = x11; x12 = XEXP (x10, 0); operands[2] = x12; x13 = XEXP (x10, 1); operands[3] = x13; x6 = XEXP (x3, 1); operands[4] = x6; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern428 (x3, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4114; /* *maddvnx16qi */ case E_VNx8HImode: if (pattern428 (x3, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4115; /* *maddvnx8hi */ case E_VNx4SImode: if (pattern428 (x3, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4116; /* *maddvnx4si */ case E_VNx2DImode: if (pattern428 (x3, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 986 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4117; /* *maddvnx2di */ default: return -1; } default: return -1; } } static int recog_153 (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: return recog_141 (x1, insn, pnum_clobbers); case ASHIFT: x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; x7 = XEXP (x3, 1); operands[3] = x7; switch (GET_CODE (operands[3])) { case REG: case SUBREG: switch (pattern36 (x3)) { case 0: return 550; /* *and_ashlsi3 */ case 1: return 562; /* *and_ashldi3 */ default: return -1; } case CONST_INT: if (!const_int_operand (operands[3], E_VOIDmode) || !const_int_operand (operands[2], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern351 (x3, E_SImode) != 0 || ! #line 5669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_mask_and_shift_for_ubfiz_p (SImode, operands[3], operands[2]))) return -1; return 815; /* *andim_ashiftsi_bfiz */ case E_DImode: if (pattern351 (x3, E_DImode) != 0 || ! #line 5669 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_mask_and_shift_for_ubfiz_p (DImode, operands[3], operands[2]))) return -1; return 816; /* *andim_ashiftdi_bfiz */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern37 (x3)) { case 0: return 553; /* *and_ashrsi3 */ case 1: return 565; /* *and_ashrdi3 */ default: return -1; } case LSHIFTRT: switch (pattern37 (x3)) { case 0: return 556; /* *and_lshrsi3 */ case 1: return 568; /* *and_lshrdi3 */ default: return -1; } case ROTATERT: switch (pattern37 (x3)) { case 0: return 559; /* *and_rotrsi3 */ case 1: return 571; /* *and_rotrdi3 */ default: return -1; } case ROTATE: switch (pattern37 (x3)) { case 0: return 574; /* *and_rolsi3 */ case 1: return 577; /* *and_roldi3 */ default: return -1; } case NOT: x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern210 (x3, E_SImode) != 0) return -1; return 605; /* *and_one_cmplsi3 */ case E_DImode: if (pattern210 (x3, E_DImode) != 0) return -1; return 607; /* *and_one_cmpldi3 */ case E_V8QImode: if (pattern210 (x3, E_V8QImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1350; /* bicv8qi3 */ case E_V16QImode: if (pattern210 (x3, E_V16QImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1351; /* bicv16qi3 */ case E_V4HImode: if (pattern210 (x3, E_V4HImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1352; /* bicv4hi3 */ case E_V8HImode: if (pattern210 (x3, E_V8HImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1353; /* bicv8hi3 */ case E_V2SImode: if (pattern210 (x3, E_V2SImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1354; /* bicv2si3 */ case E_V4SImode: if (pattern210 (x3, E_V4SImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1355; /* bicv4si3 */ case E_V2DImode: if (pattern210 (x3, E_V2DImode) != 0 || ! #line 330 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1356; /* bicv2di3 */ case E_VNx16QImode: if (pattern210 (x3, E_VNx16QImode) != 0 || ! #line 1130 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4171; /* bicvnx16qi3 */ case E_VNx8HImode: if (pattern210 (x3, E_VNx8HImode) != 0 || ! #line 1130 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4172; /* bicvnx8hi3 */ case E_VNx4SImode: if (pattern210 (x3, E_VNx4SImode) != 0 || ! #line 1130 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4173; /* bicvnx4si3 */ case E_VNx2DImode: if (pattern210 (x3, E_VNx2DImode) != 0 || ! #line 1130 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4174; /* bicvnx2di3 */ case E_VNx16BImode: if (pattern211 (x3, E_VNx16BImode) != 0 || ! #line 1210 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4203; /* *one_cmplvnx16bi3 */ case E_VNx8BImode: if (pattern211 (x3, E_VNx8BImode) != 0 || ! #line 1210 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4204; /* *one_cmplvnx8bi3 */ case E_VNx4BImode: if (pattern211 (x3, E_VNx4BImode) != 0 || ! #line 1210 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4205; /* *one_cmplvnx4bi3 */ case E_VNx2BImode: if (pattern211 (x3, E_VNx2BImode) != 0 || ! #line 1210 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4206; /* *one_cmplvnx2bi3 */ default: return -1; } case ASHIFT: switch (pattern188 (x3)) { case 0: return 619; /* and_one_cmpl_ashlsi3 */ case 1: return 631; /* and_one_cmpl_ashldi3 */ default: return -1; } case ASHIFTRT: switch (pattern188 (x3)) { case 0: return 622; /* and_one_cmpl_ashrsi3 */ case 1: return 634; /* and_one_cmpl_ashrdi3 */ default: return -1; } case LSHIFTRT: switch (pattern188 (x3)) { case 0: return 625; /* and_one_cmpl_lshrsi3 */ case 1: return 637; /* and_one_cmpl_lshrdi3 */ default: return -1; } case ROTATERT: switch (pattern188 (x3)) { case 0: return 628; /* and_one_cmpl_rotrsi3 */ case 1: return 640; /* and_one_cmpl_rotrdi3 */ default: return -1; } default: return -1; } case AND: switch (pattern121 (x3)) { case 0: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4179; /* pred_andvnx16bi3 */ case 1: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4182; /* pred_andvnx8bi3 */ case 2: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4185; /* pred_andvnx4bi3 */ case 3: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4188; /* pred_andvnx2bi3 */ case 4: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4207; /* *bicvnx16bi3 */ case 5: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4209; /* *bicvnx8bi3 */ case 6: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4211; /* *bicvnx4bi3 */ case 7: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4213; /* *bicvnx2bi3 */ case 8: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4215; /* *norvnx16bi3 */ case 9: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4217; /* *norvnx8bi3 */ case 10: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4219; /* *norvnx4bi3 */ case 11: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4221; /* *norvnx2bi3 */ default: return -1; } case IOR: switch (pattern121 (x3)) { case 0: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4180; /* pred_iorvnx16bi3 */ case 1: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4183; /* pred_iorvnx8bi3 */ case 2: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4186; /* pred_iorvnx4bi3 */ case 3: if (! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4189; /* pred_iorvnx2bi3 */ case 4: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4208; /* *ornvnx16bi3 */ case 5: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4210; /* *ornvnx8bi3 */ case 6: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4212; /* *ornvnx4bi3 */ case 7: if (! #line 1222 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4214; /* *ornvnx2bi3 */ case 8: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4216; /* *nandvnx16bi3 */ case 9: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4218; /* *nandvnx8bi3 */ case 10: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4220; /* *nandvnx4bi3 */ case 11: if (! #line 1234 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4222; /* *nandvnx2bi3 */ default: return -1; } case XOR: x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x4, 1); operands[3] = x6; x7 = XEXP (x3, 1); operands[1] = x7; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (pattern118 (x3, E_VNx16BImode) != 0 || ! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4181; /* pred_xorvnx16bi3 */ case E_VNx8BImode: if (pattern118 (x3, E_VNx8BImode) != 0 || ! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4184; /* pred_xorvnx8bi3 */ case E_VNx4BImode: if (pattern118 (x3, E_VNx4BImode) != 0 || ! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4187; /* pred_xorvnx4bi3 */ case E_VNx2BImode: if (pattern118 (x3, E_VNx2BImode) != 0 || ! #line 1165 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4190; /* pred_xorvnx2bi3 */ default: return -1; } case UNSPEC: return recog_140 (x1, insn, pnum_clobbers); case LT: switch (pattern122 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4427; /* *pred_cmpltvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4437; /* *pred_cmpltvnx8hi */ case 2: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4509; /* *fcmltvnx8hf_and */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4447; /* *pred_cmpltvnx4si */ case 4: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4515; /* *fcmltvnx4sf_and */ case 5: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4457; /* *pred_cmpltvnx2di */ case 6: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4521; /* *fcmltvnx2df_and */ default: return -1; } case LE: switch (pattern122 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4428; /* *pred_cmplevnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4438; /* *pred_cmplevnx8hi */ case 2: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4510; /* *fcmlevnx8hf_and */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4448; /* *pred_cmplevnx4si */ case 4: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4516; /* *fcmlevnx4sf_and */ case 5: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4458; /* *pred_cmplevnx2di */ case 6: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4522; /* *fcmlevnx2df_and */ default: return -1; } case EQ: switch (pattern122 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4429; /* *pred_cmpeqvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4439; /* *pred_cmpeqvnx8hi */ case 2: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4511; /* *fcmeqvnx8hf_and */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4449; /* *pred_cmpeqvnx4si */ case 4: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4517; /* *fcmeqvnx4sf_and */ case 5: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4459; /* *pred_cmpeqvnx2di */ case 6: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4523; /* *fcmeqvnx2df_and */ default: return -1; } case NE: switch (pattern122 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4430; /* *pred_cmpnevnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4440; /* *pred_cmpnevnx8hi */ case 2: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4512; /* *fcmnevnx8hf_and */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4450; /* *pred_cmpnevnx4si */ case 4: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4518; /* *fcmnevnx4sf_and */ case 5: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4460; /* *pred_cmpnevnx2di */ case 6: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4524; /* *fcmnevnx2df_and */ default: return -1; } case GE: switch (pattern122 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4431; /* *pred_cmpgevnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4441; /* *pred_cmpgevnx8hi */ case 2: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4513; /* *fcmgevnx8hf_and */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4451; /* *pred_cmpgevnx4si */ case 4: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4519; /* *fcmgevnx4sf_and */ case 5: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4461; /* *pred_cmpgevnx2di */ case 6: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4525; /* *fcmgevnx2df_and */ default: return -1; } case GT: switch (pattern122 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4432; /* *pred_cmpgtvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4442; /* *pred_cmpgtvnx8hi */ case 2: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4514; /* *fcmgtvnx8hf_and */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4452; /* *pred_cmpgtvnx4si */ case 4: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4520; /* *fcmgtvnx4sf_and */ case 5: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4462; /* *pred_cmpgtvnx2di */ case 6: if (! #line 1572 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4526; /* *fcmgtvnx2df_and */ default: return -1; } case LTU: switch (pattern124 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4433; /* *pred_cmplovnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4443; /* *pred_cmplovnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4453; /* *pred_cmplovnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4463; /* *pred_cmplovnx2di */ default: return -1; } case LEU: switch (pattern124 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4434; /* *pred_cmplsvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4444; /* *pred_cmplsvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4454; /* *pred_cmplsvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4464; /* *pred_cmplsvnx2di */ default: return -1; } case GEU: switch (pattern124 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4435; /* *pred_cmphsvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4445; /* *pred_cmphsvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4455; /* *pred_cmphsvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4465; /* *pred_cmphsvnx2di */ default: return -1; } case GTU: switch (pattern124 (x3, pnum_clobbers)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4436; /* *pred_cmphivnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4446; /* *pred_cmphivnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4456; /* *pred_cmphivnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; *pnum_clobbers = 1; return 4466; /* *pred_cmphivnx2di */ default: return -1; } case UNORDERED: x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x4, 1); operands[3] = x6; x7 = XEXP (x3, 1); operands[1] = x7; switch (GET_MODE (operands[0])) { case E_VNx8BImode: if (pattern316 (x3, E_VNx8BImode, E_VNx8HFmode) != 0 || ! #line 1585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4527; /* *fcmuovnx8hf_and */ case E_VNx4BImode: if (pattern316 (x3, E_VNx4BImode, E_VNx4SFmode) != 0 || ! #line 1585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4528; /* *fcmuovnx4sf_and */ case E_VNx2BImode: if (pattern316 (x3, E_VNx2BImode, E_VNx2DFmode) != 0 || ! #line 1585 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4529; /* *fcmuovnx2df_and */ default: return -1; } default: return -1; } } static int recog_154 (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; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_CODE (operands[2])) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern13 (x3, E_SImode) != 0) return -1; return 419; /* mulsi3 */ case E_DImode: if (pattern13 (x3, E_DImode) != 0) return -1; return 420; /* muldi3 */ case E_HFmode: if (pattern13 (x3, E_HFmode) != 0 || !( #line 6227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 989; /* mulhf3 */ case E_SFmode: if (pattern13 (x3, E_SFmode) != 0 || ! #line 6227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 990; /* mulsf3 */ case E_DFmode: if (pattern13 (x3, E_DFmode) != 0 || ! #line 6227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 991; /* muldf3 */ case E_V8QImode: if (pattern13 (x3, E_V8QImode) != 0 || ! #line 357 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1371; /* mulv8qi3 */ case E_V16QImode: if (pattern13 (x3, E_V16QImode) != 0 || ! #line 357 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1372; /* mulv16qi3 */ case E_V4HImode: if (pattern13 (x3, E_V4HImode) != 0 || ! #line 357 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1373; /* mulv4hi3 */ case E_V8HImode: if (pattern13 (x3, E_V8HImode) != 0 || ! #line 357 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1374; /* mulv8hi3 */ case E_V2SImode: if (pattern13 (x3, E_V2SImode) != 0 || ! #line 357 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1375; /* mulv2si3 */ case E_V4SImode: if (pattern13 (x3, E_V4SImode) != 0 || ! #line 357 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1376; /* mulv4si3 */ case E_V4HFmode: if (pattern13 (x3, E_V4HFmode) != 0 || !( #line 1838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1894; /* mulv4hf3 */ case E_V8HFmode: if (pattern13 (x3, E_V8HFmode) != 0 || !( #line 1838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1895; /* mulv8hf3 */ case E_V2SFmode: if (pattern13 (x3, E_V2SFmode) != 0 || ! #line 1838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1896; /* mulv2sf3 */ case E_V4SFmode: if (pattern13 (x3, E_V4SFmode) != 0 || ! #line 1838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1897; /* mulv4sf3 */ case E_V2DFmode: if (pattern13 (x3, E_V2DFmode) != 0 || ! #line 1838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1898; /* mulv2df3 */ case E_VNx8HFmode: if (pattern13 (x3, E_VNx8HFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4896; /* *post_ra_fmulvnx8hf3 */ case E_VNx4SFmode: if (pattern13 (x3, E_VNx4SFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4899; /* *post_ra_fmulvnx4sf3 */ case E_VNx2DFmode: if (pattern13 (x3, E_VNx2DFmode) != 0 || ! #line 2338 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4902; /* *post_ra_fmulvnx2df3 */ default: return -1; } case CONST_VECTOR: case CONST: switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern307 (x3, E_VNx16QImode) != 0 || ! #line 973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4110; /* *post_ra_mulvnx16qi3 */ case E_VNx8HImode: if (pattern307 (x3, E_VNx8HImode) != 0 || ! #line 973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4111; /* *post_ra_mulvnx8hi3 */ case E_VNx4SImode: if (pattern307 (x3, E_VNx4SImode) != 0 || ! #line 973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4112; /* *post_ra_mulvnx4si3 */ case E_VNx2DImode: if (pattern307 (x3, E_VNx2DImode) != 0 || ! #line 973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4113; /* *post_ra_mulvnx2di3 */ default: return -1; } default: return -1; } case NEG: x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[1] = x6; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern308 (x3, E_SImode) != 0) return -1; return 428; /* *mulsi_neg */ case E_DImode: if (pattern308 (x3, E_DImode) != 0) return -1; return 429; /* *muldi_neg */ case E_SFmode: if (pattern308 (x3, E_SFmode) != 0 || ! #line 6237 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && !flag_rounding_math)) return -1; return 992; /* *fnmulsf3 */ case E_DFmode: if (pattern308 (x3, E_DFmode) != 0 || ! #line 6237 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && !flag_rounding_math)) return -1; return 993; /* *fnmuldf3 */ default: return -1; } case SIGN_EXTEND: if (pattern163 (x3, SIGN_EXTEND) != 0) return -1; return 437; /* *mulsidi_neg */ case ZERO_EXTEND: if (pattern163 (x3, ZERO_EXTEND) != 0) return -1; return 438; /* *umulsidi_neg */ default: return -1; } case SIGN_EXTEND: switch (pattern48 (x3, SIGN_EXTEND)) { case 0: return 431; /* mulsidi3 */ case 1: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 1744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1872; /* aarch64_simd_vec_smult_lo_v16qi */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 1771 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1878; /* aarch64_simd_vec_smult_hi_v16qi */ case 2: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 1744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1874; /* aarch64_simd_vec_smult_lo_v8hi */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 1771 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1880; /* aarch64_simd_vec_smult_hi_v8hi */ case 3: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 1744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1876; /* aarch64_simd_vec_smult_lo_v4si */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 1771 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1882; /* aarch64_simd_vec_smult_hi_v4si */ default: return -1; } case ZERO_EXTEND: switch (pattern48 (x3, ZERO_EXTEND)) { case 0: return 432; /* umulsidi3 */ case 1: if (vect_par_cnst_lo_half (operands[3], E_V16QImode) && #line 1744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1873; /* aarch64_simd_vec_umult_lo_v16qi */ if (!vect_par_cnst_hi_half (operands[3], E_V16QImode) || ! #line 1771 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1879; /* aarch64_simd_vec_umult_hi_v16qi */ case 2: if (vect_par_cnst_lo_half (operands[3], E_V8HImode) && #line 1744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1875; /* aarch64_simd_vec_umult_lo_v8hi */ if (!vect_par_cnst_hi_half (operands[3], E_V8HImode) || ! #line 1771 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1881; /* aarch64_simd_vec_umult_hi_v8hi */ case 3: if (vect_par_cnst_lo_half (operands[3], E_V4SImode) && #line 1744 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1877; /* aarch64_simd_vec_umult_lo_v4si */ if (!vect_par_cnst_hi_half (operands[3], E_V4SImode) || ! #line 1771 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1883; /* aarch64_simd_vec_umult_hi_v4si */ default: return -1; } case VEC_DUPLICATE: switch (pattern49 (x3)) { case 0: switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern429 (x3, E_V4HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1458; /* *aarch64_mul3_eltv4hi */ case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 618 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1467; /* *aarch64_mul3_elt_to_128v4hi */ default: return -1; } case E_V8HImode: if (pattern429 (x3, E_V8HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1459; /* *aarch64_mul3_eltv8hi */ case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 618 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1468; /* *aarch64_mul3_elt_to_64v8hi */ default: return -1; } case E_V2SImode: if (pattern429 (x3, E_V2SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1460; /* *aarch64_mul3_eltv2si */ case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 618 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1469; /* *aarch64_mul3_elt_to_128v2si */ default: return -1; } case E_V4SImode: if (pattern429 (x3, E_V4SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1461; /* *aarch64_mul3_eltv4si */ case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 618 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1470; /* *aarch64_mul3_elt_to_64v4si */ default: return -1; } case E_V4HFmode: if (pattern430 (x3, E_V4HFmode, E_HFmode) != 0 || !( #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1462; /* *aarch64_mul3_eltv4hf */ case E_V8HFmode: if (pattern430 (x3, E_V8HFmode, E_HFmode) != 0 || !( #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1463; /* *aarch64_mul3_eltv8hf */ case E_V2SFmode: if (pattern429 (x3, E_V2SFmode, E_SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1464; /* *aarch64_mul3_eltv2sf */ case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 618 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1471; /* *aarch64_mul3_elt_to_128v2sf */ default: return -1; } case E_V4SFmode: if (pattern429 (x3, E_V4SFmode, E_SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1465; /* *aarch64_mul3_eltv4sf */ case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 618 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1472; /* *aarch64_mul3_elt_to_64v4sf */ default: return -1; } case E_V2DFmode: if (pattern430 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1466; /* *aarch64_mul3_eltv2df */ default: return -1; } case 1: switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern309 (x3, E_V4HImode, E_HImode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1473; /* *aarch64_mul3_elt_from_dupv4hi */ case E_V8HImode: if (pattern309 (x3, E_V8HImode, E_HImode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1474; /* *aarch64_mul3_elt_from_dupv8hi */ case E_V2SImode: if (pattern309 (x3, E_V2SImode, E_SImode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1475; /* *aarch64_mul3_elt_from_dupv2si */ case E_V4SImode: if (pattern309 (x3, E_V4SImode, E_SImode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1476; /* *aarch64_mul3_elt_from_dupv4si */ case E_V4HFmode: if (pattern309 (x3, E_V4HFmode, E_HFmode) != 0 || !( #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1477; /* *aarch64_mul3_elt_from_dupv4hf */ case E_V8HFmode: if (pattern309 (x3, E_V8HFmode, E_HFmode) != 0 || !( #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1478; /* *aarch64_mul3_elt_from_dupv8hf */ case E_V2SFmode: if (pattern309 (x3, E_V2SFmode, E_SFmode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1479; /* *aarch64_mul3_elt_from_dupv2sf */ case E_V4SFmode: if (pattern309 (x3, E_V4SFmode, E_SFmode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1480; /* *aarch64_mul3_elt_from_dupv4sf */ case E_V2DFmode: if (pattern309 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1481; /* *aarch64_mul3_elt_from_dupv2df */ default: return -1; } default: return -1; } case VEC_SELECT: if (pattern50 (x3) != 0) return -1; x5 = XEXP (x3, 1); operands[3] = x5; if (!register_operand (operands[3], E_DFmode) || ! #line 671 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1498; /* *aarch64_mul3_elt_to_64v2df */ default: return -1; } } static int recog_155 (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; 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 (pattern277 (x3, E_SImode) != 0) return -1; return 527; /* iorsi3 */ case E_DImode: if (pattern277 (x3, E_DImode) != 0) return -1; return 530; /* iordi3 */ case E_V8QImode: if (pattern278 (x3, E_V8QImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1584; /* iorv8qi3 */ case E_V16QImode: if (pattern278 (x3, E_V16QImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1585; /* iorv16qi3 */ case E_V4HImode: if (pattern278 (x3, E_V4HImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1586; /* iorv4hi3 */ case E_V8HImode: if (pattern278 (x3, E_V8HImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1587; /* iorv8hi3 */ case E_V2SImode: if (pattern278 (x3, E_V2SImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1588; /* iorv2si3 */ case E_V4SImode: if (pattern278 (x3, E_V4SImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1589; /* iorv4si3 */ case E_V2DImode: if (pattern278 (x3, E_V2DImode) != 0 || ! #line 836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1590; /* iorv2di3 */ case E_VNx16QImode: if (pattern276 (x3, E_VNx16QImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4151; /* iorvnx16qi3 */ case E_VNx8HImode: if (pattern276 (x3, E_VNx8HImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4154; /* iorvnx8hi3 */ case E_VNx4SImode: if (pattern276 (x3, E_VNx4SImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4157; /* iorvnx4si3 */ case E_VNx2DImode: if (pattern276 (x3, E_VNx2DImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4160; /* iorvnx2di3 */ default: return -1; } case ASHIFT: x6 = XEXP (x4, 0); operands[1] = x6; x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[3] = x5; x7 = XEXP (x4, 1); operands[2] = x7; switch (pattern36 (x3)) { case 0: return 551; /* *ior_ashlsi3 */ case 1: return 563; /* *ior_ashldi3 */ default: return -1; } case LSHIFTRT: x7 = XEXP (x4, 1); operands[3] = x7; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; x8 = XEXP (x5, 0); operands[2] = x8; x9 = XEXP (x5, 1); operands[4] = x9; if (!const_int_operand (operands[4], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern432 (x3, E_SImode) != 0 || ! #line 5314 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[3]) < GET_MODE_BITSIZE (SImode) && (UINTVAL (operands[3]) + UINTVAL (operands[4]) == GET_MODE_BITSIZE (SImode)))) return -1; return 752; /* *extrsi5_insn */ case E_DImode: if (pattern432 (x3, E_DImode) != 0 || ! #line 5314 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[3]) < GET_MODE_BITSIZE (DImode) && (UINTVAL (operands[3]) + UINTVAL (operands[4]) == GET_MODE_BITSIZE (DImode)))) return -1; return 753; /* *extrdi5_insn */ default: return -1; } case AND: x7 = XEXP (x4, 1); operands[2] = x7; x8 = XEXP (x5, 0); operands[3] = x8; x9 = XEXP (x5, 1); operands[4] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern351 (x3, E_SImode) != 0 || !aarch64_simd_shift_imm_si (operands[2], E_SImode) || GET_MODE (x5) != E_SImode || !register_operand (operands[3], E_SImode) || !const_int_operand (operands[4], E_SImode) || ! #line 5595 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (SImode, UINTVAL (operands[4]), UINTVAL (operands[2]), HOST_WIDE_INT_M1U << UINTVAL (operands[2]) ))) return -1; return 795; /* *aarch64_bfisi4_noand_alt */ case E_DImode: if (pattern351 (x3, E_DImode) != 0 || !aarch64_simd_shift_imm_di (operands[2], E_DImode) || GET_MODE (x5) != E_DImode || !register_operand (operands[3], E_DImode) || !const_int_operand (operands[4], E_DImode) || ! #line 5595 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (DImode, UINTVAL (operands[4]), UINTVAL (operands[2]), HOST_WIDE_INT_M1U << UINTVAL (operands[2]) ))) return -1; return 796; /* *aarch64_bfidi4_noand_alt */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern37 (x3)) { case 0: return 554; /* *ior_ashrsi3 */ case 1: return 566; /* *ior_ashrdi3 */ default: return -1; } case LSHIFTRT: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: operands[3] = x5; x6 = XEXP (x4, 0); operands[1] = x6; x7 = XEXP (x4, 1); operands[2] = x7; switch (pattern36 (x3)) { case 0: return 557; /* *ior_lshrsi3 */ case 1: return 569; /* *ior_lshrdi3 */ default: return -1; } case ASHIFT: x6 = XEXP (x4, 0); operands[2] = x6; x7 = XEXP (x4, 1); operands[4] = x7; if (!const_int_operand (operands[4], E_VOIDmode)) return -1; x8 = XEXP (x5, 0); operands[1] = x8; x9 = XEXP (x5, 1); operands[3] = x9; if (!const_int_operand (operands[3], E_VOIDmode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern433 (x3, E_SImode) != 0 || ! #line 5328 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[3]) < GET_MODE_BITSIZE (SImode) && (UINTVAL (operands[3]) + UINTVAL (operands[4]) == GET_MODE_BITSIZE (SImode)))) return -1; return 754; /* *extrsi5_insn_alt */ case E_DImode: if (pattern433 (x3, E_DImode) != 0 || ! #line 5328 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[3]) < GET_MODE_BITSIZE (DImode) && (UINTVAL (operands[3]) + UINTVAL (operands[4]) == GET_MODE_BITSIZE (DImode)))) return -1; return 755; /* *extrdi5_insn_alt */ default: return -1; } default: return -1; } case ROTATERT: switch (pattern37 (x3)) { case 0: return 560; /* *ior_rotrsi3 */ case 1: return 572; /* *ior_rotrdi3 */ default: return -1; } case ROTATE: switch (pattern37 (x3)) { case 0: return 575; /* *ior_rolsi3 */ case 1: return 578; /* *ior_roldi3 */ default: return -1; } case NOT: x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[1] = x6; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern308 (x3, E_SImode) != 0) return -1; return 606; /* *ior_one_cmplsi3 */ case E_DImode: if (pattern308 (x3, E_DImode) != 0) return -1; return 608; /* *ior_one_cmpldi3 */ case E_V8QImode: if (pattern308 (x3, E_V8QImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1343; /* ornv8qi3 */ case E_V16QImode: if (pattern308 (x3, E_V16QImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1344; /* ornv16qi3 */ case E_V4HImode: if (pattern308 (x3, E_V4HImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1345; /* ornv4hi3 */ case E_V8HImode: if (pattern308 (x3, E_V8HImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1346; /* ornv8hi3 */ case E_V2SImode: if (pattern308 (x3, E_V2SImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1347; /* ornv2si3 */ case E_V4SImode: if (pattern308 (x3, E_V4SImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1348; /* ornv4si3 */ case E_V2DImode: if (pattern308 (x3, E_V2DImode) != 0 || ! #line 321 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1349; /* ornv2di3 */ default: return -1; } case ASHIFT: switch (pattern188 (x3)) { case 0: return 620; /* ior_one_cmpl_ashlsi3 */ case 1: return 632; /* ior_one_cmpl_ashldi3 */ default: return -1; } case ASHIFTRT: switch (pattern188 (x3)) { case 0: return 623; /* ior_one_cmpl_ashrsi3 */ case 1: return 635; /* ior_one_cmpl_ashrdi3 */ default: return -1; } case LSHIFTRT: switch (pattern188 (x3)) { case 0: return 626; /* ior_one_cmpl_lshrsi3 */ case 1: return 638; /* ior_one_cmpl_lshrdi3 */ default: return -1; } case ROTATERT: switch (pattern188 (x3)) { case 0: return 629; /* ior_one_cmpl_rotrsi3 */ case 1: return 641; /* ior_one_cmpl_rotrdi3 */ default: return -1; } default: return -1; } case AND: x6 = XEXP (x4, 0); switch (GET_CODE (x6)) { case REG: case SUBREG: x5 = XEXP (x3, 1); switch (GET_CODE (x5)) { case AND: x8 = XEXP (x5, 0); switch (GET_CODE (x8)) { case ASHIFT: operands[1] = x6; x7 = XEXP (x4, 1); operands[2] = x7; x10 = XEXP (x8, 0); operands[3] = x10; x11 = XEXP (x8, 1); operands[4] = x11; x9 = XEXP (x5, 1); operands[5] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern457 (x3, E_SImode) != 0 || !aarch64_simd_shift_imm_si (operands[4], E_SImode) || !const_int_operand (operands[5], E_SImode) || ! #line 5546 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (SImode, UINTVAL (operands[2]), UINTVAL (operands[4]), UINTVAL(operands[5])))) return -1; return 789; /* *aarch64_bfisi5_shift */ case E_DImode: if (pattern457 (x3, E_DImode) != 0 || !aarch64_simd_shift_imm_di (operands[4], E_DImode) || !const_int_operand (operands[5], E_DImode) || ! #line 5546 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (DImode, UINTVAL (operands[2]), UINTVAL (operands[4]), UINTVAL(operands[5])))) return -1; return 790; /* *aarch64_bfidi5_shift */ default: return -1; } case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern317 (x3, E_SImode) != 0) return -1; x7 = XEXP (x4, 1); operands[2] = x7; operands[1] = x6; if (GET_MODE (x5) == E_SImode) { operands[3] = x8; if (register_operand (operands[3], E_SImode)) { x9 = XEXP (x5, 1); operands[4] = x9; if (const_int_operand (operands[4], E_SImode) && #line 5615 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (SImode, UINTVAL (operands[2]), 0, UINTVAL (operands[4])))) return 797; /* *aarch64_bfisi4_noshift */ } } operands[4] = x7; operands[3] = x6; if (GET_MODE (x5) == E_SImode) { operands[1] = x8; if (register_operand (operands[1], E_SImode)) { x9 = XEXP (x5, 1); operands[2] = x9; if (const_int_operand (operands[2], E_SImode) && #line 5627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (SImode, UINTVAL (operands[2]), 0, UINTVAL (operands[4])))) return 799; /* *aarch64_bfisi4_noshift_alt */ } } operands[3] = x7; operands[1] = x6; if (GET_MODE (x5) != E_SImode) return -1; operands[2] = x8; if (!register_operand (operands[2], E_SImode)) return -1; x9 = XEXP (x5, 1); operands[4] = x9; if (!const_int_operand (operands[4], E_SImode) || ! #line 5728 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((INTVAL (operands[3]) == ~INTVAL (operands[4])) && (aarch64_high_bits_all_ones_p (INTVAL (operands[3])) || aarch64_high_bits_all_ones_p (INTVAL (operands[4]))))) return -1; return 822; /* *aarch64_bfxilsi */ case E_DImode: if (pattern317 (x3, E_DImode) != 0) return -1; x7 = XEXP (x4, 1); operands[2] = x7; operands[1] = x6; if (GET_MODE (x5) == E_DImode) { operands[3] = x8; if (register_operand (operands[3], E_DImode)) { x9 = XEXP (x5, 1); operands[4] = x9; if (const_int_operand (operands[4], E_DImode) && #line 5615 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (DImode, UINTVAL (operands[2]), 0, UINTVAL (operands[4])))) return 798; /* *aarch64_bfidi4_noshift */ } } operands[4] = x7; operands[3] = x6; if (GET_MODE (x5) == E_DImode) { operands[1] = x8; if (register_operand (operands[1], E_DImode)) { x9 = XEXP (x5, 1); operands[2] = x9; if (const_int_operand (operands[2], E_DImode) && #line 5627 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (DImode, UINTVAL (operands[2]), 0, UINTVAL (operands[4])))) return 800; /* *aarch64_bfidi4_noshift_alt */ } } operands[3] = x7; operands[1] = x6; if (GET_MODE (x5) != E_DImode) return -1; operands[2] = x8; if (!register_operand (operands[2], E_DImode)) return -1; x9 = XEXP (x5, 1); operands[4] = x9; if (!const_int_operand (operands[4], E_DImode) || ! #line 5728 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((INTVAL (operands[3]) == ~INTVAL (operands[4])) && (aarch64_high_bits_all_ones_p (INTVAL (operands[3])) || aarch64_high_bits_all_ones_p (INTVAL (operands[4]))))) return -1; return 823; /* *aarch64_bfxildi */ default: return -1; } default: return -1; } case ASHIFT: operands[1] = x6; x7 = XEXP (x4, 1); operands[2] = x7; x8 = XEXP (x5, 0); operands[3] = x8; x9 = XEXP (x5, 1); operands[4] = x9; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern417 (x3, E_SImode) != 0 || !aarch64_simd_shift_imm_si (operands[4], E_SImode) || ! #line 5578 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (SImode, UINTVAL (operands[2]), UINTVAL (operands[4]), HOST_WIDE_INT_M1U << UINTVAL (operands[4]) ))) return -1; return 793; /* *aarch64_bfisi4_noand */ case E_DImode: if (pattern417 (x3, E_DImode) != 0 || !aarch64_simd_shift_imm_di (operands[4], E_DImode) || ! #line 5578 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_masks_and_shift_for_bfi_p (DImode, UINTVAL (operands[2]), UINTVAL (operands[4]), HOST_WIDE_INT_M1U << UINTVAL (operands[4]) ))) return -1; return 794; /* *aarch64_bfidi4_noand */ default: return -1; } default: return -1; } case ASHIFT: x12 = XEXP (x6, 1); if (GET_CODE (x12) != CONST_INT) return -1; operands[2] = x12; res = recog_142 (x1, insn, pnum_clobbers); if (res >= 0) return res; if (XWINT (x12, 0) != 8L) return -1; x5 = XEXP (x3, 1); if (GET_CODE (x5) != AND) return -1; x8 = XEXP (x5, 0); if (GET_CODE (x8) != LSHIFTRT) return -1; x11 = XEXP (x8, 1); if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x13 = XEXP (x6, 0); operands[1] = x13; x7 = XEXP (x4, 1); operands[3] = x7; x9 = XEXP (x5, 1); operands[2] = x9; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern497 (x3, E_SImode) != 0 || ! #line 5786 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch_rev16_shleft_mask_imm_p (operands[3], SImode) && aarch_rev16_shright_mask_imm_p (operands[2], SImode))) return -1; return 825; /* rev16si2 */ case E_DImode: if (pattern497 (x3, E_DImode) != 0 || ! #line 5786 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch_rev16_shleft_mask_imm_p (operands[3], DImode) && aarch_rev16_shright_mask_imm_p (operands[2], DImode))) return -1; return 826; /* rev16di2 */ default: return -1; } case LSHIFTRT: x12 = XEXP (x6, 1); if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x5 = XEXP (x3, 1); if (GET_CODE (x5) != AND) return -1; x8 = XEXP (x5, 0); if (GET_CODE (x8) != ASHIFT) return -1; x11 = XEXP (x8, 1); if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; x13 = XEXP (x6, 0); operands[1] = x13; x7 = XEXP (x4, 1); operands[2] = x7; x9 = XEXP (x5, 1); operands[3] = x9; x10 = XEXP (x8, 0); if (!rtx_equal_p (x10, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern475 (x3, E_SImode) != 0 || ! #line 5800 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch_rev16_shleft_mask_imm_p (operands[3], SImode) && aarch_rev16_shright_mask_imm_p (operands[2], SImode))) return -1; return 827; /* rev16si2_alt */ case E_DImode: if (pattern475 (x3, E_DImode) != 0 || ! #line 5800 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch_rev16_shleft_mask_imm_p (operands[3], DImode) && aarch_rev16_shright_mask_imm_p (operands[2], DImode))) return -1; return 828; /* rev16di2_alt */ default: return -1; } default: return -1; } default: return -1; } } static int recog_156 (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 REG: case SUBREG: x5 = XEXP (x3, 2); switch (GET_CODE (x5)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_HFmode: if (pattern218 (x3, E_HFmode) != 0 || !( #line 5880 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 919; /* *aarch64_fmahf4 */ case E_SFmode: if (pattern218 (x3, E_SFmode) != 0 || ! #line 5880 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 920; /* *aarch64_fmasf4 */ case E_DFmode: if (pattern218 (x3, E_DFmode) != 0 || ! #line 5880 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 921; /* *aarch64_fmadf4 */ case E_V4HFmode: if (pattern219 (x3, E_V4HFmode) != 0 || !( #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1914; /* fmav4hf4 */ case E_V8HFmode: if (pattern219 (x3, E_V8HFmode) != 0 || !( #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1915; /* fmav8hf4 */ case E_V2SFmode: if (pattern219 (x3, E_V2SFmode) != 0 || ! #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1916; /* fmav2sf4 */ case E_V4SFmode: if (pattern219 (x3, E_V4SFmode) != 0 || ! #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1917; /* fmav4sf4 */ case E_V2DFmode: if (pattern219 (x3, E_V2DFmode) != 0 || ! #line 1885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1918; /* fmav2df4 */ default: return -1; } case NEG: operands[2] = x4; x6 = XEXP (x3, 1); operands[3] = x6; x7 = XEXP (x5, 0); operands[1] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern352 (x3, E_SFmode) != 0 || ! #line 5919 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 925; /* *aarch64_fmssf4 */ case E_DFmode: if (pattern352 (x3, E_DFmode) != 0 || ! #line 5919 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 926; /* *aarch64_fmsdf4 */ default: return -1; } default: return -1; } case NEG: x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: x5 = XEXP (x3, 2); switch (GET_CODE (x5)) { case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_HFmode: if (pattern279 (x3, E_HFmode) != 0 || !( #line 5900 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 922; /* *aarch64_fnmahf4 */ case E_SFmode: if (pattern279 (x3, E_SFmode) != 0 || ! #line 5900 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 923; /* *aarch64_fnmasf4 */ case E_DFmode: if (pattern279 (x3, E_DFmode) != 0 || ! #line 5900 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 924; /* *aarch64_fnmadf4 */ case E_V4HFmode: if (pattern280 (x3, E_V4HFmode) != 0 || !( #line 1958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1934; /* fnmav4hf4 */ case E_V8HFmode: if (pattern280 (x3, E_V8HFmode) != 0 || !( #line 1958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1935; /* fnmav8hf4 */ case E_V2SFmode: if (pattern280 (x3, E_V2SFmode) != 0 || ! #line 1958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1936; /* fnmav2sf4 */ case E_V4SFmode: if (pattern280 (x3, E_V4SFmode) != 0 || ! #line 1958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1937; /* fnmav4sf4 */ case E_V2DFmode: if (pattern280 (x3, E_V2DFmode) != 0 || ! #line 1958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1938; /* fnmav2df4 */ default: return -1; } case NEG: x8 = XEXP (x4, 0); operands[2] = x8; operands[3] = x6; x7 = XEXP (x5, 0); operands[1] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern380 (x3, E_SFmode) != 0 || ! #line 5937 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 927; /* *aarch64_fnmssf4 */ case E_DFmode: if (pattern380 (x3, E_DFmode) != 0 || ! #line 5937 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 928; /* *aarch64_fnmsdf4 */ default: return -1; } default: return -1; } case VEC_DUPLICATE: x9 = XEXP (x6, 0); switch (GET_CODE (x9)) { case VEC_SELECT: x10 = XEXP (x9, 1); if (GET_CODE (x10) != PARALLEL || XVECLEN (x10, 0) != 1) return -1; x8 = XEXP (x4, 0); operands[3] = x8; x11 = XEXP (x9, 0); operands[1] = x11; x12 = XVECEXP (x10, 0, 0); operands[2] = x12; if (!immediate_operand (operands[2], E_SImode)) return -1; x5 = XEXP (x3, 2); operands[4] = x5; switch (GET_MODE (operands[0])) { case E_V2SFmode: if (pattern476 (x3, E_V2SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 1973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1939; /* *aarch64_fnma4_eltv2sf */ case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 1991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1942; /* *aarch64_fnma4_elt_to_128v2sf */ default: return -1; } case E_V4SFmode: if (pattern476 (x3, E_V4SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 1973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1940; /* *aarch64_fnma4_eltv4sf */ case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 1991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1943; /* *aarch64_fnma4_elt_to_64v4sf */ default: return -1; } case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || GET_MODE (x4) != E_V2DFmode || !register_operand (operands[3], E_V2DFmode) || GET_MODE (x6) != E_V2DFmode || GET_MODE (x9) != E_DFmode || !register_operand (operands[1], E_V2DFmode) || !register_operand (operands[4], E_V2DFmode) || ! #line 1973 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1941; /* *aarch64_fnma4_eltv2df */ default: return -1; } case REG: case SUBREG: operands[1] = x9; x8 = XEXP (x4, 0); operands[2] = x8; x5 = XEXP (x3, 2); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern381 (x3, E_V4HImode, E_HImode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1944; /* *aarch64_fnma4_elt_from_dupv4hi */ case E_V8HImode: if (pattern381 (x3, E_V8HImode, E_HImode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1945; /* *aarch64_fnma4_elt_from_dupv8hi */ case E_V2SImode: if (pattern381 (x3, E_V2SImode, E_SImode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1946; /* *aarch64_fnma4_elt_from_dupv2si */ case E_V4SImode: if (pattern381 (x3, E_V4SImode, E_SImode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1947; /* *aarch64_fnma4_elt_from_dupv4si */ case E_V4HFmode: if (pattern381 (x3, E_V4HFmode, E_HFmode) != 0 || !( #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1948; /* *aarch64_fnma4_elt_from_dupv4hf */ case E_V8HFmode: if (pattern381 (x3, E_V8HFmode, E_HFmode) != 0 || !( #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1949; /* *aarch64_fnma4_elt_from_dupv8hf */ case E_V2SFmode: if (pattern381 (x3, E_V2SFmode, E_SFmode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1950; /* *aarch64_fnma4_elt_from_dupv2sf */ case E_V4SFmode: if (pattern381 (x3, E_V4SFmode, E_SFmode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1951; /* *aarch64_fnma4_elt_from_dupv4sf */ case E_V2DFmode: if (pattern381 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 2007 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1952; /* *aarch64_fnma4_elt_from_dupv2df */ default: return -1; } default: return -1; } default: return -1; } case VEC_DUPLICATE: switch (pattern49 (x3)) { case 0: x5 = XEXP (x3, 2); operands[4] = x5; switch (GET_MODE (operands[0])) { case E_V2SFmode: if (pattern459 (x3, E_V2SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 1899 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1919; /* *aarch64_fma4_eltv2sf */ case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 1916 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1922; /* *aarch64_fma4_elt_to_128v2sf */ default: return -1; } case E_V4SFmode: if (pattern459 (x3, E_V4SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 1899 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1920; /* *aarch64_fma4_eltv4sf */ case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 1916 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1923; /* *aarch64_fma4_elt_to_64v4sf */ default: return -1; } case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || GET_MODE (x4) != E_V2DFmode) return -1; x8 = XEXP (x4, 0); if (GET_MODE (x8) != E_DFmode || !register_operand (operands[1], E_V2DFmode) || !register_operand (operands[3], E_V2DFmode) || !register_operand (operands[4], E_V2DFmode) || ! #line 1899 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1921; /* *aarch64_fma4_eltv2df */ default: return -1; } case 1: x5 = XEXP (x3, 2); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_V4HImode: if (pattern353 (x3, E_V4HImode, E_HImode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1924; /* *aarch64_fma4_elt_from_dupv4hi */ case E_V8HImode: if (pattern353 (x3, E_V8HImode, E_HImode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1925; /* *aarch64_fma4_elt_from_dupv8hi */ case E_V2SImode: if (pattern353 (x3, E_V2SImode, E_SImode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1926; /* *aarch64_fma4_elt_from_dupv2si */ case E_V4SImode: if (pattern353 (x3, E_V4SImode, E_SImode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1927; /* *aarch64_fma4_elt_from_dupv4si */ case E_V4HFmode: if (pattern353 (x3, E_V4HFmode, E_HFmode) != 0 || !( #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1928; /* *aarch64_fma4_elt_from_dupv4hf */ case E_V8HFmode: if (pattern353 (x3, E_V8HFmode, E_HFmode) != 0 || !( #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1929; /* *aarch64_fma4_elt_from_dupv8hf */ case E_V2SFmode: if (pattern353 (x3, E_V2SFmode, E_SFmode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1930; /* *aarch64_fma4_elt_from_dupv2sf */ case E_V4SFmode: if (pattern353 (x3, E_V4SFmode, E_SFmode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1931; /* *aarch64_fma4_elt_from_dupv4sf */ case E_V2DFmode: if (pattern353 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 1931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1932; /* *aarch64_fma4_elt_from_dupv2df */ default: return -1; } default: return -1; } case VEC_SELECT: if (pattern50 (x3) != 0) return -1; x5 = XEXP (x3, 2); operands[4] = x5; if (!register_operand (operands[4], E_DFmode)) return -1; x6 = XEXP (x3, 1); switch (GET_CODE (x6)) { case REG: case SUBREG: operands[3] = x6; if (!register_operand (operands[3], E_DFmode) || ! #line 1944 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1933; /* *aarch64_fma4_elt_to_64v2df */ case NEG: if (GET_MODE (x6) != E_DFmode) return -1; x9 = XEXP (x6, 0); operands[3] = x9; if (!register_operand (operands[3], E_DFmode) || ! #line 2021 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1953; /* *aarch64_fnma4_elt_to_64v2df */ default: return -1; } case FLOAT_EXTEND: return recog_144 (x1, insn, pnum_clobbers); default: return -1; } } static int recog_157 (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; int res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); switch (XVECLEN (x3, 0)) { case 2: switch (XINT (x3, 1)) { case 6: if (GET_MODE (x3) != E_DImode || !register_operand (operands[0], E_DImode)) return -1; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; if (!register_operand (operands[1], E_DImode)) return -1; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_DImode)) return -1; return 1072; /* probe_stack_range */ case 7: x5 = XVECEXP (x3, 0, 1); if (GET_CODE (x5) != USE) return -1; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x6 = XEXP (x5, 0); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern355 (x3, E_QImode) != 0) return -1; return 1096; /* despeculate_simpleqi */ case E_HImode: if (pattern355 (x3, E_HImode) != 0) return -1; return 1097; /* despeculate_simplehi */ case E_SImode: if (pattern355 (x3, E_SImode) != 0) return -1; return 1098; /* despeculate_simplesi */ case E_DImode: if (pattern355 (x3, E_DImode) != 0) return -1; return 1099; /* despeculate_simpledi */ case E_TImode: if (!register_operand (operands[0], E_TImode) || GET_MODE (x3) != E_TImode || !register_operand (operands[1], E_TImode) || !register_operand (operands[2], E_DImode)) return -1; return 1100; /* despeculate_simpleti */ default: return -1; } case 20: if (pnum_clobbers == NULL) return -1; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_SImode)) return -1; x4 = XVECEXP (x3, 0, 0); switch (GET_CODE (x4)) { case PLUS: switch (pattern357 (x3)) { case 0: *pnum_clobbers = 3; return 3651; /* aarch64_atomic_addqi */ case 1: *pnum_clobbers = 3; return 3656; /* aarch64_atomic_addhi */ case 2: *pnum_clobbers = 3; return 3661; /* aarch64_atomic_addsi */ case 3: *pnum_clobbers = 3; return 3666; /* aarch64_atomic_adddi */ default: return -1; } case MINUS: switch (pattern357 (x3)) { case 0: *pnum_clobbers = 3; return 3652; /* aarch64_atomic_subqi */ case 1: *pnum_clobbers = 3; return 3657; /* aarch64_atomic_subhi */ case 2: *pnum_clobbers = 3; return 3662; /* aarch64_atomic_subsi */ case 3: *pnum_clobbers = 3; return 3667; /* aarch64_atomic_subdi */ default: return -1; } case IOR: switch (pattern359 (x3)) { case 0: *pnum_clobbers = 3; return 3653; /* aarch64_atomic_orqi */ case 1: *pnum_clobbers = 3; return 3658; /* aarch64_atomic_orhi */ case 2: *pnum_clobbers = 3; return 3663; /* aarch64_atomic_orsi */ case 3: *pnum_clobbers = 3; return 3668; /* aarch64_atomic_ordi */ default: return -1; } case XOR: switch (pattern359 (x3)) { case 0: *pnum_clobbers = 3; return 3654; /* aarch64_atomic_xorqi */ case 1: *pnum_clobbers = 3; return 3659; /* aarch64_atomic_xorhi */ case 2: *pnum_clobbers = 3; return 3664; /* aarch64_atomic_xorsi */ case 3: *pnum_clobbers = 3; return 3669; /* aarch64_atomic_xordi */ default: return -1; } case AND: switch (pattern359 (x3)) { case 0: *pnum_clobbers = 3; return 3655; /* aarch64_atomic_andqi */ case 1: *pnum_clobbers = 3; return 3660; /* aarch64_atomic_andhi */ case 2: *pnum_clobbers = 3; return 3665; /* aarch64_atomic_andsi */ case 3: *pnum_clobbers = 3; return 3670; /* aarch64_atomic_anddi */ default: return -1; } case NOT: x7 = XEXP (x4, 0); if (GET_CODE (x7) != AND) return -1; x8 = XEXP (x7, 1); operands[1] = x8; x9 = XEXP (x7, 0); if (!rtx_equal_p (x9, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern462 (x3, E_QImode) != 0) return -1; *pnum_clobbers = 3; return 3687; /* atomic_nandqi */ case E_HImode: if (pattern462 (x3, E_HImode) != 0) return -1; *pnum_clobbers = 3; return 3688; /* atomic_nandhi */ case E_SImode: if (pattern462 (x3, E_SImode) != 0) return -1; *pnum_clobbers = 3; return 3689; /* atomic_nandsi */ case E_DImode: if (pattern462 (x3, E_DImode) != 0) return -1; *pnum_clobbers = 3; return 3690; /* atomic_nanddi */ default: return -1; } default: return -1; } case 14: x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!register_operand (operands[0], E_QImode) || GET_MODE (x3) != E_QImode || !aarch64_sync_memory_operand (operands[1], E_QImode)) return -1; return 3755; /* atomic_loadqi */ case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !aarch64_sync_memory_operand (operands[1], E_HImode)) return -1; return 3756; /* atomic_loadhi */ case E_SImode: if (!register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !aarch64_sync_memory_operand (operands[1], E_SImode)) return -1; return 3757; /* atomic_loadsi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !aarch64_sync_memory_operand (operands[1], E_DImode)) return -1; return 3758; /* atomic_loaddi */ default: return -1; } case 15: x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!const_int_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (!aarch64_rcpc_memory_operand (operands[0], E_QImode) || GET_MODE (x3) != E_QImode || !general_operand (operands[1], E_QImode)) return -1; return 3759; /* atomic_storeqi */ case E_HImode: if (!aarch64_rcpc_memory_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !general_operand (operands[1], E_HImode)) return -1; return 3760; /* atomic_storehi */ case E_SImode: if (!aarch64_rcpc_memory_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode || !general_operand (operands[1], E_SImode)) return -1; return 3761; /* atomic_storesi */ case E_DImode: if (!aarch64_rcpc_memory_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !general_operand (operands[1], E_DImode)) return -1; return 3762; /* atomic_storedi */ default: return -1; } case 12: x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!const_int_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 || !aarch64_sync_memory_operand (operands[1], E_SImode)) return -1; return 3765; /* aarch64_load_exclusivesi */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !aarch64_sync_memory_operand (operands[1], E_DImode)) return -1; return 3766; /* aarch64_load_exclusivedi */ default: return -1; } default: return -1; } case 4: x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; switch (XINT (x3, 1)) { case 6: x10 = XVECEXP (x3, 0, 2); operands[3] = x10; x11 = XVECEXP (x3, 0, 3); operands[4] = x11; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern382 (x3, E_SImode) != 0 || !( #line 6906 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 1073; /* probe_sve_stack_clash_si */ case E_DImode: if (pattern382 (x3, E_DImode) != 0 || !( #line 6906 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 1074; /* probe_sve_stack_clash_di */ default: return -1; } case 7: x10 = XVECEXP (x3, 0, 2); if (GET_CODE (x10) != USE) return -1; x12 = XEXP (x10, 0); if (GET_CODE (x12) != REG || REGNO (x12) != 15 || GET_MODE (x12) != E_DImode) return -1; x11 = XVECEXP (x3, 0, 3); if (GET_CODE (x11) != CLOBBER) return -1; x13 = XEXP (x11, 0); if (GET_CODE (x13) != REG || REGNO (x13) != 66 || GET_MODE (x13) != E_CCmode) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern514 (x3, E_QImode) != 0) return -1; return 1091; /* *despeculate_copyqi_insn */ case E_HImode: if (pattern514 (x3, E_HImode) != 0) return -1; return 1092; /* *despeculate_copyhi_insn */ case E_SImode: if (pattern514 (x3, E_SImode) != 0) return -1; return 1093; /* *despeculate_copysi_insn */ case E_DImode: if (pattern514 (x3, E_DImode) != 0) return -1; return 1094; /* *despeculate_copydi_insn */ case E_TImode: if (pattern514 (x3, E_TImode) != 0) return -1; return 1095; /* *despeculate_copyti_insn */ default: return -1; } default: return -1; } case 1: x4 = XVECEXP (x3, 0, 0); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; switch (XINT (x3, 1)) { case 1: return 1082; /* get_fpcr */ case 3: return 1084; /* get_fpsr */ default: return -1; } case 3: if (pnum_clobbers == NULL) return -1; x5 = XVECEXP (x3, 0, 1); operands[1] = x5; x10 = XVECEXP (x3, 0, 2); operands[2] = x10; if (!const_int_operand (operands[2], E_SImode)) return -1; x4 = XVECEXP (x3, 0, 0); if (!rtx_equal_p (x4, operands[0])) return -1; switch (XINT (x3, 1)) { case 21: switch (pattern383 (x3)) { case 0: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3671; /* aarch64_atomic_iorqi_lse */ case 1: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3675; /* aarch64_atomic_iorhi_lse */ case 2: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3679; /* aarch64_atomic_iorsi_lse */ case 3: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3683; /* aarch64_atomic_iordi_lse */ default: return -1; } case 22: switch (pattern383 (x3)) { case 0: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3672; /* aarch64_atomic_bicqi_lse */ case 1: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3676; /* aarch64_atomic_bichi_lse */ case 2: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3680; /* aarch64_atomic_bicsi_lse */ case 3: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3684; /* aarch64_atomic_bicdi_lse */ default: return -1; } case 23: switch (pattern383 (x3)) { case 0: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3673; /* aarch64_atomic_xorqi_lse */ case 1: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3677; /* aarch64_atomic_xorhi_lse */ case 2: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3681; /* aarch64_atomic_xorsi_lse */ case 3: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3685; /* aarch64_atomic_xordi_lse */ default: return -1; } case 24: switch (pattern383 (x3)) { case 0: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3674; /* aarch64_atomic_addqi_lse */ case 1: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3678; /* aarch64_atomic_addhi_lse */ case 2: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3682; /* aarch64_atomic_addsi_lse */ case 3: if (! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; *pnum_clobbers = 1; return 3686; /* aarch64_atomic_adddi_lse */ default: return -1; } default: return -1; } default: return -1; } } static int recog_158 (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 VEC_DUPLICATE: x5 = XEXP (x4, 0); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XEXP (x3, 1); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern281 (x3, E_V8QImode, E_V16QImode) != 0 || ! #line 1463 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1797; /* move_lo_quad_internal_be_v16qi */ case E_V8HImode: if (pattern281 (x3, E_V4HImode, E_V8HImode) != 0 || ! #line 1463 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1798; /* move_lo_quad_internal_be_v8hi */ case E_V4SImode: if (pattern281 (x3, E_V2SImode, E_V4SImode) != 0 || ! #line 1463 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1799; /* move_lo_quad_internal_be_v4si */ case E_V8HFmode: if (pattern281 (x3, E_V4HFmode, E_V8HFmode) != 0 || ! #line 1463 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1800; /* move_lo_quad_internal_be_v8hf */ case E_V4SFmode: if (pattern281 (x3, E_V2SFmode, E_V4SFmode) != 0 || ! #line 1463 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 1801; /* move_lo_quad_internal_be_v4sf */ default: return -1; } case VEC_SELECT: x7 = XEXP (x4, 1); operands[2] = x7; x6 = XEXP (x3, 1); operands[1] = x6; x5 = XEXP (x4, 0); if (!rtx_equal_p (x5, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern320 (x3, E_V8QImode, E_V16QImode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1804; /* aarch64_simd_move_hi_quad_v16qi */ case E_V8HImode: if (pattern320 (x3, E_V4HImode, E_V8HImode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1805; /* aarch64_simd_move_hi_quad_v8hi */ case E_V4SImode: if (pattern320 (x3, E_V2SImode, E_V4SImode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1806; /* aarch64_simd_move_hi_quad_v4si */ case E_V2DImode: if (pattern320 (x3, E_DImode, E_V2DImode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1807; /* aarch64_simd_move_hi_quad_v2di */ case E_V8HFmode: if (pattern320 (x3, E_V4HFmode, E_V8HFmode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1808; /* aarch64_simd_move_hi_quad_v8hf */ case E_V4SFmode: if (pattern320 (x3, E_V2SFmode, E_V4SFmode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1809; /* aarch64_simd_move_hi_quad_v4sf */ case E_V2DFmode: if (pattern320 (x3, E_DFmode, E_V2DFmode) != 0 || ! #line 1513 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return -1; return 1810; /* aarch64_simd_move_hi_quad_v2df */ default: return -1; } case TRUNCATE: x6 = XEXP (x3, 1); if (GET_CODE (x6) != TRUNCATE) return -1; x5 = XEXP (x4, 0); operands[1] = x5; x8 = XEXP (x6, 0); operands[2] = x8; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern321 (x3, E_V8HImode, E_V8QImode, E_V16QImode) != 0 || ! #line 1583 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1821; /* vec_pack_trunc_v8hi */ case E_V8HImode: if (pattern321 (x3, E_V4SImode, E_V4HImode, E_V8HImode) != 0 || ! #line 1583 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1822; /* vec_pack_trunc_v4si */ case E_V4SImode: if (pattern321 (x3, E_V2DImode, E_V2SImode, E_V4SImode) != 0 || ! #line 1583 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1823; /* vec_pack_trunc_v2di */ default: return -1; } case FLOAT_TRUNCATE: x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x3, 1); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_V4SFmode: if (pattern282 (x3, E_V2SFmode, E_V2DFmode, E_V4SFmode) != 0 || ! #line 2251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2099; /* aarch64_float_truncate_hi_v4sf_be */ case E_V8HFmode: if (pattern282 (x3, E_V4HFmode, E_V4SFmode, E_V8HFmode) != 0 || ! #line 2251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2100; /* aarch64_float_truncate_hi_v8hf_be */ 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: switch (GET_CODE (x4)) { case REG: case SUBREG: case MEM: res = recog_147 (x1, insn, pnum_clobbers); if (res >= 0) return res; break; case CONST_INT: if (XWINT (x4, 0) == 0L) { x6 = XEXP (x3, 1); operands[1] = 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_DImode) && #line 1478 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return 1802; /* move_lo_quad_internal_be_v2di */ break; case E_V2DFmode: if (register_operand (operands[0], E_V2DFmode) && GET_MODE (x3) == E_V2DFmode && register_operand (operands[1], E_DFmode) && #line 1478 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return 1803; /* move_lo_quad_internal_be_v2df */ break; default: break; } } break; default: break; } switch (GET_MODE (operands[0])) { case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode) return -1; operands[1] = x4; if (general_operand (operands[1], E_V8QImode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_V8QImode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2261; /* *aarch64_combinezv8qi */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_V8QImode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_V8QImode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2268; /* *aarch64_combinez_bev8qi */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode) return -1; operands[1] = x4; if (general_operand (operands[1], E_V4HImode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_V4HImode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2262; /* *aarch64_combinezv4hi */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_V4HImode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_V4HImode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2269; /* *aarch64_combinez_bev4hi */ case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode) return -1; operands[1] = x4; if (general_operand (operands[1], E_V4HFmode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_V4HFmode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2263; /* *aarch64_combinezv4hf */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_V4HFmode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_V4HFmode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2270; /* *aarch64_combinez_bev4hf */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode) return -1; operands[1] = x4; if (general_operand (operands[1], E_V2SImode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_V2SImode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2264; /* *aarch64_combinezv2si */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_V2SImode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_V2SImode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2271; /* *aarch64_combinez_bev2si */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode) return -1; operands[1] = x4; if (general_operand (operands[1], E_V2SFmode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_V2SFmode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2265; /* *aarch64_combinezv2sf */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_V2SFmode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_V2SFmode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2272; /* *aarch64_combinez_bev2sf */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode) return -1; operands[1] = x4; if (general_operand (operands[1], E_DImode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_DImode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2266; /* *aarch64_combinezdi */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_DImode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_DImode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2273; /* *aarch64_combinez_bedi */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode) return -1; operands[1] = x4; if (general_operand (operands[1], E_DFmode)) { x6 = XEXP (x3, 1); operands[2] = x6; if (aarch64_simd_or_scalar_imm_zero (operands[2], E_DFmode) && #line 3191 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && !BYTES_BIG_ENDIAN)) return 2267; /* *aarch64_combinezdf */ } operands[2] = x4; if (!aarch64_simd_or_scalar_imm_zero (operands[2], E_DFmode)) return -1; x6 = XEXP (x3, 1); operands[1] = x6; if (!general_operand (operands[1], E_DFmode) || ! #line 3205 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && BYTES_BIG_ENDIAN)) return -1; return 2274; /* *aarch64_combinez_bedf */ default: return -1; } default: return -1; } } static int recog_159 (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: operands[1] = x4; x5 = XEXP (x3, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern277 (x3, E_SImode) != 0) return -1; return 528; /* xorsi3 */ case E_DImode: if (pattern277 (x3, E_DImode) != 0) return -1; return 531; /* xordi3 */ case E_V8QImode: if (pattern13 (x3, E_V8QImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1591; /* xorv8qi3 */ case E_V16QImode: if (pattern13 (x3, E_V16QImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1592; /* xorv16qi3 */ case E_V4HImode: if (pattern13 (x3, E_V4HImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1593; /* xorv4hi3 */ case E_V8HImode: if (pattern13 (x3, E_V8HImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1594; /* xorv8hi3 */ case E_V2SImode: if (pattern13 (x3, E_V2SImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1595; /* xorv2si3 */ case E_V4SImode: if (pattern13 (x3, E_V4SImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1596; /* xorv4si3 */ case E_V2DImode: if (pattern13 (x3, E_V2DImode) != 0 || ! #line 856 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1597; /* xorv2di3 */ case E_VNx16QImode: if (pattern276 (x3, E_VNx16QImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4152; /* xorvnx16qi3 */ case E_VNx8HImode: if (pattern276 (x3, E_VNx8HImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4155; /* xorvnx8hi3 */ case E_VNx4SImode: if (pattern276 (x3, E_VNx4SImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4158; /* xorvnx4si3 */ case E_VNx2DImode: if (pattern276 (x3, E_VNx2DImode) != 0 || ! #line 1105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4161; /* xorvnx2di3 */ default: return -1; } case ASHIFT: switch (pattern37 (x3)) { case 0: return 552; /* *xor_ashlsi3 */ case 1: return 564; /* *xor_ashldi3 */ default: return -1; } case ASHIFTRT: switch (pattern37 (x3)) { case 0: return 555; /* *xor_ashrsi3 */ case 1: return 567; /* *xor_ashrdi3 */ default: return -1; } case LSHIFTRT: switch (pattern37 (x3)) { case 0: return 558; /* *xor_lshrsi3 */ case 1: return 570; /* *xor_lshrdi3 */ default: return -1; } case ROTATERT: switch (pattern37 (x3)) { case 0: return 561; /* *xor_rotrsi3 */ case 1: return 573; /* *xor_rotrdi3 */ default: return -1; } case ROTATE: x6 = XEXP (x4, 1); if (GET_CODE (x6) != CONST_INT) return -1; operands[2] = x6; x7 = XEXP (x4, 0); operands[1] = x7; x5 = XEXP (x3, 1); operands[3] = x5; switch (pattern36 (x3)) { case 0: return 576; /* *xor_rolsi3 */ case 1: return 579; /* *xor_roldi3 */ default: break; } if (XWINT (x6, 0) != 1L || pattern211 (x3, E_V2DImode) != 0 || ! #line 6257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3594; /* aarch64_rax1qv2di */ case NOT: x5 = XEXP (x3, 1); operands[3] = x5; x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case ASHIFT: switch (pattern212 (x3)) { case 0: return 621; /* xor_one_cmpl_ashlsi3 */ case 1: return 633; /* xor_one_cmpl_ashldi3 */ default: return -1; } case ASHIFTRT: switch (pattern212 (x3)) { case 0: return 624; /* xor_one_cmpl_ashrsi3 */ case 1: return 636; /* xor_one_cmpl_ashrdi3 */ default: return -1; } case LSHIFTRT: switch (pattern212 (x3)) { case 0: return 627; /* xor_one_cmpl_lshrsi3 */ case 1: return 639; /* xor_one_cmpl_lshrdi3 */ default: return -1; } case ROTATERT: switch (pattern212 (x3)) { case 0: return 630; /* xor_one_cmpl_rotrsi3 */ case 1: return 642; /* xor_one_cmpl_rotrdi3 */ default: return -1; } default: return -1; } case AND: x7 = XEXP (x4, 0); switch (GET_CODE (x7)) { case XOR: x8 = XEXP (x7, 0); operands[3] = x8; x9 = XEXP (x7, 1); operands[2] = x9; x6 = XEXP (x4, 1); operands[1] = x6; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern349 (x3, E_V8QImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2203; /* aarch64_simd_bslv8qi_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2210; /* *aarch64_simd_bslv8qi_alt */ case E_V16QImode: if (pattern349 (x3, E_V16QImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2204; /* aarch64_simd_bslv16qi_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2211; /* *aarch64_simd_bslv16qi_alt */ case E_V4HImode: if (pattern349 (x3, E_V4HImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2205; /* aarch64_simd_bslv4hi_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2212; /* *aarch64_simd_bslv4hi_alt */ case E_V8HImode: if (pattern349 (x3, E_V8HImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2206; /* aarch64_simd_bslv8hi_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2213; /* *aarch64_simd_bslv8hi_alt */ case E_V2SImode: if (pattern349 (x3, E_V2SImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2207; /* aarch64_simd_bslv2si_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2214; /* *aarch64_simd_bslv2si_alt */ case E_V4SImode: if (pattern349 (x3, E_V4SImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2208; /* aarch64_simd_bslv4si_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2215; /* *aarch64_simd_bslv4si_alt */ case E_V2DImode: if (pattern349 (x3, E_V2DImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2209; /* aarch64_simd_bslv2di_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2216; /* *aarch64_simd_bslv2di_alt */ case E_DImode: if (pattern349 (x3, E_DImode) != 0) return -1; x5 = XEXP (x3, 1); if (rtx_equal_p (x5, operands[3]) && #line 2583 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2217; /* aarch64_simd_bsldi_internal */ if (!rtx_equal_p (x5, operands[2]) || ! #line 2625 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2218; /* aarch64_simd_bsldi_alt */ default: return -1; } case NOT: x8 = XEXP (x7, 0); operands[3] = x8; x6 = XEXP (x4, 1); operands[2] = x6; x5 = XEXP (x3, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern350 (x3, E_V16QImode) != 0 || ! #line 6281 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3596; /* bcaxqv16qi4 */ case E_V8HImode: if (pattern350 (x3, E_V8HImode) != 0 || ! #line 6281 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3597; /* bcaxqv8hi4 */ case E_V4SImode: if (pattern350 (x3, E_V4SImode) != 0 || ! #line 6281 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3598; /* bcaxqv4si4 */ case E_V2DImode: if (pattern350 (x3, E_V2DImode) != 0 || ! #line 6281 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3599; /* bcaxqv2di4 */ default: return -1; } default: return -1; } case XOR: x7 = XEXP (x4, 0); operands[2] = x7; x6 = XEXP (x4, 1); operands[3] = x6; x5 = XEXP (x3, 1); operands[1] = x5; switch (GET_MODE (operands[0])) { case E_V16QImode: if (pattern118 (x3, E_V16QImode) != 0 || ! #line 6245 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3590; /* eor3qv16qi4 */ case E_V8HImode: if (pattern118 (x3, E_V8HImode) != 0 || ! #line 6245 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3591; /* eor3qv8hi4 */ case E_V4SImode: if (pattern118 (x3, E_V4SImode) != 0 || ! #line 6245 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3592; /* eor3qv4si4 */ case E_V2DImode: if (pattern118 (x3, E_V2DImode) != 0 || ! #line 6245 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3593; /* eor3qv2di4 */ default: return -1; } default: return -1; } } static int recog_160 (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, 2); operands[2] = x5; if (!immediate_operand (operands[2], E_SImode)) return -1; x6 = XEXP (x3, 0); switch (GET_CODE (x6)) { 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; x7 = XEXP (x2, 1); operands[3] = x7; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern384 (x2, E_V8QImode, E_QImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1605; /* aarch64_simd_vec_setv8qi */ case E_V16QImode: if (pattern384 (x2, E_V16QImode, E_QImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1606; /* aarch64_simd_vec_setv16qi */ case E_V4HImode: if (pattern384 (x2, E_V4HImode, E_HImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1607; /* aarch64_simd_vec_setv4hi */ case E_V8HImode: if (pattern384 (x2, E_V8HImode, E_HImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1608; /* aarch64_simd_vec_setv8hi */ case E_V2SImode: if (pattern384 (x2, E_V2SImode, E_SImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1609; /* aarch64_simd_vec_setv2si */ case E_V4SImode: if (pattern384 (x2, E_V4SImode, E_SImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1610; /* aarch64_simd_vec_setv4si */ case E_V2DImode: if (pattern384 (x2, E_V2DImode, E_DImode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1611; /* aarch64_simd_vec_setv2di */ case E_V4HFmode: if (pattern384 (x2, E_V4HFmode, E_HFmode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1612; /* aarch64_simd_vec_setv4hf */ case E_V8HFmode: if (pattern384 (x2, E_V8HFmode, E_HFmode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1613; /* aarch64_simd_vec_setv8hf */ case E_V2SFmode: if (pattern384 (x2, E_V2SFmode, E_SFmode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1614; /* aarch64_simd_vec_setv2sf */ case E_V4SFmode: if (pattern384 (x2, E_V4SFmode, E_SFmode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1615; /* aarch64_simd_vec_setv4sf */ case E_V2DFmode: if (pattern384 (x2, E_V2DFmode, E_DFmode) != 0 || ! #line 876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1616; /* aarch64_simd_vec_setv2df */ default: return -1; } case VEC_SELECT: x8 = XEXP (x6, 1); if (GET_CODE (x8) != PARALLEL || XVECLEN (x8, 0) != 1) return -1; x9 = XEXP (x6, 0); operands[3] = x9; x10 = XVECEXP (x8, 0, 0); operands[4] = x10; if (!immediate_operand (operands[4], E_SImode)) return -1; x7 = XEXP (x2, 1); operands[1] = x7; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern478 (x2, E_V8QImode, E_QImode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V8QImode: if (!register_operand (operands[3], E_V8QImode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1617; /* *aarch64_simd_vec_copy_lanev8qi */ case E_V16QImode: if (!register_operand (operands[3], E_V16QImode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1629; /* *aarch64_simd_vec_copy_lane_to_128v8qi */ default: return -1; } case E_V16QImode: if (pattern478 (x2, E_V16QImode, E_QImode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V16QImode: if (!register_operand (operands[3], E_V16QImode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1618; /* *aarch64_simd_vec_copy_lanev16qi */ case E_V8QImode: if (!register_operand (operands[3], E_V8QImode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1630; /* *aarch64_simd_vec_copy_lane_to_64v16qi */ default: return -1; } case E_V4HImode: if (pattern478 (x2, E_V4HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V4HImode: if (!register_operand (operands[3], E_V4HImode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1619; /* *aarch64_simd_vec_copy_lanev4hi */ case E_V8HImode: if (!register_operand (operands[3], E_V8HImode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1631; /* *aarch64_simd_vec_copy_lane_to_128v4hi */ default: return -1; } case E_V8HImode: if (pattern478 (x2, E_V8HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V8HImode: if (!register_operand (operands[3], E_V8HImode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1620; /* *aarch64_simd_vec_copy_lanev8hi */ case E_V4HImode: if (!register_operand (operands[3], E_V4HImode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1632; /* *aarch64_simd_vec_copy_lane_to_64v8hi */ default: return -1; } case E_V2SImode: if (pattern478 (x2, E_V2SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V2SImode: if (!register_operand (operands[3], E_V2SImode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1621; /* *aarch64_simd_vec_copy_lanev2si */ case E_V4SImode: if (!register_operand (operands[3], E_V4SImode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1633; /* *aarch64_simd_vec_copy_lane_to_128v2si */ default: return -1; } case E_V4SImode: if (pattern478 (x2, E_V4SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V4SImode: if (!register_operand (operands[3], E_V4SImode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1622; /* *aarch64_simd_vec_copy_lanev4si */ case E_V2SImode: if (!register_operand (operands[3], E_V2SImode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1634; /* *aarch64_simd_vec_copy_lane_to_64v4si */ default: return -1; } case E_V2DImode: if (pattern479 (x2, E_V2DImode, E_DImode) != 0 || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1623; /* *aarch64_simd_vec_copy_lanev2di */ case E_V4HFmode: if (pattern478 (x2, E_V4HFmode, E_HFmode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V4HFmode: if (!register_operand (operands[3], E_V4HFmode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1624; /* *aarch64_simd_vec_copy_lanev4hf */ case E_V8HFmode: if (!register_operand (operands[3], E_V8HFmode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1635; /* *aarch64_simd_vec_copy_lane_to_128v4hf */ default: return -1; } case E_V8HFmode: if (pattern478 (x2, E_V8HFmode, E_HFmode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V8HFmode: if (!register_operand (operands[3], E_V8HFmode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1625; /* *aarch64_simd_vec_copy_lanev8hf */ case E_V4HFmode: if (!register_operand (operands[3], E_V4HFmode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1636; /* *aarch64_simd_vec_copy_lane_to_64v8hf */ default: return -1; } case E_V2SFmode: if (pattern478 (x2, E_V2SFmode, E_SFmode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V2SFmode: if (!register_operand (operands[3], E_V2SFmode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1626; /* *aarch64_simd_vec_copy_lanev2sf */ case E_V4SFmode: if (!register_operand (operands[3], E_V4SFmode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1637; /* *aarch64_simd_vec_copy_lane_to_128v2sf */ default: return -1; } case E_V4SFmode: if (pattern478 (x2, E_V4SFmode, E_SFmode) != 0) return -1; switch (GET_MODE (operands[3])) { case E_V4SFmode: if (!register_operand (operands[3], E_V4SFmode) || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1627; /* *aarch64_simd_vec_copy_lanev4sf */ case E_V2SFmode: if (!register_operand (operands[3], E_V2SFmode) || ! #line 926 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1638; /* *aarch64_simd_vec_copy_lane_to_64v4sf */ default: return -1; } case E_V2DFmode: if (pattern479 (x2, E_V2DFmode, E_DFmode) != 0 || ! #line 905 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1628; /* *aarch64_simd_vec_copy_lanev2df */ default: return -1; } default: return -1; } } static int recog_161 (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); switch (XVECLEN (x2, 0)) { case 2: return recog_138 (x1, insn, pnum_clobbers); case 1: return recog_137 (x1, insn, pnum_clobbers); case 3: return recog_139 (x1, insn, pnum_clobbers); case 4: 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 (XINT (x2, 1)) { case 39: switch (pattern314 (x2, E_OImode)) { case 0: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3115; /* aarch64_vec_load_lanesoi_lanev8qi */ case 1: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3116; /* aarch64_vec_load_lanesoi_lanev16qi */ case 2: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3117; /* aarch64_vec_load_lanesoi_lanev4hi */ case 3: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3118; /* aarch64_vec_load_lanesoi_lanev8hi */ case 4: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3119; /* aarch64_vec_load_lanesoi_lanev2si */ case 5: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3120; /* aarch64_vec_load_lanesoi_lanev4si */ case 6: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3121; /* aarch64_vec_load_lanesoi_lanev2di */ case 7: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3122; /* aarch64_vec_load_lanesoi_lanev4hf */ case 8: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3123; /* aarch64_vec_load_lanesoi_lanev8hf */ case 9: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3124; /* aarch64_vec_load_lanesoi_lanev2sf */ case 10: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3125; /* aarch64_vec_load_lanesoi_lanev4sf */ case 11: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3126; /* aarch64_vec_load_lanesoi_lanev2df */ case 12: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3127; /* aarch64_vec_load_lanesoi_lanedi */ case 13: if (! #line 4913 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3128; /* aarch64_vec_load_lanesoi_lanedf */ default: return -1; } case 40: switch (pattern314 (x2, E_CImode)) { case 0: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3171; /* aarch64_vec_load_lanesci_lanev8qi */ case 1: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3172; /* aarch64_vec_load_lanesci_lanev16qi */ case 2: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3173; /* aarch64_vec_load_lanesci_lanev4hi */ case 3: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3174; /* aarch64_vec_load_lanesci_lanev8hi */ case 4: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3175; /* aarch64_vec_load_lanesci_lanev2si */ case 5: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3176; /* aarch64_vec_load_lanesci_lanev4si */ case 6: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3177; /* aarch64_vec_load_lanesci_lanev2di */ case 7: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3178; /* aarch64_vec_load_lanesci_lanev4hf */ case 8: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3179; /* aarch64_vec_load_lanesci_lanev8hf */ case 9: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3180; /* aarch64_vec_load_lanesci_lanev2sf */ case 10: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3181; /* aarch64_vec_load_lanesci_lanev4sf */ case 11: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3182; /* aarch64_vec_load_lanesci_lanev2df */ case 12: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3183; /* aarch64_vec_load_lanesci_lanedi */ case 13: if (! #line 5011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3184; /* aarch64_vec_load_lanesci_lanedf */ default: return -1; } case 41: switch (pattern314 (x2, E_XImode)) { case 0: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3227; /* aarch64_vec_load_lanesxi_lanev8qi */ case 1: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3228; /* aarch64_vec_load_lanesxi_lanev16qi */ case 2: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3229; /* aarch64_vec_load_lanesxi_lanev4hi */ case 3: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3230; /* aarch64_vec_load_lanesxi_lanev8hi */ case 4: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3231; /* aarch64_vec_load_lanesxi_lanev2si */ case 5: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3232; /* aarch64_vec_load_lanesxi_lanev4si */ case 6: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3233; /* aarch64_vec_load_lanesxi_lanev2di */ case 7: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3234; /* aarch64_vec_load_lanesxi_lanev4hf */ case 8: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3235; /* aarch64_vec_load_lanesxi_lanev8hf */ case 9: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3236; /* aarch64_vec_load_lanesxi_lanev2sf */ case 10: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3237; /* aarch64_vec_load_lanesxi_lanev4sf */ case 11: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3238; /* aarch64_vec_load_lanesxi_lanev2df */ case 12: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3239; /* aarch64_vec_load_lanesxi_lanedi */ case 13: if (! #line 5109 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3240; /* aarch64_vec_load_lanesxi_lanedf */ default: return -1; } case 212: if (pattern315 (x2) != 0 || ! #line 6307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3601; /* aarch64_sm3tt1aqv4si */ case 213: if (pattern315 (x2) != 0 || ! #line 6307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3602; /* aarch64_sm3tt1bqv4si */ case 214: if (pattern315 (x2) != 0 || ! #line 6307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3603; /* aarch64_sm3tt2aqv4si */ case 215: if (pattern315 (x2) != 0 || ! #line 6307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SM4)) return -1; return 3604; /* aarch64_sm3tt2bqv4si */ default: return -1; } case 6: x4 = XVECEXP (x2, 0, 0); operands[5] = x4; x5 = XVECEXP (x2, 0, 1); if (!aarch64_reg_or_zero (x5, E_DImode)) return -1; x7 = XVECEXP (x2, 0, 3); if (!const_int_operand (x7, E_DImode)) return -1; switch (XINT (x2, 1)) { case 87: x8 = XVECEXP (x2, 0, 5); if (GET_CODE (x8) != MEM || GET_MODE (x8) != E_BLKmode) return -1; x9 = XEXP (x8, 0); if (GET_CODE (x9) != SCRATCH) return -1; x3 = XEXP (x1, 0); operands[0] = x3; operands[1] = x5; x6 = XVECEXP (x2, 0, 2); operands[2] = x6; operands[3] = x7; x10 = XVECEXP (x2, 0, 4); operands[4] = x10; switch (GET_MODE (operands[0])) { case E_VNx4SImode: if (pattern512 (x2, E_VNx4SImode) != 0 || ! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3814; /* mask_gather_loadvnx4si */ case E_VNx4SFmode: if (pattern512 (x2, E_VNx4SFmode) != 0 || ! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3815; /* mask_gather_loadvnx4sf */ case E_VNx2DImode: if (pattern513 (x2, E_VNx2DImode) != 0 || ! #line 272 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3816; /* mask_gather_loadvnx2di */ case E_VNx2DFmode: if (pattern513 (x2, E_VNx2DFmode) != 0 || ! #line 272 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3817; /* mask_gather_loadvnx2df */ default: return -1; } case 88: if (pattern59 (x1) != 0) return -1; operands[0] = x5; x6 = XVECEXP (x2, 0, 2); operands[1] = x6; operands[2] = x7; x10 = XVECEXP (x2, 0, 4); operands[3] = x10; x8 = XVECEXP (x2, 0, 5); operands[4] = x8; switch (GET_MODE (operands[5])) { case E_VNx4BImode: if (!register_operand (operands[5], E_VNx4BImode) || !register_operand (operands[1], E_VNx4SImode) || !aarch64_gather_scale_operand_w (operands[3], E_DImode)) return -1; switch (GET_MODE (operands[4])) { case E_VNx4SImode: if (!register_operand (operands[4], E_VNx4SImode) || ! #line 308 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3818; /* mask_scatter_storevnx4si */ case E_VNx4SFmode: if (!register_operand (operands[4], E_VNx4SFmode) || ! #line 308 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3819; /* mask_scatter_storevnx4sf */ default: return -1; } case E_VNx2BImode: if (!register_operand (operands[5], E_VNx2BImode) || !register_operand (operands[1], E_VNx2DImode) || !aarch64_gather_scale_operand_d (operands[3], E_DImode)) return -1; switch (GET_MODE (operands[4])) { case E_VNx2DImode: if (!register_operand (operands[4], E_VNx2DImode) || ! #line 329 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3820; /* mask_scatter_storevnx2di */ case E_VNx2DFmode: if (!register_operand (operands[4], E_VNx2DFmode) || ! #line 329 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3821; /* mask_scatter_storevnx2df */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_162 (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, 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); switch (GET_CODE (x5)) { case CONST_INT: case REG: case SUBREG: switch (GET_CODE (x5)) { case REG: case SUBREG: if (subreg_lowpart_operator (x5, E_VOIDmode)) { operands[4] = x5; switch (pattern213 (x3)) { case 0: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) return 701; /* *aarch64_ashl_reg_si3_mask1 */ break; case 1: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) return 705; /* *aarch64_ashl_reg_di3_mask1 */ break; case 2: if ( #line 5068 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 719; /* *aarch64_ashl_reg_di3_mask2 */ break; case 3: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0))) return 709; /* *aarch64_ashl_reg_si3_neg_mask2 */ break; case 4: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 713; /* *aarch64_ashl_reg_di3_neg_mask2 */ break; default: break; } } operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern13 (x3, E_V8QImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1660; /* aarch64_simd_reg_sshlv8qi */ break; case E_V16QImode: if (pattern13 (x3, E_V16QImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1661; /* aarch64_simd_reg_sshlv16qi */ break; case E_V4HImode: if (pattern13 (x3, E_V4HImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1662; /* aarch64_simd_reg_sshlv4hi */ break; case E_V8HImode: if (pattern13 (x3, E_V8HImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1663; /* aarch64_simd_reg_sshlv8hi */ break; case E_V2SImode: if (pattern13 (x3, E_V2SImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1664; /* aarch64_simd_reg_sshlv2si */ break; case E_V4SImode: if (pattern13 (x3, E_V4SImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1665; /* aarch64_simd_reg_sshlv4si */ break; case E_V2DImode: if (pattern13 (x3, E_V2DImode) == 0 && #line 969 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1666; /* aarch64_simd_reg_sshlv2di */ break; default: break; } break; case CONST_INT: switch (pattern215 (x3)) { case 0: if ( #line 5300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return 746; /* *ashlqi3_insn */ break; case 1: if ( #line 5300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return 749; /* *ashlhi3_insn */ break; default: break; } break; default: break; } operands[2] = x5; switch (pattern216 (x3)) { case 0: return 729; /* *aarch64_ashl_sisd_or_int_si3 */ case 1: return 730; /* *aarch64_ashl_sisd_or_int_di3 */ default: return -1; } case MINUS: if (GET_MODE (x5) != E_QImode) return -1; x6 = XEXP (x5, 0); operands[2] = x6; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; x7 = XEXP (x5, 1); if (subreg_lowpart_operator (x7, E_VOIDmode)) { switch (pattern367 (x3)) { case 0: if ( #line 5041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[4]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0) && INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode))) return 717; /* *aarch64_ashl_reg_si3_minus_mask */ break; case 1: if ( #line 5041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[4]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0) && INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode))) return 718; /* *aarch64_ashl_reg_di3_minus_mask */ break; default: break; } } operands[3] = x7; if (!register_operand (operands[3], E_QImode)) return -1; switch (pattern1 (x3)) { case 0: if (! #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode))) return -1; return 723; /* *aarch64_ashl_reg_minussi3 */ case 1: if (! #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode))) return -1; return 726; /* *aarch64_ashl_reg_minusdi3 */ default: return -1; } case CONST_VECTOR: case CONST: operands[2] = x5; switch (GET_MODE (operands[0])) { case E_V8QImode: if (pattern318 (x3, E_V8QImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1653; /* aarch64_simd_imm_shlv8qi */ case E_V16QImode: if (pattern318 (x3, E_V16QImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1654; /* aarch64_simd_imm_shlv16qi */ case E_V4HImode: if (pattern318 (x3, E_V4HImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1655; /* aarch64_simd_imm_shlv4hi */ case E_V8HImode: if (pattern318 (x3, E_V8HImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1656; /* aarch64_simd_imm_shlv8hi */ case E_V2SImode: if (pattern318 (x3, E_V2SImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1657; /* aarch64_simd_imm_shlv2si */ case E_V4SImode: if (pattern318 (x3, E_V4SImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1658; /* aarch64_simd_imm_shlv4si */ case E_V2DImode: if (pattern318 (x3, E_V2DImode) != 0 || ! #line 960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1659; /* aarch64_simd_imm_shlv2di */ case E_VNx16QImode: if (pattern318 (x3, E_VNx16QImode) != 0 || ! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4235; /* *post_ra_vashlvnx16qi3 */ case E_VNx8HImode: if (pattern318 (x3, E_VNx8HImode) != 0 || ! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4238; /* *post_ra_vashlvnx8hi3 */ case E_VNx4SImode: if (pattern318 (x3, E_VNx4SImode) != 0 || ! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4241; /* *post_ra_vashlvnx4si3 */ case E_VNx2DImode: if (pattern318 (x3, E_VNx2DImode) != 0 || ! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4244; /* *post_ra_vashlvnx2di3 */ default: return -1; } default: return -1; } case SIGN_EXTEND: switch (pattern127 (x3)) { case 0: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 803; /* *extendqi_shft_si */ case 1: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 807; /* *extendhi_shft_si */ case 2: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 811; /* *extendsi_shft_si */ case 3: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 64)) return -1; return 805; /* *extendqi_shft_di */ case 4: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 64)) return -1; return 809; /* *extendhi_shft_di */ case 5: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 64)) return -1; return 813; /* *extendsi_shft_di */ default: return -1; } case ZERO_EXTEND: switch (pattern127 (x3)) { case 0: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 804; /* *zero_extendqi_shft_si */ case 1: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 808; /* *zero_extendhi_shft_si */ case 2: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 32)) return -1; return 812; /* *zero_extendsi_shft_si */ case 3: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 64)) return -1; return 806; /* *zero_extendqi_shft_di */ case 4: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 64)) return -1; return 810; /* *zero_extendhi_shft_di */ case 5: if (! #line 5652 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < 64)) return -1; return 814; /* *zero_extendsi_shft_di */ default: return -1; } case SIGN_EXTRACT: x8 = XEXP (x4, 2); if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x9 = XEXP (x4, 0); operands[1] = x9; x10 = XEXP (x4, 1); operands[2] = x10; x5 = XEXP (x3, 1); operands[3] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern351 (x3, E_SImode) != 0 || !aarch64_simd_shift_imm_offset_si (operands[2], E_VOIDmode) || !aarch64_simd_shift_imm_si (operands[3], E_VOIDmode) || ! #line 5682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (SImode) - 1))) return -1; return 817; /* *ashiftsi_extv_bfiz */ case E_DImode: if (pattern351 (x3, E_DImode) != 0 || !aarch64_simd_shift_imm_offset_di (operands[2], E_VOIDmode) || !aarch64_simd_shift_imm_di (operands[3], E_VOIDmode) || ! #line 5682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (DImode) - 1))) return -1; return 818; /* *ashiftdi_extv_bfiz */ default: return -1; } default: return -1; } } static int recog_163 (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; 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 392; /* negsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 393; /* negdi2 */ case E_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode || !register_operand (operands[1], E_HFmode) || !( #line 6276 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 999; /* neghf2 */ case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || ! #line 6276 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1000; /* negsf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || ! #line 6276 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1001; /* negdf2 */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1499; /* negv8qi2 */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1500; /* negv16qi2 */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1501; /* negv4hi2 */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1502; /* negv8hi2 */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1503; /* negv2si2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1504; /* negv4si2 */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 682 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1505; /* negv2di2 */ case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode) || !( #line 1867 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1904; /* negv4hf2 */ case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode) || !( #line 1867 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1905; /* negv8hf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 1867 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1906; /* negv2sf2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 1867 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1907; /* negv4sf2 */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 1867 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1908; /* negv2df2 */ default: return -1; } case ASHIFT: switch (pattern47 (x3)) { case 0: return 407; /* *neg_lsl_si2 */ case 1: return 410; /* *neg_lsl_di2 */ default: return -1; } case ASHIFTRT: switch (pattern47 (x3)) { case 0: return 408; /* *neg_asr_si2 */ case 1: return 411; /* *neg_asr_di2 */ default: return -1; } case LSHIFTRT: switch (pattern47 (x3)) { case 0: return 409; /* *neg_lsr_si2 */ case 1: return 412; /* *neg_lsr_di2 */ default: return -1; } case MULT: x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (GET_CODE (operands[2])) { case CONST_INT: switch (pattern249 (x3)) { case 0: return 416; /* *neg_mul_imm_si2 */ case 1: return 417; /* *neg_mul_imm_di2 */ default: return -1; } case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern142 (x3, E_SFmode) != 0 || ! #line 6247 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 994; /* *fnmulsf3 */ case E_DFmode: if (pattern142 (x3, E_DFmode) != 0 || ! #line 6247 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 995; /* *fnmuldf3 */ default: return -1; } default: return -1; } case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: return recog_13 (x1, insn, pnum_clobbers); case FMA: x5 = XEXP (x4, 0); operands[2] = x5; x6 = XEXP (x4, 1); operands[3] = x6; x7 = XEXP (x4, 2); operands[1] = x7; switch (GET_MODE (operands[0])) { case E_SFmode: if (pattern306 (x3, E_SFmode) != 0 || ! #line 5948 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!HONOR_SIGNED_ZEROS (SFmode) && TARGET_FLOAT)) return -1; return 929; /* *aarch64_fnmaddsf4 */ case E_DFmode: if (pattern306 (x3, E_DFmode) != 0 || ! #line 5948 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!HONOR_SIGNED_ZEROS (DFmode) && TARGET_FLOAT)) return -1; return 930; /* *aarch64_fnmadddf4 */ default: return -1; } default: return -1; } } static int recog_164 (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 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_V8QImode: if (pattern360 (x3, E_V8QImode, E_QImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V8QImode: if (!register_operand (operands[1], E_V8QImode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1113; /* aarch64_dup_lanev8qi */ case E_V16QImode: if (!register_operand (operands[1], E_V16QImode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1125; /* aarch64_dup_lane_to_128v8qi */ default: return -1; } case E_V16QImode: if (pattern360 (x3, E_V16QImode, E_QImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V16QImode: if (!register_operand (operands[1], E_V16QImode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1114; /* aarch64_dup_lanev16qi */ case E_V8QImode: if (!register_operand (operands[1], E_V8QImode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1126; /* aarch64_dup_lane_to_64v16qi */ default: return -1; } case E_V4HImode: if (pattern360 (x3, E_V4HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1115; /* aarch64_dup_lanev4hi */ case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1127; /* aarch64_dup_lane_to_128v4hi */ default: return -1; } case E_V8HImode: if (pattern360 (x3, E_V8HImode, E_HImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V8HImode: if (!register_operand (operands[1], E_V8HImode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1116; /* aarch64_dup_lanev8hi */ case E_V4HImode: if (!register_operand (operands[1], E_V4HImode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1128; /* aarch64_dup_lane_to_64v8hi */ default: return -1; } case E_V2SImode: if (pattern360 (x3, E_V2SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1117; /* aarch64_dup_lanev2si */ case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1129; /* aarch64_dup_lane_to_128v2si */ default: return -1; } case E_V4SImode: if (pattern360 (x3, E_V4SImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SImode: if (!register_operand (operands[1], E_V4SImode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1118; /* aarch64_dup_lanev4si */ case E_V2SImode: if (!register_operand (operands[1], E_V2SImode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1130; /* aarch64_dup_lane_to_64v4si */ default: return -1; } case E_V2DImode: if (pattern361 (x3, E_V2DImode, E_DImode) != 0 || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1119; /* aarch64_dup_lanev2di */ case E_V4HFmode: if (pattern360 (x3, E_V4HFmode, E_HFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4HFmode: if (!register_operand (operands[1], E_V4HFmode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1120; /* aarch64_dup_lanev4hf */ case E_V8HFmode: if (!register_operand (operands[1], E_V8HFmode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1131; /* aarch64_dup_lane_to_128v4hf */ default: return -1; } case E_V8HFmode: if (pattern360 (x3, E_V8HFmode, E_HFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V8HFmode: if (!register_operand (operands[1], E_V8HFmode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1121; /* aarch64_dup_lanev8hf */ case E_V4HFmode: if (!register_operand (operands[1], E_V4HFmode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1132; /* aarch64_dup_lane_to_64v8hf */ default: return -1; } case E_V2SFmode: if (pattern360 (x3, E_V2SFmode, E_SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1122; /* aarch64_dup_lanev2sf */ case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1133; /* aarch64_dup_lane_to_128v2sf */ default: return -1; } case E_V4SFmode: if (pattern360 (x3, E_V4SFmode, E_SFmode) != 0) return -1; switch (GET_MODE (operands[1])) { case E_V4SFmode: if (!register_operand (operands[1], E_V4SFmode) || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1123; /* aarch64_dup_lanev4sf */ case E_V2SFmode: if (!register_operand (operands[1], E_V2SFmode) || ! #line 96 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1134; /* aarch64_dup_lane_to_64v4sf */ default: return -1; } case E_V2DFmode: if (pattern361 (x3, E_V2DFmode, E_DFmode) != 0 || ! #line 81 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1124; /* aarch64_dup_lanev2df */ case E_VNx16QImode: if (pattern362 (x3, E_VNx16QImode, E_QImode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (QImode), 0, 63))) return -1; return 4084; /* *aarch64_sve_dup_lanevnx16qi */ case E_VNx8HImode: if (pattern362 (x3, E_VNx8HImode, E_HImode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (HImode), 0, 63))) return -1; return 4085; /* *aarch64_sve_dup_lanevnx8hi */ case E_VNx4SImode: if (pattern362 (x3, E_VNx4SImode, E_SImode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (SImode), 0, 63))) return -1; return 4086; /* *aarch64_sve_dup_lanevnx4si */ case E_VNx2DImode: if (pattern362 (x3, E_VNx2DImode, E_DImode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (DImode), 0, 63))) return -1; return 4087; /* *aarch64_sve_dup_lanevnx2di */ case E_VNx8HFmode: if (pattern362 (x3, E_VNx8HFmode, E_HFmode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (HFmode), 0, 63))) return -1; return 4088; /* *aarch64_sve_dup_lanevnx8hf */ case E_VNx4SFmode: if (pattern362 (x3, E_VNx4SFmode, E_SFmode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (SFmode), 0, 63))) return -1; return 4089; /* *aarch64_sve_dup_lanevnx4sf */ case E_VNx2DFmode: if (pattern362 (x3, E_VNx2DFmode, E_DFmode) != 0 || ! #line 879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && IN_RANGE (INTVAL (operands[2]) * GET_MODE_SIZE (DFmode), 0, 63))) return -1; return 4090; /* *aarch64_sve_dup_lanevnx2df */ default: return -1; } case REG: case SUBREG: case MEM: return recog_145 (x1, insn, pnum_clobbers); default: return -1; } } static int recog_165 (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_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode || !register_operand (operands[1], E_HFmode) || !( #line 6301 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 1005; /* abshf2 */ case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || ! #line 6301 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1006; /* abssf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || ! #line 6301 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1007; /* absdf2 */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1506; /* absv8qi2 */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1507; /* absv16qi2 */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1508; /* absv4hi2 */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1509; /* absv8hi2 */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1510; /* absv2si2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1511; /* absv4si2 */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 690 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1512; /* absv2di2 */ case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode) || !( #line 1875 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1909; /* absv4hf2 */ case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode) || !( #line 1875 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1910; /* absv8hf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 1875 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1911; /* absv2sf2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 1875 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1912; /* absv4sf2 */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 1875 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1913; /* absv2df2 */ default: return -1; } case MINUS: x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_V4HFmode: if (pattern142 (x3, E_V4HFmode) != 0 || !( #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1569; /* fabdv4hf3 */ case E_V8HFmode: if (pattern142 (x3, E_V8HFmode) != 0 || !( #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 126 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1570; /* fabdv8hf3 */ case E_V2SFmode: if (pattern142 (x3, E_V2SFmode) != 0 || ! #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1571; /* fabdv2sf3 */ case E_V4SFmode: if (pattern142 (x3, E_V4SFmode) != 0 || ! #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1572; /* fabdv4sf3 */ case E_V2DFmode: if (pattern142 (x3, E_V2DFmode) != 0 || ! #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1573; /* fabdv2df3 */ case E_HFmode: if (pattern142 (x3, E_HFmode) != 0 || !( #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 128 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1574; /* fabdhf3 */ case E_SFmode: if (pattern142 (x3, E_SFmode) != 0 || ! #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1575; /* fabdsf3 */ case E_DFmode: if (pattern142 (x3, E_DFmode) != 0 || ! #line 805 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1576; /* fabddf3 */ default: return -1; } default: return -1; } } static int recog_166 (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 (pattern11 (x1)) { case 0: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 856; /* lbtruncuhfsi2 */ case 1: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 876; /* lbtruncusfsi2 */ case 2: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 896; /* lbtruncudfsi2 */ case 3: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 866; /* lbtruncuhfdi2 */ case 4: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 886; /* lbtruncusfdi2 */ case 5: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 906; /* lbtruncudfdi2 */ case 6: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1994; /* lbtruncuv4hfv4hi2 */ case 7: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2004; /* lbtruncuv8hfv8hi2 */ case 8: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2014; /* lbtruncuv2sfv2si2 */ case 9: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2024; /* lbtruncuv4sfv4si2 */ case 10: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2034; /* lbtruncuv2dfv2di2 */ case 11: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2044; /* lbtruncuhfhi2 */ case 12: if (! #line 2085 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && IN_RANGE (aarch64_vec_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (GET_MODE_INNER (V2SFmode))))) return -1; return 2054; /* *aarch64_fcvtuv2sfv2si2_mult */ case 13: if (! #line 2085 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && IN_RANGE (aarch64_vec_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (GET_MODE_INNER (V4SFmode))))) return -1; return 2056; /* *aarch64_fcvtuv4sfv4si2_mult */ case 14: if (! #line 2085 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && IN_RANGE (aarch64_vec_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (GET_MODE_INNER (V2DFmode))))) return -1; return 2058; /* *aarch64_fcvtuv2dfv2di2_mult */ case 15: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 857; /* lceiluhfsi2 */ case 16: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 877; /* lceilusfsi2 */ case 17: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 897; /* lceiludfsi2 */ case 18: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 867; /* lceiluhfdi2 */ case 19: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 887; /* lceilusfdi2 */ case 20: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 907; /* lceiludfdi2 */ case 21: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1995; /* lceiluv4hfv4hi2 */ case 22: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2005; /* lceiluv8hfv8hi2 */ case 23: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2015; /* lceiluv2sfv2si2 */ case 24: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2025; /* lceiluv4sfv4si2 */ case 25: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2035; /* lceiluv2dfv2di2 */ case 26: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2045; /* lceiluhfhi2 */ case 27: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 858; /* lflooruhfsi2 */ case 28: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 878; /* lfloorusfsi2 */ case 29: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 898; /* lfloorudfsi2 */ case 30: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 868; /* lflooruhfdi2 */ case 31: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 888; /* lfloorusfdi2 */ case 32: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 908; /* lfloorudfdi2 */ case 33: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1996; /* lflooruv4hfv4hi2 */ case 34: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2006; /* lflooruv8hfv8hi2 */ case 35: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2016; /* lflooruv2sfv2si2 */ case 36: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2026; /* lflooruv4sfv4si2 */ case 37: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2036; /* lflooruv2dfv2di2 */ case 38: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2046; /* lflooruhfhi2 */ case 39: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 859; /* lrounduhfsi2 */ case 40: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 879; /* lroundusfsi2 */ case 41: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 899; /* lroundudfsi2 */ case 42: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 869; /* lrounduhfdi2 */ case 43: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 889; /* lroundusfdi2 */ case 44: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 909; /* lroundudfdi2 */ case 45: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1997; /* lrounduv4hfv4hi2 */ case 46: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2007; /* lrounduv8hfv8hi2 */ case 47: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2017; /* lrounduv2sfv2si2 */ case 48: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2027; /* lrounduv4sfv4si2 */ case 49: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2037; /* lrounduv2dfv2di2 */ case 50: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2047; /* lrounduhfhi2 */ case 51: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 860; /* lfrintnuhfsi2 */ case 52: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 880; /* lfrintnusfsi2 */ case 53: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 900; /* lfrintnudfsi2 */ case 54: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 870; /* lfrintnuhfdi2 */ case 55: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 890; /* lfrintnusfdi2 */ case 56: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 910; /* lfrintnudfdi2 */ case 57: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1998; /* lfrintnuv4hfv4hi2 */ case 58: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2008; /* lfrintnuv8hfv8hi2 */ case 59: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2018; /* lfrintnuv2sfv2si2 */ case 60: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2028; /* lfrintnuv4sfv4si2 */ case 61: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2038; /* lfrintnuv2dfv2di2 */ case 62: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2048; /* lfrintnuhfhi2 */ case 63: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (SImode)))) return -1; return 912; /* *aarch64_fcvtusfsi2_mult */ case 64: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (SImode)))) return -1; return 916; /* *aarch64_fcvtudfsi2_mult */ case 65: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (DImode)))) return -1; return 914; /* *aarch64_fcvtusfdi2_mult */ case 66: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (DImode)))) return -1; return 918; /* *aarch64_fcvtudfdi2_mult */ case 67: if (! #line 6011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 938; /* fixuns_truncsfsi2 */ case 68: if (! #line 6023 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 942; /* fixuns_trunchfsi2 */ case 69: if (! #line 6034 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 946; /* fixuns_truncdfsi2 */ case 70: if (! #line 6011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 940; /* fixuns_truncdfdi2 */ case 71: if (! #line 6023 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 944; /* fixuns_trunchfdi2 */ case 72: if (! #line 6034 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 948; /* fixuns_truncsfdi2 */ case 73: if (! #line 2065 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2050; /* fixuns_trunchfhi2 */ default: return -1; } } static int recog_167 (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 (pattern11 (x1)) { case 0: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 851; /* lbtrunchfsi2 */ case 1: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 871; /* lbtruncsfsi2 */ case 2: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 891; /* lbtruncdfsi2 */ case 3: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 861; /* lbtrunchfdi2 */ case 4: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 881; /* lbtruncsfdi2 */ case 5: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 901; /* lbtruncdfdi2 */ case 6: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1989; /* lbtruncv4hfv4hi2 */ case 7: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1999; /* lbtruncv8hfv8hi2 */ case 8: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2009; /* lbtruncv2sfv2si2 */ case 9: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2019; /* lbtruncv4sfv4si2 */ case 10: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2029; /* lbtruncv2dfv2di2 */ case 11: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2039; /* lbtrunchfhi2 */ case 12: if (! #line 2085 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && IN_RANGE (aarch64_vec_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (GET_MODE_INNER (V2SFmode))))) return -1; return 2053; /* *aarch64_fcvtv2sfv2si2_mult */ case 13: if (! #line 2085 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && IN_RANGE (aarch64_vec_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (GET_MODE_INNER (V4SFmode))))) return -1; return 2055; /* *aarch64_fcvtv4sfv4si2_mult */ case 14: if (! #line 2085 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && IN_RANGE (aarch64_vec_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (GET_MODE_INNER (V2DFmode))))) return -1; return 2057; /* *aarch64_fcvtv2dfv2di2_mult */ case 15: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 852; /* lceilhfsi2 */ case 16: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 872; /* lceilsfsi2 */ case 17: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 892; /* lceildfsi2 */ case 18: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 862; /* lceilhfdi2 */ case 19: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 882; /* lceilsfdi2 */ case 20: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 902; /* lceildfdi2 */ case 21: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1990; /* lceilv4hfv4hi2 */ case 22: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2000; /* lceilv8hfv8hi2 */ case 23: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2010; /* lceilv2sfv2si2 */ case 24: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2020; /* lceilv4sfv4si2 */ case 25: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2030; /* lceilv2dfv2di2 */ case 26: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2040; /* lceilhfhi2 */ case 27: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 853; /* lfloorhfsi2 */ case 28: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 873; /* lfloorsfsi2 */ case 29: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 893; /* lfloordfsi2 */ case 30: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 863; /* lfloorhfdi2 */ case 31: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 883; /* lfloorsfdi2 */ case 32: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 903; /* lfloordfdi2 */ case 33: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1991; /* lfloorv4hfv4hi2 */ case 34: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2001; /* lfloorv8hfv8hi2 */ case 35: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2011; /* lfloorv2sfv2si2 */ case 36: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2021; /* lfloorv4sfv4si2 */ case 37: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2031; /* lfloorv2dfv2di2 */ case 38: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2041; /* lfloorhfhi2 */ case 39: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 854; /* lroundhfsi2 */ case 40: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 874; /* lroundsfsi2 */ case 41: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 894; /* lrounddfsi2 */ case 42: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 864; /* lroundhfdi2 */ case 43: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 884; /* lroundsfdi2 */ case 44: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 904; /* lrounddfdi2 */ case 45: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1992; /* lroundv4hfv4hi2 */ case 46: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2002; /* lroundv8hfv8hi2 */ case 47: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2012; /* lroundv2sfv2si2 */ case 48: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2022; /* lroundv4sfv4si2 */ case 49: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2032; /* lroundv2dfv2di2 */ case 50: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2042; /* lroundhfhi2 */ case 51: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 855; /* lfrintnhfsi2 */ case 52: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 875; /* lfrintnsfsi2 */ case 53: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 895; /* lfrintndfsi2 */ case 54: if (!( #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 865; /* lfrintnhfdi2 */ case 55: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 885; /* lfrintnsfdi2 */ case 56: if (! #line 5838 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 905; /* lfrintndfdi2 */ case 57: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1993; /* lfrintnv4hfv4hi2 */ case 58: if (!( #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2003; /* lfrintnv8hfv8hi2 */ case 59: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2013; /* lfrintnv2sfv2si2 */ case 60: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2023; /* lfrintnv4sfv4si2 */ case 61: if (! #line 2047 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2033; /* lfrintnv2dfv2di2 */ case 62: if (! #line 2057 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2043; /* lfrintnhfhi2 */ case 63: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (SImode)))) return -1; return 911; /* *aarch64_fcvtsfsi2_mult */ case 64: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (SImode)))) return -1; return 915; /* *aarch64_fcvtdfsi2_mult */ case 65: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (DImode)))) return -1; return 913; /* *aarch64_fcvtsfdi2_mult */ case 66: if (! #line 5849 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && IN_RANGE (aarch64_fpconst_pow_of_2 (operands[2]), 1, GET_MODE_BITSIZE (DImode)))) return -1; return 917; /* *aarch64_fcvtdfdi2_mult */ case 67: if (! #line 6011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 937; /* fix_truncsfsi2 */ case 68: if (! #line 6023 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 941; /* fix_trunchfsi2 */ case 69: if (! #line 6034 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 945; /* fix_truncdfsi2 */ case 70: if (! #line 6011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 939; /* fix_truncdfdi2 */ case 71: if (! #line 6023 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 943; /* fix_trunchfdi2 */ case 72: if (! #line 6034 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 947; /* fix_truncsfdi2 */ case 73: if (! #line 2065 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2049; /* fix_trunchfhi2 */ default: return -1; } } static int recog_168 (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 = XEXP (x1, 1); x3 = XEXP (x2, 0); if (GET_CODE (x3) != MULT) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != SIGN_EXTEND) return -1; x5 = XEXP (x3, 1); if (GET_CODE (x5) != SIGN_EXTEND) return -1; x6 = XEXP (x2, 1); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x7 = XEXP (x1, 0); operands[0] = x7; x8 = XEXP (x4, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; x9 = XEXP (x5, 0); switch (GET_CODE (x9)) { case REG: case SUBREG: operands[2] = x9; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern434 (x2, E_V4HImode, E_V4SImode) != 0 || ! #line 4225 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2664; /* aarch64_sqdmullv4hi */ case E_V2DImode: if (pattern434 (x2, E_V2SImode, E_V2DImode) != 0 || ! #line 4225 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2665; /* aarch64_sqdmullv2si */ case E_SImode: if (pattern434 (x2, E_HImode, E_SImode) != 0 || ! #line 4225 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2666; /* aarch64_sqdmullhi */ case E_DImode: if (pattern434 (x2, E_SImode, E_DImode) != 0 || ! #line 4225 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2667; /* aarch64_sqdmullsi */ default: return -1; } case VEC_DUPLICATE: x10 = XEXP (x9, 0); switch (GET_CODE (x10)) { case VEC_SELECT: x11 = XEXP (x10, 1); if (GET_CODE (x11) != PARALLEL || XVECLEN (x11, 0) != 1) return -1; x12 = XEXP (x10, 0); operands[2] = x12; x13 = XVECEXP (x11, 0, 0); operands[3] = x13; if (!immediate_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern520 (x2, E_V4HImode, E_V4SImode) != 0) return -1; switch (pattern567 (x5)) { case 0: if (! #line 4245 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2668; /* aarch64_sqdmull_lanev4hi */ case 1: if (! #line 4266 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2670; /* aarch64_sqdmull_laneqv4hi */ default: return -1; } case E_V2DImode: if (pattern520 (x2, E_V2SImode, E_V2DImode) != 0) return -1; switch (pattern568 (x5)) { case 0: if (! #line 4245 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2669; /* aarch64_sqdmull_lanev2si */ case 1: if (! #line 4266 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2671; /* aarch64_sqdmull_laneqv2si */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[2] = x10; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern463 (x2, E_HImode, E_V4HImode, E_V4SImode) != 0 || ! #line 4327 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2676; /* aarch64_sqdmull_nv4hi */ case E_V2DImode: if (pattern463 (x2, E_SImode, E_V2SImode, E_V2DImode) != 0 || ! #line 4327 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2677; /* aarch64_sqdmull_nv2si */ default: return -1; } default: return -1; } case VEC_SELECT: x14 = XEXP (x9, 1); if (GET_CODE (x14) != PARALLEL || XVECLEN (x14, 0) != 1) return -1; x10 = XEXP (x9, 0); operands[2] = x10; x15 = XVECEXP (x14, 0, 0); operands[3] = x15; if (!immediate_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern515 (x2, E_HImode, E_SImode) != 0) return -1; switch (GET_MODE (operands[2])) { case E_V4HImode: if (!register_operand (operands[2], E_V4HImode) || ! #line 4286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2672; /* aarch64_sqdmull_lanehi */ case E_V8HImode: if (!register_operand (operands[2], E_V8HImode) || ! #line 4306 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2674; /* aarch64_sqdmull_laneqhi */ default: return -1; } case E_DImode: if (pattern515 (x2, E_SImode, E_DImode) != 0) return -1; switch (GET_MODE (operands[2])) { case E_V2SImode: if (!register_operand (operands[2], E_V2SImode) || ! #line 4286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2673; /* aarch64_sqdmull_lanesi */ case E_V4SImode: if (!register_operand (operands[2], E_V4SImode) || ! #line 4306 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2675; /* aarch64_sqdmull_laneqsi */ default: return -1; } default: return -1; } default: return -1; } case VEC_SELECT: x16 = XEXP (x8, 0); operands[1] = x16; x9 = XEXP (x5, 0); switch (GET_CODE (x9)) { case VEC_SELECT: x17 = XEXP (x8, 1); operands[3] = x17; x10 = XEXP (x9, 0); operands[2] = x10; x14 = XEXP (x9, 1); if (!rtx_equal_p (x14, operands[3])) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern480 (x2, E_V8HImode, E_V4HImode, E_V4SImode) != 0 || ! #line 4350 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2678; /* aarch64_sqdmull2v8hi_internal */ case E_V2DImode: if (pattern480 (x2, E_V4SImode, E_V2SImode, E_V2DImode) != 0 || ! #line 4350 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2679; /* aarch64_sqdmull2v4si_internal */ default: return -1; } case VEC_DUPLICATE: x10 = XEXP (x9, 0); switch (GET_CODE (x10)) { case VEC_SELECT: x11 = XEXP (x10, 1); if (GET_CODE (x11) != PARALLEL || XVECLEN (x11, 0) != 1) return -1; x17 = XEXP (x8, 1); operands[4] = x17; x12 = XEXP (x10, 0); operands[2] = x12; x13 = XVECEXP (x11, 0, 0); operands[3] = x13; if (!immediate_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern532 (x2, E_V8HImode, E_V4HImode, E_V4SImode) != 0) return -1; switch (pattern567 (x5)) { case 0: if (! #line 4384 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2680; /* aarch64_sqdmull2_lanev8hi_internal */ case 1: if (! #line 4407 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2682; /* aarch64_sqdmull2_laneqv8hi_internal */ default: return -1; } case E_V2DImode: if (pattern532 (x2, E_V4SImode, E_V2SImode, E_V2DImode) != 0) return -1; switch (pattern568 (x5)) { case 0: if (! #line 4384 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2681; /* aarch64_sqdmull2_lanev4si_internal */ case 1: if (! #line 4407 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2683; /* aarch64_sqdmull2_laneqv4si_internal */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[2] = x10; x17 = XEXP (x8, 1); operands[3] = x17; switch (GET_MODE (operands[0])) { case E_V4SImode: if (pattern481 (x2, E_HImode, E_V4HImode, E_V4SImode, E_V8HImode) != 0 || ! #line 4458 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2684; /* aarch64_sqdmull2_nv8hi_internal */ case E_V2DImode: if (pattern481 (x2, E_SImode, E_V2SImode, E_V2DImode, E_V4SImode) != 0 || ! #line 4458 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2685; /* aarch64_sqdmull2_nv4si_internal */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_169 (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); operands[1] = x5; if (XVECLEN (x3, 0) == 1) { res = recog_146 (x1, insn, pnum_clobbers); if (res >= 0) return res; } operands[2] = x3; switch (GET_MODE (operands[0])) { case E_V8QImode: if (register_operand (operands[0], E_V8QImode) && GET_MODE (x2) == E_V8QImode && register_operand (operands[1], E_V16QImode)) { if (vect_par_cnst_lo_half (operands[2], E_V16QImode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1329; /* aarch64_simd_mov_from_v16qilow */ if (vect_par_cnst_hi_half (operands[2], E_V16QImode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1336; /* aarch64_simd_mov_from_v16qihigh */ } break; case E_V4HImode: if (register_operand (operands[0], E_V4HImode) && GET_MODE (x2) == E_V4HImode && register_operand (operands[1], E_V8HImode)) { if (vect_par_cnst_lo_half (operands[2], E_V8HImode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1330; /* aarch64_simd_mov_from_v8hilow */ if (vect_par_cnst_hi_half (operands[2], E_V8HImode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1337; /* aarch64_simd_mov_from_v8hihigh */ } break; case E_V2SImode: if (register_operand (operands[0], E_V2SImode) && GET_MODE (x2) == E_V2SImode && register_operand (operands[1], E_V4SImode)) { if (vect_par_cnst_lo_half (operands[2], E_V4SImode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1331; /* aarch64_simd_mov_from_v4silow */ if (vect_par_cnst_hi_half (operands[2], E_V4SImode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1338; /* aarch64_simd_mov_from_v4sihigh */ } break; case E_DImode: if (register_operand (operands[0], E_DImode) && GET_MODE (x2) == E_DImode && register_operand (operands[1], E_V2DImode)) { if (vect_par_cnst_lo_half (operands[2], E_V2DImode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1332; /* aarch64_simd_mov_from_v2dilow */ if (vect_par_cnst_hi_half (operands[2], E_V2DImode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1339; /* aarch64_simd_mov_from_v2dihigh */ } break; case E_V4HFmode: if (register_operand (operands[0], E_V4HFmode) && GET_MODE (x2) == E_V4HFmode && register_operand (operands[1], E_V8HFmode)) { if (vect_par_cnst_lo_half (operands[2], E_V8HFmode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1333; /* aarch64_simd_mov_from_v8hflow */ if (vect_par_cnst_hi_half (operands[2], E_V8HFmode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1340; /* aarch64_simd_mov_from_v8hfhigh */ } break; case E_V2SFmode: if (register_operand (operands[0], E_V2SFmode) && GET_MODE (x2) == E_V2SFmode && register_operand (operands[1], E_V4SFmode)) { if (vect_par_cnst_lo_half (operands[2], E_V4SFmode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1334; /* aarch64_simd_mov_from_v4sflow */ if (vect_par_cnst_hi_half (operands[2], E_V4SFmode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1341; /* aarch64_simd_mov_from_v4sfhigh */ } break; case E_DFmode: if (register_operand (operands[0], E_DFmode) && GET_MODE (x2) == E_DFmode && register_operand (operands[1], E_V2DFmode)) { if (vect_par_cnst_lo_half (operands[2], E_V2DFmode) && #line 300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1335; /* aarch64_simd_mov_from_v2dflow */ if (vect_par_cnst_hi_half (operands[2], E_V2DFmode) && #line 311 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return 1342; /* aarch64_simd_mov_from_v2dfhigh */ } break; default: break; } if (XVECLEN (x3, 0) != 1) return -1; x6 = XVECEXP (x3, 0, 0); operands[2] = x6; if (!immediate_operand (operands[2], E_SImode)) return -1; switch (GET_MODE (operands[0])) { case E_DImode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_V2DImode) || ! #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2241; /* aarch64_get_lanev2di */ case E_DFmode: if (!aarch64_simd_nonimmediate_operand (operands[0], E_DFmode) || GET_MODE (x2) != E_DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 3139 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2246; /* aarch64_get_lanev2df */ default: return -1; } } static int recog_170 (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; 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 595; /* one_cmplsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 596; /* one_cmpldi2 */ case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1598; /* one_cmplv8qi2 */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x3) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1599; /* one_cmplv16qi2 */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1600; /* one_cmplv4hi2 */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1601; /* one_cmplv8hi2 */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1602; /* one_cmplv2si2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1603; /* one_cmplv4si2 */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 864 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1604; /* one_cmplv2di2 */ default: return -1; } case ASHIFT: switch (pattern47 (x3)) { case 0: return 597; /* *one_cmpl_ashlsi2 */ case 1: return 601; /* *one_cmpl_ashldi2 */ default: return -1; } case ASHIFTRT: switch (pattern47 (x3)) { case 0: return 598; /* *one_cmpl_ashrsi2 */ case 1: return 602; /* *one_cmpl_ashrdi2 */ default: return -1; } case LSHIFTRT: switch (pattern47 (x3)) { case 0: return 599; /* *one_cmpl_lshrsi2 */ case 1: return 603; /* *one_cmpl_lshrdi2 */ default: return -1; } case ROTATERT: switch (pattern47 (x3)) { case 0: return 600; /* *one_cmpl_rotrsi2 */ case 1: return 604; /* *one_cmpl_rotrdi2 */ default: return -1; } case XOR: x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case REG: case SUBREG: switch (pattern143 (x3)) { case 0: return 612; /* *xor_one_cmplsi3 */ case 1: return 613; /* *xor_one_cmpldi3 */ default: return -1; } case ASHIFT: switch (pattern189 (x3)) { case 0: return 643; /* *eor_one_cmpl_ashlsi3_alt */ case 1: return 647; /* *eor_one_cmpl_ashldi3_alt */ default: return -1; } case ASHIFTRT: switch (pattern189 (x3)) { case 0: return 644; /* *eor_one_cmpl_ashrsi3_alt */ case 1: return 648; /* *eor_one_cmpl_ashrdi3_alt */ default: return -1; } case LSHIFTRT: switch (pattern189 (x3)) { case 0: return 645; /* *eor_one_cmpl_lshrsi3_alt */ case 1: return 649; /* *eor_one_cmpl_lshrdi3_alt */ default: return -1; } case ROTATERT: switch (pattern189 (x3)) { case 0: return 646; /* *eor_one_cmpl_rotrsi3_alt */ case 1: return 650; /* *eor_one_cmpl_rotrdi3_alt */ default: return -1; } default: return -1; } default: return -1; } } static int recog_171 (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: case MEM: operands[1] = x4; switch (GET_MODE (operands[0])) { case E_DImode: switch (pattern192 (x3)) { case 0: return 97; /* *extendsidi2_aarch64 */ case 1: return 102; /* *extendqidi2_aarch64 */ case 2: return 104; /* *extendhidi2_aarch64 */ default: return -1; } case E_SImode: switch (pattern193 (x3)) { case 0: return 101; /* *extendqisi2_aarch64 */ case 1: return 103; /* *extendhisi2_aarch64 */ default: return -1; } case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !nonimmediate_operand (operands[1], E_QImode)) return -1; return 109; /* *extendqihi2_aarch64 */ default: return -1; } case ASHIFT: switch (pattern35 (x3)) { case 0: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 761; /* *extendsi_ashlqi */ case 1: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 765; /* *extendsi_ashlhi */ case 2: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 763; /* *extenddi_ashlqi */ case 3: if (! #line 5393 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 767; /* *extenddi_ashlhi */ default: return -1; } case ASHIFTRT: switch (pattern35 (x3)) { case 0: if (! #line 5419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 773; /* *extendsi_ashrqi */ case 1: if (! #line 5419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 775; /* *extendsi_ashrhi */ case 2: if (! #line 5419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return -1; return 774; /* *extenddi_ashrqi */ case 3: if (! #line 5419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return -1; return 776; /* *extenddi_ashrhi */ default: return -1; } case VEC_SELECT: x5 = XEXP (x4, 1); if (GET_CODE (x5) != PARALLEL) return -1; operands[2] = x5; switch (pattern195 (x3)) { case 0: if (vect_par_cnst_lo_half (operands[2], E_V16QImode) && #line 1602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1824; /* aarch64_simd_vec_unpacks_lo_v16qi */ if (vect_par_cnst_hi_half (operands[2], E_V16QImode) && #line 1613 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1830; /* aarch64_simd_vec_unpacks_hi_v16qi */ break; case 1: if (vect_par_cnst_lo_half (operands[2], E_V8HImode) && #line 1602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1826; /* aarch64_simd_vec_unpacks_lo_v8hi */ if (vect_par_cnst_hi_half (operands[2], E_V8HImode) && #line 1613 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1832; /* aarch64_simd_vec_unpacks_hi_v8hi */ break; case 2: if (vect_par_cnst_lo_half (operands[2], E_V4SImode) && #line 1602 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1828; /* aarch64_simd_vec_unpacks_lo_v4si */ if (vect_par_cnst_hi_half (operands[2], E_V4SImode) && #line 1613 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 1834; /* aarch64_simd_vec_unpacks_hi_v4si */ break; default: break; } if (XVECLEN (x5, 0) != 1) return -1; switch (pattern197 (x3)) { case 0: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2219; /* *aarch64_get_lane_extendsiv8qi */ case 1: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2221; /* *aarch64_get_lane_extendsiv16qi */ case 2: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2223; /* *aarch64_get_lane_extendsiv4hi */ case 3: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2225; /* *aarch64_get_lane_extendsiv8hi */ case 4: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2220; /* *aarch64_get_lane_extenddiv8qi */ case 5: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2222; /* *aarch64_get_lane_extenddiv16qi */ case 6: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2224; /* *aarch64_get_lane_extenddiv4hi */ case 7: if (! #line 3108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2226; /* *aarch64_get_lane_extenddiv8hi */ default: return -1; } default: return -1; } } static int recog_172 (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 (pattern23 (x1)) { case 0: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2444; /* aarch64_sqsubv8qi */ case 1: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2448; /* aarch64_sqsubv16qi */ case 2: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2452; /* aarch64_sqsubv4hi */ case 3: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2456; /* aarch64_sqsubv8hi */ case 4: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2460; /* aarch64_sqsubv2si */ case 5: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2464; /* aarch64_sqsubv4si */ case 6: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2468; /* aarch64_sqsubv2di */ case 7: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2472; /* aarch64_sqsubqi */ case 8: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2476; /* aarch64_sqsubhi */ case 9: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2480; /* aarch64_sqsubsi */ case 10: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2484; /* aarch64_sqsubdi */ case 11: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2621; /* aarch64_sqdmlslv4hi */ case 12: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2623; /* aarch64_sqdmlslv2si */ case 13: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2625; /* aarch64_sqdmlslhi */ case 14: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2627; /* aarch64_sqdmlslsi */ case 15: if (! #line 3907 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2629; /* aarch64_sqdmlsl_lanev4hi */ case 16: if (! #line 3931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2633; /* aarch64_sqdmlsl_laneqv4hi */ case 17: if (! #line 3907 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2631; /* aarch64_sqdmlsl_lanev2si */ case 18: if (! #line 3931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2635; /* aarch64_sqdmlsl_laneqv2si */ case 19: if (! #line 4000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2645; /* aarch64_sqdmlsl_nv4hi */ case 20: if (! #line 4000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2647; /* aarch64_sqdmlsl_nv2si */ case 21: if (! #line 3954 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2637; /* aarch64_sqdmlsl_lanehi */ case 22: if (! #line 3977 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2641; /* aarch64_sqdmlsl_laneqhi */ case 23: if (! #line 3954 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2639; /* aarch64_sqdmlsl_lanesi */ case 24: if (! #line 3977 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2643; /* aarch64_sqdmlsl_laneqsi */ case 25: if (! #line 4022 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2649; /* aarch64_sqdmlsl2v8hi_internal */ case 26: if (! #line 4022 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2651; /* aarch64_sqdmlsl2v4si_internal */ case 27: if (! #line 4072 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2653; /* aarch64_sqdmlsl2_lanev8hi_internal */ case 28: if (! #line 4098 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2657; /* aarch64_sqdmlsl2_laneqv8hi_internal */ case 29: if (! #line 4072 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2655; /* aarch64_sqdmlsl2_lanev4si_internal */ case 30: if (! #line 4098 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2659; /* aarch64_sqdmlsl2_laneqv4si_internal */ case 31: if (! #line 4181 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2661; /* aarch64_sqdmlsl2_nv8hi_internal */ case 32: if (! #line 4181 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2663; /* aarch64_sqdmlsl2_nv4si_internal */ default: return -1; } } static int recog_173 (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 (pattern23 (x1)) { case 0: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2442; /* aarch64_sqaddv8qi */ case 1: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2446; /* aarch64_sqaddv16qi */ case 2: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2450; /* aarch64_sqaddv4hi */ case 3: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2454; /* aarch64_sqaddv8hi */ case 4: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2458; /* aarch64_sqaddv2si */ case 5: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2462; /* aarch64_sqaddv4si */ case 6: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2466; /* aarch64_sqaddv2di */ case 7: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2470; /* aarch64_sqaddqi */ case 8: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2474; /* aarch64_sqaddhi */ case 9: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2478; /* aarch64_sqaddsi */ case 10: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2482; /* aarch64_sqadddi */ case 11: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2620; /* aarch64_sqdmlalv4hi */ case 12: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2622; /* aarch64_sqdmlalv2si */ case 13: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2624; /* aarch64_sqdmlalhi */ case 14: if (! #line 3885 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2626; /* aarch64_sqdmlalsi */ case 15: if (! #line 3907 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2628; /* aarch64_sqdmlal_lanev4hi */ case 16: if (! #line 3931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2632; /* aarch64_sqdmlal_laneqv4hi */ case 17: if (! #line 3907 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2630; /* aarch64_sqdmlal_lanev2si */ case 18: if (! #line 3931 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2634; /* aarch64_sqdmlal_laneqv2si */ case 19: if (! #line 4000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2644; /* aarch64_sqdmlal_nv4hi */ case 20: if (! #line 4000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2646; /* aarch64_sqdmlal_nv2si */ case 21: if (! #line 3954 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2636; /* aarch64_sqdmlal_lanehi */ case 22: if (! #line 3977 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2640; /* aarch64_sqdmlal_laneqhi */ case 23: if (! #line 3954 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2638; /* aarch64_sqdmlal_lanesi */ case 24: if (! #line 3977 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2642; /* aarch64_sqdmlal_laneqsi */ case 25: if (! #line 4022 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2648; /* aarch64_sqdmlal2v8hi_internal */ case 26: if (! #line 4022 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2650; /* aarch64_sqdmlal2v4si_internal */ case 27: if (! #line 4072 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2652; /* aarch64_sqdmlal2_lanev8hi_internal */ case 28: if (! #line 4098 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2656; /* aarch64_sqdmlal2_laneqv8hi_internal */ case 29: if (! #line 4072 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2654; /* aarch64_sqdmlal2_lanev4si_internal */ case 30: if (! #line 4098 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2658; /* aarch64_sqdmlal2_laneqv4si_internal */ case 31: if (! #line 4181 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2660; /* aarch64_sqdmlal2_nv8hi_internal */ case 32: if (! #line 4181 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2662; /* aarch64_sqdmlal2_nv4si_internal */ default: return -1; } } static int recog_174 (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_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode || !register_operand (operands[1], E_HFmode) || !( #line 6293 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 1002; /* *sqrthf2 */ case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_SFmode) || ! #line 6293 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1003; /* *sqrtsf2 */ case E_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode || !register_operand (operands[1], E_DFmode) || ! #line 6293 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1004; /* *sqrtdf2 */ case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4HFmode) || !( #line 4879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3089; /* *sqrtv4hf2 */ case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || GET_MODE (x3) != E_V8HFmode || !register_operand (operands[1], E_V8HFmode) || !( #line 4879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 3090; /* *sqrtv8hf2 */ case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 4879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3091; /* *sqrtv2sf2 */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 4879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3092; /* *sqrtv4sf2 */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 4879 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3093; /* *sqrtv2df2 */ default: return -1; } } static int recog_175 (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_DFmode: if (!register_operand (operands[0], E_DFmode) || GET_MODE (x3) != E_DFmode) return -1; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode) || ! #line 5960 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 931; /* extendsfdf2 */ case E_HFmode: if (!register_operand (operands[1], E_HFmode) || ! #line 5976 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 933; /* extendhfdf2 */ default: return -1; } case E_SFmode: if (!register_operand (operands[0], E_SFmode) || GET_MODE (x3) != E_SFmode || !register_operand (operands[1], E_HFmode) || ! #line 5968 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 932; /* extendhfsf2 */ case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || GET_MODE (x3) != E_V2DFmode || !register_operand (operands[1], E_V2SFmode) || ! #line 2218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2093; /* aarch64_float_extend_lo_v2df */ case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || GET_MODE (x3) != E_V4SFmode || !register_operand (operands[1], E_V4HFmode) || ! #line 2218 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2094; /* aarch64_float_extend_lo_v4sf */ default: return -1; } case VEC_SELECT: x5 = XEXP (x4, 0); operands[1] = x5; x6 = XEXP (x4, 1); operands[2] = x6; switch (GET_MODE (operands[0])) { case E_V4SFmode: if (pattern194 (x3, E_V8HFmode, E_V4HFmode, E_V4SFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[2], E_V8HFmode) && #line 2142 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2069; /* aarch64_simd_vec_unpacks_lo_v8hf */ if (!vect_par_cnst_hi_half (operands[2], E_V8HFmode) || ! #line 2198 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2091; /* aarch64_simd_vec_unpacks_hi_v8hf */ case E_V2DFmode: if (pattern194 (x3, E_V4SFmode, E_V2SFmode, E_V2DFmode) != 0) return -1; if (vect_par_cnst_lo_half (operands[2], E_V4SFmode) && #line 2142 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return 2070; /* aarch64_simd_vec_unpacks_lo_v4sf */ if (!vect_par_cnst_hi_half (operands[2], E_V4SFmode) || ! #line 2198 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2092; /* aarch64_simd_vec_unpacks_hi_v4sf */ default: return -1; } default: return -1; } } static int recog_176 (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 819; /* bswapsi2 */ case E_DImode: if (!register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !register_operand (operands[1], E_DImode)) return -1; return 820; /* bswapdi2 */ case E_HImode: if (!register_operand (operands[0], E_HImode) || GET_MODE (x3) != E_HImode || !register_operand (operands[1], E_HImode)) return -1; return 821; /* bswaphi2 */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4HImode) || ! #line 365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1377; /* bswapv4hi2 */ case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || GET_MODE (x3) != E_V8HImode || !register_operand (operands[1], E_V8HImode) || ! #line 365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1378; /* bswapv8hi2 */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2SImode) || ! #line 365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1379; /* bswapv2si2 */ case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || GET_MODE (x3) != E_V4SImode || !register_operand (operands[1], E_V4SImode) || ! #line 365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1380; /* bswapv4si2 */ case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || GET_MODE (x3) != E_V2DImode || !register_operand (operands[1], E_V2DImode) || ! #line 365 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1381; /* bswapv2di2 */ default: return -1; } } static int recog_177 (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; switch (pattern5 (x1)) { case 0: x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case SUBREG: switch (pattern214 (x2)) { case 0: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) return 702; /* *aarch64_ashr_reg_si3_mask1 */ break; case 1: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) return 706; /* *aarch64_ashr_reg_di3_mask1 */ break; case 2: if ( #line 5068 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 720; /* *aarch64_ashr_reg_di3_mask2 */ break; case 3: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0))) return 710; /* *aarch64_ashr_reg_si3_neg_mask2 */ break; case 4: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 714; /* *aarch64_ashr_reg_di3_neg_mask2 */ break; default: break; } break; case CONST_INT: switch (pattern215 (x2)) { case 0: if ( #line 5300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return 747; /* *ashrqi3_insn */ break; case 1: if ( #line 5300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return 750; /* *ashrhi3_insn */ break; default: break; } break; default: break; } operands[2] = x3; if (!aarch64_reg_or_shift_imm_di (operands[2], E_QImode)) return -1; switch (pattern1 (x2)) { case 0: return 733; /* *aarch64_ashr_sisd_or_int_si3 */ case 1: return 734; /* *aarch64_ashr_sisd_or_int_di3 */ default: return -1; } case 1: if (! #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode))) return -1; return 724; /* *aarch64_ashr_reg_minussi3 */ case 2: if (! #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode))) return -1; return 727; /* *aarch64_ashr_reg_minusdi3 */ case 3: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1646; /* aarch64_simd_ashrv8qi */ case 4: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1647; /* aarch64_simd_ashrv16qi */ case 5: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1648; /* aarch64_simd_ashrv4hi */ case 6: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1649; /* aarch64_simd_ashrv8hi */ case 7: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1650; /* aarch64_simd_ashrv2si */ case 8: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1651; /* aarch64_simd_ashrv4si */ case 9: if (! #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1652; /* aarch64_simd_ashrv2di */ case 10: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4236; /* *post_ra_vashrvnx16qi3 */ case 11: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4239; /* *post_ra_vashrvnx8hi3 */ case 12: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4242; /* *post_ra_vashrvnx4si3 */ case 13: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4245; /* *post_ra_vashrvnx2di3 */ default: return -1; } } static int recog_178 (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; switch (pattern5 (x1)) { case 0: x2 = XEXP (x1, 1); x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case SUBREG: switch (pattern214 (x2)) { case 0: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) return 703; /* *aarch64_lshr_reg_si3_mask1 */ break; case 1: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) return 707; /* *aarch64_lshr_reg_di3_mask1 */ break; case 2: if ( #line 5068 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 721; /* *aarch64_lshr_reg_di3_mask2 */ break; case 3: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0))) return 711; /* *aarch64_lshr_reg_si3_neg_mask2 */ break; case 4: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 715; /* *aarch64_lshr_reg_di3_neg_mask2 */ break; default: break; } break; case CONST_INT: switch (pattern215 (x2)) { case 0: if ( #line 5300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (QImode))) return 748; /* *lshrqi3_insn */ break; case 1: if ( #line 5300 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (HImode))) return 751; /* *lshrhi3_insn */ break; default: break; } break; default: break; } operands[2] = x3; switch (pattern216 (x2)) { case 0: return 731; /* *aarch64_lshr_sisd_or_int_si3 */ case 1: return 732; /* *aarch64_lshr_sisd_or_int_di3 */ default: return -1; } case 1: if (! #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode))) return -1; return 725; /* *aarch64_lshr_reg_minussi3 */ case 2: if (! #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode))) return -1; return 728; /* *aarch64_lshr_reg_minusdi3 */ case 3: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1639; /* aarch64_simd_lshrv8qi */ case 4: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1640; /* aarch64_simd_lshrv16qi */ case 5: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1641; /* aarch64_simd_lshrv4hi */ case 6: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1642; /* aarch64_simd_lshrv8hi */ case 7: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1643; /* aarch64_simd_lshrv2si */ case 8: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1644; /* aarch64_simd_lshrv4si */ case 9: if (! #line 942 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1645; /* aarch64_simd_lshrv2di */ case 10: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4237; /* *post_ra_vlshrvnx16qi3 */ case 11: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4240; /* *post_ra_vlshrvnx8hi3 */ case 12: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4243; /* *post_ra_vlshrvnx4si3 */ case 13: if (! #line 1285 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return -1; return 4246; /* *post_ra_vlshrvnx2di3 */ default: return -1; } } static int recog_179 (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 LSHIFTRT: if (pattern51 (x3, 64, E_TImode, MULT) != 0) return -1; x5 = XEXP (x4, 0); x6 = XEXP (x5, 0); if (GET_MODE (x6) != E_TImode) return -1; x7 = XEXP (x5, 1); if (GET_MODE (x7) != E_TImode) return -1; switch (GET_CODE (x6)) { case SIGN_EXTEND: if (GET_CODE (x7) != SIGN_EXTEND) return -1; x8 = XEXP (x6, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 0); operands[2] = x9; if (!register_operand (operands[2], E_DImode)) return -1; return 439; /* smuldi3_highpart */ case ZERO_EXTEND: if (GET_CODE (x7) != ZERO_EXTEND) return -1; x8 = XEXP (x6, 0); operands[1] = x8; if (!register_operand (operands[1], E_DImode)) return -1; x9 = XEXP (x7, 0); operands[2] = x9; if (!register_operand (operands[2], E_DImode)) return -1; return 440; /* umuldi3_highpart */ default: return -1; } case REG: case SUBREG: operands[1] = x4; switch (GET_MODE (operands[0])) { case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x3) != E_V8QImode || !register_operand (operands[1], E_V8HImode) || ! #line 1555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1818; /* aarch64_simd_vec_pack_trunc_v8hi */ case E_V4HImode: if (!register_operand (operands[0], E_V4HImode) || GET_MODE (x3) != E_V4HImode || !register_operand (operands[1], E_V4SImode) || ! #line 1555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1819; /* aarch64_simd_vec_pack_trunc_v4si */ case E_V2SImode: if (!register_operand (operands[0], E_V2SImode) || GET_MODE (x3) != E_V2SImode || !register_operand (operands[1], E_V2DImode) || ! #line 1555 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1820; /* aarch64_simd_vec_pack_trunc_v2di */ default: return -1; } default: return -1; } } static int recog_180 (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); operands[1] = x2; x3 = XEXP (x2, 1); if (x3 == const_int_rtx[MAX_SAVED_CONST_INT + 0]) { x4 = XEXP (x1, 0); operands[0] = x4; x5 = XEXP (x2, 0); operands[2] = x5; if (cc_register (operands[2], E_VOIDmode)) { switch (GET_MODE (operands[0])) { case E_QImode: if (register_operand (operands[0], E_QImode) && aarch64_comparison_operator_mode (operands[1], E_QImode)) return 483; /* aarch64_cstoreqi */ break; case E_HImode: if (register_operand (operands[0], E_HImode) && aarch64_comparison_operator_mode (operands[1], E_HImode)) return 484; /* aarch64_cstorehi */ break; case E_SImode: if (register_operand (operands[0], E_SImode) && aarch64_comparison_operator_mode (operands[1], E_SImode)) return 485; /* aarch64_cstoresi */ break; case E_DImode: if (register_operand (operands[0], E_DImode) && aarch64_comparison_operator_mode (operands[1], E_DImode)) return 486; /* aarch64_cstoredi */ break; default: break; } } } if (pnum_clobbers == NULL) return -1; x4 = XEXP (x1, 0); operands[0] = x4; x5 = XEXP (x2, 0); operands[1] = x5; operands[2] = x3; switch (GET_CODE (x2)) { case EQ: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern310 (x2, E_SImode) != 0 || ! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), SImode) && !aarch64_plus_operand (operands[2], SImode) && !reload_completed)) return -1; *pnum_clobbers = 1; return 487; /* *compare_cstoresi_insn */ case E_DImode: if (pattern310 (x2, E_DImode) != 0 || ! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), DImode) && !aarch64_plus_operand (operands[2], DImode) && !reload_completed)) return -1; *pnum_clobbers = 1; return 489; /* *compare_cstoredi_insn */ default: return -1; } case NE: switch (GET_MODE (operands[0])) { case E_SImode: if (pattern310 (x2, E_SImode) != 0 || ! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), SImode) && !aarch64_plus_operand (operands[2], SImode) && !reload_completed)) return -1; *pnum_clobbers = 1; return 488; /* *compare_cstoresi_insn */ case E_DImode: if (pattern310 (x2, E_DImode) != 0 || ! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), DImode) && !aarch64_plus_operand (operands[2], DImode) && !reload_completed)) return -1; *pnum_clobbers = 1; return 490; /* *compare_cstoredi_insn */ default: return -1; } default: return -1; } } static int recog_181 (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_DFmode) || ! #line 5984 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 934; /* truncdfsf2 */ case E_HFmode: if (!register_operand (operands[0], E_HFmode) || GET_MODE (x3) != E_HFmode) return -1; switch (GET_MODE (operands[1])) { case E_SFmode: if (!register_operand (operands[1], E_SFmode) || ! #line 5992 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 935; /* truncsfhf2 */ case E_DFmode: if (!register_operand (operands[1], E_DFmode) || ! #line 6000 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 936; /* truncdfhf2 */ default: return -1; } case E_V2SFmode: if (!register_operand (operands[0], E_V2SFmode) || GET_MODE (x3) != E_V2SFmode || !register_operand (operands[1], E_V2DFmode) || ! #line 2229 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2095; /* aarch64_float_truncate_lo_v2sf */ case E_V4HFmode: if (!register_operand (operands[0], E_V4HFmode) || GET_MODE (x3) != E_V4HFmode || !register_operand (operands[1], E_V4SFmode) || ! #line 2229 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2096; /* aarch64_float_truncate_lo_v4hf */ default: return -1; } } static int recog_182 (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 (pattern13 (x3, E_SImode) != 0) return -1; return 441; /* divsi3 */ case E_DImode: if (pattern13 (x3, E_DImode) != 0) return -1; return 443; /* divdi3 */ case E_HFmode: if (pattern13 (x3, E_HFmode) != 0 || !( #line 6268 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT) && #line 48 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (AARCH64_ISA_F16))) return -1; return 996; /* *divhf3 */ case E_SFmode: if (pattern13 (x3, E_SFmode) != 0 || ! #line 6268 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 997; /* *divsf3 */ case E_DFmode: if (pattern13 (x3, E_DFmode) != 0 || ! #line 6268 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 998; /* *divdf3 */ case E_V4HFmode: if (pattern13 (x3, E_V4HFmode) != 0 || !( #line 1859 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1899; /* *divv4hf3 */ case E_V8HFmode: if (pattern13 (x3, E_V8HFmode) != 0 || !( #line 1859 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 1900; /* *divv8hf3 */ case E_V2SFmode: if (pattern13 (x3, E_V2SFmode) != 0 || ! #line 1859 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1901; /* *divv2sf3 */ case E_V4SFmode: if (pattern13 (x3, E_V4SFmode) != 0 || ! #line 1859 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1902; /* *divv4sf3 */ case E_V2DFmode: if (pattern13 (x3, E_V2DFmode) != 0 || ! #line 1859 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1903; /* *divv2df3 */ default: return -1; } } static int recog_183 (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) != CONST_INT) return -1; x4 = XEXP (x2, 2); operands[3] = x4; res = recog_143 (x1, insn, pnum_clobbers); if (res >= 0) return res; if (XWINT (x3, 0) != 64L || GET_CODE (x4) != CONST_INT) return -1; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], E_DImode) || GET_MODE (x2) != E_DImode) return -1; x6 = XEXP (x2, 0); operands[1] = x6; switch (XWINT (x4, 0)) { case 0L: switch (GET_MODE (operands[1])) { case E_TImode: if (!register_operand (operands[1], E_TImode) || ! #line 6491 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1026; /* aarch64_movdi_tilow */ case E_TFmode: if (!register_operand (operands[1], E_TFmode) || ! #line 6491 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1027; /* aarch64_movdi_tflow */ default: return -1; } case 64L: switch (GET_MODE (operands[1])) { case E_TImode: if (!register_operand (operands[1], E_TImode) || ! #line 6501 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1028; /* aarch64_movdi_tihigh */ case E_TFmode: if (!register_operand (operands[1], E_TFmode) || ! #line 6501 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT && (reload_completed || reload_in_progress))) return -1; return 1029; /* aarch64_movdi_tfhigh */ default: return -1; } default: return -1; } } static int recog_184 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_DImode) return -1; x4 = XEXP (x3, 0); if (GET_CODE (x4) != UNSPEC || XVECLEN (x4, 0) != 2 || XINT (x4, 1) != 2) return -1; x5 = XEXP (x2, 0); if (GET_CODE (x5) != PC) return -1; x6 = XVECEXP (x1, 0, 1); if (pattern140 (x6, E_CCmode, 66) != 0) return -1; x7 = XVECEXP (x1, 0, 4); if (GET_CODE (x7) != USE) return -1; x8 = XEXP (x7, 0); if (GET_CODE (x8) != LABEL_REF || GET_MODE (x8) != E_DImode) return -1; x9 = XVECEXP (x4, 0, 0); operands[0] = x9; if (!register_operand (operands[0], E_DImode)) return -1; x10 = XVECEXP (x4, 0, 1); operands[1] = x10; if (!register_operand (operands[1], E_SImode)) return -1; x11 = XVECEXP (x1, 0, 2); x12 = XEXP (x11, 0); operands[3] = x12; if (!scratch_operand (operands[3], E_DImode)) return -1; x13 = XEXP (x8, 0); operands[2] = x13; return 18; /* *casesi_dispatch */ } static int recog_185 (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, 1); x4 = XEXP (x3, 1); switch (GET_CODE (x4)) { case REG: case SUBREG: operands[1] = x4; if (!register_operand (operands[1], E_DImode)) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (GET_CODE (x6) != NEG || GET_MODE (x6) != E_DImode || !register_operand (operands[0], E_DImode)) return -1; x7 = XEXP (x6, 0); if (!rtx_equal_p (x7, operands[1])) return -1; return 308; /* negdi_carryout */ case PLUS: x8 = XEXP (x4, 0); if (GET_CODE (x8) != ZERO_EXTEND) return -1; x5 = XVECEXP (x1, 0, 1); x6 = XEXP (x5, 1); if (GET_CODE (x6) != MINUS) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != NEG) return -1; x9 = XEXP (x8, 0); operands[1] = x9; x10 = XEXP (x4, 1); operands[2] = x10; x11 = XEXP (x6, 1); operands[3] = x11; x12 = XEXP (x7, 0); if (!rtx_equal_p (x12, operands[1])) return -1; switch (GET_MODE (x4)) { case E_DImode: if (pattern561 (x1, E_SImode, E_DImode) != 0) return -1; return 376; /* *usubsi3_carryinC_z1 */ case E_TImode: if (pattern561 (x1, E_DImode, E_TImode) != 0) return -1; return 377; /* *usubdi3_carryinC_z1 */ default: return -1; } default: return -1; } } static int recog_186 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); x3 = XEXP (x2, 1); x4 = XEXP (x3, 0); if (XVECLEN (x4, 0) != 2 || XINT (x4, 1) != 90 || GET_MODE (x4) != E_SImode) return -1; x5 = XEXP (x3, 1); if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XEXP (x2, 0); if (GET_MODE (x6) != E_CCmode || GET_MODE (x3) != E_CCmode) return -1; x7 = XVECEXP (x4, 0, 0); operands[1] = x7; x8 = XVECEXP (x4, 0, 1); switch (GET_CODE (x8)) { case AND: x9 = XVECEXP (x1, 0, 1); if (GET_CODE (x9) != SET) return -1; x10 = XEXP (x9, 1); if (GET_CODE (x10) != AND) return -1; x11 = XEXP (x9, 0); operands[0] = x11; x12 = XEXP (x8, 1); if (!rtx_equal_p (x12, operands[1])) return -1; x13 = XEXP (x10, 1); if (!rtx_equal_p (x13, operands[1])) return -1; x14 = XEXP (x8, 0); switch (GET_CODE (x14)) { case AND: switch (pattern564 (x1, AND)) { case 0: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4191; /* *andvnx16bi3_cc */ case 1: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4194; /* *andvnx8bi3_cc */ case 2: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4197; /* *andvnx4bi3_cc */ case 3: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4200; /* *andvnx2bi3_cc */ default: return -1; } case IOR: switch (pattern564 (x1, IOR)) { case 0: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4192; /* *iorvnx16bi3_cc */ case 1: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4195; /* *iorvnx8bi3_cc */ case 2: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4198; /* *iorvnx4bi3_cc */ case 3: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4201; /* *iorvnx2bi3_cc */ default: return -1; } case XOR: switch (pattern564 (x1, XOR)) { case 0: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4193; /* *xorvnx16bi3_cc */ case 1: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4196; /* *xorvnx8bi3_cc */ case 2: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4199; /* *xorvnx4bi3_cc */ case 3: if (! #line 1188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4202; /* *xorvnx2bi3_cc */ default: return -1; } default: return -1; } case UNSPEC: if (XVECLEN (x8, 0) != 2) return -1; switch (XINT (x8, 1)) { case 97: x9 = XVECEXP (x1, 0, 1); if (pattern33 (x9, 97, UNSPEC, 2) != 0) return -1; switch (pattern565 (x1)) { case 0: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4259; /* while_ultsivnx16bi_cc */ if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || ! #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4260; /* while_ultdivnx16bi_cc */ case 1: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4261; /* while_ultsivnx8bi_cc */ if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || ! #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4262; /* while_ultdivnx8bi_cc */ case 2: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4263; /* while_ultsivnx4bi_cc */ if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || ! #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4264; /* while_ultdivnx4bi_cc */ case 3: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4265; /* while_ultsivnx2bi_cc */ if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || ! #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4266; /* while_ultdivnx2bi_cc */ default: return -1; } case 89: x15 = XVECEXP (x8, 0, 0); if (!rtx_equal_p (x15, operands[1])) return -1; x16 = XVECEXP (x8, 0, 1); switch (GET_CODE (x16)) { case LT: switch (pattern549 (x1, LT)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4307; /* *cmpltvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4317; /* *cmpltvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4327; /* *cmpltvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4337; /* *cmpltvnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4347; /* *cmpltvnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4357; /* *cmpltvnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4367; /* *cmpltvnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4377; /* *cmpltvnx2di_cc */ default: return -1; } case LE: switch (pattern549 (x1, LE)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4308; /* *cmplevnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4318; /* *cmplevnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4328; /* *cmplevnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4338; /* *cmplevnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4348; /* *cmplevnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4358; /* *cmplevnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4368; /* *cmplevnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4378; /* *cmplevnx2di_cc */ default: return -1; } case EQ: switch (pattern549 (x1, EQ)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4309; /* *cmpeqvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4319; /* *cmpeqvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4329; /* *cmpeqvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4339; /* *cmpeqvnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4349; /* *cmpeqvnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4359; /* *cmpeqvnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4369; /* *cmpeqvnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4379; /* *cmpeqvnx2di_cc */ default: return -1; } case NE: switch (pattern549 (x1, NE)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4310; /* *cmpnevnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4320; /* *cmpnevnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4330; /* *cmpnevnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4340; /* *cmpnevnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4350; /* *cmpnevnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4360; /* *cmpnevnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4370; /* *cmpnevnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4380; /* *cmpnevnx2di_cc */ default: return -1; } case GE: switch (pattern549 (x1, GE)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4311; /* *cmpgevnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4321; /* *cmpgevnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4331; /* *cmpgevnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4341; /* *cmpgevnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4351; /* *cmpgevnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4361; /* *cmpgevnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4371; /* *cmpgevnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4381; /* *cmpgevnx2di_cc */ default: return -1; } case GT: switch (pattern549 (x1, GT)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4312; /* *cmpgtvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4322; /* *cmpgtvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4332; /* *cmpgtvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4342; /* *cmpgtvnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4352; /* *cmpgtvnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4362; /* *cmpgtvnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4372; /* *cmpgtvnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4382; /* *cmpgtvnx2di_cc */ default: return -1; } case LTU: switch (pattern552 (x1, LTU)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4313; /* *cmplovnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4323; /* *cmplovnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4333; /* *cmplovnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4343; /* *cmplovnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4353; /* *cmplovnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4363; /* *cmplovnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4373; /* *cmplovnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4383; /* *cmplovnx2di_cc */ default: return -1; } case LEU: switch (pattern552 (x1, LEU)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4314; /* *cmplsvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4324; /* *cmplsvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4334; /* *cmplsvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4344; /* *cmplsvnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4354; /* *cmplsvnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4364; /* *cmplsvnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4374; /* *cmplsvnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4384; /* *cmplsvnx2di_cc */ default: return -1; } case GEU: switch (pattern552 (x1, GEU)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4315; /* *cmphsvnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4325; /* *cmphsvnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4335; /* *cmphsvnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4345; /* *cmphsvnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4355; /* *cmphsvnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4365; /* *cmphsvnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4375; /* *cmphsvnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4385; /* *cmphsvnx2di_cc */ default: return -1; } case GTU: switch (pattern552 (x1, GTU)) { case 0: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4316; /* *cmphivnx16qi_ptest */ case 1: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4326; /* *cmphivnx8hi_ptest */ case 2: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4336; /* *cmphivnx4si_ptest */ case 3: if (! #line 1408 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4346; /* *cmphivnx2di_ptest */ case 4: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4356; /* *cmphivnx16qi_cc */ case 5: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4366; /* *cmphivnx8hi_cc */ case 6: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4376; /* *cmphivnx4si_cc */ case 7: if (! #line 1436 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4386; /* *cmphivnx2di_cc */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_187 (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, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[0] = x3; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); x6 = XEXP (x5, 0); x7 = XEXP (x6, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: operands[1] = x7; x8 = XEXP (x6, 1); operands[2] = x8; x9 = XEXP (x5, 1); switch (GET_CODE (x9)) { case CONST_INT: if (XWINT (x9, 0) != 0L) return -1; x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_NZmode || GET_MODE (x5) != E_CC_NZmode) return -1; x11 = XEXP (x2, 1); switch (GET_CODE (x11)) { case PLUS: switch (pattern522 (x1)) { case 0: return 116; /* addsi3_compare0 */ case 1: return 117; /* adddi3_compare0 */ default: return -1; } case ZERO_EXTEND: if (pattern500 (x1, PLUS) != 0 || !aarch64_plus_operand (operands[2], E_SImode) || !register_operand (operands[0], E_DImode)) return -1; x12 = XEXP (x11, 0); 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; return 118; /* *addsi3_compare0_uxtw */ default: return -1; } case REG: case SUBREG: if (!rtx_equal_p (x9, operands[1])) return -1; x11 = XEXP (x2, 1); if (GET_CODE (x11) != PLUS) return -1; x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_Cmode || GET_MODE (x5) != E_CC_Cmode) return -1; switch (pattern522 (x1)) { case 0: return 121; /* addsi3_compareC */ case 1: return 122; /* adddi3_compareC */ default: return -1; } default: return -1; } case SIGN_EXTEND: x11 = XEXP (x2, 1); if (GET_CODE (x11) != PLUS) return -1; x15 = XEXP (x7, 0); operands[1] = x15; x8 = XEXP (x6, 1); switch (GET_CODE (x8)) { case CONST_INT: operands[2] = x8; if (pattern464 (x4) != 0) return -1; switch (pattern539 (x1)) { case 0: if (pattern571 (x1, E_SImode, E_DImode) != 0) return -1; return 127; /* addsi3_compareV_imm */ case 1: if (pattern571 (x1, E_DImode, E_TImode) != 0) return -1; return 128; /* adddi3_compareV_imm */ default: return -1; } case SIGN_EXTEND: if (pattern464 (x4) != 0) return -1; x16 = XEXP (x8, 0); operands[2] = x16; switch (pattern539 (x1)) { case 0: if (pattern572 (x1, E_SImode, E_DImode) != 0) return -1; return 129; /* addsi3_compareV */ case 1: if (pattern572 (x1, E_DImode, E_TImode) != 0) return -1; return 130; /* adddi3_compareV */ default: return -1; } case REG: case SUBREG: operands[2] = x8; x9 = XEXP (x5, 1); if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != SIGN_EXTEND) return -1; x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_NZmode || GET_MODE (x5) != E_CC_NZmode) return -1; switch (pattern524 (x1)) { case 0: return 147; /* *adds_extendqi_si */ case 1: return 151; /* *adds_extendhi_si */ case 2: return 155; /* *adds_extendsi_si */ case 3: return 149; /* *adds_extendqi_di */ case 4: return 153; /* *adds_extendhi_di */ case 5: return 157; /* *adds_extendsi_di */ default: return -1; } default: return -1; } case ASHIFT: if (pattern388 (x1, ASHIFT) != 0) return -1; x17 = XEXP (x7, 1); operands[2] = x17; x8 = XEXP (x6, 1); operands[3] = x8; x11 = XEXP (x2, 1); x12 = XEXP (x11, 0); x14 = XEXP (x12, 1); if (!rtx_equal_p (x14, operands[2])) return -1; x18 = XEXP (x11, 1); if (!rtx_equal_p (x18, operands[3])) return -1; x15 = XEXP (x7, 0); switch (GET_CODE (x15)) { case REG: case SUBREG: operands[1] = x15; x13 = XEXP (x12, 0); if (!rtx_equal_p (x13, operands[1])) return -1; switch (pattern390 (x1)) { case 0: return 131; /* *adds_shift_imm_si */ case 1: return 134; /* *adds_shift_imm_di */ default: return -1; } case SIGN_EXTEND: switch (pattern555 (x1, SIGN_EXTEND)) { case 0: return 171; /* *adds_extendqi_shift_si */ case 1: return 175; /* *adds_extendhi_shift_si */ case 2: return 179; /* *adds_extendsi_shift_si */ case 3: return 173; /* *adds_extendqi_shift_di */ case 4: return 177; /* *adds_extendhi_shift_di */ case 5: return 181; /* *adds_extendsi_shift_di */ default: return -1; } case ZERO_EXTEND: switch (pattern555 (x1, ZERO_EXTEND)) { case 0: return 172; /* *adds_zero_extendqi_shift_si */ case 1: return 176; /* *adds_zero_extendhi_shift_si */ case 2: return 180; /* *adds_zero_extendsi_shift_si */ case 3: return 174; /* *adds_zero_extendqi_shift_di */ case 4: return 178; /* *adds_zero_extendhi_shift_di */ case 5: return 182; /* *adds_zero_extendsi_shift_di */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern392 (x1, ASHIFTRT)) { case 0: return 132; /* *adds_shift_imm_si */ case 1: return 135; /* *adds_shift_imm_di */ default: return -1; } case LSHIFTRT: switch (pattern392 (x1, LSHIFTRT)) { case 0: return 133; /* *adds_shift_imm_si */ case 1: return 136; /* *adds_shift_imm_di */ default: return -1; } case MULT: if (pattern388 (x1, MULT) != 0) return -1; x15 = XEXP (x7, 0); operands[1] = x15; x17 = XEXP (x7, 1); operands[2] = x17; x8 = XEXP (x6, 1); operands[3] = x8; x11 = XEXP (x2, 1); x12 = XEXP (x11, 0); 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; x18 = XEXP (x11, 1); if (!rtx_equal_p (x18, operands[3])) return -1; switch (GET_MODE (x6)) { case E_SImode: if (GET_MODE (x7) != E_SImode || !register_operand (operands[1], E_SImode) || !aarch64_pwr_2_si (operands[2], E_QImode) || pattern389 (x11, E_SImode) != 0) return -1; return 143; /* *adds_mul_imm_si */ case E_DImode: if (GET_MODE (x7) != E_DImode || !register_operand (operands[1], E_DImode) || !aarch64_pwr_2_di (operands[2], E_QImode) || pattern389 (x11, E_DImode) != 0) return -1; return 144; /* *adds_mul_imm_di */ default: return -1; } case ZERO_EXTEND: if (pattern388 (x1, ZERO_EXTEND) != 0) return -1; x15 = XEXP (x7, 0); operands[1] = x15; x8 = XEXP (x6, 1); operands[2] = x8; switch (pattern524 (x1)) { case 0: return 148; /* *adds_zero_extendqi_si */ case 1: return 152; /* *adds_zero_extendhi_si */ case 2: return 156; /* *adds_zero_extendsi_si */ case 3: return 150; /* *adds_zero_extendqi_di */ case 4: return 154; /* *adds_zero_extendhi_di */ case 5: return 158; /* *adds_zero_extendsi_di */ default: return -1; } case SIGN_EXTRACT: switch (pattern395 (x1, SIGN_EXTRACT)) { case 0: if (! #line 2307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 195; /* *adds_extvsi_multp2 */ case 1: if (! #line 2307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 197; /* *adds_extvdi_multp2 */ default: return -1; } case ZERO_EXTRACT: switch (pattern395 (x1, ZERO_EXTRACT)) { case 0: if (! #line 2307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 196; /* *adds_extzvsi_multp2 */ case 1: if (! #line 2307 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 198; /* *adds_extzvdi_multp2 */ default: return -1; } case GEU: case LTU: operands[2] = x7; x11 = XEXP (x2, 1); if (GET_CODE (x11) != PLUS) return -1; x8 = XEXP (x6, 1); switch (GET_CODE (x8)) { case ZERO_EXTEND: x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_ADCmode || GET_MODE (x5) != E_CC_ADCmode) return -1; x16 = XEXP (x8, 0); operands[1] = x16; x9 = XEXP (x5, 1); operands[4] = x9; if (!const_scalar_int_operand (operands[4], E_VOIDmode)) return -1; x12 = XEXP (x11, 0); operands[3] = x12; x18 = XEXP (x11, 1); if (!rtx_equal_p (x18, operands[1])) return -1; switch (GET_MODE (x6)) { case E_DImode: if (pattern558 (x1, E_SImode, E_DImode) != 0 || ! #line 2571 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_mode_t (operands[4], DImode) == (wi::shwi (1, DImode) << (unsigned) GET_MODE_BITSIZE (SImode)))) return -1; return 281; /* *addsi3_carryinC_zero */ case E_TImode: if (pattern558 (x1, E_DImode, E_TImode) != 0 || ! #line 2571 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_mode_t (operands[4], TImode) == (wi::shwi (1, TImode) << (unsigned) GET_MODE_BITSIZE (DImode)))) return -1; return 282; /* *adddi3_carryinC_zero */ default: return -1; } case SIGN_EXTEND: x9 = XEXP (x5, 1); if (GET_CODE (x9) != SIGN_EXTEND) return -1; x19 = XEXP (x9, 0); if (GET_CODE (x19) != PLUS) return -1; x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_Vmode || GET_MODE (x5) != E_CC_Vmode) return -1; x16 = XEXP (x8, 0); operands[1] = x16; x20 = XEXP (x19, 0); operands[3] = x20; x21 = XEXP (x19, 1); if (!rtx_equal_p (x21, operands[1])) return -1; x12 = XEXP (x11, 0); if (!rtx_equal_p (x12, operands[3])) return -1; x18 = XEXP (x11, 1); if (!rtx_equal_p (x18, operands[1])) return -1; switch (GET_MODE (x6)) { case E_DImode: if (pattern573 (x1, E_SImode, E_DImode) != 0) return -1; return 285; /* *addsi3_carryinV_zero */ case E_TImode: if (pattern573 (x1, E_DImode, E_TImode) != 0) return -1; return 286; /* *adddi3_carryinV_zero */ default: return -1; } default: return -1; } case PLUS: x11 = XEXP (x2, 1); if (GET_CODE (x11) != PLUS) return -1; x12 = XEXP (x11, 0); if (GET_CODE (x12) != PLUS) return -1; x15 = XEXP (x7, 0); operands[3] = x15; x17 = XEXP (x7, 1); switch (GET_CODE (x17)) { case ZERO_EXTEND: x8 = XEXP (x6, 1); if (GET_CODE (x8) != ZERO_EXTEND) return -1; x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_ADCmode || GET_MODE (x5) != E_CC_ADCmode) return -1; x22 = XEXP (x17, 0); operands[1] = x22; x16 = XEXP (x8, 0); operands[2] = x16; x9 = XEXP (x5, 1); operands[5] = x9; if (!const_scalar_int_operand (operands[5], E_VOIDmode)) return -1; x13 = XEXP (x12, 0); operands[4] = x13; x14 = XEXP (x12, 1); if (!rtx_equal_p (x14, operands[1])) return -1; x18 = XEXP (x11, 1); if (!rtx_equal_p (x18, operands[2])) return -1; switch (GET_MODE (x6)) { case E_DImode: if (pattern577 (x1, E_SImode, E_DImode) != 0 || ! #line 2591 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_mode_t (operands[5], DImode) == (wi::shwi (1, DImode) << (unsigned) GET_MODE_BITSIZE (SImode)))) return -1; return 283; /* *addsi3_carryinC */ case E_TImode: if (pattern577 (x1, E_DImode, E_TImode) != 0 || ! #line 2591 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_mode_t (operands[5], TImode) == (wi::shwi (1, TImode) << (unsigned) GET_MODE_BITSIZE (DImode)))) return -1; return 284; /* *adddi3_carryinC */ default: return -1; } case SIGN_EXTEND: x8 = XEXP (x6, 1); if (GET_CODE (x8) != SIGN_EXTEND) return -1; x9 = XEXP (x5, 1); if (GET_CODE (x9) != SIGN_EXTEND) return -1; x19 = XEXP (x9, 0); if (GET_CODE (x19) != PLUS) return -1; x20 = XEXP (x19, 0); if (GET_CODE (x20) != PLUS) return -1; x10 = XEXP (x4, 0); if (GET_MODE (x10) != E_CC_Vmode || GET_MODE (x5) != E_CC_Vmode) return -1; x22 = XEXP (x17, 0); operands[1] = x22; x16 = XEXP (x8, 0); operands[2] = x16; x23 = XEXP (x20, 0); operands[4] = x23; x24 = XEXP (x20, 1); if (!rtx_equal_p (x24, operands[1])) return -1; x21 = XEXP (x19, 1); if (!rtx_equal_p (x21, operands[2])) return -1; x13 = XEXP (x12, 0); if (!rtx_equal_p (x13, operands[4])) return -1; x14 = XEXP (x12, 1); if (!rtx_equal_p (x14, operands[1])) return -1; x18 = XEXP (x11, 1); if (!rtx_equal_p (x18, operands[2])) return -1; switch (GET_MODE (x6)) { case E_DImode: if (pattern580 (x1, E_SImode, E_DImode) != 0) return -1; return 287; /* *addsi3_carryinV */ case E_TImode: if (pattern580 (x1, E_DImode, E_TImode) != 0) return -1; return 288; /* *adddi3_carryinV */ default: return -1; } default: return -1; } default: return -1; } } static int recog_188 (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, 1); if (GET_CODE (x2) != SET) return -1; x3 = XEXP (x2, 0); operands[0] = x3; x4 = XVECEXP (x1, 0, 0); x5 = XEXP (x4, 1); x6 = XEXP (x5, 0); x7 = XEXP (x6, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: x8 = XEXP (x5, 1); if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x9 = XEXP (x4, 0); if (GET_MODE (x9) != E_CC_NZmode || GET_MODE (x5) != E_CC_NZmode) return -1; x10 = XEXP (x6, 1); switch (GET_CODE (x10)) { case ASHIFT: x11 = XEXP (x2, 1); if (GET_CODE (x11) != MINUS) return -1; x12 = XEXP (x11, 1); if (GET_CODE (x12) != ASHIFT) return -1; operands[1] = x7; x13 = XEXP (x10, 1); operands[3] = x13; x14 = XEXP (x11, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XEXP (x12, 1); if (!rtx_equal_p (x15, operands[3])) return -1; x16 = XEXP (x10, 0); switch (GET_CODE (x16)) { case REG: case SUBREG: operands[2] = x16; x17 = XEXP (x12, 0); if (!rtx_equal_p (x17, operands[2])) return -1; switch (pattern482 (x1)) { case 0: return 137; /* *subs_shift_imm_si */ case 1: return 140; /* *subs_shift_imm_di */ default: return -1; } case SIGN_EXTEND: switch (pattern560 (x1, SIGN_EXTEND)) { case 0: return 183; /* *subs_extendqi_shift_si */ case 1: return 187; /* *subs_extendhi_shift_si */ case 2: return 191; /* *subs_extendsi_shift_si */ case 3: return 185; /* *subs_extendqi_shift_di */ case 4: return 189; /* *subs_extendhi_shift_di */ case 5: return 193; /* *subs_extendsi_shift_di */ default: return -1; } case ZERO_EXTEND: switch (pattern560 (x1, ZERO_EXTEND)) { case 0: return 184; /* *subs_zero_extendqi_shift_si */ case 1: return 188; /* *subs_zero_extendhi_shift_si */ case 2: return 192; /* *subs_zero_extendsi_shift_si */ case 3: return 186; /* *subs_zero_extendqi_shift_di */ case 4: return 190; /* *subs_zero_extendhi_shift_di */ case 5: return 194; /* *subs_zero_extendsi_shift_di */ default: return -1; } default: return -1; } case ASHIFTRT: switch (pattern483 (x1, ASHIFTRT)) { case 0: return 138; /* *subs_shift_imm_si */ case 1: return 141; /* *subs_shift_imm_di */ default: return -1; } case LSHIFTRT: switch (pattern483 (x1, LSHIFTRT)) { case 0: return 139; /* *subs_shift_imm_si */ case 1: return 142; /* *subs_shift_imm_di */ default: return -1; } case MULT: x11 = XEXP (x2, 1); if (GET_CODE (x11) != MINUS) return -1; x12 = XEXP (x11, 1); if (GET_CODE (x12) != MULT) return -1; operands[1] = x7; x16 = XEXP (x10, 0); operands[2] = x16; x13 = XEXP (x10, 1); operands[3] = x13; x14 = XEXP (x11, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x17 = XEXP (x12, 0); if (!rtx_equal_p (x17, operands[2])) return -1; x15 = XEXP (x12, 1); if (!rtx_equal_p (x15, operands[3])) return -1; switch (GET_MODE (x6)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || GET_MODE (x10) != E_SImode || !register_operand (operands[2], E_SImode) || !aarch64_pwr_2_si (operands[3], E_QImode) || !register_operand (operands[0], E_SImode) || GET_MODE (x11) != E_SImode || GET_MODE (x12) != E_SImode) return -1; return 145; /* *subs_mul_imm_si */ case E_DImode: if (!register_operand (operands[1], E_DImode) || GET_MODE (x10) != E_DImode || !register_operand (operands[2], E_DImode) || !aarch64_pwr_2_di (operands[3], E_QImode) || !register_operand (operands[0], E_DImode) || GET_MODE (x11) != E_DImode || GET_MODE (x12) != E_DImode) return -1; return 146; /* *subs_mul_imm_di */ default: return -1; } case SIGN_EXTEND: switch (pattern485 (x1, SIGN_EXTEND)) { case 0: return 159; /* *subs_extendqi_si */ case 1: return 163; /* *subs_extendhi_si */ case 2: return 167; /* *subs_extendsi_si */ case 3: return 161; /* *subs_extendqi_di */ case 4: return 165; /* *subs_extendhi_di */ case 5: return 169; /* *subs_extendsi_di */ default: return -1; } case ZERO_EXTEND: switch (pattern485 (x1, ZERO_EXTEND)) { case 0: return 160; /* *subs_zero_extendqi_si */ case 1: return 164; /* *subs_zero_extendhi_si */ case 2: return 168; /* *subs_zero_extendsi_si */ case 3: return 162; /* *subs_zero_extendqi_di */ case 4: return 166; /* *subs_zero_extendhi_di */ case 5: return 170; /* *subs_zero_extendsi_di */ default: return -1; } case SIGN_EXTRACT: switch (pattern487 (x1, SIGN_EXTRACT)) { case 0: if (! #line 2327 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 199; /* *subs_extvsi_multp2 */ case 1: if (! #line 2327 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 201; /* *subs_extvdi_multp2 */ default: return -1; } case ZERO_EXTRACT: switch (pattern487 (x1, ZERO_EXTRACT)) { case 0: if (! #line 2327 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (SImode, operands[2], operands[3]))) return -1; return 200; /* *subs_extzvsi_multp2 */ case 1: if (! #line 2327 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_is_extend_from_extract (DImode, operands[2], operands[3]))) return -1; return 202; /* *subs_extzvdi_multp2 */ default: return -1; } case REG: case SUBREG: operands[2] = x10; operands[1] = x7; x11 = XEXP (x2, 1); switch (GET_CODE (x11)) { case MINUS: x14 = XEXP (x11, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x12 = XEXP (x11, 1); if (!rtx_equal_p (x12, operands[2])) return -1; switch (GET_MODE (x6)) { case E_SImode: if (pattern556 (x11, E_SImode) != 0) return -1; return 310; /* *subsi3_compare0 */ case E_DImode: if (pattern556 (x11, E_DImode) != 0) return -1; return 311; /* *subdi3_compare0 */ default: return -1; } case ZERO_EXTEND: if (pattern516 (x1, MINUS) != 0 || !register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode) || !register_operand (operands[0], E_DImode)) return -1; x14 = XEXP (x11, 0); x18 = XEXP (x14, 0); if (!rtx_equal_p (x18, operands[1])) return -1; x19 = XEXP (x14, 1); if (!rtx_equal_p (x19, operands[2])) return -1; return 312; /* *subsi3_compare0_uxtw */ default: return -1; } default: return -1; } case SIGN_EXTEND: x8 = XEXP (x5, 1); if (GET_CODE (x8) != SIGN_EXTEND) return -1; x20 = XEXP (x8, 0); if (GET_CODE (x20) != MINUS) return -1; x11 = XEXP (x2, 1); if (GET_CODE (x11) != MINUS) return -1; x9 = XEXP (x4, 0); if (GET_MODE (x9) != E_CC_Vmode || GET_MODE (x5) != E_CC_Vmode) return -1; x21 = XEXP (x7, 0); operands[1] = x21; x22 = XEXP (x20, 0); if (!rtx_equal_p (x22, operands[1])) return -1; x10 = XEXP (x6, 1); switch (GET_CODE (x10)) { case GEU: case LTU: operands[2] = x10; x23 = XEXP (x20, 1); operands[3] = x23; x14 = XEXP (x11, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x12 = XEXP (x11, 1); if (!rtx_equal_p (x12, operands[3])) return -1; switch (GET_MODE (x6)) { case E_DImode: if (pattern574 (x1, E_SImode, E_DImode) != 0) return -1; return 382; /* *subsi3_carryinV_z2 */ case E_TImode: if (pattern574 (x1, E_DImode, E_TImode) != 0) return -1; return 383; /* *subdi3_carryinV_z2 */ default: return -1; } case PLUS: x16 = XEXP (x10, 0); if (GET_CODE (x16) != SIGN_EXTEND) return -1; x23 = XEXP (x20, 1); if (GET_CODE (x23) != PLUS) return -1; x14 = XEXP (x11, 0); if (GET_CODE (x14) != MINUS) return -1; x24 = XEXP (x16, 0); operands[2] = x24; x13 = XEXP (x10, 1); operands[3] = x13; x25 = XEXP (x23, 0); operands[4] = x25; x26 = XEXP (x23, 1); if (!rtx_equal_p (x26, operands[2])) return -1; x18 = XEXP (x14, 0); if (!rtx_equal_p (x18, operands[1])) return -1; x19 = XEXP (x14, 1); if (!rtx_equal_p (x19, operands[2])) return -1; x12 = XEXP (x11, 1); if (!rtx_equal_p (x12, operands[4])) return -1; switch (GET_MODE (x6)) { case E_DImode: if (pattern581 (x1, E_SImode, E_DImode) != 0) return -1; return 384; /* *subsi3_carryinV */ case E_TImode: if (pattern581 (x1, E_DImode, E_TImode) != 0) return -1; return 385; /* *subdi3_carryinV */ default: return -1; } default: return -1; } default: return -1; } } static int recog_189 (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 (GET_MODE (operands[0])) { case E_SImode: switch (pattern418 (E_SImode)) { case 0: if (! #line 1427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (SImode))))) return -1; return 55; /* load_pair_sw_sisi */ case 1: if (! #line 1427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (SImode))))) return -1; return 57; /* load_pair_sw_sisf */ default: return -1; } case E_SFmode: switch (pattern418 (E_SFmode)) { case 0: if (! #line 1427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (SFmode))))) return -1; return 56; /* load_pair_sw_sfsi */ case 1: if (! #line 1427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (SFmode))))) return -1; return 58; /* load_pair_sw_sfsf */ default: return -1; } case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_mem_pair_operand (operands[1], E_DImode)) return -1; switch (GET_MODE (operands[2])) { case E_DImode: if (!register_operand (operands[2], E_DImode) || !memory_operand (operands[3], E_DImode) || ! #line 1444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DImode))))) return -1; return 59; /* load_pair_dw_didi */ case E_DFmode: if (!register_operand (operands[2], E_DFmode) || !memory_operand (operands[3], E_DFmode) || ! #line 1444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DImode))))) return -1; return 60; /* load_pair_dw_didf */ default: return -1; } case E_DFmode: if (!register_operand (operands[0], E_DFmode) || !aarch64_mem_pair_operand (operands[1], E_DFmode)) return -1; switch (GET_MODE (operands[2])) { case E_DImode: if (!register_operand (operands[2], E_DImode) || !memory_operand (operands[3], E_DImode) || ! #line 1444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 61; /* load_pair_dw_dfdi */ case E_DFmode: if (!register_operand (operands[2], E_DFmode) || !memory_operand (operands[3], E_DFmode)) return -1; if ( #line 1444 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return 62; /* load_pair_dw_dfdf */ if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1194; /* load_pairdfdf */ case E_V8QImode: if (!register_operand (operands[2], E_V8QImode) || !memory_operand (operands[3], E_V8QImode) || ! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1164; /* load_pairdfv8qi */ case E_V4HImode: if (!register_operand (operands[2], E_V4HImode) || !memory_operand (operands[3], E_V4HImode) || ! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1170; /* load_pairdfv4hi */ case E_V4HFmode: if (!register_operand (operands[2], E_V4HFmode) || !memory_operand (operands[3], E_V4HFmode) || ! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1176; /* load_pairdfv4hf */ case E_V2SImode: if (!register_operand (operands[2], E_V2SImode) || !memory_operand (operands[3], E_V2SImode) || ! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1182; /* load_pairdfv2si */ case E_V2SFmode: if (!register_operand (operands[2], E_V2SFmode) || !memory_operand (operands[3], E_V2SFmode) || ! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1188; /* load_pairdfv2sf */ default: return -1; } case E_TFmode: if (!register_operand (operands[0], E_TFmode) || !aarch64_mem_pair_operand (operands[1], E_TFmode) || !register_operand (operands[2], E_TFmode) || !memory_operand (operands[3], E_TFmode) || ! #line 1460 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (TFmode))))) return -1; return 63; /* load_pair_dw_tftf */ case E_V8QImode: switch (pattern419 (E_V8QImode)) { case 0: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1159; /* load_pairv8qiv8qi */ case 1: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1165; /* load_pairv8qiv4hi */ case 2: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1171; /* load_pairv8qiv4hf */ case 3: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1177; /* load_pairv8qiv2si */ case 4: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1183; /* load_pairv8qiv2sf */ case 5: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1189; /* load_pairv8qidf */ default: return -1; } case E_V4HImode: switch (pattern419 (E_V4HImode)) { case 0: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1160; /* load_pairv4hiv8qi */ case 1: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1166; /* load_pairv4hiv4hi */ case 2: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1172; /* load_pairv4hiv4hf */ case 3: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1178; /* load_pairv4hiv2si */ case 4: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1184; /* load_pairv4hiv2sf */ case 5: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1190; /* load_pairv4hidf */ default: return -1; } case E_V4HFmode: switch (pattern419 (E_V4HFmode)) { case 0: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1161; /* load_pairv4hfv8qi */ case 1: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1167; /* load_pairv4hfv4hi */ case 2: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1173; /* load_pairv4hfv4hf */ case 3: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1179; /* load_pairv4hfv2si */ case 4: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1185; /* load_pairv4hfv2sf */ case 5: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1191; /* load_pairv4hfdf */ default: return -1; } case E_V2SImode: switch (pattern419 (E_V2SImode)) { case 0: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1162; /* load_pairv2siv8qi */ case 1: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1168; /* load_pairv2siv4hi */ case 2: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1174; /* load_pairv2siv4hf */ case 3: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1180; /* load_pairv2siv2si */ case 4: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1186; /* load_pairv2siv2sf */ case 5: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1192; /* load_pairv2sidf */ default: return -1; } case E_V2SFmode: switch (pattern419 (E_V2SFmode)) { case 0: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1163; /* load_pairv2sfv8qi */ case 1: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1169; /* load_pairv2sfv4hi */ case 2: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1175; /* load_pairv2sfv4hf */ case 3: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1181; /* load_pairv2sfv2si */ case 4: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1187; /* load_pairv2sfv2sf */ case 5: if (! #line 185 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1193; /* load_pairv2sfdf */ default: return -1; } case E_V16QImode: switch (pattern420 (E_V16QImode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1231; /* load_pairv16qiv16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1238; /* load_pairv16qiv8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1245; /* load_pairv16qiv4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1252; /* load_pairv16qiv2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1259; /* load_pairv16qiv8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1266; /* load_pairv16qiv4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1273; /* load_pairv16qiv2df */ default: return -1; } case E_V8HImode: switch (pattern420 (E_V8HImode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1232; /* load_pairv8hiv16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1239; /* load_pairv8hiv8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1246; /* load_pairv8hiv4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1253; /* load_pairv8hiv2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1260; /* load_pairv8hiv8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1267; /* load_pairv8hiv4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1274; /* load_pairv8hiv2df */ default: return -1; } case E_V4SImode: switch (pattern420 (E_V4SImode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1233; /* load_pairv4siv16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1240; /* load_pairv4siv8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1247; /* load_pairv4siv4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1254; /* load_pairv4siv2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1261; /* load_pairv4siv8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1268; /* load_pairv4siv4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1275; /* load_pairv4siv2df */ default: return -1; } case E_V2DImode: switch (pattern420 (E_V2DImode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1234; /* load_pairv2div16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1241; /* load_pairv2div8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1248; /* load_pairv2div4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1255; /* load_pairv2div2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1262; /* load_pairv2div8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1269; /* load_pairv2div4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1276; /* load_pairv2div2df */ default: return -1; } case E_V8HFmode: switch (pattern420 (E_V8HFmode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1235; /* load_pairv8hfv16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1242; /* load_pairv8hfv8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1249; /* load_pairv8hfv4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1256; /* load_pairv8hfv2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1263; /* load_pairv8hfv8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1270; /* load_pairv8hfv4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1277; /* load_pairv8hfv2df */ default: return -1; } case E_V4SFmode: switch (pattern420 (E_V4SFmode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1236; /* load_pairv4sfv16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1243; /* load_pairv4sfv8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1250; /* load_pairv4sfv4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1257; /* load_pairv4sfv2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1264; /* load_pairv4sfv8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1271; /* load_pairv4sfv4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1278; /* load_pairv4sfv2df */ default: return -1; } case E_V2DFmode: switch (pattern420 (E_V2DFmode)) { case 0: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1237; /* load_pairv2dfv16qi */ case 1: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1244; /* load_pairv2dfv8hi */ case 2: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1251; /* load_pairv2dfv4si */ case 3: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1258; /* load_pairv2dfv2di */ case 4: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1265; /* load_pairv2dfv8hf */ case 5: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1272; /* load_pairv2dfv4sf */ case 6: if (! #line 213 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1279; /* load_pairv2dfv2df */ default: return -1; } default: return -1; } } static int recog_190 (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 = XVECEXP (x1, 0, 1); x3 = XEXP (x2, 1); operands[3] = x3; switch (GET_CODE (operands[1])) { case MEM: return recog_189 (x1, insn, pnum_clobbers); case CONST_INT: case CONST_DOUBLE: case REG: case SUBREG: switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern421 (E_SImode)) { case 0: if (! #line 1477 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (SImode))))) return -1; return 64; /* store_pair_sw_sisi */ case 1: if (! #line 1477 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (SImode))))) return -1; return 66; /* store_pair_sw_sisf */ default: return -1; } case E_SFmode: switch (pattern421 (E_SFmode)) { case 0: if (! #line 1477 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (SFmode))))) return -1; return 65; /* store_pair_sw_sfsi */ case 1: if (! #line 1477 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (SFmode))))) return -1; return 67; /* store_pair_sw_sfsf */ default: return -1; } case E_DImode: if (!aarch64_mem_pair_operand (operands[0], E_DImode) || !aarch64_reg_zero_or_fp_zero (operands[1], E_DImode)) return -1; switch (pattern470 ()) { case 0: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DImode))))) return -1; return 68; /* store_pair_dw_didi */ case 1: if (! #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DImode))))) return -1; return 69; /* store_pair_dw_didf */ default: return -1; } case E_DFmode: if (!aarch64_mem_pair_operand (operands[0], E_DFmode)) return -1; if (aarch64_reg_zero_or_fp_zero (operands[1], E_DFmode)) { switch (pattern470 ()) { case 0: if ( #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return 70; /* store_pair_dw_dfdi */ break; case 1: if ( #line 1494 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return 71; /* store_pair_dw_dfdf */ break; default: break; } } if (!register_operand (operands[1], E_DFmode)) return -1; switch (pattern422 ()) { case 0: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1200; /* vec_store_pairdfv8qi */ case 1: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1206; /* vec_store_pairdfv4hi */ case 2: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1212; /* vec_store_pairdfv4hf */ case 3: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1218; /* vec_store_pairdfv2si */ case 4: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1224; /* vec_store_pairdfv2sf */ case 5: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (DFmode))))) return -1; return 1230; /* vec_store_pairdfdf */ default: return -1; } case E_TFmode: if (!aarch64_mem_pair_operand (operands[0], E_TFmode) || !register_operand (operands[1], E_TFmode) || !memory_operand (operands[2], E_TFmode) || !register_operand (operands[3], E_TFmode) || ! #line 1510 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (TFmode))))) return -1; return 72; /* store_pair_dw_tftf */ case E_V8QImode: switch (pattern423 (E_V8QImode)) { case 0: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1195; /* vec_store_pairv8qiv8qi */ case 1: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1201; /* vec_store_pairv8qiv4hi */ case 2: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1207; /* vec_store_pairv8qiv4hf */ case 3: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1213; /* vec_store_pairv8qiv2si */ case 4: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1219; /* vec_store_pairv8qiv2sf */ case 5: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8QImode))))) return -1; return 1225; /* vec_store_pairv8qidf */ default: return -1; } case E_V4HImode: switch (pattern423 (E_V4HImode)) { case 0: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1196; /* vec_store_pairv4hiv8qi */ case 1: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1202; /* vec_store_pairv4hiv4hi */ case 2: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1208; /* vec_store_pairv4hiv4hf */ case 3: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1214; /* vec_store_pairv4hiv2si */ case 4: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1220; /* vec_store_pairv4hiv2sf */ case 5: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HImode))))) return -1; return 1226; /* vec_store_pairv4hidf */ default: return -1; } case E_V4HFmode: switch (pattern423 (E_V4HFmode)) { case 0: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1197; /* vec_store_pairv4hfv8qi */ case 1: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1203; /* vec_store_pairv4hfv4hi */ case 2: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1209; /* vec_store_pairv4hfv4hf */ case 3: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1215; /* vec_store_pairv4hfv2si */ case 4: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1221; /* vec_store_pairv4hfv2sf */ case 5: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4HFmode))))) return -1; return 1227; /* vec_store_pairv4hfdf */ default: return -1; } case E_V2SImode: switch (pattern423 (E_V2SImode)) { case 0: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1198; /* vec_store_pairv2siv8qi */ case 1: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1204; /* vec_store_pairv2siv4hi */ case 2: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1210; /* vec_store_pairv2siv4hf */ case 3: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1216; /* vec_store_pairv2siv2si */ case 4: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1222; /* vec_store_pairv2siv2sf */ case 5: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SImode))))) return -1; return 1228; /* vec_store_pairv2sidf */ default: return -1; } case E_V2SFmode: switch (pattern423 (E_V2SFmode)) { case 0: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1199; /* vec_store_pairv2sfv8qi */ case 1: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1205; /* vec_store_pairv2sfv4hi */ case 2: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1211; /* vec_store_pairv2sfv4hf */ case 3: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1217; /* vec_store_pairv2sfv2si */ case 4: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1223; /* vec_store_pairv2sfv2sf */ case 5: if (! #line 199 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2SFmode))))) return -1; return 1229; /* vec_store_pairv2sfdf */ default: return -1; } case E_V16QImode: switch (pattern424 (E_V16QImode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1280; /* vec_store_pairv16qiv16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1287; /* vec_store_pairv16qiv8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1294; /* vec_store_pairv16qiv4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1301; /* vec_store_pairv16qiv2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1308; /* vec_store_pairv16qiv8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1315; /* vec_store_pairv16qiv4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V16QImode))))) return -1; return 1322; /* vec_store_pairv16qiv2df */ default: return -1; } case E_V8HImode: switch (pattern424 (E_V8HImode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1281; /* vec_store_pairv8hiv16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1288; /* vec_store_pairv8hiv8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1295; /* vec_store_pairv8hiv4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1302; /* vec_store_pairv8hiv2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1309; /* vec_store_pairv8hiv8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1316; /* vec_store_pairv8hiv4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HImode))))) return -1; return 1323; /* vec_store_pairv8hiv2df */ default: return -1; } case E_V4SImode: switch (pattern424 (E_V4SImode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1282; /* vec_store_pairv4siv16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1289; /* vec_store_pairv4siv8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1296; /* vec_store_pairv4siv4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1303; /* vec_store_pairv4siv2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1310; /* vec_store_pairv4siv8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1317; /* vec_store_pairv4siv4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SImode))))) return -1; return 1324; /* vec_store_pairv4siv2df */ default: return -1; } case E_V2DImode: switch (pattern424 (E_V2DImode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1283; /* vec_store_pairv2div16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1290; /* vec_store_pairv2div8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1297; /* vec_store_pairv2div4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1304; /* vec_store_pairv2div2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1311; /* vec_store_pairv2div8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1318; /* vec_store_pairv2div4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DImode))))) return -1; return 1325; /* vec_store_pairv2div2df */ default: return -1; } case E_V8HFmode: switch (pattern424 (E_V8HFmode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1284; /* vec_store_pairv8hfv16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1291; /* vec_store_pairv8hfv8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1298; /* vec_store_pairv8hfv4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1305; /* vec_store_pairv8hfv2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1312; /* vec_store_pairv8hfv8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1319; /* vec_store_pairv8hfv4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V8HFmode))))) return -1; return 1326; /* vec_store_pairv8hfv2df */ default: return -1; } case E_V4SFmode: switch (pattern424 (E_V4SFmode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1285; /* vec_store_pairv4sfv16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1292; /* vec_store_pairv4sfv8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1299; /* vec_store_pairv4sfv4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1306; /* vec_store_pairv4sfv2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1313; /* vec_store_pairv4sfv8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1320; /* vec_store_pairv4sfv4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V4SFmode))))) return -1; return 1327; /* vec_store_pairv4sfv2df */ default: return -1; } case E_V2DFmode: switch (pattern424 (E_V2DFmode)) { case 0: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1286; /* vec_store_pairv2dfv16qi */ case 1: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1293; /* vec_store_pairv2dfv8hi */ case 2: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1300; /* vec_store_pairv2dfv4si */ case 3: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1307; /* vec_store_pairv2dfv2di */ case 4: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1314; /* vec_store_pairv2dfv8hf */ case 5: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1321; /* vec_store_pairv2dfv4sf */ case 6: if (! #line 227 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && rtx_equal_p (XEXP (operands[2], 0), plus_constant (Pmode, XEXP (operands[0], 0), GET_MODE_SIZE (V2DFmode))))) return -1; return 1328; /* vec_store_pairv2dfv2df */ default: return -1; } default: return -1; } default: return -1; } } static int recog_191 (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); x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 66) return -1; x4 = XEXP (x2, 1); x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case PLUS: return recog_187 (x1, insn, pnum_clobbers); case MINUS: return recog_188 (x1, insn, pnum_clobbers); case SIGN_EXTEND: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET || GET_MODE (x3) != E_CC_Vmode || GET_MODE (x4) != E_CC_Vmode) return -1; x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x5, 0); switch (GET_CODE (x8)) { case MINUS: x9 = XEXP (x4, 1); if (GET_CODE (x9) != MINUS) return -1; x10 = XEXP (x9, 0); if (GET_CODE (x10) != SIGN_EXTEND) return -1; x11 = XEXP (x6, 1); if (GET_CODE (x11) != MINUS) return -1; x12 = XEXP (x8, 0); operands[1] = x12; x13 = XEXP (x8, 1); operands[2] = x13; x14 = XEXP (x10, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; x16 = XEXP (x11, 1); if (!rtx_equal_p (x16, operands[2])) return -1; switch (GET_CODE (operands[2])) { case REG: case SUBREG: x17 = XEXP (x9, 1); if (GET_CODE (x17) != SIGN_EXTEND) return -1; x18 = XEXP (x17, 0); if (!rtx_equal_p (x18, operands[2])) return -1; switch (GET_MODE (x5)) { case E_DImode: if (pattern576 (x1, E_SImode, E_DImode) != 0) return -1; return 298; /* subvsi_insn */ case E_TImode: if (pattern576 (x1, E_DImode, E_TImode) != 0) return -1; return 299; /* subvdi_insn */ default: return -1; } case CONST_INT: x17 = XEXP (x9, 1); if (!rtx_equal_p (x17, operands[2])) return -1; switch (GET_MODE (x5)) { case E_DImode: if (pattern575 (x1, E_SImode, E_DImode) != 0) return -1; return 300; /* subvsi_imm */ case E_TImode: if (pattern575 (x1, E_DImode, E_TImode) != 0) return -1; return 301; /* subvdi_imm */ default: return -1; } default: return -1; } case NEG: x9 = XEXP (x4, 1); if (GET_CODE (x9) != NEG) return -1; x10 = XEXP (x9, 0); if (GET_CODE (x10) != SIGN_EXTEND) return -1; x11 = XEXP (x6, 1); if (GET_CODE (x11) != NEG) return -1; x12 = XEXP (x8, 0); operands[1] = x12; x14 = XEXP (x10, 0); if (!rtx_equal_p (x14, operands[1])) return -1; x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; switch (GET_MODE (x5)) { case E_DImode: if (pattern545 (x1, E_SImode, E_DImode) != 0) return -1; return 302; /* negvsi_insn */ case E_TImode: if (pattern545 (x1, E_DImode, E_TImode) != 0) return -1; return 303; /* negvdi_insn */ default: return -1; } default: return -1; } case CONST_INT: case REG: case SUBREG: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET || GET_MODE (x3) != E_CCmode || GET_MODE (x4) != E_CCmode) return -1; x7 = XEXP (x6, 0); operands[0] = x7; if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 0]) { res = recog_185 (x1, insn, pnum_clobbers); if (res >= 0) return res; } operands[1] = x5; x9 = XEXP (x4, 1); operands[2] = x9; x11 = XEXP (x6, 1); switch (GET_CODE (x11)) { case PLUS: if (GET_MODE (x11) == E_SImode && pattern498 (x11, E_SImode) == 0 && #line 3011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) == -UINTVAL (operands[3]))) return 313; /* subsi3_compare1_imm */ if (GET_MODE (x11) != E_DImode || pattern498 (x11, E_DImode) != 0 || ! #line 3011 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) == -UINTVAL (operands[3]))) return -1; return 314; /* subdi3_compare1_imm */ case MINUS: if (GET_MODE (x11) == E_SImode && pattern499 (x11, E_SImode) == 0) return 315; /* subsi3_compare1 */ if (GET_MODE (x11) != E_DImode || pattern499 (x11, E_DImode) != 0) return -1; return 316; /* subdi3_compare1 */ default: return -1; } case NEG: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x5, 0); switch (GET_CODE (x8)) { case PLUS: if (GET_MODE (x8) != E_TImode) return -1; x12 = XEXP (x8, 0); if (GET_CODE (x12) != LTU || GET_MODE (x12) != E_TImode) return -1; x19 = XEXP (x12, 0); if (GET_CODE (x19) != REG || REGNO (x19) != 66 || GET_MODE (x19) != E_CCmode) return -1; x20 = XEXP (x12, 1); if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x13 = XEXP (x8, 1); if (GET_CODE (x13) != SIGN_EXTEND || GET_MODE (x13) != E_TImode) return -1; x9 = XEXP (x4, 1); if (GET_CODE (x9) != SIGN_EXTEND || GET_MODE (x9) != E_TImode) return -1; x10 = XEXP (x9, 0); if (GET_CODE (x10) != NEG || GET_MODE (x10) != E_DImode) return -1; x14 = XEXP (x10, 0); if (GET_CODE (x14) != PLUS || GET_MODE (x14) != E_DImode) return -1; x21 = XEXP (x14, 0); if (GET_CODE (x21) != LTU || GET_MODE (x21) != E_DImode) return -1; x22 = XEXP (x21, 0); if (GET_CODE (x22) != REG || REGNO (x22) != 66 || GET_MODE (x22) != E_CCmode) return -1; x23 = XEXP (x21, 1); if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x11 = XEXP (x6, 1); if (GET_CODE (x11) != NEG || GET_MODE (x11) != E_DImode) return -1; x15 = XEXP (x11, 0); if (GET_CODE (x15) != PLUS || GET_MODE (x15) != E_DImode) return -1; x24 = XEXP (x15, 0); if (GET_CODE (x24) != LTU || GET_MODE (x24) != E_DImode) return -1; x25 = XEXP (x24, 0); if (GET_CODE (x25) != REG || REGNO (x25) != 66 || GET_MODE (x25) != E_CCmode) return -1; x26 = XEXP (x24, 1); if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x3) != E_CC_Vmode || GET_MODE (x4) != E_CC_Vmode || GET_MODE (x5) != E_TImode) return -1; x27 = XEXP (x13, 0); operands[1] = x27; if (!register_operand (operands[1], E_DImode) || !register_operand (operands[0], E_DImode)) return -1; x28 = XEXP (x14, 1); if (!rtx_equal_p (x28, operands[1])) return -1; x29 = XEXP (x15, 1); if (!rtx_equal_p (x29, operands[1])) return -1; return 309; /* negvdi_carryinV */ case REG: case SUBREG: operands[1] = x8; x9 = XEXP (x4, 1); if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0] || GET_MODE (x3) != E_CC_NZmode || GET_MODE (x4) != E_CC_NZmode) return -1; x11 = XEXP (x6, 1); switch (GET_CODE (x11)) { case NEG: x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; switch (GET_MODE (x5)) { case E_SImode: if (!register_operand (operands[1], E_SImode) || !register_operand (operands[0], E_SImode) || GET_MODE (x11) != E_SImode) return -1; return 398; /* negsi2_compare0 */ case E_DImode: if (!register_operand (operands[1], E_DImode) || !register_operand (operands[0], E_DImode) || GET_MODE (x11) != E_DImode) return -1; return 399; /* negdi2_compare0 */ default: return -1; } case ZERO_EXTEND: if (pattern500 (x1, NEG) != 0 || !register_operand (operands[0], E_DImode)) return -1; x15 = XEXP (x11, 0); x24 = XEXP (x15, 0); if (!rtx_equal_p (x24, operands[1])) return -1; return 400; /* *negsi2_compare0_uxtw */ default: return -1; } case ASHIFT: switch (pattern396 (x1, ASHIFT)) { case 0: return 401; /* *neg_lslsi3_compare0 */ case 1: return 404; /* *neg_lsldi3_compare0 */ default: return -1; } case ASHIFTRT: switch (pattern396 (x1, ASHIFTRT)) { case 0: return 402; /* *neg_asrsi3_compare0 */ case 1: return 405; /* *neg_asrdi3_compare0 */ default: return -1; } case LSHIFTRT: switch (pattern396 (x1, LSHIFTRT)) { case 0: return 403; /* *neg_lsrsi3_compare0 */ case 1: return 406; /* *neg_lsrdi3_compare0 */ default: return -1; } default: return -1; } case ZERO_EXTEND: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x8 = XEXP (x5, 0); operands[1] = x8; x7 = XEXP (x6, 0); operands[0] = x7; x9 = XEXP (x4, 1); switch (GET_CODE (x9)) { case GEU: case LTU: operands[2] = x9; x11 = XEXP (x6, 1); if (GET_CODE (x11) != MINUS || GET_MODE (x3) != E_CCmode || GET_MODE (x4) != E_CCmode) return -1; x16 = XEXP (x11, 1); operands[3] = x16; x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; switch (GET_MODE (x5)) { case E_DImode: if (pattern540 (x11, E_SImode, E_DImode) != 0) return -1; return 378; /* *usubsi3_carryinC_z2 */ case E_TImode: if (pattern540 (x11, E_DImode, E_TImode) != 0) return -1; return 379; /* *usubdi3_carryinC_z2 */ default: return -1; } case PLUS: x10 = XEXP (x9, 0); if (GET_CODE (x10) != ZERO_EXTEND) return -1; x11 = XEXP (x6, 1); if (GET_CODE (x11) != MINUS) return -1; x15 = XEXP (x11, 0); if (GET_CODE (x15) != MINUS || GET_MODE (x3) != E_CCmode || GET_MODE (x4) != E_CCmode) return -1; x14 = XEXP (x10, 0); operands[2] = x14; x17 = XEXP (x9, 1); operands[3] = x17; x16 = XEXP (x11, 1); operands[4] = x16; x24 = XEXP (x15, 0); if (!rtx_equal_p (x24, operands[1])) return -1; x29 = XEXP (x15, 1); if (!rtx_equal_p (x29, operands[2])) return -1; switch (GET_MODE (x5)) { case E_DImode: if (pattern569 (x1, E_SImode, E_DImode) != 0) return -1; return 380; /* *usubsi3_carryinC */ case E_TImode: if (pattern569 (x1, E_DImode, E_TImode) != 0) return -1; return 381; /* *usubdi3_carryinC */ default: return -1; } case CONST_INT: if (XWINT (x9, 0) != 0L) return -1; x11 = XEXP (x6, 1); if (GET_CODE (x11) != ZERO_EXTEND || GET_MODE (x3) != E_CC_NZmode || GET_MODE (x4) != E_CC_NZmode) return -1; x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; switch (GET_MODE (x5)) { case E_SImode: switch (pattern525 (x11, E_SImode)) { case 0: return 685; /* *andsqi_compare0 */ case 1: return 687; /* *andshi_compare0 */ default: return -1; } case E_DImode: switch (pattern525 (x11, E_DImode)) { case 0: return 686; /* *andsqi_compare0 */ case 1: return 688; /* *andshi_compare0 */ default: return -1; } default: return -1; } default: return -1; } case AND: x9 = XEXP (x4, 1); if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET || GET_MODE (x3) != E_CC_NZmode || GET_MODE (x4) != E_CC_NZmode) return -1; x7 = XEXP (x6, 0); operands[0] = x7; x8 = XEXP (x5, 0); switch (GET_CODE (x8)) { case REG: case SUBREG: operands[1] = x8; x30 = XEXP (x5, 1); operands[2] = x30; x11 = XEXP (x6, 1); switch (GET_CODE (x11)) { case AND: x15 = XEXP (x11, 0); if (!rtx_equal_p (x15, operands[1])) return -1; x16 = XEXP (x11, 1); if (!rtx_equal_p (x16, operands[2])) return -1; switch (GET_MODE (x5)) { case E_SImode: if (pattern546 (x11, E_SImode) != 0) return -1; return 535; /* *andsi3_compare0 */ case E_DImode: if (pattern546 (x11, E_DImode) != 0) return -1; return 536; /* *anddi3_compare0 */ default: return -1; } case ZERO_EXTEND: if (pattern516 (x1, AND) != 0 || !register_operand (operands[1], E_SImode) || !aarch64_logical_operand (operands[2], E_SImode) || !register_operand (operands[0], E_DImode)) return -1; x15 = XEXP (x11, 0); x24 = XEXP (x15, 0); if (!rtx_equal_p (x24, operands[1])) return -1; x29 = XEXP (x15, 1); if (!rtx_equal_p (x29, operands[2])) return -1; return 537; /* *andsi3_compare0_uxtw */ default: return -1; } case ASHIFT: switch (pattern465 (x1, ASHIFT)) { case 0: return 538; /* *and_ashlsi3_compare0 */ case 1: return 542; /* *and_ashldi3_compare0 */ case 2: return 546; /* *and_ashlsi3_compare0_uxtw */ default: return -1; } case ASHIFTRT: switch (pattern465 (x1, ASHIFTRT)) { case 0: return 539; /* *and_ashrsi3_compare0 */ case 1: return 543; /* *and_ashrdi3_compare0 */ case 2: return 547; /* *and_ashrsi3_compare0_uxtw */ default: return -1; } case LSHIFTRT: switch (pattern465 (x1, LSHIFTRT)) { case 0: return 540; /* *and_lshrsi3_compare0 */ case 1: return 544; /* *and_lshrdi3_compare0 */ case 2: return 548; /* *and_lshrsi3_compare0_uxtw */ default: return -1; } case ROTATERT: switch (pattern465 (x1, ROTATERT)) { case 0: return 541; /* *and_rotrsi3_compare0 */ case 1: return 545; /* *and_rotrdi3_compare0 */ case 2: return 549; /* *and_rotrsi3_compare0_uxtw */ default: return -1; } case NOT: x12 = XEXP (x8, 0); switch (GET_CODE (x12)) { case REG: case SUBREG: operands[1] = x12; x30 = XEXP (x5, 1); operands[2] = x30; x11 = XEXP (x6, 1); switch (GET_CODE (x11)) { case AND: x15 = XEXP (x11, 0); if (GET_CODE (x15) != NOT) return -1; x24 = XEXP (x15, 0); if (!rtx_equal_p (x24, operands[1])) return -1; x16 = XEXP (x11, 1); if (!rtx_equal_p (x16, operands[2])) return -1; switch (GET_MODE (x5)) { case E_SImode: if (pattern562 (x1, E_SImode) != 0) return -1; return 614; /* *and_one_cmplsi3_compare0 */ case E_DImode: if (pattern562 (x1, E_DImode) != 0) return -1; return 615; /* *and_one_cmpldi3_compare0 */ default: return -1; } case ZERO_EXTEND: if (GET_MODE (x11) != E_DImode) return -1; x15 = XEXP (x11, 0); if (GET_CODE (x15) != AND || GET_MODE (x15) != E_SImode) return -1; x24 = XEXP (x15, 0); if (GET_CODE (x24) != NOT || GET_MODE (x24) != E_SImode || GET_MODE (x5) != E_SImode || GET_MODE (x8) != E_SImode || !register_operand (operands[1], E_SImode) || !register_operand (operands[2], E_SImode) || !register_operand (operands[0], E_DImode)) return -1; x25 = XEXP (x24, 0); if (!rtx_equal_p (x25, operands[1])) return -1; x29 = XEXP (x15, 1); if (!rtx_equal_p (x29, operands[2])) return -1; return 616; /* *and_one_cmplsi3_compare0_uxtw */ default: return -1; } case ASHIFT: switch (pattern488 (x1, ASHIFT)) { case 0: return 655; /* *and_one_cmpl_ashlsi3_compare0 */ case 1: return 659; /* *and_one_cmpl_ashldi3_compare0 */ case 2: return 663; /* *and_one_cmpl_ashlsi3_compare0_uxtw */ default: return -1; } case ASHIFTRT: switch (pattern488 (x1, ASHIFTRT)) { case 0: return 656; /* *and_one_cmpl_ashrsi3_compare0 */ case 1: return 660; /* *and_one_cmpl_ashrdi3_compare0 */ case 2: return 664; /* *and_one_cmpl_ashrsi3_compare0_uxtw */ default: return -1; } case LSHIFTRT: switch (pattern488 (x1, LSHIFTRT)) { case 0: return 657; /* *and_one_cmpl_lshrsi3_compare0 */ case 1: return 661; /* *and_one_cmpl_lshrdi3_compare0 */ case 2: return 665; /* *and_one_cmpl_lshrsi3_compare0_uxtw */ default: return -1; } case ROTATERT: switch (pattern488 (x1, ROTATERT)) { case 0: return 658; /* *and_one_cmpl_rotrsi3_compare0 */ case 1: return 662; /* *and_one_cmpl_rotrdi3_compare0 */ case 2: return 666; /* *and_one_cmpl_rotrsi3_compare0_uxtw */ default: return -1; } default: return -1; } default: return -1; } case UNSPEC: return recog_186 (x1, insn, pnum_clobbers); default: return -1; } } static int recog_192 (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); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 1); switch (XVECLEN (x4, 0)) { case 1: if (XINT (x4, 1) != 77) return -1; x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != SET) return -1; x6 = XEXP (x5, 1); if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x7 = XVECEXP (x4, 0, 0); operands[1] = x7; x8 = XEXP (x5, 0); operands[2] = x8; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern437 (x4, E_SImode) != 0 || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; return 1077; /* stack_protect_set_si */ case E_DImode: if (pattern437 (x4, E_DImode) != 0 || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1078; /* stack_protect_set_di */ default: return -1; } case 2: x5 = XVECEXP (x1, 0, 1); if (GET_CODE (x5) != CLOBBER) return -1; x7 = XVECEXP (x4, 0, 0); operands[1] = x7; switch (XINT (x4, 1)) { case 78: x9 = XVECEXP (x4, 0, 1); operands[2] = x9; x8 = XEXP (x5, 0); operands[3] = x8; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern438 (x4, E_SImode) != 0 || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return -1; return 1079; /* stack_protect_test_si */ case E_DImode: if (pattern438 (x4, E_DImode) != 0 || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1080; /* stack_protect_test_di */ default: return -1; } case 97: x8 = XEXP (x5, 0); if (GET_CODE (x8) != REG || REGNO (x8) != 66 || GET_MODE (x8) != E_CCmode) return -1; x9 = XVECEXP (x4, 0, 1); operands[2] = x9; switch (GET_MODE (operands[0])) { case E_VNx16BImode: if (!register_operand (operands[0], E_VNx16BImode) || GET_MODE (x4) != E_VNx16BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4251; /* while_ultsivnx16bi */ if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4252; /* while_ultdivnx16bi */ case E_VNx8BImode: if (!register_operand (operands[0], E_VNx8BImode) || GET_MODE (x4) != E_VNx8BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4253; /* while_ultsivnx8bi */ if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4254; /* while_ultdivnx8bi */ case E_VNx4BImode: if (!register_operand (operands[0], E_VNx4BImode) || GET_MODE (x4) != E_VNx4BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4255; /* while_ultsivnx4bi */ if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4256; /* while_ultdivnx4bi */ case E_VNx2BImode: if (!register_operand (operands[0], E_VNx2BImode) || GET_MODE (x4) != E_VNx2BImode) return -1; if (aarch64_reg_or_zero (operands[1], E_SImode) && aarch64_reg_or_zero (operands[2], E_SImode) && #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return 4257; /* while_ultsivnx2bi */ if (!aarch64_reg_or_zero (operands[1], E_DImode) || !aarch64_reg_or_zero (operands[2], E_DImode) || ! #line 1341 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4258; /* while_ultdivnx2bi */ default: return -1; } case 89: x8 = XEXP (x5, 0); if (GET_CODE (x8) != REG || REGNO (x8) != 66 || GET_MODE (x8) != E_CCmode) return -1; x9 = XVECEXP (x4, 0, 1); switch (GET_CODE (x9)) { case LT: switch (pattern467 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4267; /* *cmpltvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4277; /* *cmpltvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4287; /* *cmpltvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4297; /* *cmpltvnx2di */ default: return -1; } case LE: switch (pattern467 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4268; /* *cmplevnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4278; /* *cmplevnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4288; /* *cmplevnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4298; /* *cmplevnx2di */ default: return -1; } case EQ: switch (pattern467 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4269; /* *cmpeqvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4279; /* *cmpeqvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4289; /* *cmpeqvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4299; /* *cmpeqvnx2di */ default: return -1; } case NE: switch (pattern467 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4270; /* *cmpnevnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4280; /* *cmpnevnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4290; /* *cmpnevnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4300; /* *cmpnevnx2di */ default: return -1; } case GE: switch (pattern467 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4271; /* *cmpgevnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4281; /* *cmpgevnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4291; /* *cmpgevnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4301; /* *cmpgevnx2di */ default: return -1; } case GT: switch (pattern467 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4272; /* *cmpgtvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4282; /* *cmpgtvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4292; /* *cmpgtvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4302; /* *cmpgtvnx2di */ default: return -1; } case LTU: switch (pattern469 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4273; /* *cmplovnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4283; /* *cmplovnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4293; /* *cmplovnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4303; /* *cmplovnx2di */ default: return -1; } case LEU: switch (pattern469 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4274; /* *cmplsvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4284; /* *cmplsvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4294; /* *cmplsvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4304; /* *cmplsvnx2di */ default: return -1; } case GEU: switch (pattern469 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4275; /* *cmphsvnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4285; /* *cmphsvnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4295; /* *cmphsvnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4305; /* *cmphsvnx2di */ default: return -1; } case GTU: switch (pattern469 (x4)) { case 0: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4276; /* *cmphivnx16qi */ case 1: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4286; /* *cmphivnx8hi */ case 2: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4296; /* *cmphivnx4si */ case 3: if (! #line 1386 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4306; /* *cmphivnx2di */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_193 (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); x3 = XEXP (x2, 0); operands[0] = x3; x4 = XEXP (x2, 1); x5 = XEXP (x4, 0); switch (GET_CODE (x5)) { case SUBREG: case MEM: if (pnum_clobbers == NULL) return -1; operands[1] = x5; x6 = XVECEXP (x1, 0, 1); if (pattern33 (x6, 20, UNSPEC_VOLATILE, 3) != 0) return -1; switch (pattern136 (x1)) { case 0: *pnum_clobbers = 2; return 3735; /* aarch64_atomic_and_fetchqi */ case 1: *pnum_clobbers = 2; return 3740; /* aarch64_atomic_and_fetchhi */ case 2: *pnum_clobbers = 2; return 3745; /* aarch64_atomic_and_fetchsi */ case 3: *pnum_clobbers = 2; return 3750; /* aarch64_atomic_and_fetchdi */ default: return -1; } case UNSPEC: if (XVECLEN (x5, 0) != 2 || XINT (x5, 1) != 89) return -1; x6 = XVECEXP (x1, 0, 1); if (pattern140 (x6, E_CCmode, 66) != 0) return -1; switch (pattern443 (x4)) { case 0: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4387; /* *pred_cmpltvnx16qi_combine */ case 1: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4397; /* *pred_cmpltvnx8hi_combine */ case 2: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4407; /* *pred_cmpltvnx4si_combine */ case 3: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4417; /* *pred_cmpltvnx2di_combine */ case 4: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4388; /* *pred_cmplevnx16qi_combine */ case 5: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4398; /* *pred_cmplevnx8hi_combine */ case 6: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4408; /* *pred_cmplevnx4si_combine */ case 7: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4418; /* *pred_cmplevnx2di_combine */ case 8: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4389; /* *pred_cmpeqvnx16qi_combine */ case 9: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4399; /* *pred_cmpeqvnx8hi_combine */ case 10: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4409; /* *pred_cmpeqvnx4si_combine */ case 11: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4419; /* *pred_cmpeqvnx2di_combine */ case 12: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4390; /* *pred_cmpnevnx16qi_combine */ case 13: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4400; /* *pred_cmpnevnx8hi_combine */ case 14: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4410; /* *pred_cmpnevnx4si_combine */ case 15: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4420; /* *pred_cmpnevnx2di_combine */ case 16: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4391; /* *pred_cmpgevnx16qi_combine */ case 17: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4401; /* *pred_cmpgevnx8hi_combine */ case 18: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4411; /* *pred_cmpgevnx4si_combine */ case 19: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4421; /* *pred_cmpgevnx2di_combine */ case 20: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4392; /* *pred_cmpgtvnx16qi_combine */ case 21: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4402; /* *pred_cmpgtvnx8hi_combine */ case 22: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4412; /* *pred_cmpgtvnx4si_combine */ case 23: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4422; /* *pred_cmpgtvnx2di_combine */ case 24: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4393; /* *pred_cmplovnx16qi_combine */ case 25: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4403; /* *pred_cmplovnx8hi_combine */ case 26: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4413; /* *pred_cmplovnx4si_combine */ case 27: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4423; /* *pred_cmplovnx2di_combine */ case 28: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4394; /* *pred_cmplsvnx16qi_combine */ case 29: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4404; /* *pred_cmplsvnx8hi_combine */ case 30: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4414; /* *pred_cmplsvnx4si_combine */ case 31: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4424; /* *pred_cmplsvnx2di_combine */ case 32: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4395; /* *pred_cmphsvnx16qi_combine */ case 33: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4405; /* *pred_cmphsvnx8hi_combine */ case 34: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4415; /* *pred_cmphsvnx4si_combine */ case 35: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4425; /* *pred_cmphsvnx2di_combine */ case 36: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4396; /* *pred_cmphivnx16qi_combine */ case 37: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4406; /* *pred_cmphivnx8hi_combine */ case 38: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4416; /* *pred_cmphivnx4si_combine */ case 39: if (! #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4426; /* *pred_cmphivnx2di_combine */ default: return -1; } case LT: switch (pattern222 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4427; /* *pred_cmpltvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4437; /* *pred_cmpltvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4447; /* *pred_cmpltvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4457; /* *pred_cmpltvnx2di */ default: return -1; } case LE: switch (pattern222 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4428; /* *pred_cmplevnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4438; /* *pred_cmplevnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4448; /* *pred_cmplevnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4458; /* *pred_cmplevnx2di */ default: return -1; } case EQ: switch (pattern222 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4429; /* *pred_cmpeqvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4439; /* *pred_cmpeqvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4449; /* *pred_cmpeqvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4459; /* *pred_cmpeqvnx2di */ default: return -1; } case NE: switch (pattern222 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4430; /* *pred_cmpnevnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4440; /* *pred_cmpnevnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4450; /* *pred_cmpnevnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4460; /* *pred_cmpnevnx2di */ default: return -1; } case GE: switch (pattern222 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4431; /* *pred_cmpgevnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4441; /* *pred_cmpgevnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4451; /* *pred_cmpgevnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4461; /* *pred_cmpgevnx2di */ default: return -1; } case GT: switch (pattern222 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4432; /* *pred_cmpgtvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4442; /* *pred_cmpgtvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4452; /* *pred_cmpgtvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4462; /* *pred_cmpgtvnx2di */ default: return -1; } case LTU: switch (pattern224 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4433; /* *pred_cmplovnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4443; /* *pred_cmplovnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4453; /* *pred_cmplovnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4463; /* *pred_cmplovnx2di */ default: return -1; } case LEU: switch (pattern224 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4434; /* *pred_cmplsvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4444; /* *pred_cmplsvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4454; /* *pred_cmplsvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4464; /* *pred_cmplsvnx2di */ default: return -1; } case GEU: switch (pattern224 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4435; /* *pred_cmphsvnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4445; /* *pred_cmphsvnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4455; /* *pred_cmphsvnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4465; /* *pred_cmphsvnx2di */ default: return -1; } case GTU: switch (pattern224 (x1)) { case 0: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4436; /* *pred_cmphivnx16qi */ case 1: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4446; /* *pred_cmphivnx8hi */ case 2: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4456; /* *pred_cmphivnx4si */ case 3: if (! #line 1479 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 4466; /* *pred_cmphivnx2di */ default: return -1; } default: return -1; } } static int recog_194 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 1); if (GET_CODE (x2) != SET) return -1; x3 = XVECEXP (x1, 0, 0); x4 = XEXP (x3, 0); operands[0] = x4; x5 = XEXP (x3, 1); operands[1] = x5; x6 = XEXP (x2, 0); operands[2] = x6; res = recog_190 (x1, insn, pnum_clobbers); if (res >= 0) return res; x7 = XEXP (x2, 1); if (GET_CODE (x7) != UNSPEC_VOLATILE || !rtx_equal_p (x6, operands[1])) return -1; switch (XVECLEN (x7, 0)) { case 3: x8 = XVECEXP (x7, 0, 1); operands[2] = x8; x9 = XVECEXP (x7, 0, 2); operands[3] = x9; if (!const_int_operand (operands[3], E_SImode)) return -1; switch (XINT (x7, 1)) { case 16: x10 = XVECEXP (x7, 0, 0); if (!rtx_equal_p (x10, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern517 (x7, E_SImode) != 0 || ! #line 123 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3641; /* aarch64_compare_and_swapsi_lse */ case E_DImode: if (pattern517 (x7, E_DImode) != 0 || ! #line 123 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3642; /* aarch64_compare_and_swapdi_lse */ default: return -1; } case 21: switch (pattern490 (x7)) { case 0: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3711; /* aarch64_atomic_fetch_iorqi_lse */ case 1: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3715; /* aarch64_atomic_fetch_iorhi_lse */ case 2: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3719; /* aarch64_atomic_fetch_iorsi_lse */ case 3: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3723; /* aarch64_atomic_fetch_iordi_lse */ default: return -1; } case 22: switch (pattern490 (x7)) { case 0: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3712; /* aarch64_atomic_fetch_bicqi_lse */ case 1: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3716; /* aarch64_atomic_fetch_bichi_lse */ case 2: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3720; /* aarch64_atomic_fetch_bicsi_lse */ case 3: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3724; /* aarch64_atomic_fetch_bicdi_lse */ default: return -1; } case 23: switch (pattern490 (x7)) { case 0: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3713; /* aarch64_atomic_fetch_xorqi_lse */ case 1: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3717; /* aarch64_atomic_fetch_xorhi_lse */ case 2: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3721; /* aarch64_atomic_fetch_xorsi_lse */ case 3: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3725; /* aarch64_atomic_fetch_xordi_lse */ default: return -1; } case 24: switch (pattern490 (x7)) { case 0: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3714; /* aarch64_atomic_fetch_addqi_lse */ case 1: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3718; /* aarch64_atomic_fetch_addhi_lse */ case 2: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3722; /* aarch64_atomic_fetch_addsi_lse */ case 3: if (! #line 401 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3726; /* aarch64_atomic_fetch_adddi_lse */ default: return -1; } default: return -1; } case 2: x8 = XVECEXP (x7, 0, 1); operands[3] = x8; if (!const_int_operand (operands[3], E_SImode)) return -1; switch (XINT (x7, 1)) { case 17: x10 = XVECEXP (x7, 0, 0); operands[2] = x10; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern501 (x7, E_QImode) != 0) return -1; if (pnum_clobbers != NULL) { *pnum_clobbers = 2; return 3643; /* aarch64_atomic_exchangeqi */ } if (! #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3647; /* aarch64_atomic_exchangeqi_lse */ case E_HImode: if (pattern501 (x7, E_HImode) != 0) return -1; if (pnum_clobbers != NULL) { *pnum_clobbers = 2; return 3644; /* aarch64_atomic_exchangehi */ } if (! #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3648; /* aarch64_atomic_exchangehi_lse */ case E_SImode: if (pattern501 (x7, E_SImode) != 0) return -1; if (pnum_clobbers != NULL) { *pnum_clobbers = 2; return 3645; /* aarch64_atomic_exchangesi */ } if (! #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3649; /* aarch64_atomic_exchangesi_lse */ case E_DImode: if (pattern501 (x7, E_DImode) != 0) return -1; if (pnum_clobbers != NULL) { *pnum_clobbers = 2; return 3646; /* aarch64_atomic_exchangedi */ } if (! #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3650; /* aarch64_atomic_exchangedi_lse */ default: return -1; } case 20: if (pnum_clobbers == NULL) return -1; x10 = XVECEXP (x7, 0, 0); switch (GET_CODE (x10)) { case PLUS: switch (pattern503 (x7)) { case 0: *pnum_clobbers = 3; return 3691; /* aarch64_atomic_fetch_addqi */ case 1: *pnum_clobbers = 3; return 3696; /* aarch64_atomic_fetch_addhi */ case 2: *pnum_clobbers = 3; return 3701; /* aarch64_atomic_fetch_addsi */ case 3: *pnum_clobbers = 3; return 3706; /* aarch64_atomic_fetch_adddi */ default: return -1; } case MINUS: switch (pattern503 (x7)) { case 0: *pnum_clobbers = 3; return 3692; /* aarch64_atomic_fetch_subqi */ case 1: *pnum_clobbers = 3; return 3697; /* aarch64_atomic_fetch_subhi */ case 2: *pnum_clobbers = 3; return 3702; /* aarch64_atomic_fetch_subsi */ case 3: *pnum_clobbers = 3; return 3707; /* aarch64_atomic_fetch_subdi */ default: return -1; } case IOR: switch (pattern505 (x7)) { case 0: *pnum_clobbers = 3; return 3693; /* aarch64_atomic_fetch_orqi */ case 1: *pnum_clobbers = 3; return 3698; /* aarch64_atomic_fetch_orhi */ case 2: *pnum_clobbers = 3; return 3703; /* aarch64_atomic_fetch_orsi */ case 3: *pnum_clobbers = 3; return 3708; /* aarch64_atomic_fetch_ordi */ default: return -1; } case XOR: switch (pattern505 (x7)) { case 0: *pnum_clobbers = 3; return 3694; /* aarch64_atomic_fetch_xorqi */ case 1: *pnum_clobbers = 3; return 3699; /* aarch64_atomic_fetch_xorhi */ case 2: *pnum_clobbers = 3; return 3704; /* aarch64_atomic_fetch_xorsi */ case 3: *pnum_clobbers = 3; return 3709; /* aarch64_atomic_fetch_xordi */ default: return -1; } case AND: switch (pattern505 (x7)) { case 0: *pnum_clobbers = 3; return 3695; /* aarch64_atomic_fetch_andqi */ case 1: *pnum_clobbers = 3; return 3700; /* aarch64_atomic_fetch_andhi */ case 2: *pnum_clobbers = 3; return 3705; /* aarch64_atomic_fetch_andsi */ case 3: *pnum_clobbers = 3; return 3710; /* aarch64_atomic_fetch_anddi */ default: return -1; } case NOT: x11 = XEXP (x10, 0); if (GET_CODE (x11) != AND) return -1; x12 = XEXP (x11, 1); operands[2] = x12; x13 = XEXP (x11, 0); if (!rtx_equal_p (x13, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_QImode: if (pattern553 (x7, E_QImode) != 0) return -1; *pnum_clobbers = 3; return 3727; /* atomic_fetch_nandqi */ case E_HImode: if (pattern553 (x7, E_HImode) != 0) return -1; *pnum_clobbers = 3; return 3728; /* atomic_fetch_nandhi */ case E_SImode: if (pattern553 (x7, E_SImode) != 0) return -1; *pnum_clobbers = 3; return 3729; /* atomic_fetch_nandsi */ case E_DImode: if (pattern553 (x7, E_DImode) != 0) return -1; *pnum_clobbers = 3; return 3730; /* atomic_fetch_nanddi */ default: return -1; } default: return -1; } default: return -1; } default: return -1; } } static int recog_195 (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, 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, x53, x54, x55, x56, x57; rtx x58, x59, x60, x61, x62, x63, x64, x65; rtx x66, x67, x68, x69, x70, x71, x72, x73; rtx x74, x75, x76, x77, x78, x79, x80, x81; rtx x82, x83, x84, x85, x86, x87, x88, x89; rtx x90, x91, x92, x93, x94, x95, x96, x97; rtx x98, x99, x100, x101, x102, x103; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 3); x3 = XEXP (x2, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 32 || GET_MODE (x3) != E_TImode) return -1; x4 = XVECEXP (x1, 0, 4); if (GET_CODE (x4) != CLOBBER_HIGH) return -1; x5 = XEXP (x4, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 33 || GET_MODE (x5) != E_TImode) return -1; x6 = XVECEXP (x1, 0, 5); if (GET_CODE (x6) != CLOBBER_HIGH) return -1; x7 = XEXP (x6, 0); if (GET_CODE (x7) != REG || REGNO (x7) != 34 || GET_MODE (x7) != E_TImode) return -1; x8 = XVECEXP (x1, 0, 6); if (GET_CODE (x8) != CLOBBER_HIGH) return -1; x9 = XEXP (x8, 0); if (GET_CODE (x9) != REG || REGNO (x9) != 35 || GET_MODE (x9) != E_TImode) return -1; x10 = XVECEXP (x1, 0, 7); if (GET_CODE (x10) != CLOBBER_HIGH) return -1; x11 = XEXP (x10, 0); if (GET_CODE (x11) != REG || REGNO (x11) != 36 || GET_MODE (x11) != E_TImode) return -1; x12 = XVECEXP (x1, 0, 8); if (GET_CODE (x12) != CLOBBER_HIGH) return -1; x13 = XEXP (x12, 0); if (GET_CODE (x13) != REG || REGNO (x13) != 37 || GET_MODE (x13) != E_TImode) return -1; x14 = XVECEXP (x1, 0, 9); if (GET_CODE (x14) != CLOBBER_HIGH) return -1; x15 = XEXP (x14, 0); if (GET_CODE (x15) != REG || REGNO (x15) != 38 || GET_MODE (x15) != E_TImode) return -1; x16 = XVECEXP (x1, 0, 10); if (GET_CODE (x16) != CLOBBER_HIGH) return -1; x17 = XEXP (x16, 0); if (GET_CODE (x17) != REG || REGNO (x17) != 39 || GET_MODE (x17) != E_TImode) return -1; x18 = XVECEXP (x1, 0, 11); if (GET_CODE (x18) != CLOBBER_HIGH) return -1; x19 = XEXP (x18, 0); if (GET_CODE (x19) != REG || REGNO (x19) != 40 || GET_MODE (x19) != E_TImode) return -1; x20 = XVECEXP (x1, 0, 12); if (GET_CODE (x20) != CLOBBER_HIGH) return -1; x21 = XEXP (x20, 0); if (GET_CODE (x21) != REG || REGNO (x21) != 41 || GET_MODE (x21) != E_TImode) return -1; x22 = XVECEXP (x1, 0, 13); if (GET_CODE (x22) != CLOBBER_HIGH) return -1; x23 = XEXP (x22, 0); if (GET_CODE (x23) != REG || REGNO (x23) != 42 || GET_MODE (x23) != E_TImode) return -1; x24 = XVECEXP (x1, 0, 14); if (GET_CODE (x24) != CLOBBER_HIGH) return -1; x25 = XEXP (x24, 0); if (GET_CODE (x25) != REG || REGNO (x25) != 43 || GET_MODE (x25) != E_TImode) return -1; x26 = XVECEXP (x1, 0, 15); if (GET_CODE (x26) != CLOBBER_HIGH) return -1; x27 = XEXP (x26, 0); if (GET_CODE (x27) != REG || REGNO (x27) != 44 || GET_MODE (x27) != E_TImode) return -1; x28 = XVECEXP (x1, 0, 16); if (GET_CODE (x28) != CLOBBER_HIGH) return -1; x29 = XEXP (x28, 0); if (GET_CODE (x29) != REG || REGNO (x29) != 45 || GET_MODE (x29) != E_TImode) return -1; x30 = XVECEXP (x1, 0, 17); if (GET_CODE (x30) != CLOBBER_HIGH) return -1; x31 = XEXP (x30, 0); if (GET_CODE (x31) != REG || REGNO (x31) != 46 || GET_MODE (x31) != E_TImode) return -1; x32 = XVECEXP (x1, 0, 18); if (GET_CODE (x32) != CLOBBER_HIGH) return -1; x33 = XEXP (x32, 0); if (GET_CODE (x33) != REG || REGNO (x33) != 47 || GET_MODE (x33) != E_TImode) return -1; x34 = XVECEXP (x1, 0, 19); if (GET_CODE (x34) != CLOBBER_HIGH) return -1; x35 = XEXP (x34, 0); if (GET_CODE (x35) != REG || REGNO (x35) != 48 || GET_MODE (x35) != E_TImode) return -1; x36 = XVECEXP (x1, 0, 20); if (GET_CODE (x36) != CLOBBER_HIGH) return -1; x37 = XEXP (x36, 0); if (GET_CODE (x37) != REG || REGNO (x37) != 49 || GET_MODE (x37) != E_TImode) return -1; x38 = XVECEXP (x1, 0, 21); if (GET_CODE (x38) != CLOBBER_HIGH) return -1; x39 = XEXP (x38, 0); if (GET_CODE (x39) != REG || REGNO (x39) != 50 || GET_MODE (x39) != E_TImode) return -1; x40 = XVECEXP (x1, 0, 22); if (GET_CODE (x40) != CLOBBER_HIGH) return -1; x41 = XEXP (x40, 0); if (GET_CODE (x41) != REG || REGNO (x41) != 51 || GET_MODE (x41) != E_TImode) return -1; x42 = XVECEXP (x1, 0, 23); if (GET_CODE (x42) != CLOBBER_HIGH) return -1; x43 = XEXP (x42, 0); if (GET_CODE (x43) != REG || REGNO (x43) != 52 || GET_MODE (x43) != E_TImode) return -1; x44 = XVECEXP (x1, 0, 24); if (GET_CODE (x44) != CLOBBER_HIGH) return -1; x45 = XEXP (x44, 0); if (GET_CODE (x45) != REG || REGNO (x45) != 53 || GET_MODE (x45) != E_TImode) return -1; x46 = XVECEXP (x1, 0, 25); if (GET_CODE (x46) != CLOBBER_HIGH) return -1; x47 = XEXP (x46, 0); if (GET_CODE (x47) != REG || REGNO (x47) != 54 || GET_MODE (x47) != E_TImode) return -1; x48 = XVECEXP (x1, 0, 26); if (GET_CODE (x48) != CLOBBER_HIGH) return -1; x49 = XEXP (x48, 0); if (GET_CODE (x49) != REG || REGNO (x49) != 55 || GET_MODE (x49) != E_TImode) return -1; x50 = XVECEXP (x1, 0, 27); if (GET_CODE (x50) != CLOBBER_HIGH) return -1; x51 = XEXP (x50, 0); if (GET_CODE (x51) != REG || REGNO (x51) != 56 || GET_MODE (x51) != E_TImode) return -1; x52 = XVECEXP (x1, 0, 28); if (GET_CODE (x52) != CLOBBER_HIGH) return -1; x53 = XEXP (x52, 0); if (GET_CODE (x53) != REG || REGNO (x53) != 57 || GET_MODE (x53) != E_TImode) return -1; x54 = XVECEXP (x1, 0, 29); if (GET_CODE (x54) != CLOBBER_HIGH) return -1; x55 = XEXP (x54, 0); if (GET_CODE (x55) != REG || REGNO (x55) != 58 || GET_MODE (x55) != E_TImode) return -1; x56 = XVECEXP (x1, 0, 30); if (GET_CODE (x56) != CLOBBER_HIGH) return -1; x57 = XEXP (x56, 0); if (GET_CODE (x57) != REG || REGNO (x57) != 59 || GET_MODE (x57) != E_TImode) return -1; x58 = XVECEXP (x1, 0, 31); if (GET_CODE (x58) != CLOBBER_HIGH) return -1; x59 = XEXP (x58, 0); if (GET_CODE (x59) != REG || REGNO (x59) != 60 || GET_MODE (x59) != E_TImode) return -1; x60 = XVECEXP (x1, 0, 32); if (GET_CODE (x60) != CLOBBER_HIGH) return -1; x61 = XEXP (x60, 0); if (GET_CODE (x61) != REG || REGNO (x61) != 61 || GET_MODE (x61) != E_TImode) return -1; x62 = XVECEXP (x1, 0, 33); if (GET_CODE (x62) != CLOBBER_HIGH) return -1; x63 = XEXP (x62, 0); if (GET_CODE (x63) != REG || REGNO (x63) != 62 || GET_MODE (x63) != E_TImode) return -1; x64 = XVECEXP (x1, 0, 34); if (GET_CODE (x64) != CLOBBER_HIGH) return -1; x65 = XEXP (x64, 0); if (GET_CODE (x65) != REG || REGNO (x65) != 63 || GET_MODE (x65) != E_TImode) return -1; x66 = XVECEXP (x1, 0, 35); if (GET_CODE (x66) != CLOBBER) return -1; x67 = XEXP (x66, 0); if (GET_CODE (x67) != REG || REGNO (x67) != 68 || GET_MODE (x67) != E_VNx2BImode) return -1; x68 = XVECEXP (x1, 0, 36); if (GET_CODE (x68) != CLOBBER) return -1; x69 = XEXP (x68, 0); if (GET_CODE (x69) != REG || REGNO (x69) != 69 || GET_MODE (x69) != E_VNx2BImode) return -1; x70 = XVECEXP (x1, 0, 37); if (GET_CODE (x70) != CLOBBER) return -1; x71 = XEXP (x70, 0); if (GET_CODE (x71) != REG || REGNO (x71) != 70 || GET_MODE (x71) != E_VNx2BImode) return -1; x72 = XVECEXP (x1, 0, 38); if (GET_CODE (x72) != CLOBBER) return -1; x73 = XEXP (x72, 0); if (GET_CODE (x73) != REG || REGNO (x73) != 71 || GET_MODE (x73) != E_VNx2BImode) return -1; x74 = XVECEXP (x1, 0, 39); if (GET_CODE (x74) != CLOBBER) return -1; x75 = XEXP (x74, 0); if (GET_CODE (x75) != REG || REGNO (x75) != 72 || GET_MODE (x75) != E_VNx2BImode) return -1; x76 = XVECEXP (x1, 0, 40); if (GET_CODE (x76) != CLOBBER) return -1; x77 = XEXP (x76, 0); if (GET_CODE (x77) != REG || REGNO (x77) != 73 || GET_MODE (x77) != E_VNx2BImode) return -1; x78 = XVECEXP (x1, 0, 41); if (GET_CODE (x78) != CLOBBER) return -1; x79 = XEXP (x78, 0); if (GET_CODE (x79) != REG || REGNO (x79) != 74 || GET_MODE (x79) != E_VNx2BImode) return -1; x80 = XVECEXP (x1, 0, 42); if (GET_CODE (x80) != CLOBBER) return -1; x81 = XEXP (x80, 0); if (GET_CODE (x81) != REG || REGNO (x81) != 75 || GET_MODE (x81) != E_VNx2BImode) return -1; x82 = XVECEXP (x1, 0, 43); if (GET_CODE (x82) != CLOBBER) return -1; x83 = XEXP (x82, 0); if (GET_CODE (x83) != REG || REGNO (x83) != 76 || GET_MODE (x83) != E_VNx2BImode) return -1; x84 = XVECEXP (x1, 0, 44); if (GET_CODE (x84) != CLOBBER) return -1; x85 = XEXP (x84, 0); if (GET_CODE (x85) != REG || REGNO (x85) != 77 || GET_MODE (x85) != E_VNx2BImode) return -1; x86 = XVECEXP (x1, 0, 45); if (GET_CODE (x86) != CLOBBER) return -1; x87 = XEXP (x86, 0); if (GET_CODE (x87) != REG || REGNO (x87) != 78 || GET_MODE (x87) != E_VNx2BImode) return -1; x88 = XVECEXP (x1, 0, 46); if (GET_CODE (x88) != CLOBBER) return -1; x89 = XEXP (x88, 0); if (GET_CODE (x89) != REG || REGNO (x89) != 79 || GET_MODE (x89) != E_VNx2BImode) return -1; x90 = XVECEXP (x1, 0, 47); if (GET_CODE (x90) != CLOBBER) return -1; x91 = XEXP (x90, 0); if (GET_CODE (x91) != REG || REGNO (x91) != 80 || GET_MODE (x91) != E_VNx2BImode) return -1; x92 = XVECEXP (x1, 0, 48); if (GET_CODE (x92) != CLOBBER) return -1; x93 = XEXP (x92, 0); if (GET_CODE (x93) != REG || REGNO (x93) != 81 || GET_MODE (x93) != E_VNx2BImode) return -1; x94 = XVECEXP (x1, 0, 49); if (GET_CODE (x94) != CLOBBER) return -1; x95 = XEXP (x94, 0); if (GET_CODE (x95) != REG || REGNO (x95) != 82 || GET_MODE (x95) != E_VNx2BImode) return -1; x96 = XVECEXP (x1, 0, 50); if (GET_CODE (x96) != CLOBBER) return -1; x97 = XEXP (x96, 0); if (GET_CODE (x97) != REG || REGNO (x97) != 83 || GET_MODE (x97) != E_VNx2BImode) return -1; x98 = XVECEXP (x1, 0, 51); if (GET_CODE (x98) != CLOBBER) return -1; x99 = XVECEXP (x1, 0, 0); x100 = XEXP (x99, 1); x101 = XVECEXP (x100, 0, 0); operands[0] = x101; if (!aarch64_valid_symref (operands[0], E_VOIDmode)) return -1; x102 = XEXP (x98, 0); operands[1] = x102; if (!scratch_operand (operands[1], E_DImode)) return -1; x103 = XEXP (x99, 0); switch (GET_MODE (x103)) { case E_SImode: if (GET_MODE (x100) != E_SImode || !( #line 6824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode))) return -1; return 1063; /* tlsdesc_small_sve_si */ case E_DImode: if (GET_MODE (x100) != E_DImode || !( #line 6824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode))) return -1; return 1064; /* tlsdesc_small_sve_di */ default: return -1; } } static int recog_196 (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; int res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); switch (GET_CODE (x2)) { case SET: x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case IF_THEN_ELSE: x4 = XEXP (x3, 1); if (GET_CODE (x4) != LABEL_REF) return -1; x5 = XEXP (x3, 2); if (GET_CODE (x5) != PC) return -1; x6 = XEXP (x2, 0); if (GET_CODE (x6) != PC) return -1; x7 = XVECEXP (x1, 0, 1); if (pattern140 (x7, E_CCmode, 66) != 0) return -1; x8 = XEXP (x3, 0); switch (GET_CODE (x8)) { case EQ: switch (pattern435 (x3)) { case 0: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 28; /* *tbeqsi1 */ case 1: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 30; /* *tbeqdi1 */ default: return -1; } case NE: switch (pattern435 (x3)) { case 0: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 29; /* *tbnesi1 */ case 1: if (! #line 824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 31; /* *tbnedi1 */ default: return -1; } case LT: switch (pattern436 (x3)) { case 0: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 32; /* *cbltqi1 */ case 1: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 34; /* *cblthi1 */ case 2: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 36; /* *cbltsi1 */ case 3: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 38; /* *cbltdi1 */ default: return -1; } case GE: switch (pattern436 (x3)) { case 0: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 33; /* *cbgeqi1 */ case 1: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 35; /* *cbgehi1 */ case 2: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 37; /* *cbgesi1 */ case 3: if (! #line 860 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_track_speculation)) return -1; return 39; /* *cbgedi1 */ default: return -1; } default: return -1; } case CALL: x8 = XEXP (x3, 0); if (GET_CODE (x8) != MEM || GET_MODE (x8) != E_DImode) return -1; x6 = XEXP (x2, 0); operands[0] = x6; x9 = XEXP (x8, 0); operands[1] = x9; if (aarch64_call_insn_operand (operands[1], E_DImode)) { x4 = XEXP (x3, 1); operands[2] = x4; x7 = XVECEXP (x1, 0, 1); switch (pattern322 (x7)) { case 0: return 41; /* *call_value_insn */ case 1: if ( #line 994 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (SIBLING_CALL_P (insn))) return 43; /* *sibcall_value_insn */ break; default: break; } } if (pnum_clobbers == NULL || !register_operand (operands[0], E_VOIDmode) || pattern225 (x1) != 0) return -1; operands[2] = x9; x7 = XVECEXP (x1, 0, 1); x10 = XVECEXP (x7, 0, 0); operands[1] = x10; if (aarch64_valid_symref (operands[1], E_SImode) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) { *pnum_clobbers = 1; return 1045; /* *tlsgd_small_si */ } if (!aarch64_valid_symref (operands[1], E_DImode) || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; *pnum_clobbers = 1; return 1046; /* *tlsgd_small_di */ case SIGN_EXTEND: if (GET_MODE (x3) != E_DImode) return -1; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x11 = XEXP (x7, 1); if (GET_CODE (x11) != SIGN_EXTEND || GET_MODE (x11) != E_DImode) return -1; x6 = XEXP (x2, 0); operands[0] = x6; if (!register_operand (operands[0], E_DImode)) return -1; x8 = XEXP (x3, 0); operands[1] = x8; if (!aarch64_mem_pair_operand (operands[1], E_SImode)) return -1; x12 = XEXP (x7, 0); operands[2] = x12; if (!register_operand (operands[2], E_DImode)) return -1; x13 = XEXP (x11, 0); operands[3] = x13; if (!memory_operand (operands[3], E_SImode) || ! #line 1644 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (SImode))))) return -1; return 98; /* *load_pair_extendsidi2_aarch64 */ case ZERO_EXTEND: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != SET) return -1; x6 = XEXP (x2, 0); operands[0] = x6; x8 = XEXP (x3, 0); operands[1] = x8; x11 = XEXP (x7, 1); switch (GET_CODE (x11)) { case ZERO_EXTEND: if (GET_MODE (x11) != E_DImode || !register_operand (operands[0], E_DImode) || GET_MODE (x3) != E_DImode || !aarch64_mem_pair_operand (operands[1], E_SImode)) return -1; x12 = XEXP (x7, 0); operands[2] = x12; if (!register_operand (operands[2], E_DImode)) return -1; x13 = XEXP (x11, 0); operands[3] = x13; if (!memory_operand (operands[3], E_SImode) || ! #line 1672 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (rtx_equal_p (XEXP (operands[3], 0), plus_constant (Pmode, XEXP (operands[1], 0), GET_MODE_SIZE (SImode))))) return -1; return 100; /* *load_pair_zero_extendsidi2_aarch64 */ case UNSPEC_VOLATILE: if (XVECLEN (x11, 0) != 3 || XINT (x11, 1) != 16 || !register_operand (operands[0], E_SImode) || GET_MODE (x3) != E_SImode) return -1; x14 = XVECEXP (x11, 0, 1); operands[2] = x14; x15 = XVECEXP (x11, 0, 2); operands[3] = x15; if (!const_int_operand (operands[3], E_SImode)) return -1; x16 = XVECEXP (x11, 0, 0); if (!rtx_equal_p (x16, operands[0])) return -1; x12 = XEXP (x7, 0); if (!rtx_equal_p (x12, operands[1])) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!aarch64_sync_memory_operand (operands[1], E_QImode) || GET_MODE (x11) != E_QImode || !aarch64_reg_or_zero (operands[2], E_QImode) || ! #line 101 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3639; /* aarch64_compare_and_swapqi_lse */ case E_HImode: if (!aarch64_sync_memory_operand (operands[1], E_HImode) || GET_MODE (x11) != E_HImode || !aarch64_reg_or_zero (operands[2], E_HImode) || ! #line 101 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3640; /* aarch64_compare_and_swaphi_lse */ default: return -1; } default: return -1; } case COMPARE: return recog_191 (x1, insn, pnum_clobbers); case EQ: switch (pattern129 (x1)) { case 0: if (! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), SImode) && !aarch64_plus_operand (operands[2], SImode) && !reload_completed)) return -1; return 487; /* *compare_cstoresi_insn */ case 1: if (! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), DImode) && !aarch64_plus_operand (operands[2], DImode) && !reload_completed)) return -1; return 489; /* *compare_cstoredi_insn */ default: return -1; } case NE: switch (pattern129 (x1)) { case 0: if (! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), SImode) && !aarch64_plus_operand (operands[2], SImode) && !reload_completed)) return -1; return 488; /* *compare_cstoresi_insn */ case 1: if (! #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), DImode) && !aarch64_plus_operand (operands[2], DImode) && !reload_completed)) return -1; return 490; /* *compare_cstoredi_insn */ default: return -1; } case UNSPEC: return recog_192 (x1, insn, pnum_clobbers); case NEG: switch (pattern130 (x1)) { case 0: if (! #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2958; /* aarch64_cmltdi */ case 1: if (! #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2959; /* aarch64_cmledi */ case 2: if (! #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2960; /* aarch64_cmeqdi */ case 3: if (! #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2961; /* aarch64_cmgedi */ case 4: if (! #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2962; /* aarch64_cmgtdi */ case 5: if (! #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2996; /* aarch64_cmltudi */ case 6: if (! #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2997; /* aarch64_cmleudi */ case 7: if (! #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2998; /* aarch64_cmgeudi */ case 8: if (! #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2999; /* aarch64_cmgtudi */ case 9: if (! #line 4766 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 3011; /* aarch64_cmtstdi */ default: return -1; } case CONST_INT: case CONST_DOUBLE: case REG: case SUBREG: case MEM: return recog_194 (x1, insn, pnum_clobbers); case UNSPEC_VOLATILE: x6 = XEXP (x2, 0); operands[0] = x6; switch (XVECLEN (x3, 0)) { case 3: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return -1; x17 = XVECEXP (x3, 0, 1); operands[1] = x17; x18 = XVECEXP (x3, 0, 2); operands[2] = x18; if (!const_int_operand (operands[2], E_SImode)) return -1; x12 = XEXP (x7, 0); operands[3] = x12; x19 = XVECEXP (x3, 0, 0); if (!rtx_equal_p (x19, operands[0])) return -1; switch (XINT (x3, 1)) { case 21: switch (GET_MODE (operands[0])) { case E_QImode: if (pattern491 (x3, E_QImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3671; /* aarch64_atomic_iorqi_lse */ case E_HImode: if (pattern491 (x3, E_HImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3675; /* aarch64_atomic_iorhi_lse */ case E_SImode: if (pattern491 (x3, E_SImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3679; /* aarch64_atomic_iorsi_lse */ case E_DImode: if (pattern491 (x3, E_DImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3683; /* aarch64_atomic_iordi_lse */ default: return -1; } case 22: switch (GET_MODE (operands[0])) { case E_QImode: if (pattern491 (x3, E_QImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3672; /* aarch64_atomic_bicqi_lse */ case E_HImode: if (pattern491 (x3, E_HImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3676; /* aarch64_atomic_bichi_lse */ case E_SImode: if (pattern491 (x3, E_SImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3680; /* aarch64_atomic_bicsi_lse */ case E_DImode: if (pattern491 (x3, E_DImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3684; /* aarch64_atomic_bicdi_lse */ default: return -1; } case 23: switch (GET_MODE (operands[0])) { case E_QImode: if (pattern491 (x3, E_QImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3673; /* aarch64_atomic_xorqi_lse */ case E_HImode: if (pattern491 (x3, E_HImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3677; /* aarch64_atomic_xorhi_lse */ case E_SImode: if (pattern491 (x3, E_SImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3681; /* aarch64_atomic_xorsi_lse */ case E_DImode: if (pattern491 (x3, E_DImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3685; /* aarch64_atomic_xordi_lse */ default: return -1; } case 24: switch (GET_MODE (operands[0])) { case E_QImode: if (pattern491 (x3, E_QImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3674; /* aarch64_atomic_addqi_lse */ case E_HImode: if (pattern491 (x3, E_HImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3678; /* aarch64_atomic_addhi_lse */ case E_SImode: if (pattern491 (x3, E_SImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3682; /* aarch64_atomic_addsi_lse */ case E_DImode: if (pattern491 (x3, E_DImode) != 0 || ! #line 286 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" (TARGET_LSE)) return -1; return 3686; /* aarch64_atomic_adddi_lse */ default: return -1; } default: return -1; } case 1: if (XINT (x3, 1) != 13 || GET_MODE (x3) != E_SImode) return -1; x19 = XVECEXP (x3, 0, 0); if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x7 = XVECEXP (x1, 0, 1); if (pattern33 (x7, 13, UNSPEC_VOLATILE, 2) != 0 || !register_operand (operands[0], E_SImode)) return -1; x12 = XEXP (x7, 0); operands[1] = x12; x11 = XEXP (x7, 1); x16 = XVECEXP (x11, 0, 0); operands[2] = x16; x14 = XVECEXP (x11, 0, 1); operands[3] = x14; if (!const_int_operand (operands[3], E_SImode)) return -1; switch (GET_MODE (operands[1])) { case E_QImode: if (!aarch64_sync_memory_operand (operands[1], E_QImode) || GET_MODE (x11) != E_QImode || !aarch64_reg_or_zero (operands[2], E_QImode)) return -1; return 3767; /* aarch64_store_exclusiveqi */ case E_HImode: if (!aarch64_sync_memory_operand (operands[1], E_HImode) || GET_MODE (x11) != E_HImode || !aarch64_reg_or_zero (operands[2], E_HImode)) return -1; return 3768; /* aarch64_store_exclusivehi */ case E_SImode: if (!aarch64_sync_memory_operand (operands[1], E_SImode) || GET_MODE (x11) != E_SImode || !aarch64_reg_or_zero (operands[2], E_SImode)) return -1; return 3769; /* aarch64_store_exclusivesi */ case E_DImode: if (!aarch64_sync_memory_operand (operands[1], E_DImode) || GET_MODE (x11) != E_DImode || !aarch64_reg_or_zero (operands[2], E_DImode)) return -1; return 3770; /* aarch64_store_exclusivedi */ default: return -1; } default: return -1; } case PLUS: switch (pattern133 (x1, pnum_clobbers)) { case 0: *pnum_clobbers = 2; return 3731; /* aarch64_atomic_add_fetchqi */ case 1: *pnum_clobbers = 2; return 3736; /* aarch64_atomic_add_fetchhi */ case 2: *pnum_clobbers = 2; return 3741; /* aarch64_atomic_add_fetchsi */ case 3: *pnum_clobbers = 2; return 3746; /* aarch64_atomic_add_fetchdi */ default: return -1; } case MINUS: switch (pattern133 (x1, pnum_clobbers)) { case 0: *pnum_clobbers = 2; return 3732; /* aarch64_atomic_sub_fetchqi */ case 1: *pnum_clobbers = 2; return 3737; /* aarch64_atomic_sub_fetchhi */ case 2: *pnum_clobbers = 2; return 3742; /* aarch64_atomic_sub_fetchsi */ case 3: *pnum_clobbers = 2; return 3747; /* aarch64_atomic_sub_fetchdi */ default: return -1; } case IOR: switch (pattern137 (x1, pnum_clobbers)) { case 0: *pnum_clobbers = 2; return 3733; /* aarch64_atomic_or_fetchqi */ case 1: *pnum_clobbers = 2; return 3738; /* aarch64_atomic_or_fetchhi */ case 2: *pnum_clobbers = 2; return 3743; /* aarch64_atomic_or_fetchsi */ case 3: *pnum_clobbers = 2; return 3748; /* aarch64_atomic_or_fetchdi */ default: return -1; } case XOR: switch (pattern137 (x1, pnum_clobbers)) { case 0: *pnum_clobbers = 2; return 3734; /* aarch64_atomic_xor_fetchqi */ case 1: *pnum_clobbers = 2; return 3739; /* aarch64_atomic_xor_fetchhi */ case 2: *pnum_clobbers = 2; return 3744; /* aarch64_atomic_xor_fetchsi */ case 3: *pnum_clobbers = 2; return 3749; /* aarch64_atomic_xor_fetchdi */ default: return -1; } case AND: return recog_193 (x1, insn, pnum_clobbers); case NOT: if (pnum_clobbers == NULL) return -1; x8 = XEXP (x3, 0); if (GET_CODE (x8) != AND) return -1; x7 = XVECEXP (x1, 0, 1); if (pattern33 (x7, 20, UNSPEC_VOLATILE, 3) != 0) return -1; x6 = XEXP (x2, 0); operands[0] = x6; x9 = XEXP (x8, 0); operands[1] = x9; x20 = XEXP (x8, 1); operands[2] = x20; x11 = XEXP (x7, 1); x15 = XVECEXP (x11, 0, 2); operands[3] = x15; if (!const_int_operand (operands[3], E_SImode)) return -1; switch (pattern507 (x1)) { case 0: *pnum_clobbers = 2; return 3751; /* atomic_nand_fetchqi */ case 1: *pnum_clobbers = 2; return 3752; /* atomic_nand_fetchhi */ case 2: *pnum_clobbers = 2; return 3753; /* atomic_nand_fetchsi */ case 3: *pnum_clobbers = 2; return 3754; /* atomic_nand_fetchdi */ default: return -1; } case VEC_DUPLICATE: switch (pattern139 (x1)) { case 0: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3924; /* *vec_duplicatevnx16qi_reg */ case 1: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3925; /* *vec_duplicatevnx8hi_reg */ case 2: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3926; /* *vec_duplicatevnx4si_reg */ case 3: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3927; /* *vec_duplicatevnx2di_reg */ case 4: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3928; /* *vec_duplicatevnx8hf_reg */ case 5: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3929; /* *vec_duplicatevnx4sf_reg */ case 6: if (! #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3930; /* *vec_duplicatevnx2df_reg */ default: return -1; } default: return -1; } case CALL: x6 = XEXP (x2, 0); if (GET_CODE (x6) != MEM || GET_MODE (x6) != E_DImode) return -1; x21 = XEXP (x6, 0); operands[0] = x21; if (!aarch64_call_insn_operand (operands[0], E_DImode)) return -1; x3 = XEXP (x2, 1); operands[1] = x3; x7 = XVECEXP (x1, 0, 1); switch (pattern322 (x7)) { case 0: return 40; /* *call_insn */ case 1: if (! #line 975 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (SIBLING_CALL_P (insn))) return -1; return 42; /* *sibcall_insn */ default: return -1; } default: return -1; } } static int recog_197 (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 (GET_CODE (x2)) { case IF_THEN_ELSE: x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: if (aarch64_comparison_operator (x3, E_VOIDmode)) { res = recog_1 (x1, insn, pnum_clobbers); if (res >= 0) return res; } x4 = XEXP (x3, 1); if (GET_CODE (x4) == CONST_INT) { res = recog_2 (x1, insn, pnum_clobbers); if (res >= 0) return res; } operands[1] = x3; if (!aarch64_comparison_operation (operands[1], E_VOIDmode)) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x6 = XEXP (x2, 2); operands[3] = x6; x7 = XEXP (x2, 1); switch (GET_CODE (x7)) { case PLUS: x8 = XEXP (x7, 1); if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; switch (pattern291 (x2)) { case 0: return 515; /* csinc3si_insn */ case 1: return 516; /* csinc3di_insn */ default: return -1; } case NOT: switch (pattern291 (x2)) { case 0: return 517; /* *csinv3si_insn */ case 1: return 518; /* *csinv3di_insn */ default: return -1; } case NEG: switch (pattern291 (x2)) { case 0: return 520; /* csneg3si_insn */ case 1: return 521; /* csneg3di_insn */ default: return -1; } default: return -1; } default: return -1; } case CALL: if (pnum_clobbers == NULL) return -1; x3 = XEXP (x2, 0); if (GET_CODE (x3) != MEM || GET_MODE (x3) != E_DImode) return -1; x5 = XEXP (x1, 0); operands[0] = x5; x9 = XEXP (x3, 0); operands[1] = x9; if (!aarch64_call_insn_operand (operands[1], E_DImode)) return -1; x7 = XEXP (x2, 1); operands[2] = x7; *pnum_clobbers = 1; return 41; /* *call_value_insn */ 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_151 (x1, insn, pnum_clobbers); case SIGN_EXTEND: return recog_171 (x1, insn, pnum_clobbers); case ZERO_EXTEND: return recog_148 (x1, insn, pnum_clobbers); case PLUS: return recog_152 (x1, insn, pnum_clobbers); case COMPARE: return recog_149 (x1, insn, pnum_clobbers); case MINUS: return recog_150 (x1, insn, pnum_clobbers); case NEG: return recog_163 (x1, insn, pnum_clobbers); case MULT: return recog_154 (x1, insn, pnum_clobbers); case TRUNCATE: return recog_179 (x1, insn, pnum_clobbers); case DIV: return recog_182 (x1, insn, pnum_clobbers); case UDIV: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); operands[1] = x3; x7 = XEXP (x2, 1); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern13 (x2, E_SImode) != 0) return -1; return 442; /* udivsi3 */ case E_DImode: if (pattern13 (x2, E_DImode) != 0) return -1; return 444; /* udivdi3 */ default: return -1; } case NE: case EQ: case GE: case GT: case LE: case LT: case GEU: case GTU: case LEU: case LTU: case UNORDERED: case ORDERED: case UNGE: case UNGT: case UNLE: case UNLT: return recog_180 (x1, insn, pnum_clobbers); case UNSPEC: return recog_161 (x1, insn, pnum_clobbers); case AND: return recog_153 (x1, insn, pnum_clobbers); case IOR: return recog_155 (x1, insn, pnum_clobbers); case XOR: return recog_159 (x1, insn, pnum_clobbers); case NOT: return recog_170 (x1, insn, pnum_clobbers); case CLZ: switch (pattern0 (x1)) { case 0: return 675; /* clzsi2 */ case 1: return 676; /* clzdi2 */ case 2: if (! #line 2427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2151; /* clzv8qi2 */ case 3: if (! #line 2427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2152; /* clzv16qi2 */ case 4: if (! #line 2427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2153; /* clzv4hi2 */ case 5: if (! #line 2427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2154; /* clzv8hi2 */ case 6: if (! #line 2427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2155; /* clzv2si2 */ case 7: if (! #line 2427 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2156; /* clzv4si2 */ default: return -1; } case CLRSB: switch (pattern0 (x1)) { case 0: return 677; /* clrsbsi2 */ case 1: return 678; /* clrsbdi2 */ case 2: if (! #line 2419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2145; /* clrsbv8qi2 */ case 3: if (! #line 2419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2146; /* clrsbv16qi2 */ case 4: if (! #line 2419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2147; /* clrsbv4hi2 */ case 5: if (! #line 2419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2148; /* clrsbv8hi2 */ case 6: if (! #line 2419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2149; /* clrsbv2si2 */ case 7: if (! #line 2419 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2150; /* clrsbv4si2 */ default: return -1; } case CTZ: switch (pattern2 (x1)) { case 0: return 681; /* ctzsi2 */ case 1: return 682; /* ctzdi2 */ default: return -1; } case ASHIFT: return recog_162 (x1, insn, pnum_clobbers); case ASHIFTRT: return recog_177 (x1, insn, pnum_clobbers); case LSHIFTRT: return recog_178 (x1, insn, pnum_clobbers); case ROTATERT: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); switch (GET_CODE (x3)) { case REG: case SUBREG: operands[1] = x3; x7 = XEXP (x2, 1); if (subreg_lowpart_operator (x7, E_VOIDmode)) { operands[4] = x7; switch (pattern213 (x2)) { case 0: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) return 704; /* *aarch64_rotr_reg_si3_mask1 */ break; case 1: if ( #line 5004 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) return 708; /* *aarch64_rotr_reg_di3_mask1 */ break; case 2: if ( #line 5068 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 722; /* *aarch64_rotr_reg_di3_mask2 */ break; case 3: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0))) return 712; /* *aarch64_rotr_reg_si3_neg_mask2 */ break; case 4: if ( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0))) return 716; /* *aarch64_rotr_reg_di3_neg_mask2 */ break; default: break; } } operands[2] = x7; switch (pattern216 (x2)) { case 0: return 740; /* *rorsi3_insn */ case 1: return 741; /* *rordi3_insn */ default: return -1; } case XOR: if (GET_MODE (x3) != E_V2DImode || !register_operand (operands[0], E_V2DImode) || GET_MODE (x2) != E_V2DImode) return -1; x9 = XEXP (x3, 0); operands[1] = x9; if (!register_operand (operands[1], E_V2DImode)) return -1; x4 = XEXP (x3, 1); operands[2] = x4; if (!register_operand (operands[2], E_V2DImode)) return -1; x7 = XEXP (x2, 1); operands[3] = x7; if (!aarch64_simd_shift_imm_di (operands[3], E_SImode) || ! #line 6269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && TARGET_SHA3)) return -1; return 3595; /* aarch64_xarqv2di */ default: return -1; } case ROTATE: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); operands[1] = x3; x7 = XEXP (x2, 1); operands[2] = x7; if (!const_int_operand (operands[2], E_VOIDmode)) return -1; switch (pattern1 (x2)) { case 0: if (! #line 5366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (SImode))) return -1; return 758; /* *rorsi3_insn */ case 1: if (! #line 5366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (UINTVAL (operands[2]) < GET_MODE_BITSIZE (DImode))) return -1; return 759; /* *rordi3_insn */ default: return -1; } case SIGN_EXTRACT: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); operands[1] = x3; x7 = XEXP (x2, 1); operands[2] = x7; x6 = XEXP (x2, 2); operands[3] = x6; switch (pattern217 (x2)) { case 0: if (! #line 5453 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (SImode) - 1))) return -1; return 777; /* *extvsi */ case 1: if (! #line 5453 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (DImode) - 1))) return -1; return 779; /* *extvdi */ default: return -1; } case ZERO_EXTRACT: return recog_183 (x1, insn, pnum_clobbers); case BSWAP: return recog_176 (x1, insn, pnum_clobbers); case FIX: return recog_167 (x1, insn, pnum_clobbers); case UNSIGNED_FIX: return recog_166 (x1, insn, pnum_clobbers); case FMA: return recog_156 (x1, insn, pnum_clobbers); case FLOAT_EXTEND: return recog_175 (x1, insn, pnum_clobbers); case FLOAT_TRUNCATE: return recog_181 (x1, insn, pnum_clobbers); case FLOAT: switch (pattern12 (x1)) { case 0: if (! #line 6052 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 951; /* floatsisf2 */ case 1: if (! #line 6063 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 955; /* floatdisf2 */ case 2: if (! #line 6052 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 953; /* floatdidf2 */ case 3: if (! #line 6063 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 957; /* floatsidf2 */ case 4: if (! #line 6078 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 959; /* aarch64_fp16_floatsihf2 */ case 5: if (! #line 6078 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 961; /* aarch64_fp16_floatdihf2 */ case 6: if (! #line 2073 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2051; /* floathihf2 */ case 7: if (!( #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2059; /* floatv4hiv4hf2 */ case 8: if (!( #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2061; /* floatv8hiv8hf2 */ case 9: if (! #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2063; /* floatv2siv2sf2 */ case 10: if (! #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2065; /* floatv4siv4sf2 */ case 11: if (! #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2067; /* floatv2div2df2 */ default: return -1; } case UNSIGNED_FLOAT: switch (pattern12 (x1)) { case 0: if (! #line 6052 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 952; /* floatunssisf2 */ case 1: if (! #line 6063 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 956; /* floatunsdisf2 */ case 2: if (! #line 6052 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 954; /* floatunsdidf2 */ case 3: if (! #line 6063 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 958; /* floatunssidf2 */ case 4: if (! #line 6078 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 960; /* aarch64_fp16_floatunssihf2 */ case 5: if (! #line 6078 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FP_F16INST)) return -1; return 962; /* aarch64_fp16_floatunsdihf2 */ case 6: if (! #line 2073 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD_F16INST)) return -1; return 2052; /* floatunshihf2 */ case 7: if (!( #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2060; /* floatunsv4hiv4hf2 */ case 8: if (!( #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2062; /* floatunsv8hiv8hf2 */ case 9: if (! #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2064; /* floatunsv2siv2sf2 */ case 10: if (! #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2066; /* floatunsv4siv4sf2 */ case 11: if (! #line 2125 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2068; /* floatunsv2div2df2 */ default: return -1; } case SQRT: return recog_174 (x1, insn, pnum_clobbers); case ABS: return recog_165 (x1, insn, pnum_clobbers); case SMAX: switch (pattern14 (x1)) { case 0: if (! #line 6314 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1008; /* smaxsf3 */ case 1: if (! #line 6314 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1009; /* smaxdf3 */ case 2: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1722; /* smaxv8qi3 */ case 3: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1726; /* smaxv16qi3 */ case 4: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1730; /* smaxv4hi3 */ case 5: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1734; /* smaxv8hi3 */ case 6: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1738; /* smaxv2si3 */ case 7: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1742; /* smaxv4si3 */ case 8: if (!( #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2101; /* smaxv4hf3 */ case 9: if (!( #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2103; /* smaxv8hf3 */ case 10: if (! #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2105; /* smaxv2sf3 */ case 11: if (! #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2107; /* smaxv4sf3 */ case 12: if (! #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2109; /* smaxv2df3 */ default: return -1; } case SMIN: switch (pattern14 (x1)) { case 0: if (! #line 6323 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1010; /* sminsf3 */ case 1: if (! #line 6323 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_FLOAT)) return -1; return 1011; /* smindf3 */ case 2: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1723; /* sminv8qi3 */ case 3: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1727; /* sminv16qi3 */ case 4: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1731; /* sminv4hi3 */ case 5: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1735; /* sminv8hi3 */ case 6: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1739; /* sminv2si3 */ case 7: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1743; /* sminv4si3 */ case 8: if (!( #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 117 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2102; /* sminv4hf3 */ case 9: if (!( #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 118 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (TARGET_SIMD_F16INST))) return -1; return 2104; /* sminv8hf3 */ case 10: if (! #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2106; /* sminv2sf3 */ case 11: if (! #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2108; /* sminv4sf3 */ case 12: if (! #line 2331 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2110; /* sminv2df3 */ default: return -1; } case LO_SUM: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); operands[1] = x3; x7 = XEXP (x2, 1); operands[2] = x7; if (!aarch64_valid_symref (operands[2], E_VOIDmode)) return -1; switch (pattern1 (x2)) { case 0: if (! #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) return -1; return 1035; /* add_losym_si */ case 1: if (! #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) return -1; return 1036; /* add_losym_di */ default: return -1; } case UNSPEC_VOLATILE: return recog_157 (x1, insn, pnum_clobbers); case VEC_DUPLICATE: return recog_164 (x1, insn, pnum_clobbers); case VEC_SELECT: return recog_169 (x1, insn, pnum_clobbers); case VEC_MERGE: return recog_160 (x1, insn, pnum_clobbers); case UMAX: switch (pattern15 (x1)) { case 0: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1724; /* umaxv8qi3 */ case 1: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1728; /* umaxv16qi3 */ case 2: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1732; /* umaxv4hi3 */ case 3: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1736; /* umaxv8hi3 */ case 4: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1740; /* umaxv2si3 */ case 5: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1744; /* umaxv4si3 */ default: return -1; } case UMIN: switch (pattern15 (x1)) { case 0: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1725; /* uminv8qi3 */ case 1: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1729; /* uminv16qi3 */ case 2: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1733; /* uminv4hi3 */ case 3: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1737; /* uminv8hi3 */ case 4: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1741; /* uminv2si3 */ case 5: if (! #line 1358 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 1745; /* uminv4si3 */ default: return -1; } case VEC_CONCAT: return recog_158 (x1, insn, pnum_clobbers); case POPCOUNT: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); operands[1] = x3; switch (GET_MODE (operands[0])) { case E_V8QImode: if (!register_operand (operands[0], E_V8QImode) || GET_MODE (x2) != E_V8QImode || !register_operand (operands[1], E_V8QImode) || ! #line 2435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2157; /* popcountv8qi2 */ case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || GET_MODE (x2) != E_V16QImode || !register_operand (operands[1], E_V16QImode) || ! #line 2435 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2158; /* popcountv16qi2 */ default: return -1; } case SS_PLUS: return recog_173 (x1, insn, pnum_clobbers); case US_PLUS: switch (pattern24 (x1)) { case 0: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2443; /* aarch64_uqaddv8qi */ case 1: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2447; /* aarch64_uqaddv16qi */ case 2: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2451; /* aarch64_uqaddv4hi */ case 3: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2455; /* aarch64_uqaddv8hi */ case 4: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2459; /* aarch64_uqaddv2si */ case 5: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2463; /* aarch64_uqaddv4si */ case 6: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2467; /* aarch64_uqaddv2di */ case 7: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2471; /* aarch64_uqaddqi */ case 8: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2475; /* aarch64_uqaddhi */ case 9: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2479; /* aarch64_uqaddsi */ case 10: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2483; /* aarch64_uqadddi */ default: return -1; } case SS_MINUS: return recog_172 (x1, insn, pnum_clobbers); case US_MINUS: switch (pattern24 (x1)) { case 0: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2445; /* aarch64_uqsubv8qi */ case 1: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2449; /* aarch64_uqsubv16qi */ case 2: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2453; /* aarch64_uqsubv4hi */ case 3: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2457; /* aarch64_uqsubv8hi */ case 4: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2461; /* aarch64_uqsubv2si */ case 5: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2465; /* aarch64_uqsubv4si */ case 6: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2469; /* aarch64_uqsubv2di */ case 7: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2473; /* aarch64_uqsubqi */ case 8: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2477; /* aarch64_uqsubhi */ case 9: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2481; /* aarch64_uqsubsi */ case 10: if (! #line 3657 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2485; /* aarch64_uqsubdi */ default: return -1; } case SS_NEG: switch (pattern25 (x1)) { case 0: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2526; /* aarch64_sqnegv8qi */ case 1: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2528; /* aarch64_sqnegv16qi */ case 2: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2530; /* aarch64_sqnegv4hi */ case 3: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2532; /* aarch64_sqnegv8hi */ case 4: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2534; /* aarch64_sqnegv2si */ case 5: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2536; /* aarch64_sqnegv4si */ case 6: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2538; /* aarch64_sqnegv2di */ case 7: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2540; /* aarch64_sqnegqi */ case 8: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2542; /* aarch64_sqneghi */ case 9: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2544; /* aarch64_sqnegsi */ case 10: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2546; /* aarch64_sqnegdi */ default: return -1; } case SS_ABS: switch (pattern25 (x1)) { case 0: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2527; /* aarch64_sqabsv8qi */ case 1: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2529; /* aarch64_sqabsv16qi */ case 2: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2531; /* aarch64_sqabsv4hi */ case 3: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2533; /* aarch64_sqabsv8hi */ case 4: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2535; /* aarch64_sqabsv2si */ case 5: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2537; /* aarch64_sqabsv4si */ case 6: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2539; /* aarch64_sqabsv2di */ case 7: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2541; /* aarch64_sqabsqi */ case 8: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2543; /* aarch64_sqabshi */ case 9: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2545; /* aarch64_sqabssi */ case 10: if (! #line 3702 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD)) return -1; return 2547; /* aarch64_sqabsdi */ default: return -1; } case SS_ASHIFT: return recog_168 (x1, insn, pnum_clobbers); case VEC_SERIES: x5 = XEXP (x1, 0); operands[0] = x5; x3 = XEXP (x2, 0); operands[1] = x3; x7 = XEXP (x2, 1); operands[2] = x7; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern220 (x2, E_QImode, E_VNx16QImode) != 0 || ! #line 716 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3945; /* vec_seriesvnx16qi */ case E_VNx8HImode: if (pattern220 (x2, E_HImode, E_VNx8HImode) != 0 || ! #line 716 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3946; /* vec_seriesvnx8hi */ case E_VNx4SImode: if (pattern220 (x2, E_SImode, E_VNx4SImode) != 0 || ! #line 716 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3947; /* vec_seriesvnx4si */ case E_VNx2DImode: if (pattern220 (x2, E_DImode, E_VNx2DImode) != 0 || ! #line 716 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE)) return -1; return 3948; /* vec_seriesvnx2di */ 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, 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; int res ATTRIBUTE_UNUSED; recog_data.insn = NULL; switch (GET_CODE (x1)) { case SET: return recog_197 (x1, insn, pnum_clobbers); case PARALLEL: switch (XVECLEN (x1, 0)) { case 5: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return -1; x3 = XVECEXP (x1, 0, 2); if (GET_CODE (x3) != CLOBBER) return -1; x4 = XVECEXP (x1, 0, 3); if (GET_CODE (x4) != CLOBBER) return -1; x5 = XEXP (x4, 0); operands[4] = x5; if (scratch_operand (operands[4], E_DImode)) { res = recog_184 (x1, insn, pnum_clobbers); if (res >= 0) return res; } 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) != 2 || XINT (x7, 1) != 20) return -1; x8 = XEXP (x3, 0); if (GET_CODE (x8) != REG || REGNO (x8) != 66 || GET_MODE (x8) != E_CCmode) return -1; x9 = XVECEXP (x1, 0, 4); if (GET_CODE (x9) != CLOBBER) return -1; x10 = XEXP (x2, 0); operands[0] = x10; x11 = XEXP (x2, 1); operands[1] = x11; x12 = XVECEXP (x7, 0, 1); operands[3] = x12; if (!const_int_operand (operands[3], E_SImode)) return -1; switch (pattern538 (x1)) { case 0: return 3691; /* aarch64_atomic_fetch_addqi */ case 1: return 3696; /* aarch64_atomic_fetch_addhi */ case 2: return 3701; /* aarch64_atomic_fetch_addsi */ case 3: return 3706; /* aarch64_atomic_fetch_adddi */ case 4: return 3692; /* aarch64_atomic_fetch_subqi */ case 5: return 3697; /* aarch64_atomic_fetch_subhi */ case 6: return 3702; /* aarch64_atomic_fetch_subsi */ case 7: return 3707; /* aarch64_atomic_fetch_subdi */ case 8: return 3693; /* aarch64_atomic_fetch_orqi */ case 9: return 3698; /* aarch64_atomic_fetch_orhi */ case 10: return 3703; /* aarch64_atomic_fetch_orsi */ case 11: return 3708; /* aarch64_atomic_fetch_ordi */ case 12: return 3694; /* aarch64_atomic_fetch_xorqi */ case 13: return 3699; /* aarch64_atomic_fetch_xorhi */ case 14: return 3704; /* aarch64_atomic_fetch_xorsi */ case 15: return 3709; /* aarch64_atomic_fetch_xordi */ case 16: return 3695; /* aarch64_atomic_fetch_andqi */ case 17: return 3700; /* aarch64_atomic_fetch_andhi */ case 18: return 3705; /* aarch64_atomic_fetch_andsi */ case 19: return 3710; /* aarch64_atomic_fetch_anddi */ case 20: return 3727; /* atomic_fetch_nandqi */ case 21: return 3728; /* atomic_fetch_nandhi */ case 22: return 3729; /* atomic_fetch_nandsi */ case 23: return 3730; /* atomic_fetch_nanddi */ default: return -1; } case 2: return recog_196 (x1, insn, pnum_clobbers); case 3: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return -1; x11 = XEXP (x2, 1); switch (GET_CODE (x11)) { case PLUS: x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x3 = XVECEXP (x1, 0, 2); if (GET_CODE (x3) != SET) return -1; x10 = XEXP (x2, 0); operands[0] = x10; x13 = XEXP (x11, 0); operands[1] = x13; x14 = XEXP (x11, 1); operands[4] = x14; x7 = XEXP (x6, 1); switch (GET_CODE (x7)) { case MEM: x15 = XEXP (x3, 1); if (GET_CODE (x15) != MEM) return -1; x16 = XEXP (x15, 0); if (GET_CODE (x16) != PLUS) return -1; x17 = XEXP (x6, 0); operands[2] = x17; x8 = XEXP (x3, 0); operands[3] = x8; x18 = XEXP (x16, 1); operands[5] = x18; x19 = XEXP (x7, 0); if (!rtx_equal_p (x19, operands[1])) return -1; x20 = XEXP (x16, 0); if (!rtx_equal_p (x20, operands[1])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern542 (x1, E_SImode)) { case 0: if (!( #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (SImode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 73; /* loadwb_pairsi_si */ case 1: if (!( #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (DImode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 75; /* loadwb_pairdi_si */ case 2: if (!( #line 1547 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (SFmode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 77; /* loadwb_pairsf_si */ case 3: if (!( #line 1547 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (DFmode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 79; /* loadwb_pairdf_si */ case 4: if (!( #line 1562 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (TImode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 81; /* loadwb_pairti_si */ case 5: if (!( #line 1562 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (TFmode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 83; /* loadwb_pairtf_si */ default: return -1; } case E_DImode: switch (pattern542 (x1, E_DImode)) { case 0: if (!( #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (SImode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 74; /* loadwb_pairsi_di */ case 1: if (!( #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (DImode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 76; /* loadwb_pairdi_di */ case 2: if (!( #line 1547 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (SFmode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 78; /* loadwb_pairsf_di */ case 3: if (!( #line 1547 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == GET_MODE_SIZE (DFmode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 80; /* loadwb_pairdf_di */ case 4: if (!( #line 1562 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (TImode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 82; /* loadwb_pairti_di */ case 5: if (!( #line 1562 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (TFmode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 84; /* loadwb_pairtf_di */ default: return -1; } default: return -1; } case REG: case SUBREG: operands[2] = x7; x17 = XEXP (x6, 0); if (GET_CODE (x17) != MEM) return -1; x21 = XEXP (x17, 0); if (GET_CODE (x21) != PLUS) return -1; x8 = XEXP (x3, 0); if (GET_CODE (x8) != MEM) return -1; x22 = XEXP (x8, 0); if (GET_CODE (x22) != PLUS) return -1; x23 = XEXP (x22, 1); operands[5] = x23; x15 = XEXP (x3, 1); operands[3] = x15; x24 = XEXP (x21, 0); if (!rtx_equal_p (x24, operands[0])) return -1; x25 = XEXP (x21, 1); if (!rtx_equal_p (x25, operands[4])) return -1; x26 = XEXP (x22, 0); if (!rtx_equal_p (x26, operands[0])) return -1; switch (GET_MODE (operands[0])) { case E_SImode: switch (pattern566 (x1, E_SImode)) { case 0: if (!( #line 1580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (SImode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 85; /* storewb_pairsi_si */ case 1: if (!( #line 1580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (DImode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 87; /* storewb_pairdi_si */ case 2: if (!( #line 1596 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (SFmode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 89; /* storewb_pairsf_si */ case 3: if (!( #line 1596 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (DFmode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 91; /* storewb_pairdf_si */ case 4: if (!( #line 1612 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (TImode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 93; /* storewb_pairti_si */ case 5: if (!( #line 1612 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (TFmode)) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode))) return -1; return 95; /* storewb_pairtf_si */ default: return -1; } case E_DImode: switch (pattern566 (x1, E_DImode)) { case 0: if (!( #line 1580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (SImode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 86; /* storewb_pairsi_di */ case 1: if (!( #line 1580 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (DImode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 88; /* storewb_pairdi_di */ case 2: if (!( #line 1596 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (SFmode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 90; /* storewb_pairsf_di */ case 3: if (!( #line 1596 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (DFmode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 92; /* storewb_pairdf_di */ case 4: if (!( #line 1612 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (TImode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 94; /* storewb_pairti_di */ case 5: if (!( #line 1612 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (TFmode)) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode))) return -1; return 96; /* storewb_pairtf_di */ default: return -1; } default: return -1; } default: return -1; } case CALL: x13 = XEXP (x11, 0); if (GET_CODE (x13) != MEM || GET_MODE (x13) != E_DImode || pattern225 (x1) != 0) return -1; x3 = XVECEXP (x1, 0, 2); if (pattern425 (x3, E_DImode, 30) != 0) return -1; x10 = XEXP (x2, 0); operands[0] = x10; if (!register_operand (operands[0], E_VOIDmode)) return -1; x27 = XEXP (x13, 0); operands[2] = x27; x6 = XVECEXP (x1, 0, 1); x28 = XVECEXP (x6, 0, 0); operands[1] = x28; if (aarch64_valid_symref (operands[1], E_SImode) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode)) return 1045; /* *tlsgd_small_si */ if (!aarch64_valid_symref (operands[1], E_DImode) || ! #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode)) return -1; return 1046; /* *tlsgd_small_di */ case UNSPEC_VOLATILE: if (pnum_clobbers == NULL || XVECLEN (x11, 0) != 1 || XINT (x11, 1) != 16 || GET_MODE (x11) != E_CCmode) return -1; x29 = XVECEXP (x11, 0, 0); if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; x10 = XEXP (x2, 0); if (GET_CODE (x10) != REG || REGNO (x10) != 66 || GET_MODE (x10) != E_CCmode) return -1; x6 = XVECEXP (x1, 0, 1); if (GET_CODE (x6) != SET) return -1; x3 = XVECEXP (x1, 0, 2); if (GET_CODE (x3) != SET) return -1; x15 = XEXP (x3, 1); if (GET_CODE (x15) != UNSPEC_VOLATILE || XVECLEN (x15, 0) != 5 || XINT (x15, 1) != 16) return -1; x17 = XEXP (x6, 0); operands[0] = x17; x30 = XVECEXP (x15, 0, 0); operands[2] = x30; x31 = XVECEXP (x15, 0, 1); operands[3] = x31; x32 = XVECEXP (x15, 0, 2); operands[4] = x32; if (!const_int_operand (operands[4], E_SImode)) return -1; x33 = XVECEXP (x15, 0, 3); operands[5] = x33; if (!const_int_operand (operands[5], E_SImode)) return -1; x34 = XVECEXP (x15, 0, 4); operands[6] = x34; if (!const_int_operand (operands[6], E_SImode)) return -1; switch (pattern227 (x1)) { case 0: *pnum_clobbers = 1; return 3635; /* aarch64_compare_and_swapqi */ case 1: *pnum_clobbers = 1; return 3636; /* aarch64_compare_and_swaphi */ case 2: *pnum_clobbers = 1; return 3637; /* aarch64_compare_and_swapsi */ case 3: *pnum_clobbers = 1; return 3638; /* aarch64_compare_and_swapdi */ default: return -1; } default: return -1; } case 4: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return -1; x4 = XVECEXP (x1, 0, 3); if (GET_CODE (x4) != CLOBBER) return -1; x11 = XEXP (x2, 1); switch (GET_CODE (x11)) { case UNSPEC: if (pattern141 (x1) != 0) return -1; x3 = XVECEXP (x1, 0, 2); if (pattern425 (x3, E_CCmode, 66) != 0) return -1; x29 = XVECEXP (x11, 0, 0); operands[0] = x29; if (!aarch64_valid_symref (operands[0], E_VOIDmode)) return -1; x5 = XEXP (x4, 0); operands[1] = x5; if (!scratch_operand (operands[1], E_DImode)) return -1; x10 = XEXP (x2, 0); switch (GET_MODE (x10)) { case E_SImode: if (GET_MODE (x11) != E_SImode || !( #line 6761 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && !TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode))) return -1; return 1061; /* tlsdesc_small_advsimd_si */ case E_DImode: if (GET_MODE (x11) != E_DImode || !( #line 6761 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_TLS_DESC && !TARGET_SVE) && #line 110 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode))) return -1; return 1062; /* tlsdesc_small_advsimd_di */ default: return -1; } case UNSPEC_VOLATILE: x5 = XEXP (x4, 0); if (!scratch_operand (x5, E_SImode)) return -1; switch (pattern233 (x1)) { case 0: return 3635; /* aarch64_compare_and_swapqi */ case 1: return 3636; /* aarch64_compare_and_swaphi */ case 2: return 3637; /* aarch64_compare_and_swapsi */ case 3: return 3638; /* aarch64_compare_and_swapdi */ case 4: return 3651; /* aarch64_atomic_addqi */ case 5: return 3656; /* aarch64_atomic_addhi */ case 6: return 3661; /* aarch64_atomic_addsi */ case 7: return 3666; /* aarch64_atomic_adddi */ case 8: return 3652; /* aarch64_atomic_subqi */ case 9: return 3657; /* aarch64_atomic_subhi */ case 10: return 3662; /* aarch64_atomic_subsi */ case 11: return 3667; /* aarch64_atomic_subdi */ case 12: return 3653; /* aarch64_atomic_orqi */ case 13: return 3658; /* aarch64_atomic_orhi */ case 14: return 3663; /* aarch64_atomic_orsi */ case 15: return 3668; /* aarch64_atomic_ordi */ case 16: return 3654; /* aarch64_atomic_xorqi */ case 17: return 3659; /* aarch64_atomic_xorhi */ case 18: return 3664; /* aarch64_atomic_xorsi */ case 19: return 3669; /* aarch64_atomic_xordi */ case 20: return 3655; /* aarch64_atomic_andqi */ case 21: return 3660; /* aarch64_atomic_andhi */ case 22: return 3665; /* aarch64_atomic_andsi */ case 23: return 3670; /* aarch64_atomic_anddi */ case 24: return 3687; /* atomic_nandqi */ case 25: return 3688; /* atomic_nandhi */ case 26: return 3689; /* atomic_nandsi */ case 27: return 3690; /* atomic_nanddi */ default: return -1; } case SUBREG: case MEM: operands[1] = x11; if (pattern234 (x1, 17, 2) != 0) return -1; x6 = XVECEXP (x1, 0, 1); x7 = XEXP (x6, 1); x35 = XVECEXP (x7, 0, 0); operands[2] = x35; x12 = XVECEXP (x7, 0, 1); operands[3] = x12; if (!const_int_operand (operands[3], E_SImode)) return -1; x5 = XEXP (x4, 0); operands[4] = x5; if (!scratch_operand (operands[4], E_SImode)) return -1; switch (pattern557 (x6)) { case 0: return 3643; /* aarch64_atomic_exchangeqi */ case 1: return 3644; /* aarch64_atomic_exchangehi */ case 2: return 3645; /* aarch64_atomic_exchangesi */ case 3: return 3646; /* aarch64_atomic_exchangedi */ default: return -1; } case PLUS: switch (pattern190 (x1)) { case 0: return 3731; /* aarch64_atomic_add_fetchqi */ case 1: return 3736; /* aarch64_atomic_add_fetchhi */ case 2: return 3741; /* aarch64_atomic_add_fetchsi */ case 3: return 3746; /* aarch64_atomic_add_fetchdi */ default: return -1; } case MINUS: switch (pattern190 (x1)) { case 0: return 3732; /* aarch64_atomic_sub_fetchqi */ case 1: return 3737; /* aarch64_atomic_sub_fetchhi */ case 2: return 3742; /* aarch64_atomic_sub_fetchsi */ case 3: return 3747; /* aarch64_atomic_sub_fetchdi */ default: return -1; } case IOR: switch (pattern191 (x1)) { case 0: return 3733; /* aarch64_atomic_or_fetchqi */ case 1: return 3738; /* aarch64_atomic_or_fetchhi */ case 2: return 3743; /* aarch64_atomic_or_fetchsi */ case 3: return 3748; /* aarch64_atomic_or_fetchdi */ default: return -1; } case XOR: switch (pattern191 (x1)) { case 0: return 3734; /* aarch64_atomic_xor_fetchqi */ case 1: return 3739; /* aarch64_atomic_xor_fetchhi */ case 2: return 3744; /* aarch64_atomic_xor_fetchsi */ case 3: return 3749; /* aarch64_atomic_xor_fetchdi */ default: return -1; } case AND: switch (pattern191 (x1)) { case 0: return 3735; /* aarch64_atomic_and_fetchqi */ case 1: return 3740; /* aarch64_atomic_and_fetchhi */ case 2: return 3745; /* aarch64_atomic_and_fetchsi */ case 3: return 3750; /* aarch64_atomic_and_fetchdi */ default: return -1; } case NOT: x13 = XEXP (x11, 0); if (GET_CODE (x13) != AND) return -1; x6 = XVECEXP (x1, 0, 1); if (pattern33 (x6, 20, UNSPEC_VOLATILE, 3) != 0) return -1; x3 = XVECEXP (x1, 0, 2); if (GET_CODE (x3) != CLOBBER) return -1; x8 = XEXP (x3, 0); if (GET_CODE (x8) != REG || REGNO (x8) != 66 || GET_MODE (x8) != E_CCmode) return -1; x10 = XEXP (x2, 0); operands[0] = x10; x27 = XEXP (x13, 0); operands[1] = x27; x36 = XEXP (x13, 1); operands[2] = x36; x7 = XEXP (x6, 1); x37 = XVECEXP (x7, 0, 2); operands[3] = x37; if (!const_int_operand (operands[3], E_SImode)) return -1; x5 = XEXP (x4, 0); operands[4] = x5; if (!scratch_operand (operands[4], E_SImode)) return -1; switch (pattern507 (x1)) { case 0: return 3751; /* atomic_nand_fetchqi */ case 1: return 3752; /* atomic_nand_fetchhi */ case 2: return 3753; /* atomic_nand_fetchsi */ case 3: return 3754; /* atomic_nand_fetchdi */ default: return -1; } default: return -1; } case 52: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return -1; x11 = XEXP (x2, 1); if (GET_CODE (x11) != UNSPEC || pattern141 (x1) != 0 || pattern287 (x1, CLOBBER_HIGH) != 0) return -1; return recog_195 (x1, insn, pnum_clobbers); default: return -1; } case UNSPEC: if (XVECLEN (x1, 0) != 1 || XINT (x1, 1) != 43) return -1; x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 19; /* nop */ case PREFETCH: x38 = XEXP (x1, 0); operands[0] = x38; if (!aarch64_prefetch_operand (operands[0], E_DImode)) return -1; x39 = XEXP (x1, 1); operands[1] = x39; if (!const_int_operand (operands[1], E_QImode)) return -1; x40 = XEXP (x1, 2); operands[2] = x40; if (!const_int_operand (operands[2], E_QImode)) return -1; return 20; /* prefetch */ case TRAP_IF: x38 = XEXP (x1, 0); if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 1]) return -1; x39 = XEXP (x1, 1); if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 8]) return -1; return 21; /* trap */ case RETURN: return 22; /* *do_return */ case SIMPLE_RETURN: if (! #line 780 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_use_simple_return_insn_p ())) return -1; return 23; /* simple_return */ case CALL: if (pnum_clobbers == NULL) return -1; x38 = XEXP (x1, 0); if (GET_CODE (x38) != MEM || GET_MODE (x38) != E_DImode) return -1; x41 = XEXP (x38, 0); operands[0] = x41; if (!aarch64_call_insn_operand (operands[0], E_DImode)) return -1; x39 = XEXP (x1, 1); operands[1] = x39; *pnum_clobbers = 1; return 40; /* *call_insn */ case UNSPEC_VOLATILE: if (XVECLEN (x1, 0) != 1) return -1; switch (XINT (x1, 1)) { case 5: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 1071; /* blockage */ case 2: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!register_operand (operands[0], E_SImode)) return -1; return 1081; /* set_fpcr */ case 4: x2 = XVECEXP (x1, 0, 0); operands[0] = x2; if (!register_operand (operands[0], E_SImode)) return -1; return 1083; /* set_fpsr */ case 8: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 1086; /* bti_noarg */ case 9: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 1087; /* bti_c */ case 10: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 1088; /* bti_j */ case 11: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 1089; /* bti_jc */ case 7: x2 = XVECEXP (x1, 0, 0); if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return -1; return 1090; /* speculation_barrier */ 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, x5, x6, x7, x8, x9; rtx x10, x11; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 0); operands[0] = x2; x3 = XEXP (x1, 1); switch (XVECLEN (x3, 0)) { case 2: x4 = XVECEXP (x3, 0, 0); operands[1] = x4; switch (XINT (x3, 1)) { case 203: switch (pattern204 (x3)) { case 0: if (!( #line 5186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 5188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_89 (insn, operands); case 1: if (!( #line 5186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 5188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_90 (insn, operands); case 2: if (!( #line 5186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 5188 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_91 (insn, operands); default: return NULL; } case 176: if (GET_MODE (x3) != E_OImode || !register_operand (operands[0], E_OImode) || !register_operand (operands[1], E_V16QImode)) return NULL; x5 = XVECEXP (x3, 0, 1); operands[2] = x5; if (!register_operand (operands[2], E_V16QImode) || !( #line 5724 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 5726 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_95 (insn, operands); case 103: switch (pattern205 (x3)) { case 0: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_176 (insn, operands); case 1: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_177 (insn, operands); case 2: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_178 (insn, operands); case 3: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_179 (insn, operands); case 4: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_180 (insn, operands); case 5: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_181 (insn, operands); case 6: if (!( #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && BYTES_BIG_ENDIAN) && #line 108 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_182 (insn, operands); default: return NULL; } case 89: x5 = XVECEXP (x3, 0, 1); switch (GET_CODE (x5)) { case REG: case SUBREG: case MEM: switch (pattern252 (x3)) { case 0: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16QImode) || register_operand (operands[2], VNx16QImode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx16QImode) && register_operand (operands[2], VNx16QImode)))) return NULL; return gen_split_183 (insn, operands); case 1: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8HImode) || register_operand (operands[2], VNx8HImode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx8HImode) && register_operand (operands[2], VNx8HImode)))) return NULL; return gen_split_184 (insn, operands); case 2: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4SImode) || register_operand (operands[2], VNx4SImode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx4SImode) && register_operand (operands[2], VNx4SImode)))) return NULL; return gen_split_185 (insn, operands); case 3: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx2DImode) || register_operand (operands[2], VNx2DImode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx2DImode) && register_operand (operands[2], VNx2DImode)))) return NULL; return gen_split_186 (insn, operands); case 4: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8HFmode) || register_operand (operands[2], VNx8HFmode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx8HFmode) && register_operand (operands[2], VNx8HFmode)))) return NULL; return gen_split_187 (insn, operands); case 5: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4SFmode) || register_operand (operands[2], VNx4SFmode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx4SFmode) && register_operand (operands[2], VNx4SFmode)))) return NULL; return gen_split_188 (insn, operands); case 6: if (!( #line 179 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx2DFmode) || register_operand (operands[2], VNx2DFmode))) && #line 186 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( register_operand (operands[0], VNx2DFmode) && register_operand (operands[2], VNx2DFmode)))) return NULL; return gen_split_189 (insn, operands); case 7: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx32QImode) || register_operand (operands[2], VNx32QImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_211 (insn, operands); case 8: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16HImode) || register_operand (operands[2], VNx16HImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_212 (insn, operands); case 9: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8SImode) || register_operand (operands[2], VNx8SImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_213 (insn, operands); case 10: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4DImode) || register_operand (operands[2], VNx4DImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_214 (insn, operands); case 11: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16HFmode) || register_operand (operands[2], VNx16HFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_215 (insn, operands); case 12: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8SFmode) || register_operand (operands[2], VNx8SFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_216 (insn, operands); case 13: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx4DFmode) || register_operand (operands[2], VNx4DFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_217 (insn, operands); case 14: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx48QImode) || register_operand (operands[2], VNx48QImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_218 (insn, operands); case 15: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx24HImode) || register_operand (operands[2], VNx24HImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_219 (insn, operands); case 16: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx12SImode) || register_operand (operands[2], VNx12SImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_220 (insn, operands); case 17: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx6DImode) || register_operand (operands[2], VNx6DImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_221 (insn, operands); case 18: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx24HFmode) || register_operand (operands[2], VNx24HFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_222 (insn, operands); case 19: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx12SFmode) || register_operand (operands[2], VNx12SFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_223 (insn, operands); case 20: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx6DFmode) || register_operand (operands[2], VNx6DFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_224 (insn, operands); case 21: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx64QImode) || register_operand (operands[2], VNx64QImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_225 (insn, operands); case 22: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx32HImode) || register_operand (operands[2], VNx32HImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_226 (insn, operands); case 23: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16SImode) || register_operand (operands[2], VNx16SImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_227 (insn, operands); case 24: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8DImode) || register_operand (operands[2], VNx8DImode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_228 (insn, operands); case 25: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx32HFmode) || register_operand (operands[2], VNx32HFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_229 (insn, operands); case 26: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx16SFmode) || register_operand (operands[2], VNx16SFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_230 (insn, operands); case 27: if (!( #line 413 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[0], VNx8DFmode) || register_operand (operands[2], VNx8DFmode))) && #line 417 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed))) return NULL; return gen_split_231 (insn, operands); default: return NULL; } case MULT: switch (pattern255 (x3)) { case 0: if (!( #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx16QImode)))) return NULL; return gen_split_246 (insn, operands); case 1: if (!( #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx8HImode)))) return NULL; return gen_split_247 (insn, operands); case 2: if (!( #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx4SImode)))) return NULL; return gen_split_248 (insn, operands); case 3: if (!( #line 951 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 958 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx2DImode)))) return NULL; return gen_split_249 (insn, operands); case 4: if (!( #line 2319 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2325 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[3], VNx8HFmode)))) return NULL; return gen_split_341 (insn, operands); case 5: if (!( #line 2319 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2325 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[3], VNx4SFmode)))) return NULL; return gen_split_342 (insn, operands); case 6: if (!( #line 2319 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2325 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[3], VNx2DFmode)))) return NULL; return gen_split_343 (insn, operands); default: return NULL; } case ASHIFT: switch (pattern260 (x3)) { case 0: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx16QImode)))) return NULL; return gen_split_250 (insn, operands); case 1: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx8HImode)))) return NULL; return gen_split_253 (insn, operands); case 2: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx4SImode)))) return NULL; return gen_split_256 (insn, operands); case 3: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx2DImode)))) return NULL; return gen_split_259 (insn, operands); default: return NULL; } case ASHIFTRT: switch (pattern262 (x3)) { case 0: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx16QImode)))) return NULL; return gen_split_251 (insn, operands); case 1: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx8HImode)))) return NULL; return gen_split_254 (insn, operands); case 2: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx4SImode)))) return NULL; return gen_split_257 (insn, operands); case 3: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx2DImode)))) return NULL; return gen_split_260 (insn, operands); default: return NULL; } case LSHIFTRT: switch (pattern262 (x3)) { case 0: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx16QImode)))) return NULL; return gen_split_252 (insn, operands); case 1: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx8HImode)))) return NULL; return gen_split_255 (insn, operands); case 2: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx4SImode)))) return NULL; return gen_split_258 (insn, operands); case 3: if (!( #line 1265 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1270 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !register_operand (operands[3], VNx2DImode)))) return NULL; return gen_split_261 (insn, operands); default: return NULL; } case PLUS: switch (pattern269 (x3)) { case 0: if (!( #line 2243 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2250 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[3], VNx8HFmode)))) return NULL; return gen_split_335 (insn, operands); case 1: if (!( #line 2243 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2250 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[3], VNx4SFmode)))) return NULL; return gen_split_336 (insn, operands); case 2: if (!( #line 2243 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2250 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[3], VNx2DFmode)))) return NULL; return gen_split_337 (insn, operands); default: return NULL; } case MINUS: switch (pattern271 (x3)) { case 0: if (!( #line 2279 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[2], VNx8HFmode) || register_operand (operands[3], VNx8HFmode))) && #line 2289 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[2], VNx8HFmode) && register_operand (operands[3], VNx8HFmode)))) return NULL; return gen_split_338 (insn, operands); case 1: if (!( #line 2279 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[2], VNx4SFmode) || register_operand (operands[3], VNx4SFmode))) && #line 2289 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[2], VNx4SFmode) && register_operand (operands[3], VNx4SFmode)))) return NULL; return gen_split_339 (insn, operands); case 2: if (!( #line 2279 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && (register_operand (operands[2], VNx2DFmode) || register_operand (operands[3], VNx2DFmode))) && #line 2289 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && register_operand (operands[2], VNx2DFmode) && register_operand (operands[3], VNx2DFmode)))) return NULL; return gen_split_340 (insn, operands); default: return NULL; } default: return NULL; } default: return NULL; } case 3: if (XINT (x3, 1) != 228) return NULL; x4 = XVECEXP (x3, 0, 0); operands[1] = x4; x5 = XVECEXP (x3, 0, 1); switch (GET_CODE (x5)) { case PLUS: case MINUS: case MULT: case DIV: case UDIV: case AND: case IOR: case XOR: case SMIN: case SMAX: case UMIN: case UMAX: operands[5] = x5; x6 = XEXP (x5, 0); operands[2] = x6; x7 = XEXP (x5, 1); operands[3] = x7; x8 = XVECEXP (x3, 0, 2); operands[4] = x8; switch (GET_MODE (operands[0])) { case E_VNx16QImode: if (pattern444 (x3, E_VNx16QImode, E_VNx16BImode) != 0 || ! #line 2041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4])))) return NULL; return gen_split_331 (insn, operands); case E_VNx8HImode: if (pattern444 (x3, E_VNx8HImode, E_VNx8BImode) != 0 || ! #line 2041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4])))) return NULL; return gen_split_332 (insn, operands); case E_VNx4SImode: if (pattern444 (x3, E_VNx4SImode, E_VNx4BImode) != 0 || ! #line 2041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4])))) return NULL; return gen_split_333 (insn, operands); case E_VNx2DImode: if (pattern444 (x3, E_VNx2DImode, E_VNx2BImode) != 0 || ! #line 2041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4])))) return NULL; return gen_split_334 (insn, operands); default: return NULL; } case UNSPEC: switch (XVECLEN (x5, 0)) { case 2: x9 = XVECEXP (x5, 0, 0); operands[2] = x9; x10 = XVECEXP (x5, 0, 1); operands[3] = x10; x8 = XVECEXP (x3, 0, 2); operands[4] = x8; switch (XINT (x5, 1)) { case 237: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern471 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_344 (insn, operands); case E_VNx4SFmode: if (pattern471 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_350 (insn, operands); case E_VNx2DFmode: if (pattern471 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_356 (insn, operands); default: return NULL; } case 238: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern471 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_345 (insn, operands); case E_VNx4SFmode: if (pattern471 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_351 (insn, operands); case E_VNx2DFmode: if (pattern471 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_357 (insn, operands); default: return NULL; } case 239: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern471 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_346 (insn, operands); case E_VNx4SFmode: if (pattern471 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_352 (insn, operands); case E_VNx2DFmode: if (pattern471 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_358 (insn, operands); default: return NULL; } case 240: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern471 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_347 (insn, operands); case E_VNx4SFmode: if (pattern471 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_353 (insn, operands); case E_VNx2DFmode: if (pattern471 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_359 (insn, operands); default: return NULL; } case 241: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern471 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_348 (insn, operands); case E_VNx4SFmode: if (pattern471 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_354 (insn, operands); case E_VNx2DFmode: if (pattern471 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_360 (insn, operands); default: return NULL; } case 242: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern471 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_349 (insn, operands); case E_VNx4SFmode: if (pattern471 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_355 (insn, operands); case E_VNx2DFmode: if (pattern471 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 2957 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 2959 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !(rtx_equal_p (operands[0], operands[4]) || rtx_equal_p (operands[2], operands[4]) || rtx_equal_p (operands[3], operands[4]))))) return NULL; return gen_split_361 (insn, operands); default: return NULL; } default: return NULL; } case 3: x9 = XVECEXP (x5, 0, 0); operands[2] = x9; x10 = XVECEXP (x5, 0, 1); operands[3] = x10; x11 = XVECEXP (x5, 0, 2); operands[4] = x11; x8 = XVECEXP (x3, 0, 2); operands[5] = x8; switch (XINT (x5, 1)) { case 243: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern492 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_362 (insn, operands); case E_VNx4SFmode: if (pattern492 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_366 (insn, operands); case E_VNx2DFmode: if (pattern492 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_370 (insn, operands); default: return NULL; } case 244: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern492 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_363 (insn, operands); case E_VNx4SFmode: if (pattern492 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_367 (insn, operands); case E_VNx2DFmode: if (pattern492 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_371 (insn, operands); default: return NULL; } case 245: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern492 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_364 (insn, operands); case E_VNx4SFmode: if (pattern492 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_368 (insn, operands); case E_VNx2DFmode: if (pattern492 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_372 (insn, operands); default: return NULL; } case 246: switch (GET_MODE (operands[0])) { case E_VNx8HFmode: if (pattern492 (x3, E_VNx8HFmode, E_VNx8BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_365 (insn, operands); case E_VNx4SFmode: if (pattern492 (x3, E_VNx4SFmode, E_VNx4BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_369 (insn, operands); case E_VNx2DFmode: if (pattern492 (x3, E_VNx2DFmode, E_VNx2BImode) != 0 || !( #line 3045 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && !rtx_equal_p (operands[2], operands[5]) && !rtx_equal_p (operands[3], operands[5]) && !rtx_equal_p (operands[4], operands[5])) && #line 3053 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && !CONSTANT_P (operands[5]) && !rtx_equal_p (operands[0], operands[5])))) return NULL; return gen_split_373 (insn, operands); default: return NULL; } default: return NULL; } default: return NULL; } default: return NULL; } 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; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); operands[1] = x2; x3 = XEXP (x1, 0); operands[0] = x3; switch (GET_MODE (operands[0])) { case E_SImode: if (!nonimmediate_operand (operands[0], E_SImode) || !aarch64_mov_operand (operands[1], E_SImode) || ! #line 1141 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode) && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0])))) return NULL; return gen_split_9 (insn, operands); case E_DImode: if (!nonimmediate_operand (operands[0], E_DImode) || !aarch64_mov_operand (operands[1], E_DImode) || ! #line 1177 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ((CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), DImode)) && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0])))) return NULL; return gen_split_10 (insn, operands); case E_TImode: if (!register_operand (operands[0], E_TImode) || !aarch64_reg_or_imm (operands[1], E_TImode) || ! #line 1250 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (reload_completed && aarch64_split_128bit_move_p (operands[0], operands[1]))) return NULL; return gen_split_11 (insn, operands); case E_HFmode: if (!nonimmediate_operand (operands[0], E_HFmode) || !general_operand (operands[1], E_HFmode) || ! #line 1349 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (can_create_pseudo_p () && !aarch64_can_const_movi_rtx_p (operands[1], HFmode) && !aarch64_float_const_representable_p (operands[1]) && aarch64_float_const_rtx_p (operands[1]))) return NULL; return gen_split_12 (insn, operands); case E_SFmode: if (!nonimmediate_operand (operands[0], E_SFmode) || !general_operand (operands[1], E_SFmode) || ! #line 1349 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (can_create_pseudo_p () && !aarch64_can_const_movi_rtx_p (operands[1], SFmode) && !aarch64_float_const_representable_p (operands[1]) && aarch64_float_const_rtx_p (operands[1]))) return NULL; return gen_split_13 (insn, operands); case E_DFmode: if (!nonimmediate_operand (operands[0], E_DFmode) || !general_operand (operands[1], E_DFmode) || ! #line 1349 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (can_create_pseudo_p () && !aarch64_can_const_movi_rtx_p (operands[1], DFmode) && !aarch64_float_const_representable_p (operands[1]) && aarch64_float_const_rtx_p (operands[1]))) return NULL; return gen_split_14 (insn, operands); case E_TFmode: if (!register_operand (operands[0], E_TFmode) || !aarch64_reg_or_imm (operands[1], E_TFmode) || ! #line 1394 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (reload_completed && aarch64_split_128bit_move_p (operands[0], operands[1]))) return NULL; return gen_split_15 (insn, operands); case E_V16QImode: if (!register_operand (operands[0], E_V16QImode) || !register_operand (operands[1], E_V16QImode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_63 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_70 (insn, operands); case E_V8HImode: if (!register_operand (operands[0], E_V8HImode) || !register_operand (operands[1], E_V8HImode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_64 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_71 (insn, operands); case E_V4SImode: if (!register_operand (operands[0], E_V4SImode) || !register_operand (operands[1], E_V4SImode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_65 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_72 (insn, operands); case E_V2DImode: if (!register_operand (operands[0], E_V2DImode) || !register_operand (operands[1], E_V2DImode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_66 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_73 (insn, operands); case E_V8HFmode: if (!register_operand (operands[0], E_V8HFmode) || !register_operand (operands[1], E_V8HFmode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_67 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_74 (insn, operands); case E_V4SFmode: if (!register_operand (operands[0], E_V4SFmode) || !register_operand (operands[1], E_V4SFmode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_68 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_75 (insn, operands); case E_V2DFmode: if (!register_operand (operands[0], E_V2DFmode) || !register_operand (operands[1], E_V2DFmode)) return NULL; if ( #line 239 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && GP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1])))) return gen_split_69 (insn, operands); if (! #line 251 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed && ((FP_REGNUM_P (REGNO (operands[0])) && GP_REGNUM_P (REGNO (operands[1]))) || (GP_REGNUM_P (REGNO (operands[0])) && FP_REGNUM_P (REGNO (operands[1])))))) return NULL; return gen_split_76 (insn, operands); case E_OImode: if (!register_operand (operands[0], E_OImode) || !register_operand (operands[1], E_OImode) || ! #line 5356 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_92 (insn, operands); case E_CImode: if (!nonimmediate_operand (operands[0], E_CImode) || !general_operand (operands[1], E_CImode) || ! #line 5366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_93 (insn, operands); case E_XImode: if (!nonimmediate_operand (operands[0], E_XImode) || !general_operand (operands[1], E_XImode) || ! #line 5394 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_94 (insn, operands); case E_VNx32QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx32QImode) || !aarch64_sve_general_operand (operands[1], E_VNx32QImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_190 (insn, operands); case E_VNx16HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16HImode) || !aarch64_sve_general_operand (operands[1], E_VNx16HImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_191 (insn, operands); case E_VNx8SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8SImode) || !aarch64_sve_general_operand (operands[1], E_VNx8SImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_192 (insn, operands); case E_VNx4DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4DImode) || !aarch64_sve_general_operand (operands[1], E_VNx4DImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_193 (insn, operands); case E_VNx16HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx16HFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_194 (insn, operands); case E_VNx8SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx8SFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_195 (insn, operands); case E_VNx4DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx4DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx4DFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_196 (insn, operands); case E_VNx48QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx48QImode) || !aarch64_sve_general_operand (operands[1], E_VNx48QImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_197 (insn, operands); case E_VNx24HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx24HImode) || !aarch64_sve_general_operand (operands[1], E_VNx24HImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_198 (insn, operands); case E_VNx12SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx12SImode) || !aarch64_sve_general_operand (operands[1], E_VNx12SImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_199 (insn, operands); case E_VNx6DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx6DImode) || !aarch64_sve_general_operand (operands[1], E_VNx6DImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_200 (insn, operands); case E_VNx24HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx24HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx24HFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_201 (insn, operands); case E_VNx12SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx12SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx12SFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_202 (insn, operands); case E_VNx6DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx6DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx6DFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_203 (insn, operands); case E_VNx64QImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx64QImode) || !aarch64_sve_general_operand (operands[1], E_VNx64QImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_204 (insn, operands); case E_VNx32HImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx32HImode) || !aarch64_sve_general_operand (operands[1], E_VNx32HImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_205 (insn, operands); case E_VNx16SImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16SImode) || !aarch64_sve_general_operand (operands[1], E_VNx16SImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_206 (insn, operands); case E_VNx8DImode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8DImode) || !aarch64_sve_general_operand (operands[1], E_VNx8DImode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_207 (insn, operands); case E_VNx32HFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx32HFmode) || !aarch64_sve_general_operand (operands[1], E_VNx32HFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_208 (insn, operands); case E_VNx16SFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx16SFmode) || !aarch64_sve_general_operand (operands[1], E_VNx16SFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_209 (insn, operands); case E_VNx8DFmode: if (!aarch64_sve_nonimmediate_operand (operands[0], E_VNx8DFmode) || !aarch64_sve_general_operand (operands[1], E_VNx8DFmode) || ! #line 385 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE && reload_completed)) return NULL; return gen_split_210 (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, x7, x8, x9; rtx x10, x11, x12; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return NULL; x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case EQ: switch (pattern129 (x1)) { case 0: if (!( #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), SImode) && !aarch64_plus_operand (operands[2], SImode) && !reload_completed) && #line 3995 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_21 (insn, operands); case 1: if (!( #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), DImode) && !aarch64_plus_operand (operands[2], DImode) && !reload_completed) && #line 3995 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_23 (insn, operands); default: return NULL; } case NE: switch (pattern129 (x1)) { case 0: if (!( #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), SImode) && !aarch64_plus_operand (operands[2], SImode) && !reload_completed) && #line 3995 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_22 (insn, operands); case 1: if (!( #line 3991 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[2]), DImode) && !aarch64_plus_operand (operands[2], DImode) && !reload_completed) && #line 3995 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_24 (insn, operands); default: return NULL; } case COMPARE: x4 = XEXP (x3, 1); if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return NULL; x5 = XEXP (x2, 0); if (GET_CODE (x5) != REG || REGNO (x5) != 66) return NULL; x6 = XEXP (x3, 0); switch (GET_CODE (x6)) { case AND: x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER || GET_MODE (x5) != E_CC_NZmode || GET_MODE (x3) != E_CC_NZmode) return NULL; x8 = XEXP (x7, 0); if (!register_operand (x8, E_SImode)) return NULL; x9 = XEXP (x6, 0); switch (GET_CODE (x9)) { case REG: case SUBREG: operands[0] = x9; x10 = XEXP (x6, 1); operands[1] = x10; operands[2] = x8; switch (GET_MODE (x6)) { case E_SImode: if (!register_operand (operands[0], E_SImode) || !aarch64_mov_imm_operand (operands[1], E_SImode)) return NULL; return gen_split_31 (insn, operands); case E_DImode: if (!register_operand (operands[0], E_DImode) || !aarch64_mov_imm_operand (operands[1], E_DImode)) return NULL; return gen_split_32 (insn, operands); default: return NULL; } case ASHIFT: switch (pattern472 (x1)) { case 0: return gen_split_33 (insn, operands); case 1: return gen_split_37 (insn, operands); default: return NULL; } case ASHIFTRT: switch (pattern472 (x1)) { case 0: return gen_split_34 (insn, operands); case 1: return gen_split_38 (insn, operands); default: return NULL; } case LSHIFTRT: switch (pattern472 (x1)) { case 0: return gen_split_35 (insn, operands); case 1: return gen_split_39 (insn, operands); default: return NULL; } case ROTATERT: switch (pattern472 (x1)) { case 0: return gen_split_36 (insn, operands); case 1: return gen_split_40 (insn, operands); default: return NULL; } default: return NULL; } case UNSPEC: if (XVECLEN (x6, 0) != 2 || XINT (x6, 1) != 90 || GET_MODE (x6) != E_SImode) return NULL; x11 = XVECEXP (x6, 0, 1); if (GET_CODE (x11) != UNSPEC || XVECLEN (x11, 0) != 2 || XINT (x11, 1) != 97) return NULL; x7 = XVECEXP (x1, 0, 1); if (pattern33 (x7, 97, UNSPEC, 2) != 0 || GET_MODE (x5) != E_CCmode || GET_MODE (x3) != E_CCmode) return NULL; x12 = XVECEXP (x6, 0, 0); operands[1] = x12; switch (pattern565 (x1)) { case 0: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && ( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return gen_split_262 (insn, operands); if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || !( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return NULL; return gen_split_263 (insn, operands); case 1: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && ( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return gen_split_264 (insn, operands); if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || !( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return NULL; return gen_split_265 (insn, operands); case 2: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && ( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return gen_split_266 (insn, operands); if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || !( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return NULL; return gen_split_267 (insn, operands); case 3: if (aarch64_reg_or_zero (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && ( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return gen_split_268 (insn, operands); if (!aarch64_reg_or_zero (operands[2], E_DImode) || !aarch64_reg_or_zero (operands[3], E_DImode) || !( #line 1362 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1366 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( !CONSTANT_P (operands[1])))) return NULL; return gen_split_269 (insn, operands); default: return NULL; } default: return NULL; } case NEG: switch (pattern130 (x1)) { case 0: if (!( #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4634 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_79 (insn, operands); case 1: if (!( #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4634 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_80 (insn, operands); case 2: if (!( #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4634 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_81 (insn, operands); case 3: if (!( #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4634 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_82 (insn, operands); case 4: if (!( #line 4632 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4634 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_83 (insn, operands); case 5: if (!( #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4697 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_84 (insn, operands); case 6: if (!( #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4697 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_85 (insn, operands); case 7: if (!( #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4697 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_86 (insn, operands); case 8: if (!( #line 4695 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4697 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_87 (insn, operands); case 9: if (!( #line 4766 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 4768 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( reload_completed))) return NULL; return gen_split_88 (insn, operands); default: return NULL; } case VEC_DUPLICATE: switch (pattern139 (x1)) { case 0: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_239 (insn, operands); case 1: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_240 (insn, operands); case 2: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_241 (insn, operands); case 3: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_242 (insn, operands); case 4: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_243 (insn, operands); case 5: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_244 (insn, operands); case 6: if (!( #line 649 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 654 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( MEM_P (operands[1])))) return NULL; return gen_split_245 (insn, operands); default: return NULL; } case AND: x6 = XEXP (x3, 0); if (GET_CODE (x6) != UNSPEC || XVECLEN (x6, 0) != 2 || XINT (x6, 1) != 89) return NULL; x7 = XVECEXP (x1, 0, 1); if (GET_CODE (x7) != CLOBBER) return NULL; x8 = XEXP (x7, 0); if (GET_CODE (x8) != REG || REGNO (x8) != 66 || GET_MODE (x8) != E_CCmode) return NULL; x5 = XEXP (x2, 0); operands[0] = x5; switch (pattern443 (x3)) { case 0: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_270 (insn, operands); case 1: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_280 (insn, operands); case 2: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_290 (insn, operands); case 3: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_300 (insn, operands); case 4: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_271 (insn, operands); case 5: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_281 (insn, operands); case 6: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_291 (insn, operands); case 7: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_301 (insn, operands); case 8: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_272 (insn, operands); case 9: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_282 (insn, operands); case 10: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_292 (insn, operands); case 11: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_302 (insn, operands); case 12: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_273 (insn, operands); case 13: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_283 (insn, operands); case 14: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_293 (insn, operands); case 15: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_303 (insn, operands); case 16: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_274 (insn, operands); case 17: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_284 (insn, operands); case 18: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_294 (insn, operands); case 19: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_304 (insn, operands); case 20: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_275 (insn, operands); case 21: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_285 (insn, operands); case 22: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_295 (insn, operands); case 23: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_305 (insn, operands); case 24: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_276 (insn, operands); case 25: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_286 (insn, operands); case 26: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_296 (insn, operands); case 27: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_306 (insn, operands); case 28: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_277 (insn, operands); case 29: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_287 (insn, operands); case 30: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_297 (insn, operands); case 31: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_307 (insn, operands); case 32: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_278 (insn, operands); case 33: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_288 (insn, operands); case 34: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_298 (insn, operands); case 35: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_308 (insn, operands); case 36: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_279 (insn, operands); case 37: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_289 (insn, operands); case 38: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_299 (insn, operands); case 39: if (!( #line 1457 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1459 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_309 (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 x10, x11, x12, x13, x14, x15, x16; rtx_insn *res ATTRIBUTE_UNUSED; x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case IF_THEN_ELSE: x3 = XEXP (x2, 1); if (GET_CODE (x3) != LABEL_REF) return NULL; x4 = XEXP (x2, 2); if (GET_CODE (x4) != PC) return NULL; x5 = XEXP (x1, 0); if (GET_CODE (x5) != PC) return NULL; x6 = XEXP (x3, 0); operands[2] = x6; x7 = XEXP (x2, 0); switch (GET_CODE (x7)) { case EQ: switch (pattern284 (x2)) { case 0: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_1 (insn, operands); case 1: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_3 (insn, operands); case 2: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_5 (insn, operands); case 3: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_7 (insn, operands); default: return NULL; } case NE: switch (pattern284 (x2)) { case 0: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_2 (insn, operands); case 1: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), SImode) && !aarch64_plus_operand (operands[1], SImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_4 (insn, operands); case 2: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 105 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == SImode || Pmode == SImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_6 (insn, operands); case 3: if (!(( #line 586 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!aarch64_move_imm (INTVAL (operands[1]), DImode) && !aarch64_plus_operand (operands[1], DImode) && !reload_completed) && #line 106 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/iterators.md" (ptr_mode == DImode || Pmode == DImode)) && #line 590 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_8 (insn, operands); default: return NULL; } 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: return split_2 (x1, insn); case PLUS: x5 = XEXP (x1, 0); operands[0] = x5; x7 = XEXP (x2, 0); operands[1] = x7; x3 = XEXP (x2, 1); operands[2] = x3; switch (pattern1 (x2)) { case 0: if (aarch64_pluslong_strict_immedate (operands[2], E_SImode) && #line 1836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (epilogue_completed)) return gen_split_16 (insn, operands); if (!aarch64_pluslong_or_poly_operand (operands[2], E_SImode) || !( #line 1868 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE && operands[0] != stack_pointer_rtx) && #line 1876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( epilogue_completed && !reg_overlap_mentioned_p (operands[0], operands[1]) && aarch64_split_add_offset_immediate (operands[2], SImode)))) return NULL; return gen_split_18 (insn, operands); case 1: if (aarch64_pluslong_strict_immedate (operands[2], E_DImode) && #line 1836 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (epilogue_completed)) return gen_split_17 (insn, operands); if (!aarch64_pluslong_or_poly_operand (operands[2], E_DImode) || !( #line 1868 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SVE && operands[0] != stack_pointer_rtx) && #line 1876 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( epilogue_completed && !reg_overlap_mentioned_p (operands[0], operands[1]) && aarch64_split_add_offset_immediate (operands[2], DImode)))) return NULL; return gen_split_19 (insn, operands); default: return NULL; } case ZERO_EXTEND: if (GET_MODE (x2) != E_DImode) return NULL; x7 = XEXP (x2, 0); if (GET_CODE (x7) != PLUS || GET_MODE (x7) != E_SImode) return NULL; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], E_DImode)) return NULL; x8 = XEXP (x7, 0); operands[1] = x8; if (!register_operand (operands[1], E_SImode)) return NULL; x9 = XEXP (x7, 1); operands[2] = x9; if (!aarch64_pluslong_strict_immedate (operands[2], E_SImode) || ! #line 1895 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (epilogue_completed)) return NULL; return gen_split_20 (insn, operands); case AND: x5 = XEXP (x1, 0); operands[0] = x5; x7 = XEXP (x2, 0); switch (GET_CODE (x7)) { case REG: case SUBREG: operands[1] = x7; x3 = XEXP (x2, 1); operands[2] = x3; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern285 (x2, E_SImode) != 0) return NULL; return gen_split_25 (insn, operands); case E_DImode: if (pattern285 (x2, E_DImode) != 0) return NULL; return gen_split_26 (insn, operands); default: return NULL; } case ASHIFT: if (GET_MODE (x7) != E_DImode || pattern144 (x2, E_DImode) != 0) return NULL; x3 = XEXP (x2, 1); operands[3] = x3; if (!const_int_operand (operands[3], E_VOIDmode) || ! #line 5696 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_mask_and_shift_for_ubfiz_p (DImode, operands[3], operands[2]) && (INTVAL (operands[2]) + popcount_hwi (INTVAL (operands[3]))) == GET_MODE_BITSIZE (SImode))) return NULL; return gen_split_62 (insn, operands); case UNSPEC: if (XVECLEN (x7, 0) != 2 || XINT (x7, 1) != 89) return NULL; x10 = XVECEXP (x7, 0, 0); operands[1] = x10; x3 = XEXP (x2, 1); operands[4] = x3; x11 = XVECEXP (x7, 0, 1); switch (GET_CODE (x11)) { case LT: switch (pattern366 (x2)) { case 0: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_310 (insn, operands); case 1: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_316 (insn, operands); case 2: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_322 (insn, operands); default: return NULL; } case LE: switch (pattern366 (x2)) { case 0: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_311 (insn, operands); case 1: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_317 (insn, operands); case 2: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_323 (insn, operands); default: return NULL; } case EQ: switch (pattern366 (x2)) { case 0: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_312 (insn, operands); case 1: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_318 (insn, operands); case 2: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_324 (insn, operands); default: return NULL; } case NE: switch (pattern366 (x2)) { case 0: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_313 (insn, operands); case 1: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_319 (insn, operands); case 2: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_325 (insn, operands); default: return NULL; } case GE: switch (pattern366 (x2)) { case 0: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_314 (insn, operands); case 1: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_320 (insn, operands); case 2: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_326 (insn, operands); default: return NULL; } case GT: switch (pattern366 (x2)) { case 0: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_315 (insn, operands); case 1: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_321 (insn, operands); case 2: if (!( #line 1530 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1532 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_327 (insn, operands); default: return NULL; } case UNORDERED: switch (pattern348 (x2)) { case 0: if (!( #line 1551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_328 (insn, operands); case 1: if (!( #line 1551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_329 (insn, operands); case 2: if (!( #line 1551 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 1553 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( 1))) return NULL; return gen_split_330 (insn, operands); default: return NULL; } default: return NULL; } default: return NULL; } case NOT: x7 = XEXP (x2, 0); if (GET_CODE (x7) != XOR) return NULL; x5 = XEXP (x1, 0); operands[0] = x5; switch (pattern143 (x2)) { case 0: if (! #line 4570 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (reload_completed && FP_REGNUM_P (REGNO (operands[0])))) return NULL; return gen_split_27 (insn, operands); case 1: if (! #line 4570 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (reload_completed && FP_REGNUM_P (REGNO (operands[0])))) return NULL; return gen_split_28 (insn, operands); default: return NULL; } case CTZ: switch (pattern2 (x1)) { case 0: if (! #line 4792 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (reload_completed)) return NULL; return gen_split_29 (insn, operands); case 1: if (! #line 4792 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (reload_completed)) return NULL; return gen_split_30 (insn, operands); default: return NULL; } case ASHIFT: x5 = XEXP (x1, 0); operands[0] = x5; x7 = XEXP (x2, 0); operands[1] = x7; x3 = XEXP (x2, 1); switch (GET_CODE (x3)) { case SUBREG: switch (pattern28 (x2)) { case 0: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_41 (insn, operands); case 1: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_45 (insn, operands); default: return NULL; } case MINUS: if (GET_MODE (x3) != E_QImode) return NULL; x6 = XEXP (x3, 0); operands[2] = x6; if (!const_int_operand (operands[2], E_VOIDmode)) return NULL; x12 = XEXP (x3, 1); if (subreg_lowpart_operator (x12, E_VOIDmode)) { switch (pattern367 (x2)) { case 0: if (( #line 5041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[4]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0) && INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)) && #line 5044 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return gen_split_49 (insn, operands); break; case 1: if (( #line 5041 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[4]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0) && INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)) && #line 5044 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return gen_split_50 (insn, operands); break; default: break; } } operands[3] = x12; if (!register_operand (operands[3], E_QImode)) return NULL; switch (pattern1 (x2)) { case 0: if (!( #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)) && #line 5088 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_51 (insn, operands); case 1: if (!( #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)) && #line 5088 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_54 (insn, operands); default: return NULL; } default: return NULL; } case ASHIFTRT: switch (pattern29 (x1)) { case 0: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_42 (insn, operands); case 1: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_46 (insn, operands); case 2: if (!( #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)) && #line 5088 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_52 (insn, operands); case 3: if (!( #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)) && #line 5088 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_55 (insn, operands); case 4: if (! #line 5196 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_59 (insn, operands); case 5: if (! #line 5211 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_60 (insn, operands); default: return NULL; } case LSHIFTRT: switch (pattern29 (x1)) { case 0: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_43 (insn, operands); case 1: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_47 (insn, operands); case 2: if (!( #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)) && #line 5088 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_53 (insn, operands); case 3: if (!( #line 5086 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)) && #line 5088 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_56 (insn, operands); case 4: if (! #line 5148 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_57 (insn, operands); case 5: if (! #line 5163 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (TARGET_SIMD && reload_completed)) return NULL; return gen_split_58 (insn, operands); default: return NULL; } case ROTATERT: x3 = XEXP (x2, 1); if (!subreg_lowpart_operator (x3, E_VOIDmode)) return NULL; operands[4] = x3; x6 = XEXP (x3, 0); if (GET_CODE (x6) != NEG || GET_MODE (x6) != E_SImode) return NULL; x13 = XEXP (x6, 0); if (GET_CODE (x13) != AND || GET_MODE (x13) != E_SImode) return NULL; x5 = XEXP (x1, 0); operands[0] = x5; x7 = XEXP (x2, 0); operands[1] = x7; switch (pattern26 (x2)) { case 0: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_44 (insn, operands); case 1: if (!( #line 5016 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (((~INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode) - 1)) == 0)) && #line 5018 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" ( true))) return NULL; return gen_split_48 (insn, operands); default: return NULL; } case ZERO_EXTRACT: if (GET_MODE (x2) != E_DImode) return NULL; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], E_DImode)) return NULL; x7 = XEXP (x2, 0); operands[1] = x7; if (!register_operand (operands[1], E_DImode)) return NULL; x3 = XEXP (x2, 1); operands[2] = x3; if (!aarch64_simd_shift_imm_offset_di (operands[2], E_VOIDmode)) return NULL; x4 = XEXP (x2, 2); operands[3] = x4; if (!aarch64_simd_shift_imm_di (operands[3], E_VOIDmode) || ! #line 5468 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (IN_RANGE (INTVAL (operands[2]) + INTVAL (operands[3]), 1, GET_MODE_BITSIZE (DImode) - 1) && (INTVAL (operands[2]) + INTVAL (operands[3])) == GET_MODE_BITSIZE (SImode))) return NULL; return gen_split_61 (insn, operands); case XOR: if (GET_MODE (x2) != E_DImode) return NULL; x7 = XEXP (x2, 0); if (GET_CODE (x7) != AND || GET_MODE (x7) != E_DImode) return NULL; x8 = XEXP (x7, 0); if (GET_CODE (x8) != XOR || GET_MODE (x8) != E_DImode) return NULL; x5 = XEXP (x1, 0); operands[0] = x5; if (!register_operand (operands[0], E_DImode)) return NULL; x14 = XEXP (x8, 0); operands[3] = x14; if (!register_operand (operands[3], E_DImode)) return NULL; x15 = XEXP (x8, 1); operands[2] = x15; if (!register_operand (operands[2], E_DImode)) return NULL; x9 = XEXP (x7, 1); operands[1] = x9; if (!register_operand (operands[1], E_DImode)) return NULL; x3 = XEXP (x2, 1); if (rtx_equal_p (x3, operands[3]) && ( #line 2583 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 2589 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))))) return gen_split_77 (insn, operands); if (!rtx_equal_p (x3, operands[2]) || !( #line 2625 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" (TARGET_SIMD) && #line 2631 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-simd.md" ( REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))))) return NULL; return gen_split_78 (insn, operands); case UNSPEC: return split_1 (x1, insn); case VEC_SELECT: x3 = XEXP (x2, 1); if (GET_CODE (x3) != PARALLEL || XVECLEN (x3, 0) != 1) return NULL; x16 = XVECEXP (x3, 0, 0); if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0]) return NULL; x5 = XEXP (x1, 0); operands[0] = x5; x7 = XEXP (x2, 0); operands[1] = x7; switch (pattern286 (x2)) { case 0: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_232 (insn, operands); case 1: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_233 (insn, operands); case 2: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_234 (insn, operands); case 3: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_235 (insn, operands); case 4: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_236 (insn, operands); case 5: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_237 (insn, operands); case 6: if (!( #line 525 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" (TARGET_SVE) && #line 540 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-sve.md" ( reload_completed && REG_P (operands[0]) && REGNO (operands[0]) == REGNO (operands[1])))) return NULL; return gen_split_238 (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, x12, x13, x14, x15, x16; rtx_insn *res ATTRIBUTE_UNUSED; recog_data.insn = NULL; switch (GET_CODE (x1)) { case SET: return split_4 (x1, insn); case PARALLEL: switch (XVECLEN (x1, 0)) { case 2: return split_3 (x1, insn); case 4: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return NULL; x3 = XVECEXP (x1, 0, 3); if (GET_CODE (x3) != CLOBBER) return NULL; x4 = XEXP (x3, 0); if (!scratch_operand (x4, E_SImode)) return NULL; x5 = XEXP (x2, 1); switch (GET_CODE (x5)) { case UNSPEC_VOLATILE: switch (pattern233 (x1)) { case 0: if (! #line 59 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_96 (insn, operands); case 1: if (! #line 59 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_97 (insn, operands); case 2: if (! #line 83 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_98 (insn, operands); case 3: if (! #line 83 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_99 (insn, operands); case 4: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_104 (insn, operands); case 5: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_109 (insn, operands); case 6: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_114 (insn, operands); case 7: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_119 (insn, operands); case 8: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_105 (insn, operands); case 9: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_110 (insn, operands); case 10: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_115 (insn, operands); case 11: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_120 (insn, operands); case 12: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_106 (insn, operands); case 13: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_111 (insn, operands); case 14: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_116 (insn, operands); case 15: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_121 (insn, operands); case 16: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_107 (insn, operands); case 17: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_112 (insn, operands); case 18: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_117 (insn, operands); case 19: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_122 (insn, operands); case 20: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_108 (insn, operands); case 21: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_113 (insn, operands); case 22: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_118 (insn, operands); case 23: if (! #line 257 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_123 (insn, operands); case 24: if (! #line 313 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_124 (insn, operands); case 25: if (! #line 313 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_125 (insn, operands); case 26: if (! #line 313 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_126 (insn, operands); case 27: if (! #line 313 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_127 (insn, operands); default: return NULL; } case SUBREG: case MEM: operands[1] = x5; x6 = XVECEXP (x1, 0, 1); if (pattern33 (x6, 17, UNSPEC_VOLATILE, 2) != 0) return NULL; x7 = XVECEXP (x1, 0, 2); if (pattern425 (x7, E_CCmode, 66) != 0) return NULL; x8 = XEXP (x2, 0); operands[0] = x8; x9 = XEXP (x6, 1); x10 = XVECEXP (x9, 0, 0); operands[2] = x10; x11 = XVECEXP (x9, 0, 1); operands[3] = x11; if (!const_int_operand (operands[3], E_SImode)) return NULL; operands[4] = x4; switch (pattern557 (x6)) { case 0: if (! #line 169 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_100 (insn, operands); case 1: if (! #line 169 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_101 (insn, operands); case 2: if (! #line 169 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_102 (insn, operands); case 3: if (! #line 169 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_103 (insn, operands); default: return NULL; } case PLUS: switch (pattern235 (x1)) { case 0: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_152 (insn, operands); case 1: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_157 (insn, operands); case 2: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_162 (insn, operands); case 3: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_167 (insn, operands); default: return NULL; } case MINUS: switch (pattern235 (x1)) { case 0: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_153 (insn, operands); case 1: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_158 (insn, operands); case 2: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_163 (insn, operands); case 3: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_168 (insn, operands); default: return NULL; } case IOR: switch (pattern236 (x1)) { case 0: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_154 (insn, operands); case 1: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_159 (insn, operands); case 2: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_164 (insn, operands); case 3: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_169 (insn, operands); default: return NULL; } case XOR: switch (pattern236 (x1)) { case 0: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_155 (insn, operands); case 1: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_160 (insn, operands); case 2: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_165 (insn, operands); case 3: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_170 (insn, operands); default: return NULL; } case AND: switch (pattern236 (x1)) { case 0: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_156 (insn, operands); case 1: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_161 (insn, operands); case 2: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_166 (insn, operands); case 3: if (! #line 483 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_171 (insn, operands); default: return NULL; } case NOT: x12 = XEXP (x5, 0); if (GET_CODE (x12) != AND || pattern234 (x1, 20, 3) != 0) return NULL; x13 = XEXP (x12, 0); operands[1] = x13; x14 = XEXP (x12, 1); operands[2] = x14; x6 = XVECEXP (x1, 0, 1); x9 = XEXP (x6, 1); x15 = XVECEXP (x9, 0, 2); operands[3] = x15; if (!const_int_operand (operands[3], E_SImode)) return NULL; operands[4] = x4; switch (pattern507 (x1)) { case 0: if (! #line 507 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_172 (insn, operands); case 1: if (! #line 507 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_173 (insn, operands); case 2: if (! #line 507 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_174 (insn, operands); case 3: if (! #line 507 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_175 (insn, operands); default: return NULL; } default: return NULL; } case 5: x2 = XVECEXP (x1, 0, 0); if (GET_CODE (x2) != SET) return NULL; x6 = XVECEXP (x1, 0, 1); if (pattern33 (x6, 20, UNSPEC_VOLATILE, 2) != 0 || pattern287 (x1, CLOBBER) != 0) return NULL; x16 = XVECEXP (x1, 0, 4); if (GET_CODE (x16) != CLOBBER) return NULL; x8 = XEXP (x2, 0); operands[0] = x8; x5 = XEXP (x2, 1); operands[1] = x5; x9 = XEXP (x6, 1); x11 = XVECEXP (x9, 0, 1); operands[3] = x11; if (!const_int_operand (operands[3], E_SImode)) return NULL; x3 = XVECEXP (x1, 0, 3); x4 = XEXP (x3, 0); operands[4] = x4; switch (pattern538 (x1)) { case 0: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_128 (insn, operands); case 1: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_133 (insn, operands); case 2: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_138 (insn, operands); case 3: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_143 (insn, operands); case 4: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_129 (insn, operands); case 5: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_134 (insn, operands); case 6: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_139 (insn, operands); case 7: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_144 (insn, operands); case 8: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_130 (insn, operands); case 9: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_135 (insn, operands); case 10: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_140 (insn, operands); case 11: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_145 (insn, operands); case 12: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_131 (insn, operands); case 13: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_136 (insn, operands); case 14: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_141 (insn, operands); case 15: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_146 (insn, operands); case 16: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_132 (insn, operands); case 17: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_137 (insn, operands); case 18: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_142 (insn, operands); case 19: if (! #line 383 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_147 (insn, operands); case 20: if (! #line 430 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_148 (insn, operands); case 21: if (! #line 430 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_149 (insn, operands); case 22: if (! #line 430 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_150 (insn, operands); case 23: if (! #line 430 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/atomics.md" ( epilogue_completed)) return NULL; return gen_split_151 (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; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_DFmode) && memory_operand (operands[1], E_DFmode)) { switch (GET_MODE (operands[2])) { case E_DFmode: if (register_operand (operands[2], E_DFmode) && memory_operand (operands[3], E_DFmode) && #line 50 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_17 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V8QImode: if (register_operand (operands[2], E_V8QImode) && memory_operand (operands[3], E_V8QImode) && #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_25 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V4HImode: if (register_operand (operands[2], E_V4HImode) && memory_operand (operands[3], E_V4HImode) && #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_31 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V4HFmode: if (register_operand (operands[2], E_V4HFmode) && memory_operand (operands[3], E_V4HFmode) && #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_37 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V2SImode: if (register_operand (operands[2], E_V2SImode) && memory_operand (operands[3], E_V2SImode) && #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_43 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V2SFmode: if (register_operand (operands[2], E_V2SFmode) && memory_operand (operands[3], E_V2SFmode) && #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_49 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (memory_operand (operands[0], E_DFmode)) { if (aarch64_reg_or_fp_zero (operands[1], E_DFmode) && memory_operand (operands[2], E_DFmode) && aarch64_reg_or_fp_zero (operands[3], E_DFmode) && #line 62 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_19 (insn, operands); if (res != NULL_RTX) return res; } if (register_operand (operands[1], E_DFmode)) { switch (GET_MODE (operands[2])) { case E_V8QImode: if (memory_operand (operands[2], E_V8QImode) && register_operand (operands[3], E_V8QImode) && #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_61 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V4HImode: if (memory_operand (operands[2], E_V4HImode) && register_operand (operands[3], E_V4HImode) && #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_67 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V4HFmode: if (memory_operand (operands[2], E_V4HFmode) && register_operand (operands[3], E_V4HFmode) && #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_73 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V2SImode: if (memory_operand (operands[2], E_V2SImode) && register_operand (operands[3], E_V2SImode) && #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_79 (insn, operands); if (res != NULL_RTX) return res; } break; case E_V2SFmode: if (memory_operand (operands[2], E_V2SFmode) && register_operand (operands[3], E_V2SFmode) && #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_85 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (aarch64_reg_zero_or_fp_zero (operands[1], E_DFmode) && memory_operand (operands[2], E_DImode) && aarch64_reg_zero_or_fp_zero (operands[3], E_DImode) && #line 166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, DImode))) { *pmatch_len_ = 1; res = gen_peephole2_192 (insn, operands); if (res != NULL_RTX) return res; } } if (register_operand (operands[0], E_DFmode) && memory_operand (operands[1], E_DFmode) && register_operand (operands[2], E_DFmode) && memory_operand (operands[3], E_DFmode) && #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_55 (insn, operands); if (res != NULL_RTX) return res; } if (memory_operand (operands[0], E_DFmode) && register_operand (operands[1], E_DFmode) && memory_operand (operands[2], E_DFmode) && register_operand (operands[3], E_DFmode) && #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, DFmode))) { *pmatch_len_ = 1; res = gen_peephole2_91 (insn, operands); if (res != NULL_RTX) return res; } if (peep2_current_count < 3 || peep2_current_count < 4) return NULL; x2 = PATTERN (peep2_next_insn (2)); if (GET_CODE (x2) != SET) return NULL; x3 = XEXP (x2, 0); operands[4] = x3; if (register_operand (operands[4], E_DFmode)) { x4 = XEXP (x2, 1); if (pattern493 (x4, E_DFmode) == 0 && #line 209 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, true, DFmode))) { *pmatch_len_ = 3; res = gen_peephole2_199 (insn, operands); if (res != NULL_RTX) return res; } } if (!memory_operand (operands[4], E_DFmode)) return NULL; x4 = XEXP (x2, 1); if (pattern495 (x4, E_DFmode) != 0 || ! #line 289 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, false, DFmode))) return NULL; *pmatch_len_ = 3; return gen_peephole2_205 (insn, operands); } 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_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V2DFmode)) { switch (pattern401 (E_V2DFmode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_98 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_105 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_112 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_119 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_126 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_133 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_140 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V2DFmode)) return NULL; switch (pattern402 (E_V2DFmode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_147 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_154 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_161 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_168 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_175 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_182 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_189 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_3 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V4SFmode)) { switch (pattern401 (E_V4SFmode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_97 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_104 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_111 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_118 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_125 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_132 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_139 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V4SFmode)) return NULL; switch (pattern402 (E_V4SFmode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_146 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_153 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_160 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_167 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_174 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_181 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_188 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_4 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V8HFmode)) { switch (pattern401 (E_V8HFmode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_96 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_103 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_110 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_117 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_124 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_131 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_138 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V8HFmode)) return NULL; switch (pattern402 (E_V8HFmode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_145 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_152 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_159 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_166 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_173 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_180 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HFmode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_187 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_5 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V2DImode)) { switch (pattern401 (E_V2DImode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_95 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_102 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_109 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_116 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_123 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_130 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_137 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V2DImode)) return NULL; switch (pattern402 (E_V2DImode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_144 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_151 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_158 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_165 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_172 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_179 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2DImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_186 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_6 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V4SImode)) { switch (pattern401 (E_V4SImode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_94 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_101 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_108 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_115 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_122 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_129 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_136 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V4SImode)) return NULL; switch (pattern402 (E_V4SImode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_143 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_150 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_157 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_164 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_171 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_178 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4SImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_185 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V8HImode)) { switch (pattern401 (E_V8HImode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_93 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_100 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_107 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_114 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_121 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_128 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_135 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V8HImode)) return NULL; switch (pattern402 (E_V8HImode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_142 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_149 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_156 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_163 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_170 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_177 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8HImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_184 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_8 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V16QImode)) { switch (pattern401 (E_V16QImode)) { case 0: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_92 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_99 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_106 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_113 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_120 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_127 (insn, operands); if (res != NULL_RTX) return res; } break; case 6: if ( #line 99 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, true, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) { *pmatch_len_ = 1; res = gen_peephole2_134 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V16QImode)) return NULL; switch (pattern402 (E_V16QImode)) { case 0: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_141 (insn, operands); case 1: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_148 (insn, operands); case 2: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_155 (insn, operands); case 3: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_162 (insn, operands); case 4: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_169 (insn, operands); case 5: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_176 (insn, operands); case 6: if (! #line 114 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V16QImode) && (aarch64_tune_params.extra_tuning_flags & AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS) == 0)) return NULL; *pmatch_len_ = 1; return gen_peephole2_183 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_9 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED, int *pmatch_len_ ATTRIBUTE_UNUSED) { rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0]; rtx_insn *res ATTRIBUTE_UNUSED; if (register_operand (operands[0], E_V2SFmode)) { switch (pattern399 (E_V2SFmode)) { case 0: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_24 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_30 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_36 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_42 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_48 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_54 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V2SFmode)) return NULL; switch (pattern400 (E_V2SFmode)) { case 0: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_60 (insn, operands); case 1: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_66 (insn, operands); case 2: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_72 (insn, operands); case 3: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_78 (insn, operands); case 4: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_84 (insn, operands); case 5: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_90 (insn, operands); default: return NULL; } } static rtx_insn * peephole2_10 (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_insn *res ATTRIBUTE_UNUSED; if (peep2_current_count < 2) return NULL; 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_SImode: if (register_operand (operands[0], E_SImode) && memory_operand (operands[1], E_SImode) && register_operand (operands[2], E_SImode) && memory_operand (operands[3], E_SImode) && #line 26 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, SImode))) { *pmatch_len_ = 1; res = gen_peephole2_12 (insn, operands); if (res != NULL_RTX) return res; } if (memory_operand (operands[0], E_SImode)) { if (aarch64_reg_or_zero (operands[1], E_SImode) && memory_operand (operands[2], E_SImode) && aarch64_reg_or_zero (operands[3], E_SImode) && #line 38 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, SImode))) { *pmatch_len_ = 1; res = gen_peephole2_14 (insn, operands); if (res != NULL_RTX) return res; } if (aarch64_reg_zero_or_fp_zero (operands[1], E_SImode) && memory_operand (operands[2], E_SFmode) && aarch64_reg_zero_or_fp_zero (operands[3], E_SFmode) && #line 166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, SImode))) { *pmatch_len_ = 1; res = gen_peephole2_195 (insn, operands); if (res != NULL_RTX) return res; } } if (peep2_current_count < 3 || peep2_current_count < 4) return NULL; x7 = PATTERN (peep2_next_insn (2)); if (GET_CODE (x7) != SET) return NULL; x8 = XEXP (x7, 0); operands[4] = x8; if (register_operand (operands[4], E_SImode)) { x9 = XEXP (x7, 1); if (pattern493 (x9, E_SImode) == 0 && #line 189 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, true, SImode))) { *pmatch_len_ = 3; res = gen_peephole2_196 (insn, operands); if (res != NULL_RTX) return res; } } if (!memory_operand (operands[4], E_SImode)) return NULL; x9 = XEXP (x7, 1); if (pattern494 (x9, E_SImode) != 0 || ! #line 269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, false, SImode))) return NULL; *pmatch_len_ = 3; return gen_peephole2_202 (insn, operands); case E_DImode: if (register_operand (operands[0], E_DImode) && memory_operand (operands[1], E_DImode) && register_operand (operands[2], E_DImode) && memory_operand (operands[3], E_DImode) && #line 26 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, DImode))) { *pmatch_len_ = 1; res = gen_peephole2_13 (insn, operands); if (res != NULL_RTX) return res; } if (memory_operand (operands[0], E_DImode)) { if (aarch64_reg_or_zero (operands[1], E_DImode) && memory_operand (operands[2], E_DImode) && aarch64_reg_or_zero (operands[3], E_DImode) && #line 38 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, DImode))) { *pmatch_len_ = 1; res = gen_peephole2_15 (insn, operands); if (res != NULL_RTX) return res; } if (aarch64_reg_zero_or_fp_zero (operands[1], E_DImode) && memory_operand (operands[2], E_DFmode) && aarch64_reg_zero_or_fp_zero (operands[3], E_DFmode) && #line 166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, DImode))) { *pmatch_len_ = 1; res = gen_peephole2_193 (insn, operands); if (res != NULL_RTX) return res; } } if (peep2_current_count < 3 || peep2_current_count < 4) return NULL; x7 = PATTERN (peep2_next_insn (2)); if (GET_CODE (x7) != SET) return NULL; x8 = XEXP (x7, 0); operands[4] = x8; if (register_operand (operands[4], E_DImode)) { x9 = XEXP (x7, 1); if (pattern493 (x9, E_DImode) == 0 && #line 189 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, true, DImode))) { *pmatch_len_ = 3; res = gen_peephole2_197 (insn, operands); if (res != NULL_RTX) return res; } } if (!memory_operand (operands[4], E_DImode)) return NULL; x9 = XEXP (x7, 1); if (pattern494 (x9, E_DImode) != 0 || ! #line 269 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, false, DImode))) return NULL; *pmatch_len_ = 3; return gen_peephole2_203 (insn, operands); case E_SFmode: if (register_operand (operands[0], E_SFmode) && memory_operand (operands[1], E_SFmode) && register_operand (operands[2], E_SFmode) && memory_operand (operands[3], E_SFmode) && #line 50 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_16 (insn, operands); if (res != NULL_RTX) return res; } if (memory_operand (operands[0], E_SFmode)) { if (aarch64_reg_or_fp_zero (operands[1], E_SFmode) && memory_operand (operands[2], E_SFmode) && aarch64_reg_or_fp_zero (operands[3], E_SFmode) && #line 62 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, SFmode))) { *pmatch_len_ = 1; res = gen_peephole2_18 (insn, operands); if (res != NULL_RTX) return res; } if (aarch64_reg_zero_or_fp_zero (operands[1], E_SFmode) && memory_operand (operands[2], E_SImode) && aarch64_reg_zero_or_fp_zero (operands[3], E_SImode) && #line 166 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, false, SImode))) { *pmatch_len_ = 1; res = gen_peephole2_194 (insn, operands); if (res != NULL_RTX) return res; } } if (peep2_current_count < 3 || peep2_current_count < 4) return NULL; x7 = PATTERN (peep2_next_insn (2)); if (GET_CODE (x7) != SET) return NULL; x8 = XEXP (x7, 0); operands[4] = x8; if (register_operand (operands[4], E_SFmode)) { x9 = XEXP (x7, 1); if (pattern493 (x9, E_SFmode) == 0 && #line 209 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, true, SFmode))) { *pmatch_len_ = 3; res = gen_peephole2_198 (insn, operands); if (res != NULL_RTX) return res; } } if (!memory_operand (operands[4], E_SFmode)) return NULL; x9 = XEXP (x7, 1); if (pattern495 (x9, E_SFmode) != 0 || ! #line 289 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, false, SFmode))) return NULL; *pmatch_len_ = 3; return gen_peephole2_204 (insn, operands); case E_DFmode: return peephole2_1 (x1, insn, pmatch_len_); case E_V8QImode: if (register_operand (operands[0], E_V8QImode)) { switch (pattern399 (E_V8QImode)) { case 0: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V8QImode))) { *pmatch_len_ = 1; res = gen_peephole2_20 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V8QImode))) { *pmatch_len_ = 1; res = gen_peephole2_26 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V8QImode))) { *pmatch_len_ = 1; res = gen_peephole2_32 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V8QImode))) { *pmatch_len_ = 1; res = gen_peephole2_38 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V8QImode))) { *pmatch_len_ = 1; res = gen_peephole2_44 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V8QImode))) { *pmatch_len_ = 1; res = gen_peephole2_50 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V8QImode)) return NULL; switch (pattern400 (E_V8QImode)) { case 0: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8QImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_56 (insn, operands); case 1: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8QImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_62 (insn, operands); case 2: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8QImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_68 (insn, operands); case 3: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8QImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_74 (insn, operands); case 4: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8QImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_80 (insn, operands); case 5: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V8QImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_86 (insn, operands); default: return NULL; } case E_V4HImode: if (register_operand (operands[0], E_V4HImode)) { switch (pattern399 (E_V4HImode)) { case 0: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HImode))) { *pmatch_len_ = 1; res = gen_peephole2_21 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HImode))) { *pmatch_len_ = 1; res = gen_peephole2_27 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HImode))) { *pmatch_len_ = 1; res = gen_peephole2_33 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HImode))) { *pmatch_len_ = 1; res = gen_peephole2_39 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HImode))) { *pmatch_len_ = 1; res = gen_peephole2_45 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HImode))) { *pmatch_len_ = 1; res = gen_peephole2_51 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V4HImode)) return NULL; switch (pattern400 (E_V4HImode)) { case 0: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_57 (insn, operands); case 1: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_63 (insn, operands); case 2: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_69 (insn, operands); case 3: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_75 (insn, operands); case 4: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_81 (insn, operands); case 5: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_87 (insn, operands); default: return NULL; } case E_V4HFmode: if (register_operand (operands[0], E_V4HFmode)) { switch (pattern399 (E_V4HFmode)) { case 0: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HFmode))) { *pmatch_len_ = 1; res = gen_peephole2_22 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HFmode))) { *pmatch_len_ = 1; res = gen_peephole2_28 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HFmode))) { *pmatch_len_ = 1; res = gen_peephole2_34 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HFmode))) { *pmatch_len_ = 1; res = gen_peephole2_40 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HFmode))) { *pmatch_len_ = 1; res = gen_peephole2_46 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V4HFmode))) { *pmatch_len_ = 1; res = gen_peephole2_52 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V4HFmode)) return NULL; switch (pattern400 (E_V4HFmode)) { case 0: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_58 (insn, operands); case 1: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_64 (insn, operands); case 2: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_70 (insn, operands); case 3: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_76 (insn, operands); case 4: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_82 (insn, operands); case 5: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V4HFmode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_88 (insn, operands); default: return NULL; } case E_V2SImode: if (register_operand (operands[0], E_V2SImode)) { switch (pattern399 (E_V2SImode)) { case 0: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SImode))) { *pmatch_len_ = 1; res = gen_peephole2_23 (insn, operands); if (res != NULL_RTX) return res; } break; case 1: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SImode))) { *pmatch_len_ = 1; res = gen_peephole2_29 (insn, operands); if (res != NULL_RTX) return res; } break; case 2: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SImode))) { *pmatch_len_ = 1; res = gen_peephole2_35 (insn, operands); if (res != NULL_RTX) return res; } break; case 3: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SImode))) { *pmatch_len_ = 1; res = gen_peephole2_41 (insn, operands); if (res != NULL_RTX) return res; } break; case 4: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SImode))) { *pmatch_len_ = 1; res = gen_peephole2_47 (insn, operands); if (res != NULL_RTX) return res; } break; case 5: if ( #line 74 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, V2SImode))) { *pmatch_len_ = 1; res = gen_peephole2_53 (insn, operands); if (res != NULL_RTX) return res; } break; default: break; } } if (!memory_operand (operands[0], E_V2SImode)) return NULL; switch (pattern400 (E_V2SImode)) { case 0: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_59 (insn, operands); case 1: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_65 (insn, operands); case 2: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_71 (insn, operands); case 3: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_77 (insn, operands); case 4: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_83 (insn, operands); case 5: if (! #line 86 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (TARGET_SIMD && aarch64_operands_ok_for_ldpstp (operands, false, V2SImode))) return NULL; *pmatch_len_ = 1; return gen_peephole2_89 (insn, operands); default: return NULL; } case E_V2SFmode: return peephole2_9 (x1, insn, pmatch_len_); case E_V16QImode: return peephole2_8 (x1, insn, pmatch_len_); case E_V8HImode: return peephole2_7 (x1, insn, pmatch_len_); case E_V4SImode: return peephole2_6 (x1, insn, pmatch_len_); case E_V2DImode: return peephole2_5 (x1, insn, pmatch_len_); case E_V8HFmode: return peephole2_4 (x1, insn, pmatch_len_); case E_V4SFmode: return peephole2_3 (x1, insn, pmatch_len_); case E_V2DFmode: return peephole2_2 (x1, insn, pmatch_len_); 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; rtx_insn *res ATTRIBUTE_UNUSED; recog_data.insn = NULL; if (GET_CODE (x1) != SET) return NULL; x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case PLUS: x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[2] = x5; switch (GET_MODE (operands[0])) { case E_SImode: if (GET_MODE (x2) != E_SImode || !register_operand (operands[1], E_SImode)) return NULL; if (register_operand (operands[0], E_SImode) && aarch64_pluslong_strict_immedate (operands[2], E_SImode) && #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_move_imm (INTVAL (operands[2]), SImode))) { *pmatch_len_ = 0; res = gen_peephole2_1 (insn, operands); if (res != NULL_RTX) return res; } if (peep2_current_count < 2) return NULL; x6 = PATTERN (peep2_next_insn (1)); if (pattern368 (x6, E_SImode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!reg_overlap_mentioned_p (operands[0], operands[1]) && INTVAL (operands[3]) == -INTVAL (operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_8 (insn, operands); case E_DImode: if (GET_MODE (x2) != E_DImode || !register_operand (operands[1], E_DImode)) return NULL; if (register_operand (operands[0], E_DImode) && aarch64_pluslong_strict_immedate (operands[2], E_DImode) && #line 1812 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_move_imm (INTVAL (operands[2]), DImode))) { *pmatch_len_ = 0; res = gen_peephole2_2 (insn, operands); if (res != NULL_RTX) return res; } if (peep2_current_count < 2) return NULL; x6 = PATTERN (peep2_next_insn (1)); if (pattern368 (x6, E_DImode) != 0 || ! #line 3076 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!reg_overlap_mentioned_p (operands[0], operands[1]) && INTVAL (operands[3]) == -INTVAL (operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_9 (insn, operands); default: return NULL; } case ZERO_EXTEND: if (GET_MODE (x2) != E_DImode) return NULL; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return NULL; x4 = XEXP (x2, 0); switch (GET_CODE (x4)) { case PLUS: if (GET_MODE (x4) != E_SImode) return NULL; x7 = XEXP (x4, 0); operands[1] = x7; if (!register_operand (operands[1], E_SImode)) return NULL; x8 = XEXP (x4, 1); operands[2] = x8; if (!aarch64_pluslong_strict_immedate (operands[2], E_SImode) || ! #line 1824 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (aarch64_move_imm (INTVAL (operands[2]), SImode))) return NULL; *pmatch_len_ = 0; return gen_peephole2_3 (insn, operands); case SUBREG: case MEM: if (peep2_current_count < 2 || pattern237 (x4, ZERO_EXTEND) != 0) return NULL; if ( #line 144 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, SImode))) { *pmatch_len_ = 1; res = gen_peephole2_191 (insn, operands); if (res != NULL_RTX) return res; } if (peep2_current_count < 3) return NULL; x9 = PATTERN (peep2_next_insn (2)); if (pattern518 (x9, ZERO_EXTEND) != 0 || ! #line 249 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, true, SImode))) return NULL; *pmatch_len_ = 3; return gen_peephole2_201 (insn, operands); default: return NULL; } case MINUS: if (peep2_current_count < 2) return NULL; x3 = XEXP (x1, 0); operands[0] = x3; x4 = XEXP (x2, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[2] = x5; x6 = PATTERN (peep2_next_insn (1)); if (GET_CODE (x6) != SET) return NULL; x10 = XEXP (x6, 1); if (GET_CODE (x10) != COMPARE || GET_MODE (x10) != E_CCmode) return NULL; x11 = XEXP (x6, 0); if (GET_CODE (x11) != REG || REGNO (x11) != 66 || GET_MODE (x11) != E_CCmode) return NULL; x12 = XEXP (x10, 0); if (!rtx_equal_p (x12, operands[1])) return NULL; x13 = XEXP (x10, 1); if (!rtx_equal_p (x13, operands[2])) return NULL; switch (GET_MODE (operands[0])) { case E_SImode: if (pattern508 (x2, E_SImode) != 0 || ! #line 3038 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!reg_overlap_mentioned_p (operands[0], operands[1]) && !reg_overlap_mentioned_p (operands[0], operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_4 (insn, operands); case E_DImode: if (pattern508 (x2, E_DImode) != 0 || ! #line 3038 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (!reg_overlap_mentioned_p (operands[0], operands[1]) && !reg_overlap_mentioned_p (operands[0], operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_5 (insn, operands); default: return NULL; } case COMPARE: if (peep2_current_count < 2 || GET_MODE (x2) != E_CCmode) return NULL; x3 = XEXP (x1, 0); if (GET_CODE (x3) != REG || REGNO (x3) != 66 || GET_MODE (x3) != E_CCmode) return NULL; x4 = XEXP (x2, 0); operands[1] = x4; x5 = XEXP (x2, 1); operands[2] = x5; if (aarch64_reg_or_zero (operands[2], E_SImode)) { x6 = PATTERN (peep2_next_insn (1)); if (pattern397 (x6, E_SImode) == 0) { *pmatch_len_ = 1; res = gen_peephole2_6 (insn, operands); if (res != NULL_RTX) return res; } } if (aarch64_reg_or_zero (operands[2], E_DImode)) { x6 = PATTERN (peep2_next_insn (1)); if (pattern397 (x6, E_DImode) == 0) { *pmatch_len_ = 1; res = gen_peephole2_7 (insn, operands); if (res != NULL_RTX) return res; } } operands[3] = x5; if (const_int_operand (operands[3], E_SImode)) { x6 = PATTERN (peep2_next_insn (1)); if (pattern398 (x6, E_SImode) == 0 && #line 3097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[3]) == -INTVAL (operands[2]))) { *pmatch_len_ = 1; res = gen_peephole2_10 (insn, operands); if (res != NULL_RTX) return res; } } if (!const_int_operand (operands[3], E_DImode)) return NULL; x6 = PATTERN (peep2_next_insn (1)); if (pattern398 (x6, E_DImode) != 0 || ! #line 3097 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64.md" (INTVAL (operands[3]) == -INTVAL (operands[2]))) return NULL; *pmatch_len_ = 1; return gen_peephole2_11 (insn, operands); case CONST_INT: case CONST_DOUBLE: case REG: case SUBREG: case MEM: return peephole2_10 (x1, insn, pmatch_len_); case SIGN_EXTEND: if (peep2_current_count < 2 || GET_MODE (x2) != E_DImode) return NULL; x3 = XEXP (x1, 0); operands[0] = x3; if (!register_operand (operands[0], E_DImode)) return NULL; x4 = XEXP (x2, 0); if (pattern237 (x4, SIGN_EXTEND) != 0) return NULL; if ( #line 132 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_ok_for_ldpstp (operands, true, SImode))) { *pmatch_len_ = 1; res = gen_peephole2_190 (insn, operands); if (res != NULL_RTX) return res; } if (peep2_current_count < 3) return NULL; x9 = PATTERN (peep2_next_insn (2)); if (pattern518 (x9, SIGN_EXTEND) != 0 || ! #line 229 "../../../../../../../work-shared/gcc-9.3.0-r0/gcc-9.3.0/gcc/config/aarch64/aarch64-ldpstp.md" (aarch64_operands_adjust_ok_for_ldpstp (operands, true, SImode))) return NULL; *pmatch_len_ = 3; return gen_peephole2_200 (insn, operands); default: return NULL; } }