00001
00002
00003
00004
00005
00006
00007
00008 #include "hconfig.h"
00009 #include "insn-constants.h"
00010
00011
00012 #undef ENABLE_CHECKING
00013 #undef ENABLE_TREE_CHECKING
00014 #undef ENABLE_RTL_CHECKING
00015 #undef ENABLE_RTL_FLAG_CHECKING
00016 #undef ENABLE_GC_CHECKING
00017 #undef ENABLE_GC_ALWAYS_COLLECT
00018
00019 #include "system.h"
00020 #include "rtl.h"
00021 #include "tm_p.h"
00022 #include "function.h"
00023
00024
00025 #define MAX_RECOG_OPERANDS 10
00026 #define MAX_DUP_OPERANDS 10
00027 #define MAX_INSNS_PER_SPLIT 5
00028
00029 #include "regs.h"
00030 #include "recog.h"
00031 #include "real.h"
00032 #include "output.h"
00033 #include "flags.h"
00034 #include "hard-reg-set.h"
00035 #include "resource.h"
00036 #include "toplev.h"
00037 #include "reload.h"
00038 #include "gensupport.h"
00039
00040 #define HAVE_eh_return 1
00041 #include "except.h"
00042
00043
00044 extern rtx insn;
00045 extern rtx ins1;
00046 extern rtx operands[];
00047 extern int next_insn_tests_no_inequality PARAMS ((rtx));
00048
00049
00050
00051
00052
00053 #if (GCC_VERSION >= 3001) || ((GCC_VERSION == 3000) && !__OPTIMIZE__)
00054 # define MAYBE_EVAL(expr) (__builtin_constant_p(expr) ? (int) (expr) : -1)
00055 #else
00056 # define MAYBE_EVAL(expr) -1
00057 #endif
00058
00059
00060
00061
00062
00063 const struct c_test insn_conditions[] = {
00064 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00065 && ix86_binary_operator_ok (MINUS, QImode, operands)",
00066 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00067 && ix86_binary_operator_ok (MINUS, QImode, operands)) },
00068 { "TARGET_PARTIAL_REG_STALL\n\
00069 && ix86_binary_operator_ok (PLUS, HImode, operands)",
00070 MAYBE_EVAL (TARGET_PARTIAL_REG_STALL
00071 && ix86_binary_operator_ok (PLUS, HImode, operands)) },
00072 { "! TARGET_PARTIAL_REG_STALL && reload_completed\n\
00073 && (GET_MODE (operands[0]) == HImode\n\
00074 || (GET_MODE (operands[0]) == QImode \n\
00075 && (TARGET_PROMOTE_QImode || optimize_size)))",
00076 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL && reload_completed
00077 && (GET_MODE (operands[0]) == HImode
00078 || (GET_MODE (operands[0]) == QImode
00079 && (TARGET_PROMOTE_QImode || optimize_size)))) },
00080 { "!TARGET_64BIT && TARGET_CMOVE\n\
00081 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)",
00082 MAYBE_EVAL (!TARGET_64BIT && TARGET_CMOVE
00083 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)) },
00084 { "TARGET_SSE || TARGET_80387",
00085 MAYBE_EVAL (TARGET_SSE || TARGET_80387) },
00086 { "!TARGET_64BIT && TARGET_USE_LOOP\n\
00087 && reload_completed\n\
00088 && REGNO (operands[1]) != 2",
00089 MAYBE_EVAL (!TARGET_64BIT && TARGET_USE_LOOP
00090 && reload_completed
00091 && REGNO (operands[1]) != 2) },
00092 { "ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
00093 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
00094 { "!TARGET_64BIT && TARGET_GNU_TLS",
00095 MAYBE_EVAL (!TARGET_64BIT && TARGET_GNU_TLS) },
00096 { "reload_completed\n\
00097 && (!REG_P (operands[0]) || ANY_QI_REG_P (operands[0]))\n\
00098 && ((ix86_match_ccmode (insn, CCZmode)\n\
00099 && !(INTVAL (operands[1]) & ~255))\n\
00100 || (ix86_match_ccmode (insn, CCNOmode)\n\
00101 && !(INTVAL (operands[1]) & ~127)))\n\
00102 && GET_MODE (operands[0]) != QImode",
00103 MAYBE_EVAL (reload_completed
00104 && (!REG_P (operands[0]) || ANY_QI_REG_P (operands[0]))
00105 && ((ix86_match_ccmode (insn, CCZmode)
00106 && !(INTVAL (operands[1]) & ~255))
00107 || (ix86_match_ccmode (insn, CCNOmode)
00108 && !(INTVAL (operands[1]) & ~127)))
00109 && GET_MODE (operands[0]) != QImode) },
00110 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
00111 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)",
00112 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
00113 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)) },
00114 { "ix86_binary_operator_ok (ASHIFTRT, QImode, operands)\n\
00115 && (TARGET_SHIFT1 || optimize_size)",
00116 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, QImode, operands)
00117 && (TARGET_SHIFT1 || optimize_size)) },
00118 { "ix86_binary_operator_ok (ASHIFTRT, SImode, operands)\n\
00119 && (TARGET_SHIFT1 || optimize_size)",
00120 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
00121 && (TARGET_SHIFT1 || optimize_size)) },
00122 { "TARGET_SSE2 && TARGET_SSE_MATH\n\
00123 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'",
00124 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH
00125 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c') },
00126 { "TARGET_SSE2 && TARGET_IEEE_FP && TARGET_SSE_MATH",
00127 MAYBE_EVAL (TARGET_SSE2 && TARGET_IEEE_FP && TARGET_SSE_MATH) },
00128 { "TARGET_SSE2",
00129 MAYBE_EVAL (TARGET_SSE2) },
00130 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00131 && !optimize_size && TARGET_INTEGER_DFMODE_MOVES\n\
00132 && (reload_in_progress || reload_completed\n\
00133 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)\n\
00134 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
00135 || memory_operand (operands[0], DFmode))",
00136 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00137 && !optimize_size && TARGET_INTEGER_DFMODE_MOVES
00138 && (reload_in_progress || reload_completed
00139 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
00140 || GET_CODE (operands[1]) != CONST_DOUBLE
00141 || memory_operand (operands[0], DFmode))) },
00142 { "ix86_match_ccmode (insn, CCNOmode)\n\
00143 && ix86_binary_operator_ok (XOR, SImode, operands)",
00144 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00145 && ix86_binary_operator_ok (XOR, SImode, operands)) },
00146 { "ix86_match_ccmode (insn, CCNOmode)\n\
00147 && ix86_unary_operator_ok (NEG, HImode, operands)",
00148 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00149 && ix86_unary_operator_ok (NEG, HImode, operands)) },
00150 { "ix86_unary_operator_ok (ABS, SFmode, operands)",
00151 MAYBE_EVAL (ix86_unary_operator_ok (ABS, SFmode, operands)) },
00152 { "ix86_match_ccmode (insn, CCNOmode)\n\
00153 && ix86_binary_operator_ok (AND, SImode, operands)",
00154 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00155 && ix86_binary_operator_ok (AND, SImode, operands)) },
00156 { "TARGET_64BIT && INTVAL (operands[2]) == 63 && (TARGET_USE_CLTD || optimize_size)\n\
00157 && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)",
00158 MAYBE_EVAL (TARGET_64BIT && INTVAL (operands[2]) == 63 && (TARGET_USE_CLTD || optimize_size)
00159 && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) },
00160 { "TARGET_SSE2 && TARGET_SSE_MATH && TARGET_IEEE_FP",
00161 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH && TARGET_IEEE_FP) },
00162 { "TARGET_80387\n\
00163 && (GET_MODE (operands[1]) == SFmode || GET_MODE (operands[1]) == DFmode)\n\
00164 && GET_MODE (operands[1]) == GET_MODE (operands[2])\n\
00165 && !ix86_use_fcomi_compare (GET_CODE (operands[0]))\n\
00166 && SELECT_CC_MODE (GET_CODE (operands[0]),\n\
00167 operands[1], operands[2]) == CCFPmode\n\
00168 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))",
00169 MAYBE_EVAL (TARGET_80387
00170 && (GET_MODE (operands[1]) == SFmode || GET_MODE (operands[1]) == DFmode)
00171 && GET_MODE (operands[1]) == GET_MODE (operands[2])
00172 && !ix86_use_fcomi_compare (GET_CODE (operands[0]))
00173 && SELECT_CC_MODE (GET_CODE (operands[0]),
00174 operands[1], operands[2]) == CCFPmode
00175 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))) },
00176 { "TARGET_64BIT\n\
00177 && ix86_binary_operator_ok (IOR, DImode, operands)",
00178 MAYBE_EVAL (TARGET_64BIT
00179 && ix86_binary_operator_ok (IOR, DImode, operands)) },
00180 { "TARGET_SSE2 && TARGET_SSE_MATH && !TARGET_IEEE_FP\n\
00181 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00182 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH && !TARGET_IEEE_FP
00183 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00184 { "!TARGET_64BIT && reload_completed\n\
00185 && true_regnum (operands[0]) == true_regnum (operands[1])",
00186 MAYBE_EVAL (!TARGET_64BIT && reload_completed
00187 && true_regnum (operands[0]) == true_regnum (operands[1])) },
00188 { "TARGET_64BIT\n\
00189 && ix86_match_ccmode (insn, CCGCmode)",
00190 MAYBE_EVAL (TARGET_64BIT
00191 && ix86_match_ccmode (insn, CCGCmode)) },
00192 { "reload_completed\n\
00193 && true_regnum (operands[0]) != true_regnum (operands[1])",
00194 MAYBE_EVAL (reload_completed
00195 && true_regnum (operands[0]) != true_regnum (operands[1])) },
00196 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
00197 && ix86_binary_operator_ok (PLUS, SImode, operands)\n\
00198 /* Current assemblers are broken and do not allow @GOTOFF in\n\
00199 ought but a memory context. */\n\
00200 && ! pic_symbolic_operand (operands[2], VOIDmode)",
00201 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
00202 && ix86_binary_operator_ok (PLUS, SImode, operands)
00203
00204
00205 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
00206 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387\n\
00207 && (!TARGET_SSE2 || !TARGET_SSE_MATH)",
00208 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
00209 && (!TARGET_SSE2 || !TARGET_SSE_MATH)) },
00210 { "reload_completed\n\
00211 && ANY_QI_REG_P (operands[0])\n\
00212 && (ANY_QI_REG_P (operands[1]) || GET_CODE (operands[1]) == MEM)\n\
00213 && (TARGET_ZERO_EXTEND_WITH_AND && !optimize_size)\n\
00214 && !reg_overlap_mentioned_p (operands[0], operands[1])",
00215 MAYBE_EVAL (reload_completed
00216 && ANY_QI_REG_P (operands[0])
00217 && (ANY_QI_REG_P (operands[1]) || GET_CODE (operands[1]) == MEM)
00218 && (TARGET_ZERO_EXTEND_WITH_AND && !optimize_size)
00219 && !reg_overlap_mentioned_p (operands[0], operands[1])) },
00220 { "TARGET_64BIT && TARGET_80387\n\
00221 && ix86_unary_operator_ok (NEG, DFmode, operands)",
00222 MAYBE_EVAL (TARGET_64BIT && TARGET_80387
00223 && ix86_unary_operator_ok (NEG, DFmode, operands)) },
00224 { "TARGET_80387 && (!TARGET_SSE2 || !TARGET_64BIT)",
00225 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE2 || !TARGET_64BIT)) },
00226 { "TARGET_QIMODE_MATH",
00227 MAYBE_EVAL (TARGET_QIMODE_MATH) },
00228 { "TARGET_SSE\n\
00229 && (GET_CODE (operands[1]) == MEM || GET_CODE (operands[2]) == MEM)",
00230 MAYBE_EVAL (TARGET_SSE
00231 && (GET_CODE (operands[1]) == MEM || GET_CODE (operands[2]) == MEM)) },
00232 { "!TARGET_64BIT && TARGET_80387\n\
00233 && ix86_unary_operator_ok (ABS, XFmode, operands)",
00234 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
00235 && ix86_unary_operator_ok (ABS, XFmode, operands)) },
00236 { "ix86_binary_operator_ok (AND, QImode, operands)",
00237 MAYBE_EVAL (ix86_binary_operator_ok (AND, QImode, operands)) },
00238 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATE, DImode, operands)\n\
00239 && (TARGET_SHIFT1 || optimize_size)",
00240 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, DImode, operands)
00241 && (TARGET_SHIFT1 || optimize_size)) },
00242 { "reload_completed",
00243 MAYBE_EVAL (reload_completed) },
00244 { "SSE_FLOAT_MODE_P (GET_MODE (operands[0]))\n\
00245 && GET_MODE (operands[0]) == GET_MODE (operands[0])",
00246 MAYBE_EVAL (SSE_FLOAT_MODE_P (GET_MODE (operands[0]))
00247 && GET_MODE (operands[0]) == GET_MODE (operands[0])) },
00248 { "(TARGET_64BIT && TARGET_SSE2) || TARGET_80387",
00249 MAYBE_EVAL ((TARGET_64BIT && TARGET_SSE2) || TARGET_80387) },
00250 { "! optimize_size\n\
00251 && get_attr_length (insn) >= ix86_cost->large_insn\n\
00252 && TARGET_SPLIT_LONG_MOVES",
00253 MAYBE_EVAL (! optimize_size
00254 && get_attr_length (insn) >= ix86_cost->large_insn
00255 && TARGET_SPLIT_LONG_MOVES) },
00256 { "reload_completed\n\
00257 && QI_REG_P (operands[0])\n\
00258 && ((ix86_match_ccmode (insn, CCZmode)\n\
00259 && !(INTVAL (operands[1]) & ~(255 << 8)))\n\
00260 || (ix86_match_ccmode (insn, CCNOmode)\n\
00261 && !(INTVAL (operands[1]) & ~(127 << 8))))\n\
00262 && GET_MODE (operands[0]) != QImode",
00263 MAYBE_EVAL (reload_completed
00264 && QI_REG_P (operands[0])
00265 && ((ix86_match_ccmode (insn, CCZmode)
00266 && !(INTVAL (operands[1]) & ~(255 << 8)))
00267 || (ix86_match_ccmode (insn, CCNOmode)
00268 && !(INTVAL (operands[1]) & ~(127 << 8))))
00269 && GET_MODE (operands[0]) != QImode) },
00270 { "TARGET_80387 && TARGET_SSE2",
00271 MAYBE_EVAL (TARGET_80387 && TARGET_SSE2) },
00272 { "reload_completed && SSE_REG_P (operands[0])",
00273 MAYBE_EVAL (reload_completed && SSE_REG_P (operands[0])) },
00274 { "TARGET_STACK_PROBE",
00275 MAYBE_EVAL (TARGET_STACK_PROBE) },
00276 { "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)",
00277 MAYBE_EVAL (TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)) },
00278 { "TARGET_64BIT && !symbolic_operand (operands[1], DImode)\n\
00279 && !x86_64_immediate_operand (operands[1], DImode)",
00280 MAYBE_EVAL (TARGET_64BIT && !symbolic_operand (operands[1], DImode)
00281 && !x86_64_immediate_operand (operands[1], DImode)) },
00282 { "ix86_binary_operator_ok (MINUS, HImode, operands)",
00283 MAYBE_EVAL (ix86_binary_operator_ok (MINUS, HImode, operands)) },
00284 { "!optimize_size && !TARGET_USE_CLTD",
00285 MAYBE_EVAL (!optimize_size && !TARGET_USE_CLTD) },
00286 { "TARGET_SSE2 && (GET_CODE (operands[1]) == MEM || GET_CODE (operands[2]) == MEM)",
00287 MAYBE_EVAL (TARGET_SSE2 && (GET_CODE (operands[1]) == MEM || GET_CODE (operands[2]) == MEM)) },
00288 { "optimize_size || !TARGET_SUB_ESP_4",
00289 MAYBE_EVAL (optimize_size || !TARGET_SUB_ESP_4) },
00290 { "(TARGET_80387 || TARGET_SSE2)\n\
00291 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
00292 MAYBE_EVAL ((TARGET_80387 || TARGET_SSE2)
00293 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
00294 { "ix86_match_ccmode (insn, CCNOmode)\n\
00295 && ix86_binary_operator_ok (AND, QImode, operands)",
00296 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00297 && ix86_binary_operator_ok (AND, QImode, operands)) },
00298 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, DImode, operands)",
00299 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, DImode, operands)) },
00300 { "! TARGET_PARTIAL_REG_STALL && TARGET_CMOVE\n\
00301 && (GET_MODE (operands[0]) == HImode\n\
00302 || (GET_MODE (operands[0]) == QImode \n\
00303 && (TARGET_PROMOTE_QImode || optimize_size)))",
00304 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL && TARGET_CMOVE
00305 && (GET_MODE (operands[0]) == HImode
00306 || (GET_MODE (operands[0]) == QImode
00307 && (TARGET_PROMOTE_QImode || optimize_size)))) },
00308 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)\n\
00309 && ix86_binary_operator_ok (AND, DImode, operands)",
00310 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
00311 && ix86_binary_operator_ok (AND, DImode, operands)) },
00312 { "reload_completed && !SSE_REG_P (operands[0])\n\
00313 && (!TARGET_64BIT || FP_REG_P (operands[0]))",
00314 MAYBE_EVAL (reload_completed && !SSE_REG_P (operands[0])
00315 && (!TARGET_64BIT || FP_REG_P (operands[0]))) },
00316 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00317 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)\n\
00318 /* Current assemblers are broken and do not allow @GOTOFF in\n\
00319 ought but a memory context. */\n\
00320 && ! pic_symbolic_operand (operands[2], VOIDmode)",
00321 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00322 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)
00323
00324
00325 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
00326 { "!TARGET_64BIT && TARGET_80387 && TARGET_USE_FIOP",
00327 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387 && TARGET_USE_FIOP) },
00328 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00329 && ix86_binary_operator_ok (ASHIFT, HImode, operands)",
00330 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00331 && ix86_binary_operator_ok (ASHIFT, HImode, operands)) },
00332 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
00333 && ix86_binary_operator_ok (MINUS, SImode, operands)",
00334 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
00335 && ix86_binary_operator_ok (MINUS, SImode, operands)) },
00336 { "ix86_unary_operator_ok (ABS, DFmode, operands)",
00337 MAYBE_EVAL (ix86_unary_operator_ok (ABS, DFmode, operands)) },
00338 { "ix86_match_ccmode (insn, CCNOmode) && ! optimize_size",
00339 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode) && ! optimize_size) },
00340 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)",
00341 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)) },
00342 { "TARGET_PNI",
00343 MAYBE_EVAL (TARGET_PNI) },
00344 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00345 && ix86_binary_operator_ok (PLUS, HImode, operands)",
00346 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00347 && ix86_binary_operator_ok (PLUS, HImode, operands)) },
00348 { "TARGET_SSE2 && TARGET_SSE_MATH && reload_completed",
00349 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH && reload_completed) },
00350 { "TARGET_80387\n\
00351 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'",
00352 MAYBE_EVAL (TARGET_80387
00353 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c') },
00354 { "TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)\n\
00355 && (TARGET_SHIFT1 || optimize_size)",
00356 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)
00357 && (TARGET_SHIFT1 || optimize_size)) },
00358 { "ix86_match_ccmode (insn, CCGOCmode)",
00359 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)) },
00360 { "TARGET_80387 && !(TARGET_SSE2 && TARGET_SSE_MATH)",
00361 MAYBE_EVAL (TARGET_80387 && !(TARGET_SSE2 && TARGET_SSE_MATH)) },
00362 { "ix86_binary_operator_ok (ROTATE, HImode, operands)",
00363 MAYBE_EVAL (ix86_binary_operator_ok (ROTATE, HImode, operands)) },
00364 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387\n\
00365 && (TARGET_SSE_MATH && TARGET_MIX_SSE_I387)",
00366 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
00367 && (TARGET_SSE_MATH && TARGET_MIX_SSE_I387)) },
00368 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATE, DImode, operands)",
00369 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, DImode, operands)) },
00370 { "TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)",
00371 MAYBE_EVAL (TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)) },
00372 { "TARGET_80387 && reload_completed",
00373 MAYBE_EVAL (TARGET_80387 && reload_completed) },
00374 { "TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)",
00375 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)) },
00376 { "ix86_unary_operator_ok (NEG, DFmode, operands)",
00377 MAYBE_EVAL (ix86_unary_operator_ok (NEG, DFmode, operands)) },
00378 { "!TARGET_80387 && TARGET_SSE2\n\
00379 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
00380 MAYBE_EVAL (!TARGET_80387 && TARGET_SSE2
00381 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
00382 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00383 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
00384 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00385 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
00386 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00387 && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)",
00388 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00389 && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)) },
00390 { "TARGET_64BIT\n\
00391 && (!TARGET_PARTIAL_REG_STALL || optimize_size)",
00392 MAYBE_EVAL (TARGET_64BIT
00393 && (!TARGET_PARTIAL_REG_STALL || optimize_size)) },
00394 { "!TARGET_64BIT && TARGET_CMOVE",
00395 MAYBE_EVAL (!TARGET_64BIT && TARGET_CMOVE) },
00396 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)",
00397 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)) },
00398 { "TARGET_SSE && TARGET_IEEE_FP",
00399 MAYBE_EVAL (TARGET_SSE && TARGET_IEEE_FP) },
00400 { "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode\n\
00401 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))\n\
00402 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
00403 && GET_MODE (operands[0]) == GET_MODE (operands[1])\n\
00404 && (GET_MODE (operands[0]) == GET_MODE (operands[3])\n\
00405 || GET_MODE (operands[3]) == VOIDmode)",
00406 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
00407 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
00408 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
00409 && GET_MODE (operands[0]) == GET_MODE (operands[1])
00410 && (GET_MODE (operands[0]) == GET_MODE (operands[3])
00411 || GET_MODE (operands[3]) == VOIDmode)) },
00412 { "TARGET_80387 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'",
00413 MAYBE_EVAL (TARGET_80387 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c') },
00414 { "TARGET_80387 && !TARGET_SSE_MATH\n\
00415 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'\n\
00416 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00417 MAYBE_EVAL (TARGET_80387 && !TARGET_SSE_MATH
00418 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'
00419 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00420 { "!TARGET_64BIT && TARGET_80387\n\
00421 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'",
00422 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
00423 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c') },
00424 { "TARGET_64BIT && TARGET_SSE2",
00425 MAYBE_EVAL (TARGET_64BIT && TARGET_SSE2) },
00426 { "TARGET_SSE_MATH && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'\n\
00427 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00428 MAYBE_EVAL (TARGET_SSE_MATH && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
00429 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00430 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
00431 && ix86_binary_operator_ok (ASHIFT, SImode, operands)",
00432 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
00433 && ix86_binary_operator_ok (ASHIFT, SImode, operands)) },
00434 { "ix86_binary_operator_ok (ROTATERT, QImode, operands)\n\
00435 && (TARGET_SHIFT1 || optimize_size)",
00436 MAYBE_EVAL (ix86_binary_operator_ok (ROTATERT, QImode, operands)
00437 && (TARGET_SHIFT1 || optimize_size)) },
00438 { "ix86_match_ccmode (insn, CCZmode)\n\
00439 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)\n\
00440 /* Current assemblers are broken and do not allow @GOTOFF in\n\
00441 ought but a memory context. */\n\
00442 && ! pic_symbolic_operand (operands[2], VOIDmode)",
00443 MAYBE_EVAL (ix86_match_ccmode (insn, CCZmode)
00444 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)
00445
00446
00447 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
00448 { "TARGET_SSE2\n\
00449 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00450 MAYBE_EVAL (TARGET_SSE2
00451 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00452 { "TARGET_64BIT && ix86_check_movabs (insn, 1)",
00453 MAYBE_EVAL (TARGET_64BIT && ix86_check_movabs (insn, 1)) },
00454 { "(! TARGET_PARTIAL_REG_STALL || optimize_size)\n\
00455 && ix86_match_ccmode (insn, CCNOmode)\n\
00456 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
00457 MAYBE_EVAL ((! TARGET_PARTIAL_REG_STALL || optimize_size)
00458 && ix86_match_ccmode (insn, CCNOmode)
00459 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
00460 { "TARGET_80387 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387\n\
00461 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'\n\
00462 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00463 MAYBE_EVAL (TARGET_80387 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387
00464 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'
00465 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00466 { "reload_completed && !SSE_REG_P (operands[0])",
00467 MAYBE_EVAL (reload_completed && !SSE_REG_P (operands[0])) },
00468 { "! TARGET_PARTIAL_REG_STALL && reload_completed\n\
00469 /* Ensure that the operand will remain sign-extended immediate. */\n\
00470 && ix86_match_ccmode (insn, INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)\n\
00471 && ! TARGET_FAST_PREFIX\n\
00472 && ! optimize_size",
00473 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL && reload_completed
00474
00475 && ix86_match_ccmode (insn, INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)
00476 && ! TARGET_FAST_PREFIX
00477 && ! optimize_size) },
00478 { "ix86_match_ccmode (insn, CCGCmode)\n\
00479 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))",
00480 MAYBE_EVAL (ix86_match_ccmode (insn, CCGCmode)
00481 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))) },
00482 { "optimize_size || !TARGET_SUB_ESP_8",
00483 MAYBE_EVAL (optimize_size || !TARGET_SUB_ESP_8) },
00484 { "TARGET_SSE2 && TARGET_SSE_MATH && (!TARGET_80387 || !TARGET_MIX_SSE_I387)",
00485 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH && (!TARGET_80387 || !TARGET_MIX_SSE_I387)) },
00486 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00487 && ix86_binary_operator_ok (PLUS, SImode, operands)\n\
00488 /* Current assemblers are broken and do not allow @GOTOFF in\n\
00489 ought but a memory context. */\n\
00490 && ! pic_symbolic_operand (operands[2], VOIDmode)",
00491 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00492 && ix86_binary_operator_ok (PLUS, SImode, operands)
00493
00494
00495 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
00496 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00497 && ix86_match_ccmode (insn, CCmode)",
00498 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00499 && ix86_match_ccmode (insn, CCmode)) },
00500 { "TARGET_64BIT && TARGET_SSE2\n\
00501 && (reload_in_progress || reload_completed\n\
00502 || (register_operand (operands[0], VOIDmode)\n\
00503 && register_operand (operands[1], VOIDmode)))",
00504 MAYBE_EVAL (TARGET_64BIT && TARGET_SSE2
00505 && (reload_in_progress || reload_completed
00506 || (register_operand (operands[0], VOIDmode)
00507 && register_operand (operands[1], VOIDmode)))) },
00508 { "! TARGET_PARTIAL_REG_STALL || optimize_size",
00509 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL || optimize_size) },
00510 { "TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)",
00511 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)) },
00512 { "TARGET_SSE && !TARGET_64BIT\n\
00513 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
00514 MAYBE_EVAL (TARGET_SSE && !TARGET_64BIT
00515 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
00516 { "TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, DImode, operands)",
00517 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, DImode, operands)) },
00518 { "!TARGET_PARTIAL_REG_STALL\n\
00519 && ix86_binary_operator_ok (ASHIFT, HImode, operands)",
00520 MAYBE_EVAL (!TARGET_PARTIAL_REG_STALL
00521 && ix86_binary_operator_ok (ASHIFT, HImode, operands)) },
00522 { "ix86_match_ccmode (insn, CCmode)\n\
00523 && ix86_binary_operator_ok (MINUS, HImode, operands)",
00524 MAYBE_EVAL (ix86_match_ccmode (insn, CCmode)
00525 && ix86_binary_operator_ok (MINUS, HImode, operands)) },
00526 { "ix86_binary_operator_ok (LSHIFTRT, QImode, operands)",
00527 MAYBE_EVAL (ix86_binary_operator_ok (LSHIFTRT, QImode, operands)) },
00528 { "TARGET_64BIT && TARGET_SSE",
00529 MAYBE_EVAL (TARGET_64BIT && TARGET_SSE) },
00530 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00531 && ix86_binary_operator_ok (MINUS, SImode, operands)",
00532 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00533 && ix86_binary_operator_ok (MINUS, SImode, operands)) },
00534 { "ix86_binary_operator_ok (XOR, HImode, operands)",
00535 MAYBE_EVAL (ix86_binary_operator_ok (XOR, HImode, operands)) },
00536 { "TARGET_64BIT && (!TARGET_USE_MOV0 || optimize_size)\n\
00537 && reload_completed",
00538 MAYBE_EVAL (TARGET_64BIT && (!TARGET_USE_MOV0 || optimize_size)
00539 && reload_completed) },
00540 { "! optimize_size && ! TARGET_PUSH_MEMORY",
00541 MAYBE_EVAL (! optimize_size && ! TARGET_PUSH_MEMORY) },
00542 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00543 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)",
00544 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00545 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)) },
00546 { "ix86_match_ccmode (insn, CCNOmode)\n\
00547 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00548 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00549 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00550 { "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
00551 && !reload_completed && !reload_in_progress\n\
00552 && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)",
00553 MAYBE_EVAL (TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
00554 && !reload_completed && !reload_in_progress
00555 && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)) },
00556 { "!TARGET_64BIT\n\
00557 && optimize_size\n\
00558 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00559 && (reload_in_progress || reload_completed\n\
00560 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
00561 || memory_operand (operands[0], XFmode))",
00562 MAYBE_EVAL (!TARGET_64BIT
00563 && optimize_size
00564 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00565 && (reload_in_progress || reload_completed
00566 || GET_CODE (operands[1]) != CONST_DOUBLE
00567 || memory_operand (operands[0], XFmode))) },
00568 { "reload_completed\n\
00569 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00570 && ! (ANY_FP_REG_P (operands[0]) || \n\
00571 (GET_CODE (operands[0]) == SUBREG\n\
00572 && ANY_FP_REG_P (SUBREG_REG (operands[0]))))\n\
00573 && ! (ANY_FP_REG_P (operands[1]) || \n\
00574 (GET_CODE (operands[1]) == SUBREG\n\
00575 && ANY_FP_REG_P (SUBREG_REG (operands[1]))))",
00576 MAYBE_EVAL (reload_completed
00577 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00578 && ! (ANY_FP_REG_P (operands[0]) ||
00579 (GET_CODE (operands[0]) == SUBREG
00580 && ANY_FP_REG_P (SUBREG_REG (operands[0]))))
00581 && ! (ANY_FP_REG_P (operands[1]) ||
00582 (GET_CODE (operands[1]) == SUBREG
00583 && ANY_FP_REG_P (SUBREG_REG (operands[1]))))) },
00584 { "TARGET_SSE && !TARGET_IEEE_FP\n\
00585 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00586 MAYBE_EVAL (TARGET_SSE && !TARGET_IEEE_FP
00587 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00588 { "ix86_match_ccmode (insn, CCGCmode)\n\
00589 && (INTVAL (operands[2]) & 0xff) != 0x80",
00590 MAYBE_EVAL (ix86_match_ccmode (insn, CCGCmode)
00591 && (INTVAL (operands[2]) & 0xff) != 0x80) },
00592 { "reload_completed && FLOAT_MODE_P (GET_MODE (operands[0]))",
00593 MAYBE_EVAL (reload_completed && FLOAT_MODE_P (GET_MODE (operands[0]))) },
00594 { "optimize_size || !TARGET_ADD_ESP_8",
00595 MAYBE_EVAL (optimize_size || !TARGET_ADD_ESP_8) },
00596 { "reload_completed && !SSE_REG_P (operands[0])\n\
00597 && !SSE_REG_P (operands[1])",
00598 MAYBE_EVAL (reload_completed && !SSE_REG_P (operands[0])
00599 && !SSE_REG_P (operands[1])) },
00600 { "!TARGET_64BIT && TARGET_USE_LOOP",
00601 MAYBE_EVAL (!TARGET_64BIT && TARGET_USE_LOOP) },
00602 { "ix86_match_ccmode (insn, CCNOmode)\n\
00603 && (GET_MODE (operands[0]) == SImode\n\
00604 || (TARGET_64BIT && GET_MODE (operands[0]) == DImode)\n\
00605 || GET_MODE (operands[0]) == HImode\n\
00606 || GET_MODE (operands[0]) == QImode)",
00607 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00608 && (GET_MODE (operands[0]) == SImode
00609 || (TARGET_64BIT && GET_MODE (operands[0]) == DImode)
00610 || GET_MODE (operands[0]) == HImode
00611 || GET_MODE (operands[0]) == QImode)) },
00612 { "!TARGET_64BIT && TARGET_80387\n\
00613 && ix86_unary_operator_ok (NEG, DFmode, operands)",
00614 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
00615 && ix86_unary_operator_ok (NEG, DFmode, operands)) },
00616 { "TARGET_64BIT\n\
00617 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00618 MAYBE_EVAL (TARGET_64BIT
00619 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00620 { "optimize_size",
00621 MAYBE_EVAL (optimize_size) },
00622 { "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
00623 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))",
00624 MAYBE_EVAL (TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
00625 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))) },
00626 { "(!TARGET_ZERO_EXTEND_WITH_AND || optimize_size) && reload_completed",
00627 MAYBE_EVAL ((!TARGET_ZERO_EXTEND_WITH_AND || optimize_size) && reload_completed) },
00628 { "optimize_size || TARGET_USE_CLTD",
00629 MAYBE_EVAL (optimize_size || TARGET_USE_CLTD) },
00630 { "reload_completed || !TARGET_SSE",
00631 MAYBE_EVAL (reload_completed || !TARGET_SSE) },
00632 { "TARGET_80387 && ix86_unary_operator_ok (ABS, SFmode, operands) && !TARGET_SSE",
00633 MAYBE_EVAL (TARGET_80387 && ix86_unary_operator_ok (ABS, SFmode, operands) && !TARGET_SSE) },
00634 { "!TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)",
00635 MAYBE_EVAL (!TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)) },
00636 { "TARGET_SSE\n\
00637 && (reload_in_progress || reload_completed\n\
00638 || (register_operand (operands[0], VOIDmode)\n\
00639 && register_operand (operands[1], VOIDmode)))",
00640 MAYBE_EVAL (TARGET_SSE
00641 && (reload_in_progress || reload_completed
00642 || (register_operand (operands[0], VOIDmode)
00643 && register_operand (operands[1], VOIDmode)))) },
00644 { "TARGET_80387 || (TARGET_SSE2 && TARGET_64BIT)",
00645 MAYBE_EVAL (TARGET_80387 || (TARGET_SSE2 && TARGET_64BIT)) },
00646 { "!TARGET_64BIT && ix86_match_ccmode (insn, CCmode)",
00647 MAYBE_EVAL (!TARGET_64BIT && ix86_match_ccmode (insn, CCmode)) },
00648 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)\n\
00649 && ix86_binary_operator_ok (IOR, SImode, operands)",
00650 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
00651 && ix86_binary_operator_ok (IOR, SImode, operands)) },
00652 { "ix86_binary_operator_ok (MINUS, SImode, operands)",
00653 MAYBE_EVAL (ix86_binary_operator_ok (MINUS, SImode, operands)) },
00654 { "TARGET_64BIT && (TARGET_USE_CLTD || optimize_size)\n\
00655 && INTVAL (operands[2]) == 31\n\
00656 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
00657 MAYBE_EVAL (TARGET_64BIT && (TARGET_USE_CLTD || optimize_size)
00658 && INTVAL (operands[2]) == 31
00659 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
00660 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00661 && ix86_match_ccmode (insn, CCmode)",
00662 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00663 && ix86_match_ccmode (insn, CCmode)) },
00664 { "reload_completed\n\
00665 && GET_CODE (operands[1]) == MEM\n\
00666 && (GET_MODE (operands[0]) == XFmode || GET_MODE (operands[0]) == TFmode\n\
00667 || GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode)\n\
00668 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF\n\
00669 && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))\n\
00670 && (!(SSE_REG_P (operands[0]) || \n\
00671 (GET_CODE (operands[0]) == SUBREG\n\
00672 && SSE_REG_P (SUBREG_REG (operands[0]))))\n\
00673 || standard_sse_constant_p (get_pool_constant (XEXP (operands[1], 0))))\n\
00674 && (!(FP_REG_P (operands[0]) || \n\
00675 (GET_CODE (operands[0]) == SUBREG\n\
00676 && FP_REG_P (SUBREG_REG (operands[0]))))\n\
00677 || standard_80387_constant_p (get_pool_constant (XEXP (operands[1], 0))))",
00678 MAYBE_EVAL (reload_completed
00679 && GET_CODE (operands[1]) == MEM
00680 && (GET_MODE (operands[0]) == XFmode || GET_MODE (operands[0]) == TFmode
00681 || GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode)
00682 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
00683 && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))
00684 && (!(SSE_REG_P (operands[0]) ||
00685 (GET_CODE (operands[0]) == SUBREG
00686 && SSE_REG_P (SUBREG_REG (operands[0]))))
00687 || standard_sse_constant_p (get_pool_constant (XEXP (operands[1], 0))))
00688 && (!(FP_REG_P (operands[0]) ||
00689 (GET_CODE (operands[0]) == SUBREG
00690 && FP_REG_P (SUBREG_REG (operands[0]))))
00691 || standard_80387_constant_p (get_pool_constant (XEXP (operands[1], 0))))) },
00692 { "TARGET_80387 && ix86_unary_operator_ok (ABS, TFmode, operands)",
00693 MAYBE_EVAL (TARGET_80387 && ix86_unary_operator_ok (ABS, TFmode, operands)) },
00694 { "ix86_binary_operator_ok (XOR, QImode, operands)",
00695 MAYBE_EVAL (ix86_binary_operator_ok (XOR, QImode, operands)) },
00696 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00697 && (TARGET_SHIFT1 || optimize_size)\n\
00698 && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)",
00699 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00700 && (TARGET_SHIFT1 || optimize_size)
00701 && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)) },
00702 { "ix86_match_ccmode (insn, CCmode)\n\
00703 && ix86_binary_operator_ok (MINUS, SImode, operands)",
00704 MAYBE_EVAL (ix86_match_ccmode (insn, CCmode)
00705 && ix86_binary_operator_ok (MINUS, SImode, operands)) },
00706 { "TARGET_64BIT && ix86_match_ccmode (insn, CCZmode)\n\
00707 && ix86_binary_operator_ok (PLUS, SImode, operands)\n\
00708 /* Current assemblers are broken and do not allow @GOTOFF in\n\
00709 ought but a memory context. */\n\
00710 && ! pic_symbolic_operand (operands[2], VOIDmode)",
00711 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCZmode)
00712 && ix86_binary_operator_ok (PLUS, SImode, operands)
00713
00714
00715 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
00716 { "TARGET_80387 && reload_completed\n\
00717 && !FP_REG_P (operands[0]) && !FP_REG_P (operands[1])",
00718 MAYBE_EVAL (TARGET_80387 && reload_completed
00719 && !FP_REG_P (operands[0]) && !FP_REG_P (operands[1])) },
00720 { "ix86_match_ccmode (insn, CCZmode)\n\
00721 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00722 MAYBE_EVAL (ix86_match_ccmode (insn, CCZmode)
00723 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00724 { "ix86_match_ccmode (insn, CCmode)\n\
00725 && ix86_binary_operator_ok (MINUS, QImode, operands)",
00726 MAYBE_EVAL (ix86_match_ccmode (insn, CCmode)
00727 && ix86_binary_operator_ok (MINUS, QImode, operands)) },
00728 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00729 && ix86_binary_operator_ok (ASHIFT, SImode, operands)",
00730 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00731 && ix86_binary_operator_ok (ASHIFT, SImode, operands)) },
00732 { "TARGET_PREFETCH_SSE || TARGET_3DNOW",
00733 MAYBE_EVAL (TARGET_PREFETCH_SSE || TARGET_3DNOW) },
00734 { "(!TARGET_PARTIAL_REG_STALL || optimize_size)",
00735 MAYBE_EVAL ((!TARGET_PARTIAL_REG_STALL || optimize_size)) },
00736 { "!TARGET_PARTIAL_REG_STALL\n\
00737 && ix86_binary_operator_ok (PLUS, HImode, operands)",
00738 MAYBE_EVAL (!TARGET_PARTIAL_REG_STALL
00739 && ix86_binary_operator_ok (PLUS, HImode, operands)) },
00740 { "reload_completed && TARGET_ZERO_EXTEND_WITH_AND && !optimize_size",
00741 MAYBE_EVAL (reload_completed && TARGET_ZERO_EXTEND_WITH_AND && !optimize_size) },
00742 { "TARGET_80387 || TARGET_SSE2",
00743 MAYBE_EVAL (TARGET_80387 || TARGET_SSE2) },
00744 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00745 && !optimize_size\n\
00746 && (reload_in_progress || reload_completed\n\
00747 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
00748 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)\n\
00749 || memory_operand (operands[0], TFmode))",
00750 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00751 && !optimize_size
00752 && (reload_in_progress || reload_completed
00753 || GET_CODE (operands[1]) != CONST_DOUBLE
00754 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
00755 || memory_operand (operands[0], TFmode))) },
00756 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)\n\
00757 && (TARGET_SHIFT1 || optimize_size)",
00758 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)
00759 && (TARGET_SHIFT1 || optimize_size)) },
00760 { "TARGET_80387 && TARGET_USE_FIOP",
00761 MAYBE_EVAL (TARGET_80387 && TARGET_USE_FIOP) },
00762 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00763 && ix86_binary_operator_ok (ASHIFTRT, HImode, operands)",
00764 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00765 && ix86_binary_operator_ok (ASHIFTRT, HImode, operands)) },
00766 { "TARGET_3DNOW_A",
00767 MAYBE_EVAL (TARGET_3DNOW_A) },
00768 { "TARGET_ZERO_EXTEND_WITH_AND && !optimize_size",
00769 MAYBE_EVAL (TARGET_ZERO_EXTEND_WITH_AND && !optimize_size) },
00770 { "ix86_match_ccmode (insn, CCNOmode)\n\
00771 && (true_regnum (operands[0]) != 0\n\
00772 || (GET_CODE (operands[1]) == CONST_INT\n\
00773 && CONST_OK_FOR_LETTER_P (INTVAL (operands[1]), 'K')))\n\
00774 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))",
00775 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00776 && (true_regnum (operands[0]) != 0
00777 || (GET_CODE (operands[1]) == CONST_INT
00778 && CONST_OK_FOR_LETTER_P (INTVAL (operands[1]), 'K')))
00779 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))) },
00780 { "reload_completed\n\
00781 && ANY_QI_REG_P (operands[0])\n\
00782 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
00783 && !(~INTVAL (operands[2]) & ~255)\n\
00784 && !(INTVAL (operands[2]) & 128)\n\
00785 && GET_MODE (operands[0]) != QImode",
00786 MAYBE_EVAL (reload_completed
00787 && ANY_QI_REG_P (operands[0])
00788 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
00789 && !(~INTVAL (operands[2]) & ~255)
00790 && !(INTVAL (operands[2]) & 128)
00791 && GET_MODE (operands[0]) != QImode) },
00792 { "!TARGET_PARTIAL_REG_STALL\n\
00793 && ix86_binary_operator_ok (ASHIFT, QImode, operands)",
00794 MAYBE_EVAL (!TARGET_PARTIAL_REG_STALL
00795 && ix86_binary_operator_ok (ASHIFT, QImode, operands)) },
00796 { "ix86_binary_operator_ok (ROTATERT, SImode, operands)\n\
00797 && (TARGET_SHIFT1 || optimize_size)",
00798 MAYBE_EVAL (ix86_binary_operator_ok (ROTATERT, SImode, operands)
00799 && (TARGET_SHIFT1 || optimize_size)) },
00800 { "TARGET_80387\n\
00801 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
00802 && GET_MODE (operands[1]) == GET_MODE (operands[2])\n\
00803 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))",
00804 MAYBE_EVAL (TARGET_80387
00805 && FLOAT_MODE_P (GET_MODE (operands[1]))
00806 && GET_MODE (operands[1]) == GET_MODE (operands[2])
00807 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))) },
00808 { "ix86_binary_operator_ok (ASHIFTRT, QImode, operands)",
00809 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, QImode, operands)) },
00810 { "reload_completed \n\
00811 && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_size)\n\
00812 && (!REG_P (operands[1]) || ANY_QI_REG_P (operands[1]))",
00813 MAYBE_EVAL (reload_completed
00814 && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_size)
00815 && (!REG_P (operands[1]) || ANY_QI_REG_P (operands[1]))) },
00816 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00817 && ix86_binary_operator_ok (PLUS, QImode, operands)",
00818 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00819 && ix86_binary_operator_ok (PLUS, QImode, operands)) },
00820 { "TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)",
00821 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)) },
00822 { "TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)\n\
00823 && (TARGET_SHIFT1 || optimize_size)",
00824 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
00825 && (TARGET_SHIFT1 || optimize_size)) },
00826 { "ix86_match_ccmode (insn, CCGOCmode)\n\
00827 && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)",
00828 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
00829 && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)) },
00830 { "TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, SImode, operands)",
00831 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, SImode, operands)) },
00832 { "TARGET_64BIT",
00833 MAYBE_EVAL (TARGET_64BIT) },
00834 { "TARGET_64BIT && TARGET_80387 && (!TARGET_SSE || TARGET_MIX_SSE_I387)",
00835 MAYBE_EVAL (TARGET_64BIT && TARGET_80387 && (!TARGET_SSE || TARGET_MIX_SSE_I387)) },
00836 { "!TARGET_64BIT && TARGET_80387\n\
00837 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
00838 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
00839 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
00840 { "!TARGET_ZERO_EXTEND_WITH_AND || optimize_size",
00841 MAYBE_EVAL (!TARGET_ZERO_EXTEND_WITH_AND || optimize_size) },
00842 { "ix86_unary_operator_ok (NOT, SImode, operands)",
00843 MAYBE_EVAL (ix86_unary_operator_ok (NOT, SImode, operands)) },
00844 { "SSE_FLOAT_MODE_P (GET_MODE (operands[0]))\n\
00845 && GET_MODE (operands[0]) == GET_MODE (operands[1])",
00846 MAYBE_EVAL (SSE_FLOAT_MODE_P (GET_MODE (operands[0]))
00847 && GET_MODE (operands[0]) == GET_MODE (operands[1])) },
00848 { "TARGET_MMX",
00849 MAYBE_EVAL (TARGET_MMX) },
00850 { "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
00851 && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)",
00852 MAYBE_EVAL (TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
00853 && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)) },
00854 { "TARGET_3DNOW && !TARGET_64BIT",
00855 MAYBE_EVAL (TARGET_3DNOW && !TARGET_64BIT) },
00856 { "0 && TARGET_80387 && reload_completed",
00857 MAYBE_EVAL (0 && TARGET_80387 && reload_completed) },
00858 { "!TARGET_64BIT && !optimize_size",
00859 MAYBE_EVAL (!TARGET_64BIT && !optimize_size) },
00860 { "TARGET_64BIT && ix86_unary_operator_ok (NOT, SImode, operands)",
00861 MAYBE_EVAL (TARGET_64BIT && ix86_unary_operator_ok (NOT, SImode, operands)) },
00862 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387\n\
00863 && !TARGET_SSE_MATH",
00864 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
00865 && !TARGET_SSE_MATH) },
00866 { "!TARGET_64BIT && TARGET_SSE2\n\
00867 && (reload_in_progress || reload_completed\n\
00868 || (register_operand (operands[0], VOIDmode)\n\
00869 && register_operand (operands[1], VOIDmode)))",
00870 MAYBE_EVAL (!TARGET_64BIT && TARGET_SSE2
00871 && (reload_in_progress || reload_completed
00872 || (register_operand (operands[0], VOIDmode)
00873 && register_operand (operands[1], VOIDmode)))) },
00874 { "TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)",
00875 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)) },
00876 { "!optimize_size\n\
00877 && peep2_regno_dead_p (0, FLAGS_REG)\n\
00878 && ((TARGET_PENTIUM \n\
00879 && (GET_CODE (operands[0]) != MEM\n\
00880 || !memory_displacement_operand (operands[0], SImode)))\n\
00881 || (TARGET_K6 && long_memory_operand (operands[0], SImode)))",
00882 MAYBE_EVAL (!optimize_size
00883 && peep2_regno_dead_p (0, FLAGS_REG)
00884 && ((TARGET_PENTIUM
00885 && (GET_CODE (operands[0]) != MEM
00886 || !memory_displacement_operand (operands[0], SImode)))
00887 || (TARGET_K6 && long_memory_operand (operands[0], SImode)))) },
00888 { "TARGET_80387 && TARGET_SSE2\n\
00889 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
00890 MAYBE_EVAL (TARGET_80387 && TARGET_SSE2
00891 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
00892 { "TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)\n\
00893 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00894 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)
00895 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00896 { "TARGET_PARTIAL_REG_STALL",
00897 MAYBE_EVAL (TARGET_PARTIAL_REG_STALL) },
00898 { "!TARGET_64BIT\n\
00899 && !optimize_size\n\
00900 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
00901 && (reload_in_progress || reload_completed\n\
00902 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
00903 || memory_operand (operands[0], XFmode))",
00904 MAYBE_EVAL (!TARGET_64BIT
00905 && !optimize_size
00906 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
00907 && (reload_in_progress || reload_completed
00908 || GET_CODE (operands[1]) != CONST_DOUBLE
00909 || memory_operand (operands[0], XFmode))) },
00910 { "TARGET_64BIT && ix86_unary_operator_ok (NEG, SImode, operands)",
00911 MAYBE_EVAL (TARGET_64BIT && ix86_unary_operator_ok (NEG, SImode, operands)) },
00912 { "ix86_binary_operator_ok (IOR, HImode, operands)",
00913 MAYBE_EVAL (ix86_binary_operator_ok (IOR, HImode, operands)) },
00914 { "!TARGET_64BIT && TARGET_80387\n\
00915 && ix86_unary_operator_ok (NEG, XFmode, operands)",
00916 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
00917 && ix86_unary_operator_ok (NEG, XFmode, operands)) },
00918 { "!TARGET_64BIT && TARGET_80387",
00919 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387) },
00920 { "GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM",
00921 MAYBE_EVAL (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM) },
00922 { "ix86_binary_operator_ok (LSHIFTRT, HImode, operands)",
00923 MAYBE_EVAL (ix86_binary_operator_ok (LSHIFTRT, HImode, operands)) },
00924 { "ix86_match_ccmode (insn, CCNOmode)\n\
00925 && ix86_binary_operator_ok (XOR, QImode, operands)",
00926 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00927 && ix86_binary_operator_ok (XOR, QImode, operands)) },
00928 { "TARGET_80387 && (!TARGET_SSE2 || TARGET_MIX_SSE_I387)",
00929 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE2 || TARGET_MIX_SSE_I387)) },
00930 { "ix86_match_ccmode (insn, CCNOmode)\n\
00931 && ix86_binary_operator_ok (IOR, QImode, operands)",
00932 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
00933 && ix86_binary_operator_ok (IOR, QImode, operands)) },
00934 { "!TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)",
00935 MAYBE_EVAL (!TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)) },
00936 { "TARGET_64BIT && !optimize_size && !TARGET_USE_CLTD",
00937 MAYBE_EVAL (TARGET_64BIT && !optimize_size && !TARGET_USE_CLTD) },
00938 { "TARGET_3DNOW",
00939 MAYBE_EVAL (TARGET_3DNOW) },
00940 { "TARGET_64BIT && ix86_match_ccmode (insn, CCmode)\n\
00941 && (TARGET_SHIFT1 || optimize_size)\n\
00942 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
00943 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCmode)
00944 && (TARGET_SHIFT1 || optimize_size)
00945 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
00946 { "peep2_regno_dead_p (0, FLAGS_REG) && REGNO (operands[0]) == REGNO (operands[1])",
00947 MAYBE_EVAL (peep2_regno_dead_p (0, FLAGS_REG) && REGNO (operands[0]) == REGNO (operands[1])) },
00948 { "TARGET_CMOVE && TARGET_HIMODE_MATH",
00949 MAYBE_EVAL (TARGET_CMOVE && TARGET_HIMODE_MATH) },
00950 { "TARGET_80387 && ix86_unary_operator_ok (NEG, TFmode, operands)",
00951 MAYBE_EVAL (TARGET_80387 && ix86_unary_operator_ok (NEG, TFmode, operands)) },
00952 { "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode\n\
00953 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))\n\
00954 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
00955 && GET_MODE (operands[0]) == GET_MODE (operands[1])\n\
00956 && GET_MODE (operands[0]) == GET_MODE (operands[3])&& reload_completed",
00957 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
00958 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
00959 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
00960 && GET_MODE (operands[0]) == GET_MODE (operands[1])
00961 && GET_MODE (operands[0]) == GET_MODE (operands[3])&& reload_completed) },
00962 { "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode\n\
00963 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))\n\
00964 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
00965 && GET_MODE (operands[0]) == GET_MODE (operands[1])\n\
00966 && GET_MODE (operands[0]) == GET_MODE (operands[2])\n\
00967 && (GET_MODE (operands[0]) == GET_MODE (operands[3])\n\
00968 || GET_MODE (operands[3]) == VOIDmode)&& reload_completed",
00969 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
00970 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
00971 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
00972 && GET_MODE (operands[0]) == GET_MODE (operands[1])
00973 && GET_MODE (operands[0]) == GET_MODE (operands[2])
00974 && (GET_MODE (operands[0]) == GET_MODE (operands[3])
00975 || GET_MODE (operands[3]) == VOIDmode)&& reload_completed) },
00976 { "ix86_unary_operator_ok (NEG, HImode, operands)",
00977 MAYBE_EVAL (ix86_unary_operator_ok (NEG, HImode, operands)) },
00978 { "ix86_binary_operator_ok (LSHIFTRT, QImode, operands)\n\
00979 && (TARGET_SHIFT1 || optimize_size)",
00980 MAYBE_EVAL (ix86_binary_operator_ok (LSHIFTRT, QImode, operands)
00981 && (TARGET_SHIFT1 || optimize_size)) },
00982 { "TARGET_64BIT && ix86_match_ccmode (insn, CCmode)",
00983 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCmode)) },
00984 { "TARGET_80387 && (!TARGET_SSE || TARGET_MIX_SSE_I387)",
00985 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE || TARGET_MIX_SSE_I387)) },
00986 { "TARGET_SSE\n\
00987 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
00988 MAYBE_EVAL (TARGET_SSE
00989 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
00990 { "!TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)",
00991 MAYBE_EVAL (!TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)) },
00992 { "SSE_REG_P (operands[0]) && reload_completed",
00993 MAYBE_EVAL (SSE_REG_P (operands[0]) && reload_completed) },
00994 { "TARGET_64BIT\n\
00995 && ix86_binary_operator_ok (XOR, DImode, operands)",
00996 MAYBE_EVAL (TARGET_64BIT
00997 && ix86_binary_operator_ok (XOR, DImode, operands)) },
00998 { "TARGET_SSE && reload_completed",
00999 MAYBE_EVAL (TARGET_SSE && reload_completed) },
01000 { "TARGET_80387\n\
01001 && FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01002 && GET_MODE (operands[0]) == GET_MODE (operands[1])",
01003 MAYBE_EVAL (TARGET_80387
01004 && FLOAT_MODE_P (GET_MODE (operands[0]))
01005 && GET_MODE (operands[0]) == GET_MODE (operands[1])) },
01006 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)\n\
01007 && ix86_unary_operator_ok (NOT, SImode, operands)",
01008 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
01009 && ix86_unary_operator_ok (NOT, SImode, operands)) },
01010 { "! TARGET_PARTIAL_REG_STALL\n\
01011 && ix86_match_ccmode (insn, CCNOmode)\n\
01012 && true_regnum (operands[0]) != 0\n\
01013 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))",
01014 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL
01015 && ix86_match_ccmode (insn, CCNOmode)
01016 && true_regnum (operands[0]) != 0
01017 && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))) },
01018 { "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode\n\
01019 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))\n\
01020 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01021 && GET_MODE (operands[0]) == GET_MODE (operands[1])\n\
01022 && GET_MODE (operands[0]) == GET_MODE (operands[2])\n\
01023 && (GET_MODE (operands[0]) == GET_MODE (operands[3])\n\
01024 || GET_MODE (operands[3]) == VOIDmode)",
01025 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
01026 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
01027 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
01028 && GET_MODE (operands[0]) == GET_MODE (operands[1])
01029 && GET_MODE (operands[0]) == GET_MODE (operands[2])
01030 && (GET_MODE (operands[0]) == GET_MODE (operands[3])
01031 || GET_MODE (operands[3]) == VOIDmode)) },
01032 { "ix86_binary_operator_ok (ROTATERT, QImode, operands)",
01033 MAYBE_EVAL (ix86_binary_operator_ok (ROTATERT, QImode, operands)) },
01034 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01035 && ix86_binary_operator_ok (MINUS, DImode, operands)",
01036 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01037 && ix86_binary_operator_ok (MINUS, DImode, operands)) },
01038 { "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
01039 && !reload_completed && !reload_in_progress\n\
01040 && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)&& 1",
01041 MAYBE_EVAL (TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
01042 && !reload_completed && !reload_in_progress
01043 && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)&& 1) },
01044 { "TARGET_64BIT && !symbolic_operand (operands[1], DImode)\n\
01045 && !x86_64_immediate_operand (operands[1], DImode) && 1",
01046 MAYBE_EVAL (TARGET_64BIT && !symbolic_operand (operands[1], DImode)
01047 && !x86_64_immediate_operand (operands[1], DImode) && 1) },
01048 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01049 && (TARGET_SHIFT1 || optimize_size)\n\
01050 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)",
01051 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01052 && (TARGET_SHIFT1 || optimize_size)
01053 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)) },
01054 { "TARGET_64BIT || TARGET_INTEGER_DFMODE_MOVES",
01055 MAYBE_EVAL (TARGET_64BIT || TARGET_INTEGER_DFMODE_MOVES) },
01056 { "ix86_binary_operator_ok (ROTATE, SImode, operands)",
01057 MAYBE_EVAL (ix86_binary_operator_ok (ROTATE, SImode, operands)) },
01058 { "TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)",
01059 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) },
01060 { "TARGET_64BIT && ix86_check_movabs (insn, 0)",
01061 MAYBE_EVAL (TARGET_64BIT && ix86_check_movabs (insn, 0)) },
01062 { "!TARGET_64BIT && TARGET_CMOVE && reload_completed",
01063 MAYBE_EVAL (!TARGET_64BIT && TARGET_CMOVE && reload_completed) },
01064 { "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
01065 && !reload_completed && !reload_in_progress\n\
01066 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))",
01067 MAYBE_EVAL (TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
01068 && !reload_completed && !reload_in_progress
01069 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))) },
01070 { "TARGET_80387 && !TARGET_SSE_MATH\n\
01071 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'\n\
01072 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01073 MAYBE_EVAL (TARGET_80387 && !TARGET_SSE_MATH
01074 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
01075 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01076 { "TARGET_80387 && TARGET_SSE2 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387\n\
01077 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'\n\
01078 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01079 MAYBE_EVAL (TARGET_80387 && TARGET_SSE2 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387
01080 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'
01081 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01082 { "! TARGET_PARTIAL_REG_STALL && reload_completed\n\
01083 /* Ensure that the operand will remain sign-extended immediate. */\n\
01084 && ix86_match_ccmode (insn, INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)\n\
01085 && ! optimize_size\n\
01086 && ((GET_MODE (operands[0]) == HImode && ! TARGET_FAST_PREFIX)\n\
01087 || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))",
01088 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL && reload_completed
01089
01090 && ix86_match_ccmode (insn, INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)
01091 && ! optimize_size
01092 && ((GET_MODE (operands[0]) == HImode && ! TARGET_FAST_PREFIX)
01093 || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))) },
01094 { "ix86_match_ccmode (insn, CCGCmode)\n\
01095 && (INTVAL (operands[2]) & 0xffffffff) != 0x80000000",
01096 MAYBE_EVAL (ix86_match_ccmode (insn, CCGCmode)
01097 && (INTVAL (operands[2]) & 0xffffffff) != 0x80000000) },
01098 { "TARGET_PREFETCH_SSE && !TARGET_64BIT",
01099 MAYBE_EVAL (TARGET_PREFETCH_SSE && !TARGET_64BIT) },
01100 { "TARGET_64BIT\n\
01101 && INTVAL (operands[4]) + SSE_REGPARM_MAX * 16 - 16 < 128\n\
01102 && INTVAL (operands[4]) + INTVAL (operands[2]) * 16 >= -128",
01103 MAYBE_EVAL (TARGET_64BIT
01104 && INTVAL (operands[4]) + SSE_REGPARM_MAX * 16 - 16 < 128
01105 && INTVAL (operands[4]) + INTVAL (operands[2]) * 16 >= -128) },
01106 { "reload_completed\n\
01107 && ANY_QI_REG_P (operands[0])\n\
01108 && (TARGET_ZERO_EXTEND_WITH_AND && !optimize_size)\n\
01109 && !reg_overlap_mentioned_p (operands[0], operands[1])",
01110 MAYBE_EVAL (reload_completed
01111 && ANY_QI_REG_P (operands[0])
01112 && (TARGET_ZERO_EXTEND_WITH_AND && !optimize_size)
01113 && !reg_overlap_mentioned_p (operands[0], operands[1])) },
01114 { "reload_completed\n\
01115 && QI_REG_P (operands[0])\n\
01116 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01117 && !(INTVAL (operands[2]) & ~(255 << 8))\n\
01118 && GET_MODE (operands[0]) != QImode",
01119 MAYBE_EVAL (reload_completed
01120 && QI_REG_P (operands[0])
01121 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
01122 && !(INTVAL (operands[2]) & ~(255 << 8))
01123 && GET_MODE (operands[0]) != QImode) },
01124 { "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM",
01125 MAYBE_EVAL (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) },
01126 { "TARGET_64BIT && ix86_binary_operator_ok (AND, SImode, operands)",
01127 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (AND, SImode, operands)) },
01128 { "ix86_unary_operator_ok (NOT, HImode, operands)",
01129 MAYBE_EVAL (ix86_unary_operator_ok (NOT, HImode, operands)) },
01130 { "! TARGET_PARTIAL_REG_STALL",
01131 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL) },
01132 { "TARGET_64BIT\n\
01133 && ix86_match_ccmode (insn, CCGOCmode)\n\
01134 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)\n\
01135 /* Current assemblers are broken and do not allow @GOTOFF in\n\
01136 ought but a memory context. */\n\
01137 && ! pic_symbolic_operand (operands[2], VOIDmode)",
01138 MAYBE_EVAL (TARGET_64BIT
01139 && ix86_match_ccmode (insn, CCGOCmode)
01140 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)
01141
01142
01143 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
01144 { "TARGET_80387\n\
01145 && SSE_FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01146 && GET_MODE (operands[0]) == GET_MODE (operands[1])",
01147 MAYBE_EVAL (TARGET_80387
01148 && SSE_FLOAT_MODE_P (GET_MODE (operands[0]))
01149 && GET_MODE (operands[0]) == GET_MODE (operands[1])) },
01150 { "TARGET_80387 && TARGET_SSE_MATH && TARGET_SSE2 && TARGET_MIX_SSE_I387\n\
01151 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'\n\
01152 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01153 MAYBE_EVAL (TARGET_80387 && TARGET_SSE_MATH && TARGET_SSE2 && TARGET_MIX_SSE_I387
01154 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
01155 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01156 { "reload_completed\n\
01157 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
01158 && (GET_MODE (operands[0]) == XFmode || GET_MODE (operands[0]) == TFmode)\n\
01159 && ! (ANY_FP_REG_P (operands[0]) || \n\
01160 (GET_CODE (operands[0]) == SUBREG\n\
01161 && ANY_FP_REG_P (SUBREG_REG (operands[0]))))\n\
01162 && ! (ANY_FP_REG_P (operands[1]) || \n\
01163 (GET_CODE (operands[1]) == SUBREG\n\
01164 && ANY_FP_REG_P (SUBREG_REG (operands[1]))))",
01165 MAYBE_EVAL (reload_completed
01166 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
01167 && (GET_MODE (operands[0]) == XFmode || GET_MODE (operands[0]) == TFmode)
01168 && ! (ANY_FP_REG_P (operands[0]) ||
01169 (GET_CODE (operands[0]) == SUBREG
01170 && ANY_FP_REG_P (SUBREG_REG (operands[0]))))
01171 && ! (ANY_FP_REG_P (operands[1]) ||
01172 (GET_CODE (operands[1]) == SUBREG
01173 && ANY_FP_REG_P (SUBREG_REG (operands[1]))))) },
01174 { "(! TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01175 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01176 MAYBE_EVAL ((! TARGET_PARTIAL_REG_STALL || optimize_size)
01177 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01178 { "TARGET_80387\n\
01179 && SSE_FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01180 && GET_MODE (operands[0]) == GET_MODE (operands[0])",
01181 MAYBE_EVAL (TARGET_80387
01182 && SSE_FLOAT_MODE_P (GET_MODE (operands[0]))
01183 && GET_MODE (operands[0]) == GET_MODE (operands[0])) },
01184 { "TARGET_80387 && reload_completed && FLOAT_MODE_P (GET_MODE (operands[0]))",
01185 MAYBE_EVAL (TARGET_80387 && reload_completed && FLOAT_MODE_P (GET_MODE (operands[0]))) },
01186 { "TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)\n\
01187 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'\n\
01188 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01189 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)
01190 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'
01191 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01192 { "ix86_match_ccmode (insn, CCNOmode)\n\
01193 && ix86_binary_operator_ok (AND, HImode, operands)",
01194 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
01195 && ix86_binary_operator_ok (AND, HImode, operands)) },
01196 { "TARGET_64BIT && TARGET_80387\n\
01197 && ix86_unary_operator_ok (ABS, DFmode, operands)",
01198 MAYBE_EVAL (TARGET_64BIT && TARGET_80387
01199 && ix86_unary_operator_ok (ABS, DFmode, operands)) },
01200 { "TARGET_PREFETCH_SSE && TARGET_64BIT",
01201 MAYBE_EVAL (TARGET_PREFETCH_SSE && TARGET_64BIT) },
01202 { "TARGET_80387 || (TARGET_SSE && TARGET_64BIT)",
01203 MAYBE_EVAL (TARGET_80387 || (TARGET_SSE && TARGET_64BIT)) },
01204 { "TARGET_64BIT\n\
01205 && ix86_match_ccmode (insn, CCNOmode)\n\
01206 && ix86_binary_operator_ok (XOR, DImode, operands)",
01207 MAYBE_EVAL (TARGET_64BIT
01208 && ix86_match_ccmode (insn, CCNOmode)
01209 && ix86_binary_operator_ok (XOR, DImode, operands)) },
01210 { "(reload_completed\n\
01211 && dead_or_set_p (insn, operands[1])\n\
01212 && !reg_mentioned_p (operands[1], operands[0]))",
01213 MAYBE_EVAL ((reload_completed
01214 && dead_or_set_p (insn, operands[1])
01215 && !reg_mentioned_p (operands[1], operands[0]))) },
01216 { "! optimize_size && get_attr_length (insn) >= ix86_cost->large_insn\n\
01217 && TARGET_SPLIT_LONG_MOVES",
01218 MAYBE_EVAL (! optimize_size && get_attr_length (insn) >= ix86_cost->large_insn
01219 && TARGET_SPLIT_LONG_MOVES) },
01220 { "reload_completed && GET_CODE (operands[1]) == CONST_INT\n\
01221 && INTVAL (operands[1]) == -1\n\
01222 && (TARGET_PENTIUM || optimize_size)",
01223 MAYBE_EVAL (reload_completed && GET_CODE (operands[1]) == CONST_INT
01224 && INTVAL (operands[1]) == -1
01225 && (TARGET_PENTIUM || optimize_size)) },
01226 { "TARGET_64BIT && reload_completed && GENERAL_REG_P (operands[0])",
01227 MAYBE_EVAL (TARGET_64BIT && reload_completed && GENERAL_REG_P (operands[0])) },
01228 { "exact_log2 (INTVAL (operands[2])) >= 0\n\
01229 && REGNO (operands[0]) == REGNO (operands[1])\n\
01230 && peep2_regno_dead_p (0, FLAGS_REG)",
01231 MAYBE_EVAL (exact_log2 (INTVAL (operands[2])) >= 0
01232 && REGNO (operands[0]) == REGNO (operands[1])
01233 && peep2_regno_dead_p (0, FLAGS_REG)) },
01234 { "SSE_FLOAT_MODE_P (GET_MODE (operands[1]))\n\
01235 && GET_MODE (operands[1]) == GET_MODE (operands[2])\n\
01236 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))",
01237 MAYBE_EVAL (SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
01238 && GET_MODE (operands[1]) == GET_MODE (operands[2])
01239 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))) },
01240 { "ix86_binary_operator_ok (PLUS, SImode, operands)",
01241 MAYBE_EVAL (ix86_binary_operator_ok (PLUS, SImode, operands)) },
01242 { "ix86_binary_operator_ok (ASHIFTRT, HImode, operands)\n\
01243 && (TARGET_SHIFT1 || optimize_size)",
01244 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, HImode, operands)
01245 && (TARGET_SHIFT1 || optimize_size)) },
01246 { "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode\n\
01247 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))\n\
01248 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01249 && GET_MODE (operands[0]) == GET_MODE (operands[1])\n\
01250 && (GET_MODE (operands[0]) == GET_MODE (operands[3])\n\
01251 || GET_MODE (operands[3]) == VOIDmode)&& reload_completed",
01252 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
01253 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
01254 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
01255 && GET_MODE (operands[0]) == GET_MODE (operands[1])
01256 && (GET_MODE (operands[0]) == GET_MODE (operands[3])
01257 || GET_MODE (operands[3]) == VOIDmode)&& reload_completed) },
01258 { "(TARGET_64BIT && TARGET_SSE) || TARGET_80387",
01259 MAYBE_EVAL ((TARGET_64BIT && TARGET_SSE) || TARGET_80387) },
01260 { "(! TARGET_NO_FANCY_MATH_387 && TARGET_80387) || TARGET_SSE_MATH",
01261 MAYBE_EVAL ((! TARGET_NO_FANCY_MATH_387 && TARGET_80387) || TARGET_SSE_MATH) },
01262 { "reload_completed\n\
01263 && (GET_MODE (operands[0]) == XFmode\n\
01264 || GET_MODE (operands[0]) == TFmode\n\
01265 || GET_MODE (operands[0]) == DFmode)\n\
01266 && !ANY_FP_REG_P (operands[1])",
01267 MAYBE_EVAL (reload_completed
01268 && (GET_MODE (operands[0]) == XFmode
01269 || GET_MODE (operands[0]) == TFmode
01270 || GET_MODE (operands[0]) == DFmode)
01271 && !ANY_FP_REG_P (operands[1])) },
01272 { "ix86_match_ccmode (insn, CCGOCmode)\n\
01273 && ix86_binary_operator_ok (MINUS, HImode, operands)",
01274 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
01275 && ix86_binary_operator_ok (MINUS, HImode, operands)) },
01276 { "ix86_binary_operator_ok (ROTATE, QImode, operands)\n\
01277 && (TARGET_SHIFT1 || optimize_size)",
01278 MAYBE_EVAL (ix86_binary_operator_ok (ROTATE, QImode, operands)
01279 && (TARGET_SHIFT1 || optimize_size)) },
01280 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01281 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
01282 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01283 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
01284 { "!TARGET_64BIT\n\
01285 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01286 MAYBE_EVAL (!TARGET_64BIT
01287 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01288 { "TARGET_SSE\n\
01289 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)\n\
01290 && (!TARGET_IEEE_FP\n\
01291 || (GET_CODE (operands[1]) != EQ && GET_CODE (operands[1]) != NE))",
01292 MAYBE_EVAL (TARGET_SSE
01293 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)
01294 && (!TARGET_IEEE_FP
01295 || (GET_CODE (operands[1]) != EQ && GET_CODE (operands[1]) != NE))) },
01296 { "!TARGET_64BIT\n\
01297 && ix86_unary_operator_ok (NEG, DImode, operands)",
01298 MAYBE_EVAL (!TARGET_64BIT
01299 && ix86_unary_operator_ok (NEG, DImode, operands)) },
01300 { "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387\n\
01301 && flag_unsafe_math_optimizations",
01302 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387
01303 && flag_unsafe_math_optimizations) },
01304 { "!TARGET_PARTIAL_REG_STALL\n\
01305 && ix86_binary_operator_ok (PLUS, QImode, operands)",
01306 MAYBE_EVAL (!TARGET_PARTIAL_REG_STALL
01307 && ix86_binary_operator_ok (PLUS, QImode, operands)) },
01308 { "ix86_match_ccmode (insn, CCNOmode)\n\
01309 && ix86_binary_operator_ok (IOR, HImode, operands)",
01310 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
01311 && ix86_binary_operator_ok (IOR, HImode, operands)) },
01312 { "ix86_binary_operator_ok (AND, SImode, operands)",
01313 MAYBE_EVAL (ix86_binary_operator_ok (AND, SImode, operands)) },
01314 { "ix86_unary_operator_ok (NEG, SFmode, operands)",
01315 MAYBE_EVAL (ix86_unary_operator_ok (NEG, SFmode, operands)) },
01316 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387\n\
01317 && !(TARGET_SSE2 && TARGET_SSE_MATH)",
01318 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
01319 && !(TARGET_SSE2 && TARGET_SSE_MATH)) },
01320 { "ix86_binary_operator_ok (ASHIFT, SImode, operands)",
01321 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFT, SImode, operands)) },
01322 { "(! TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01323 && (TARGET_SHIFT1 || optimize_size)",
01324 MAYBE_EVAL ((! TARGET_PARTIAL_REG_STALL || optimize_size)
01325 && (TARGET_SHIFT1 || optimize_size)) },
01326 { "reload_completed\n\
01327 && ((operands_match_p (operands[1], operands[3])\n\
01328 && operands_match_p (operands[2], operands[4]))\n\
01329 || (operands_match_p (operands[1], operands[4])\n\
01330 && operands_match_p (operands[2], operands[3])))",
01331 MAYBE_EVAL (reload_completed
01332 && ((operands_match_p (operands[1], operands[3])
01333 && operands_match_p (operands[2], operands[4]))
01334 || (operands_match_p (operands[1], operands[4])
01335 && operands_match_p (operands[2], operands[3])))) },
01336 { "TARGET_80387\n\
01337 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
01338 && GET_MODE (operands[1]) == GET_MODE (operands[2])",
01339 MAYBE_EVAL (TARGET_80387
01340 && FLOAT_MODE_P (GET_MODE (operands[1]))
01341 && GET_MODE (operands[1]) == GET_MODE (operands[2])) },
01342 { "TARGET_SSE2\n\
01343 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)\n\
01344 && (!TARGET_IEEE_FP\n\
01345 || (GET_CODE (operands[1]) != EQ && GET_CODE (operands[1]) != NE))",
01346 MAYBE_EVAL (TARGET_SSE2
01347 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)
01348 && (!TARGET_IEEE_FP
01349 || (GET_CODE (operands[1]) != EQ && GET_CODE (operands[1]) != NE))) },
01350 { "TARGET_80387 || TARGET_SSE_MATH",
01351 MAYBE_EVAL (TARGET_80387 || TARGET_SSE_MATH) },
01352 { "TARGET_80387 && !TARGET_SSE2",
01353 MAYBE_EVAL (TARGET_80387 && !TARGET_SSE2) },
01354 { "!TARGET_64BIT && TARGET_80387 && reload_completed",
01355 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387 && reload_completed) },
01356 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387 \n\
01357 && flag_unsafe_math_optimizations",
01358 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
01359 && flag_unsafe_math_optimizations) },
01360 { "TARGET_64BIT && (TARGET_PENTIUM || optimize_size)\n\
01361 && reload_completed\n\
01362 && GET_CODE (operands[1]) == CONST_INT\n\
01363 && INTVAL (operands[1]) == -1",
01364 MAYBE_EVAL (TARGET_64BIT && (TARGET_PENTIUM || optimize_size)
01365 && reload_completed
01366 && GET_CODE (operands[1]) == CONST_INT
01367 && INTVAL (operands[1]) == -1) },
01368 { "TARGET_64BIT && reload_completed\n\
01369 && true_regnum (operands[0]) != true_regnum (operands[1])",
01370 MAYBE_EVAL (TARGET_64BIT && reload_completed
01371 && true_regnum (operands[0]) != true_regnum (operands[1])) },
01372 { "SSE_REG_P (operands[0]) && reload_completed\n\
01373 && (const0_operand (operands[2], GET_MODE (operands[0]))\n\
01374 || const0_operand (operands[3], GET_MODE (operands[0])))",
01375 MAYBE_EVAL (SSE_REG_P (operands[0]) && reload_completed
01376 && (const0_operand (operands[2], GET_MODE (operands[0]))
01377 || const0_operand (operands[3], GET_MODE (operands[0])))) },
01378 { "!TARGET_64BIT && TARGET_SUN_TLS",
01379 MAYBE_EVAL (!TARGET_64BIT && TARGET_SUN_TLS) },
01380 { "0",
01381 MAYBE_EVAL (0) },
01382 { "TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)",
01383 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)) },
01384 { "optimize_size || (TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)",
01385 MAYBE_EVAL (optimize_size || (TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)) },
01386 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01387 && ix86_binary_operator_ok (ASHIFT, DImode, operands)",
01388 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01389 && ix86_binary_operator_ok (ASHIFT, DImode, operands)) },
01390 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)\n\
01391 && ix86_binary_operator_ok (XOR, SImode, operands)",
01392 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
01393 && ix86_binary_operator_ok (XOR, SImode, operands)) },
01394 { "TARGET_SSE2 && !TARGET_64BIT",
01395 MAYBE_EVAL (TARGET_SSE2 && !TARGET_64BIT) },
01396 { "TARGET_64BIT && TARGET_80387 && (!TARGET_SSE2 || TARGET_MIX_SSE_I387)",
01397 MAYBE_EVAL (TARGET_64BIT && TARGET_80387 && (!TARGET_SSE2 || TARGET_MIX_SSE_I387)) },
01398 { "TARGET_80387 && (!TARGET_SSE || !TARGET_64BIT || TARGET_MIX_SSE_I387)",
01399 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE || !TARGET_64BIT || TARGET_MIX_SSE_I387)) },
01400 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01401 && (TARGET_SHIFT1 || optimize_size)\n\
01402 && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)",
01403 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01404 && (TARGET_SHIFT1 || optimize_size)
01405 && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) },
01406 { "!optimize_size\n\
01407 && peep2_regno_dead_p (0, FLAGS_REG)\n\
01408 && ((TARGET_PENTIUM \n\
01409 && (GET_CODE (operands[0]) != MEM\n\
01410 || !memory_displacement_operand (operands[0], QImode)))\n\
01411 || (TARGET_K6 && long_memory_operand (operands[0], QImode)))",
01412 MAYBE_EVAL (!optimize_size
01413 && peep2_regno_dead_p (0, FLAGS_REG)
01414 && ((TARGET_PENTIUM
01415 && (GET_CODE (operands[0]) != MEM
01416 || !memory_displacement_operand (operands[0], QImode)))
01417 || (TARGET_K6 && long_memory_operand (operands[0], QImode)))) },
01418 { "ix86_match_ccmode (insn, CCNOmode)\n\
01419 && ix86_unary_operator_ok (NOT, SImode, operands)",
01420 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
01421 && ix86_unary_operator_ok (NOT, SImode, operands)) },
01422 { "!TARGET_64BIT && TARGET_STACK_PROBE",
01423 MAYBE_EVAL (!TARGET_64BIT && TARGET_STACK_PROBE) },
01424 { "TARGET_SSE && TARGET_64BIT",
01425 MAYBE_EVAL (TARGET_SSE && TARGET_64BIT) },
01426 { "TARGET_3DNOW\n\
01427 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01428 MAYBE_EVAL (TARGET_3DNOW
01429 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01430 { "TARGET_80387\n\
01431 && SSE_FLOAT_MODE_P (GET_MODE (operands[1]))\n\
01432 && GET_MODE (operands[1]) == GET_MODE (operands[2])\n\
01433 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))",
01434 MAYBE_EVAL (TARGET_80387
01435 && SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
01436 && GET_MODE (operands[1]) == GET_MODE (operands[2])
01437 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))) },
01438 { "TARGET_CMOVE\n\
01439 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)",
01440 MAYBE_EVAL (TARGET_CMOVE
01441 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)) },
01442 { "TARGET_64BIT&& reload_completed",
01443 MAYBE_EVAL (TARGET_64BIT&& reload_completed) },
01444 { "TARGET_PARTIAL_REG_STALL\n\
01445 && ix86_binary_operator_ok (ASHIFT, HImode, operands)",
01446 MAYBE_EVAL (TARGET_PARTIAL_REG_STALL
01447 && ix86_binary_operator_ok (ASHIFT, HImode, operands)) },
01448 { "TARGET_SSE2 && TARGET_SSE_MATH",
01449 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH) },
01450 { "TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)\n\
01451 && (TARGET_SHIFT1 || optimize_size)",
01452 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
01453 && (TARGET_SHIFT1 || optimize_size)) },
01454 { "ix86_binary_operator_ok (ASHIFTRT, HImode, operands)",
01455 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, HImode, operands)) },
01456 { "!TARGET_64BIT && reload_completed\n\
01457 && (! MMX_REG_P (operands[1]) && !SSE_REG_P (operands[1]))",
01458 MAYBE_EVAL (!TARGET_64BIT && reload_completed
01459 && (! MMX_REG_P (operands[1]) && !SSE_REG_P (operands[1]))) },
01460 { "!TARGET_64BIT && flag_pic",
01461 MAYBE_EVAL (!TARGET_64BIT && flag_pic) },
01462 { "TARGET_64BIT\n\
01463 && ix86_match_ccmode (insn, CCNOmode)\n\
01464 && ix86_binary_operator_ok (IOR, DImode, operands)",
01465 MAYBE_EVAL (TARGET_64BIT
01466 && ix86_match_ccmode (insn, CCNOmode)
01467 && ix86_binary_operator_ok (IOR, DImode, operands)) },
01468 { "!TARGET_64BIT && TARGET_80387\n\
01469 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'",
01470 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
01471 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c') },
01472 { "ix86_binary_operator_ok (ROTATERT, HImode, operands)\n\
01473 && (TARGET_SHIFT1 || optimize_size)",
01474 MAYBE_EVAL (ix86_binary_operator_ok (ROTATERT, HImode, operands)
01475 && (TARGET_SHIFT1 || optimize_size)) },
01476 { "TARGET_SSE2 && TARGET_64BIT",
01477 MAYBE_EVAL (TARGET_SSE2 && TARGET_64BIT) },
01478 { "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387 \n\
01479 && (TARGET_IEEE_FP || flag_unsafe_math_optimizations) ",
01480 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387
01481 && (TARGET_IEEE_FP || flag_unsafe_math_optimizations) ) },
01482 { "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
01483 && !reload_completed && !reload_in_progress\n\
01484 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))&& 1",
01485 MAYBE_EVAL (TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
01486 && !reload_completed && !reload_in_progress
01487 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))&& 1) },
01488 { "TARGET_MMX\n\
01489 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01490 MAYBE_EVAL (TARGET_MMX
01491 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01492 { "TARGET_64BIT\n\
01493 && ix86_match_ccmode (insn, CCNOmode)\n\
01494 /* The code below cannot deal with constants outside HOST_WIDE_INT. */\n\
01495 && INTVAL (operands[1]) + INTVAL (operands[2]) < HOST_BITS_PER_WIDE_INT\n\
01496 /* Ensure that resulting mask is zero or sign extended operand. */\n\
01497 && (INTVAL (operands[1]) + INTVAL (operands[2]) <= 32\n\
01498 || (INTVAL (operands[1]) + INTVAL (operands[2]) == 64\n\
01499 && INTVAL (operands[1]) > 32))\n\
01500 && (GET_MODE (operands[0]) == SImode\n\
01501 || GET_MODE (operands[0]) == DImode\n\
01502 || GET_MODE (operands[0]) == HImode\n\
01503 || GET_MODE (operands[0]) == QImode)",
01504 MAYBE_EVAL (TARGET_64BIT
01505 && ix86_match_ccmode (insn, CCNOmode)
01506
01507 && INTVAL (operands[1]) + INTVAL (operands[2]) < HOST_BITS_PER_WIDE_INT
01508
01509 && (INTVAL (operands[1]) + INTVAL (operands[2]) <= 32
01510 || (INTVAL (operands[1]) + INTVAL (operands[2]) == 64
01511 && INTVAL (operands[1]) > 32))
01512 && (GET_MODE (operands[0]) == SImode
01513 || GET_MODE (operands[0]) == DImode
01514 || GET_MODE (operands[0]) == HImode
01515 || GET_MODE (operands[0]) == QImode)) },
01516 { "TARGET_SSE || TARGET_3DNOW_A",
01517 MAYBE_EVAL (TARGET_SSE || TARGET_3DNOW_A) },
01518 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
01519 && optimize_size\n\
01520 && (reload_in_progress || reload_completed\n\
01521 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
01522 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)\n\
01523 || memory_operand (operands[0], TFmode))",
01524 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
01525 && optimize_size
01526 && (reload_in_progress || reload_completed
01527 || GET_CODE (operands[1]) != CONST_DOUBLE
01528 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
01529 || memory_operand (operands[0], TFmode))) },
01530 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387 \n\
01531 && (TARGET_IEEE_FP || flag_unsafe_math_optimizations) ",
01532 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
01533 && (TARGET_IEEE_FP || flag_unsafe_math_optimizations) ) },
01534 { "exact_log2 (INTVAL (operands[1])) >= 0\n\
01535 && peep2_regno_dead_p (0, FLAGS_REG)",
01536 MAYBE_EVAL (exact_log2 (INTVAL (operands[1])) >= 0
01537 && peep2_regno_dead_p (0, FLAGS_REG)) },
01538 { "TARGET_64BIT && TARGET_STACK_PROBE",
01539 MAYBE_EVAL (TARGET_64BIT && TARGET_STACK_PROBE) },
01540 { "ix86_binary_operator_ok (PLUS, QImode, operands)",
01541 MAYBE_EVAL (ix86_binary_operator_ok (PLUS, QImode, operands)) },
01542 { "!SSE_REG_P (operands[0]) && reload_completed\n\
01543 && VALID_SSE_REG_MODE (GET_MODE (operands[0]))",
01544 MAYBE_EVAL (!SSE_REG_P (operands[0]) && reload_completed
01545 && VALID_SSE_REG_MODE (GET_MODE (operands[0]))) },
01546 { "TARGET_64BIT\n\
01547 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01548 MAYBE_EVAL (TARGET_64BIT
01549 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01550 { "TARGET_80387 && TARGET_USE_FIOP && !TARGET_SSE_MATH",
01551 MAYBE_EVAL (TARGET_80387 && TARGET_USE_FIOP && !TARGET_SSE_MATH) },
01552 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387",
01553 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387) },
01554 { "ix86_binary_operator_ok (ROTATE, SImode, operands)\n\
01555 && (TARGET_SHIFT1 || optimize_size)",
01556 MAYBE_EVAL (ix86_binary_operator_ok (ROTATE, SImode, operands)
01557 && (TARGET_SHIFT1 || optimize_size)) },
01558 { "!TARGET_80387 && TARGET_SSE2",
01559 MAYBE_EVAL (!TARGET_80387 && TARGET_SSE2) },
01560 { "TARGET_64BIT && ix86_unary_operator_ok (NEG, DImode, operands)",
01561 MAYBE_EVAL (TARGET_64BIT && ix86_unary_operator_ok (NEG, DImode, operands)) },
01562 { "TARGET_64BIT && ix86_match_ccmode (insn, CCmode)\n\
01563 && ix86_binary_operator_ok (MINUS, SImode, operands)",
01564 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCmode)
01565 && ix86_binary_operator_ok (MINUS, SImode, operands)) },
01566 { "ix86_match_ccmode (insn, CCmode)",
01567 MAYBE_EVAL (ix86_match_ccmode (insn, CCmode)) },
01568 { "TARGET_64BIT && TARGET_CMOVE\n\
01569 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)",
01570 MAYBE_EVAL (TARGET_64BIT && TARGET_CMOVE
01571 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)) },
01572 { "(GET_MODE (operands[0]) == QImode\n\
01573 || GET_MODE (operands[0]) == HImode)\n\
01574 && (! TARGET_USE_MOV0 || optimize_size)\n\
01575 && peep2_regno_dead_p (0, FLAGS_REG)",
01576 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode
01577 || GET_MODE (operands[0]) == HImode)
01578 && (! TARGET_USE_MOV0 || optimize_size)
01579 && peep2_regno_dead_p (0, FLAGS_REG)) },
01580 { "TARGET_80387 && reload_completed\n\
01581 && FLOAT_MODE_P (GET_MODE (operands[0]))",
01582 MAYBE_EVAL (TARGET_80387 && reload_completed
01583 && FLOAT_MODE_P (GET_MODE (operands[0]))) },
01584 { "! TARGET_NO_FANCY_MATH_387 && TARGET_80387\n\
01585 && (TARGET_SSE2 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387)",
01586 MAYBE_EVAL (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
01587 && (TARGET_SSE2 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387)) },
01588 { "ix86_binary_operator_ok (ROTATE, HImode, operands)\n\
01589 && (TARGET_SHIFT1 || optimize_size)",
01590 MAYBE_EVAL (ix86_binary_operator_ok (ROTATE, HImode, operands)
01591 && (TARGET_SHIFT1 || optimize_size)) },
01592 { "ix86_match_ccmode (insn, CCGOCmode)\n\
01593 && (TARGET_SHIFT1 || optimize_size)\n\
01594 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
01595 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
01596 && (TARGET_SHIFT1 || optimize_size)
01597 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
01598 { "reload_completed\n\
01599 && ((!TARGET_USE_MOV0 && !TARGET_PARTIAL_REG_STALL) || optimize_size)",
01600 MAYBE_EVAL (reload_completed
01601 && ((!TARGET_USE_MOV0 && !TARGET_PARTIAL_REG_STALL) || optimize_size)) },
01602 { "TARGET_80387 && TARGET_CMOVE\n\
01603 && !SSE_FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01604 && FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01605 && GET_MODE (operands[0]) == GET_MODE (operands[1])",
01606 MAYBE_EVAL (TARGET_80387 && TARGET_CMOVE
01607 && !SSE_FLOAT_MODE_P (GET_MODE (operands[0]))
01608 && FLOAT_MODE_P (GET_MODE (operands[0]))
01609 && GET_MODE (operands[0]) == GET_MODE (operands[1])) },
01610 { "(TARGET_SSE || TARGET_3DNOW_A) && TARGET_64BIT",
01611 MAYBE_EVAL ((TARGET_SSE || TARGET_3DNOW_A) && TARGET_64BIT) },
01612 { "TARGET_80387\n\
01613 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01614 MAYBE_EVAL (TARGET_80387
01615 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01616 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)",
01617 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)) },
01618 { "!TARGET_64BIT && TARGET_USE_LOOP\n\
01619 && reload_completed\n\
01620 && (! REG_P (operands[2])\n\
01621 || ! rtx_equal_p (operands[1], operands[2]))",
01622 MAYBE_EVAL (!TARGET_64BIT && TARGET_USE_LOOP
01623 && reload_completed
01624 && (! REG_P (operands[2])
01625 || ! rtx_equal_p (operands[1], operands[2]))) },
01626 { "ix86_binary_operator_ok (IOR, QImode, operands)",
01627 MAYBE_EVAL (ix86_binary_operator_ok (IOR, QImode, operands)) },
01628 { "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387",
01629 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387) },
01630 { "ix86_match_ccmode (insn, CCGOCmode)\n\
01631 && ix86_binary_operator_ok (ASHIFT, QImode, operands)",
01632 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
01633 && ix86_binary_operator_ok (ASHIFT, QImode, operands)) },
01634 { "TARGET_64BIT && reload_completed\n\
01635 && (SSE_REG_P (operands[1]) || MMX_REG_P (operands[1]))",
01636 MAYBE_EVAL (TARGET_64BIT && reload_completed
01637 && (SSE_REG_P (operands[1]) || MMX_REG_P (operands[1]))) },
01638 { "ix86_match_ccmode (insn, CCNOmode)\n\
01639 && ix86_unary_operator_ok (NOT, QImode, operands)",
01640 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
01641 && ix86_unary_operator_ok (NOT, QImode, operands)) },
01642 { "TARGET_SSE",
01643 MAYBE_EVAL (TARGET_SSE) },
01644 { "(GET_MODE (operands[0]) == QImode\n\
01645 || GET_MODE (operands[0]) == HImode\n\
01646 || GET_MODE (operands[0]) == SImode\n\
01647 || (GET_MODE (operands[0]) == DImode && TARGET_64BIT))\n\
01648 && (! TARGET_USE_MOV0 || optimize_size)\n\
01649 && peep2_regno_dead_p (0, FLAGS_REG)",
01650 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode
01651 || GET_MODE (operands[0]) == HImode
01652 || GET_MODE (operands[0]) == SImode
01653 || (GET_MODE (operands[0]) == DImode && TARGET_64BIT))
01654 && (! TARGET_USE_MOV0 || optimize_size)
01655 && peep2_regno_dead_p (0, FLAGS_REG)) },
01656 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01657 && ix86_binary_operator_ok (PLUS, DImode, operands)\n\
01658 /* Current assemblers are broken and do not allow @GOTOFF in\n\
01659 ought but a memory context. */\n\
01660 && ! pic_symbolic_operand (operands[2], VOIDmode)",
01661 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01662 && ix86_binary_operator_ok (PLUS, DImode, operands)
01663
01664
01665 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
01666 { "!TARGET_64BIT && reload_completed",
01667 MAYBE_EVAL (!TARGET_64BIT && reload_completed) },
01668 { "(optimize_size || !TARGET_PARTIAL_REG_STALL) && reload_completed",
01669 MAYBE_EVAL ((optimize_size || !TARGET_PARTIAL_REG_STALL) && reload_completed) },
01670 { "TARGET_HIMODE_MATH",
01671 MAYBE_EVAL (TARGET_HIMODE_MATH) },
01672 { "ix86_binary_operator_ok (ASHIFTRT, QImode, operands)\n\
01673 && (! TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01674 && (TARGET_SHIFT1 || optimize_size)",
01675 MAYBE_EVAL (ix86_binary_operator_ok (ASHIFTRT, QImode, operands)
01676 && (! TARGET_PARTIAL_REG_STALL || optimize_size)
01677 && (TARGET_SHIFT1 || optimize_size)) },
01678 { "ix86_match_ccmode (insn, CCGOCmode)\n\
01679 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01680 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
01681 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01682 { "TARGET_SSE\n\
01683 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)",
01684 MAYBE_EVAL (TARGET_SSE
01685 && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)) },
01686 { "TARGET_PARTIAL_REG_STALL\n\
01687 && ix86_binary_operator_ok (PLUS, QImode, operands)",
01688 MAYBE_EVAL (TARGET_PARTIAL_REG_STALL
01689 && ix86_binary_operator_ok (PLUS, QImode, operands)) },
01690 { "TARGET_64BIT && reload_completed",
01691 MAYBE_EVAL (TARGET_64BIT && reload_completed) },
01692 { "!TARGET_64BIT",
01693 MAYBE_EVAL (!TARGET_64BIT) },
01694 { "TARGET_QIMODE_MATH\n\
01695 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01696 MAYBE_EVAL (TARGET_QIMODE_MATH
01697 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01698 { "!TARGET_64BIT && optimize_size",
01699 MAYBE_EVAL (!TARGET_64BIT && optimize_size) },
01700 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)\n\
01701 && ix86_binary_operator_ok (AND, SImode, operands)",
01702 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
01703 && ix86_binary_operator_ok (AND, SImode, operands)) },
01704 { "ix86_unary_operator_ok (NEG, SImode, operands)",
01705 MAYBE_EVAL (ix86_unary_operator_ok (NEG, SImode, operands)) },
01706 { "TARGET_SSE2 && reload_completed",
01707 MAYBE_EVAL (TARGET_SSE2 && reload_completed) },
01708 { "(! TARGET_NO_FANCY_MATH_387 && TARGET_80387)\n\
01709 || (TARGET_SSE2 && TARGET_SSE_MATH)",
01710 MAYBE_EVAL ((! TARGET_NO_FANCY_MATH_387 && TARGET_80387)
01711 || (TARGET_SSE2 && TARGET_SSE_MATH)) },
01712 { "TARGET_80387 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387\n\
01713 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'\n\
01714 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01715 MAYBE_EVAL (TARGET_80387 && TARGET_SSE_MATH && TARGET_MIX_SSE_I387
01716 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
01717 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01718 { "!TARGET_64BIT && reload_completed\n\
01719 && (!MMX_REG_P (operands[0]) && !SSE_REG_P (operands[0]))\n\
01720 && (!MMX_REG_P (operands[1]) && !SSE_REG_P (operands[1]))",
01721 MAYBE_EVAL (!TARGET_64BIT && reload_completed
01722 && (!MMX_REG_P (operands[0]) && !SSE_REG_P (operands[0]))
01723 && (!MMX_REG_P (operands[1]) && !SSE_REG_P (operands[1]))) },
01724 { "ix86_match_ccmode (insn, CCNOmode)\n\
01725 && ix86_binary_operator_ok (XOR, HImode, operands)",
01726 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
01727 && ix86_binary_operator_ok (XOR, HImode, operands)) },
01728 { "TARGET_64BIT && ix86_unary_operator_ok (NOT, DImode, operands)",
01729 MAYBE_EVAL (TARGET_64BIT && ix86_unary_operator_ok (NOT, DImode, operands)) },
01730 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, DImode, operands)\n\
01731 && (TARGET_SHIFT1 || optimize_size)",
01732 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, DImode, operands)
01733 && (TARGET_SHIFT1 || optimize_size)) },
01734 { "TARGET_80387 || TARGET_SSE",
01735 MAYBE_EVAL (TARGET_80387 || TARGET_SSE) },
01736 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
01737 && (optimize_size || !TARGET_INTEGER_DFMODE_MOVES)\n\
01738 && (reload_in_progress || reload_completed\n\
01739 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)\n\
01740 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
01741 || memory_operand (operands[0], DFmode))",
01742 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
01743 && (optimize_size || !TARGET_INTEGER_DFMODE_MOVES)
01744 && (reload_in_progress || reload_completed
01745 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
01746 || GET_CODE (operands[1]) != CONST_DOUBLE
01747 || memory_operand (operands[0], DFmode))) },
01748 { "reload_completed\n\
01749 && GET_CODE (operands[1]) == MEM\n\
01750 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF\n\
01751 && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))",
01752 MAYBE_EVAL (reload_completed
01753 && GET_CODE (operands[1]) == MEM
01754 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
01755 && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))) },
01756 { "TARGET_CMOVE",
01757 MAYBE_EVAL (TARGET_CMOVE) },
01758 { "TARGET_3DNOW && TARGET_64BIT",
01759 MAYBE_EVAL (TARGET_3DNOW && TARGET_64BIT) },
01760 { "!TARGET_64BIT && ! TARGET_NO_FANCY_MATH_387 && TARGET_80387\n\
01761 && flag_unsafe_math_optimizations",
01762 MAYBE_EVAL (!TARGET_64BIT && ! TARGET_NO_FANCY_MATH_387 && TARGET_80387
01763 && flag_unsafe_math_optimizations) },
01764 { "TARGET_SSE2 && TARGET_SSE_MATH\n\
01765 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'\n\
01766 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
01767 MAYBE_EVAL (TARGET_SSE2 && TARGET_SSE_MATH
01768 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
01769 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
01770 { "TARGET_SSE\n\
01771 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01772 MAYBE_EVAL (TARGET_SSE
01773 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01774 { "TARGET_80387 && !TARGET_SSE\n\
01775 && ix86_unary_operator_ok (NEG, SFmode, operands)",
01776 MAYBE_EVAL (TARGET_80387 && !TARGET_SSE
01777 && ix86_unary_operator_ok (NEG, SFmode, operands)) },
01778 { "!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)",
01779 MAYBE_EVAL (!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)) },
01780 { "reload_completed\n\
01781 && QI_REG_P (operands[0])\n\
01782 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01783 && !(~INTVAL (operands[2]) & ~(255 << 8))\n\
01784 && GET_MODE (operands[0]) != QImode",
01785 MAYBE_EVAL (reload_completed
01786 && QI_REG_P (operands[0])
01787 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
01788 && !(~INTVAL (operands[2]) & ~(255 << 8))
01789 && GET_MODE (operands[0]) != QImode) },
01790 { "INTVAL (operands[2]) == 31 && (TARGET_USE_CLTD || optimize_size)\n\
01791 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
01792 MAYBE_EVAL (INTVAL (operands[2]) == 31 && (TARGET_USE_CLTD || optimize_size)
01793 && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
01794 { "ix86_unary_operator_ok (NEG, QImode, operands)",
01795 MAYBE_EVAL (ix86_unary_operator_ok (NEG, QImode, operands)) },
01796 { "ix86_can_use_return_insn_p ()",
01797 MAYBE_EVAL (ix86_can_use_return_insn_p ()) },
01798 { "! TARGET_PARTIAL_REG_STALL && reload_completed\n\
01799 && ((GET_MODE (operands[0]) == HImode \n\
01800 && ((!optimize_size && !TARGET_FAST_PREFIX)\n\
01801 || GET_CODE (operands[2]) != CONST_INT\n\
01802 || CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'K')))\n\
01803 || (GET_MODE (operands[0]) == QImode \n\
01804 && (TARGET_PROMOTE_QImode || optimize_size)))",
01805 MAYBE_EVAL (! TARGET_PARTIAL_REG_STALL && reload_completed
01806 && ((GET_MODE (operands[0]) == HImode
01807 && ((!optimize_size && !TARGET_FAST_PREFIX)
01808 || GET_CODE (operands[2]) != CONST_INT
01809 || CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'K')))
01810 || (GET_MODE (operands[0]) == QImode
01811 && (TARGET_PROMOTE_QImode || optimize_size)))) },
01812 { "reload_completed && (!TARGET_USE_MOV0 || optimize_size)",
01813 MAYBE_EVAL (reload_completed && (!TARGET_USE_MOV0 || optimize_size)) },
01814 { "TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)",
01815 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)) },
01816 { "TARGET_80387 && TARGET_CMOVE\n\
01817 && !SSE_FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01818 && FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01819 && GET_MODE (operands[0]) == GET_MODE (operands[0])",
01820 MAYBE_EVAL (TARGET_80387 && TARGET_CMOVE
01821 && !SSE_FLOAT_MODE_P (GET_MODE (operands[0]))
01822 && FLOAT_MODE_P (GET_MODE (operands[0]))
01823 && GET_MODE (operands[0]) == GET_MODE (operands[0])) },
01824 { "peep2_regno_dead_p (0, FLAGS_REG)",
01825 MAYBE_EVAL (peep2_regno_dead_p (0, FLAGS_REG)) },
01826 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)\n\
01827 && (TARGET_SHIFT1 || optimize_size)",
01828 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)
01829 && (TARGET_SHIFT1 || optimize_size)) },
01830 { "TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)",
01831 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)) },
01832 { "!TARGET_64BIT\n\
01833 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01834 MAYBE_EVAL (!TARGET_64BIT
01835 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01836 { "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)\n\
01837 && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)",
01838 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
01839 && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) },
01840 { "ix86_match_ccmode (insn, CCGOCmode)\n\
01841 && (TARGET_SHIFT1 || optimize_size)\n\
01842 && ix86_binary_operator_ok (ASHIFTRT, HImode, operands)",
01843 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
01844 && (TARGET_SHIFT1 || optimize_size)
01845 && ix86_binary_operator_ok (ASHIFTRT, HImode, operands)) },
01846 { "TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)",
01847 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)) },
01848 { "TARGET_SSE || TARGET_64BIT",
01849 MAYBE_EVAL (TARGET_SSE || TARGET_64BIT) },
01850 { "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)\n\
01851 && (reload_in_progress || reload_completed\n\
01852 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)\n\
01853 || GET_CODE (operands[1]) != CONST_DOUBLE\n\
01854 || memory_operand (operands[0], SFmode))",
01855 MAYBE_EVAL ((GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
01856 && (reload_in_progress || reload_completed
01857 || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
01858 || GET_CODE (operands[1]) != CONST_DOUBLE
01859 || memory_operand (operands[0], SFmode))) },
01860 { "ix86_unary_operator_ok (NOT, QImode, operands)",
01861 MAYBE_EVAL (ix86_unary_operator_ok (NOT, QImode, operands)) },
01862 { "ix86_binary_operator_ok (MINUS, QImode, operands)",
01863 MAYBE_EVAL (ix86_binary_operator_ok (MINUS, QImode, operands)) },
01864 { "!optimize_size\n\
01865 && peep2_regno_dead_p (0, FLAGS_REG)\n\
01866 && ((TARGET_PENTIUM \n\
01867 && (GET_CODE (operands[0]) != MEM\n\
01868 || !memory_displacement_operand (operands[0], HImode)))\n\
01869 || (TARGET_K6 && long_memory_operand (operands[0], HImode)))",
01870 MAYBE_EVAL (!optimize_size
01871 && peep2_regno_dead_p (0, FLAGS_REG)
01872 && ((TARGET_PENTIUM
01873 && (GET_CODE (operands[0]) != MEM
01874 || !memory_displacement_operand (operands[0], HImode)))
01875 || (TARGET_K6 && long_memory_operand (operands[0], HImode)))) },
01876 { "!TARGET_64BIT && TARGET_80387\n\
01877 && ix86_unary_operator_ok (ABS, DFmode, operands)",
01878 MAYBE_EVAL (!TARGET_64BIT && TARGET_80387
01879 && ix86_unary_operator_ok (ABS, DFmode, operands)) },
01880 { "!optimize_size",
01881 MAYBE_EVAL (!optimize_size) },
01882 { "ix86_binary_operator_ok (ROTATERT, SImode, operands)",
01883 MAYBE_EVAL (ix86_binary_operator_ok (ROTATERT, SImode, operands)) },
01884 { "(GET_MODE (operands[0]) == HImode\n\
01885 || GET_MODE (operands[0]) == SImode \n\
01886 || (GET_MODE (operands[0]) == DImode && TARGET_64BIT))\n\
01887 && (optimize_size || TARGET_PENTIUM)\n\
01888 && peep2_regno_dead_p (0, FLAGS_REG)",
01889 MAYBE_EVAL ((GET_MODE (operands[0]) == HImode
01890 || GET_MODE (operands[0]) == SImode
01891 || (GET_MODE (operands[0]) == DImode && TARGET_64BIT))
01892 && (optimize_size || TARGET_PENTIUM)
01893 && peep2_regno_dead_p (0, FLAGS_REG)) },
01894 { "TARGET_80387",
01895 MAYBE_EVAL (TARGET_80387) },
01896 { "! optimize_size && ! TARGET_READ_MODIFY",
01897 MAYBE_EVAL (! optimize_size && ! TARGET_READ_MODIFY) },
01898 { "ix86_binary_operator_ok (LSHIFTRT, HImode, operands)\n\
01899 && (TARGET_SHIFT1 || optimize_size)",
01900 MAYBE_EVAL (ix86_binary_operator_ok (LSHIFTRT, HImode, operands)
01901 && (TARGET_SHIFT1 || optimize_size)) },
01902 { "(peep2_reg_dead_p (3, operands[1])\n\
01903 || operands_match_p (operands[1], operands[3]))\n\
01904 && ! reg_overlap_mentioned_p (operands[3], operands[0])",
01905 MAYBE_EVAL ((peep2_reg_dead_p (3, operands[1])
01906 || operands_match_p (operands[1], operands[3]))
01907 && ! reg_overlap_mentioned_p (operands[3], operands[0])) },
01908 { "0 && TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[0]))\n\
01909 && GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 1)) == GET_MODE (operands[0])",
01910 MAYBE_EVAL (0 && TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[0]))
01911 && GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 1)) == GET_MODE (operands[0])) },
01912 { "ix86_binary_operator_ok (ROTATE, QImode, operands)",
01913 MAYBE_EVAL (ix86_binary_operator_ok (ROTATE, QImode, operands)) },
01914 { "TARGET_80387 && !TARGET_SSE",
01915 MAYBE_EVAL (TARGET_80387 && !TARGET_SSE) },
01916 { "reload_completed || !TARGET_SSE2",
01917 MAYBE_EVAL (reload_completed || !TARGET_SSE2) },
01918 { "TARGET_64BIT\n\
01919 && ix86_match_ccmode (insn, CCZmode)\n\
01920 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)\n\
01921 /* Current assemblers are broken and do not allow @GOTOFF in\n\
01922 ought but a memory context. */\n\
01923 && ! pic_symbolic_operand (operands[2], VOIDmode)",
01924 MAYBE_EVAL (TARGET_64BIT
01925 && ix86_match_ccmode (insn, CCZmode)
01926 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)
01927
01928
01929 && ! pic_symbolic_operand (operands[2], VOIDmode)) },
01930 { "!TARGET_64BIT\n\
01931 && (!TARGET_PARTIAL_REG_STALL || optimize_size)",
01932 MAYBE_EVAL (!TARGET_64BIT
01933 && (!TARGET_PARTIAL_REG_STALL || optimize_size)) },
01934 { "TARGET_SSE2\n\
01935 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)",
01936 MAYBE_EVAL (TARGET_SSE2
01937 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)) },
01938 { "reload_completed\n\
01939 && ANY_QI_REG_P (operands[0])\n\
01940 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01941 && !(INTVAL (operands[2]) & ~255)\n\
01942 && (INTVAL (operands[2]) & 128)\n\
01943 && GET_MODE (operands[0]) != QImode",
01944 MAYBE_EVAL (reload_completed
01945 && ANY_QI_REG_P (operands[0])
01946 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
01947 && !(INTVAL (operands[2]) & ~255)
01948 && (INTVAL (operands[2]) & 128)
01949 && GET_MODE (operands[0]) != QImode) },
01950 { "TARGET_SSE_MATH && (!TARGET_80387 || !TARGET_MIX_SSE_I387)",
01951 MAYBE_EVAL (TARGET_SSE_MATH && (!TARGET_80387 || !TARGET_MIX_SSE_I387)) },
01952 { "TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)",
01953 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)) },
01954 { "ix86_match_ccmode (insn, CCGOCmode)\n\
01955 && (TARGET_SHIFT1 || optimize_size)\n\
01956 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)",
01957 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
01958 && (TARGET_SHIFT1 || optimize_size)
01959 && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)) },
01960 { "ix86_match_ccmode (insn, CCNOmode)\n\
01961 && ix86_binary_operator_ok (IOR, SImode, operands)",
01962 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)
01963 && ix86_binary_operator_ok (IOR, SImode, operands)) },
01964 { "ix86_match_ccmode (insn, CCNOmode)",
01965 MAYBE_EVAL (ix86_match_ccmode (insn, CCNOmode)) },
01966 { "TARGET_64BIT && (optimize_size || TARGET_USE_CLTD)",
01967 MAYBE_EVAL (TARGET_64BIT && (optimize_size || TARGET_USE_CLTD)) },
01968 { "reload_completed\n\
01969 && true_regnum (operands[0]) == true_regnum (operands[1])",
01970 MAYBE_EVAL (reload_completed
01971 && true_regnum (operands[0]) == true_regnum (operands[1])) },
01972 { "(GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode\n\
01973 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))\n\
01974 && (!TARGET_PARTIAL_REG_STALL || optimize_size)\n\
01975 && GET_MODE (operands[0]) == GET_MODE (operands[1])\n\
01976 && GET_MODE (operands[0]) == GET_MODE (operands[3])",
01977 MAYBE_EVAL ((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode
01978 || (TARGET_64BIT && GET_MODE (operands[0]) == SImode))
01979 && (!TARGET_PARTIAL_REG_STALL || optimize_size)
01980 && GET_MODE (operands[0]) == GET_MODE (operands[1])
01981 && GET_MODE (operands[0]) == GET_MODE (operands[3])) },
01982 { "! optimize_size\n\
01983 && ! TARGET_USE_MOV0\n\
01984 && TARGET_SPLIT_LONG_MOVES\n\
01985 && get_attr_length (insn) >= ix86_cost->large_insn\n\
01986 && peep2_regno_dead_p (0, FLAGS_REG)",
01987 MAYBE_EVAL (! optimize_size
01988 && ! TARGET_USE_MOV0
01989 && TARGET_SPLIT_LONG_MOVES
01990 && get_attr_length (insn) >= ix86_cost->large_insn
01991 && peep2_regno_dead_p (0, FLAGS_REG)) },
01992 { "TARGET_SSE_MATH\n\
01993 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'",
01994 MAYBE_EVAL (TARGET_SSE_MATH
01995 && GET_RTX_CLASS (GET_CODE (operands[3])) != 'c') },
01996 { "TARGET_80387 && TARGET_USE_FIOP && !(TARGET_SSE2 && TARGET_SSE_MATH)",
01997 MAYBE_EVAL (TARGET_80387 && TARGET_USE_FIOP && !(TARGET_SSE2 && TARGET_SSE_MATH)) },
01998 { "SSE_REG_P (operands[0]) && reload_completed\n\
01999 && ((operands_match_p (operands[1], operands[3])\n\
02000 && operands_match_p (operands[2], operands[4]))\n\
02001 || (operands_match_p (operands[1], operands[4])\n\
02002 && operands_match_p (operands[2], operands[3])))",
02003 MAYBE_EVAL (SSE_REG_P (operands[0]) && reload_completed
02004 && ((operands_match_p (operands[1], operands[3])
02005 && operands_match_p (operands[2], operands[4]))
02006 || (operands_match_p (operands[1], operands[4])
02007 && operands_match_p (operands[2], operands[3])))) },
02008 { "ix86_binary_operator_ok (ROTATERT, HImode, operands)",
02009 MAYBE_EVAL (ix86_binary_operator_ok (ROTATERT, HImode, operands)) },
02010 { "TARGET_CMOVE && TARGET_80387\n\
02011 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))\n\
02012 && FLOAT_MODE_P (GET_MODE (operands[1]))\n\
02013 && GET_MODE (operands[1]) == GET_MODE (operands[2])\n\
02014 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))",
02015 MAYBE_EVAL (TARGET_CMOVE && TARGET_80387
02016 && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
02017 && FLOAT_MODE_P (GET_MODE (operands[1]))
02018 && GET_MODE (operands[1]) == GET_MODE (operands[2])
02019 && ix86_fp_jump_nontrivial_p (GET_CODE (operands[0]))) },
02020 { "peep2_reg_dead_p (4, operands[7]) && peep2_reg_dead_p (4, operands[8])",
02021 MAYBE_EVAL (peep2_reg_dead_p (4, operands[7]) && peep2_reg_dead_p (4, operands[8])) },
02022 { "TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)\n\
02023 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'\n\
02024 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)",
02025 MAYBE_EVAL (TARGET_80387 && (!TARGET_SSE2 || !TARGET_SSE_MATH)
02026 && GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'
02027 && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)) },
02028 { "! optimize_size && ! TARGET_READ_MODIFY_WRITE",
02029 MAYBE_EVAL (! optimize_size && ! TARGET_READ_MODIFY_WRITE) },
02030 { "!TARGET_64BIT && reload_completed\n\
02031 && (SSE_REG_P (operands[1]) || MMX_REG_P (operands[1]))",
02032 MAYBE_EVAL (!TARGET_64BIT && reload_completed
02033 && (SSE_REG_P (operands[1]) || MMX_REG_P (operands[1]))) },
02034 { "TARGET_64BIT && (flow2_completed || (reload_completed && !flag_peephole2))\n\
02035 && !symbolic_operand (operands[1], DImode)\n\
02036 && !x86_64_immediate_operand (operands[1], DImode)",
02037 MAYBE_EVAL (TARGET_64BIT && (flow2_completed || (reload_completed && !flag_peephole2))
02038 && !symbolic_operand (operands[1], DImode)
02039 && !x86_64_immediate_operand (operands[1], DImode)) },
02040 { "(TARGET_SSE || TARGET_3DNOW_A) && !TARGET_64BIT",
02041 MAYBE_EVAL ((TARGET_SSE || TARGET_3DNOW_A) && !TARGET_64BIT) },
02042 { "ix86_match_ccmode (insn, CCGOCmode)\n\
02043 && (TARGET_SHIFT1 || optimize_size)\n\
02044 && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)",
02045 MAYBE_EVAL (ix86_match_ccmode (insn, CCGOCmode)
02046 && (TARGET_SHIFT1 || optimize_size)
02047 && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)) },
02048 { "ix86_binary_operator_ok (XOR, SImode, operands)",
02049 MAYBE_EVAL (ix86_binary_operator_ok (XOR, SImode, operands)) },
02050 { "ix86_binary_operator_ok (AND, HImode, operands)",
02051 MAYBE_EVAL (ix86_binary_operator_ok (AND, HImode, operands)) },
02052 { "ix86_binary_operator_ok (IOR, SImode, operands)",
02053 MAYBE_EVAL (ix86_binary_operator_ok (IOR, SImode, operands)) },
02054 { "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)\n\
02055 && ix86_unary_operator_ok (NOT, DImode, operands)",
02056 MAYBE_EVAL (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
02057 && ix86_unary_operator_ok (NOT, DImode, operands)) },
02058 { "TARGET_64BIT && ix86_binary_operator_ok (AND, DImode, operands)",
02059 MAYBE_EVAL (TARGET_64BIT && ix86_binary_operator_ok (AND, DImode, operands)) },
02060 { "ix86_match_ccmode (insn, CCGCmode)\n\
02061 && (INTVAL (operands[2]) & 0xffff) != 0x8000",
02062 MAYBE_EVAL (ix86_match_ccmode (insn, CCGCmode)
02063 && (INTVAL (operands[2]) & 0xffff) != 0x8000) },
02064 { "!TARGET_64BIT && !TARGET_INTEGER_DFMODE_MOVES",
02065 MAYBE_EVAL (!TARGET_64BIT && !TARGET_INTEGER_DFMODE_MOVES) },
02066 { "TARGET_PARTIAL_REG_STALL\n\
02067 && ix86_binary_operator_ok (ASHIFT, QImode, operands)",
02068 MAYBE_EVAL (TARGET_PARTIAL_REG_STALL
02069 && ix86_binary_operator_ok (ASHIFT, QImode, operands)) },
02070 { "optimize_size || !TARGET_ADD_ESP_4",
02071 MAYBE_EVAL (optimize_size || !TARGET_ADD_ESP_4) },
02072 };
02073
02074 const size_t n_insn_conditions = 466;
02075 const int insn_elision_unavailable = 0;