1/* Definitions for operation tables, or "optabs". 2 Copyright (C) 1987-2020 Free Software Foundation, Inc. 3 4This file is part of GCC. 5 6GCC is free software; you can redistribute it and/or modify it under 7the terms of the GNU General Public License as published by the Free 8Software Foundation; either version 3, or (at your option) any later 9version. 10 11GCC is distributed in the hope that it will be useful, but WITHOUT ANY 12WARRANTY; without even the implied warranty of MERCHANTABILITY or 13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14for more details. 15 16You should have received a copy of the GNU General Public License 17along with GCC; see the file COPYING3. If not see 18<http://www.gnu.org/licenses/>. */ 19 20/* The entries in optabs.def are categorized: 21 C: A "conversion" optab, which uses two modes; has libcall data. 22 N: A "normal" optab, which uses one mode; has libcall data. 23 D: A "direct" optab, which uses one mode; does not have libcall data. 24 V: An "oVerflow" optab. Like N, but does not record its code in 25 code_to_optab. 26 27 CX, NX, VX: An extra pattern entry for a conversion or normal optab. 28 29 These patterns may be present in the MD file with names that contain 30 the mode(s) used and the name of the operation. This array contains 31 a list of optabs that need to be initialized. Within each name, 32 $a and $b are used to match a short mode name (the part of the mode 33 name not including `mode' and converted to lower-case). 34 35 $I means that only full integer modes should be considered for the 36 next mode, and $F means that only float modes should be considered. 37 $P means that both full and partial integer modes should be considered. 38 $Q means that only fixed-point modes should be considered. 39 40 The pattern may be NULL if the optab exists only for the libcalls 41 that we plan to attach to it, and there are no named patterns in 42 the md files. */ 43 44/* The extension libcalls are used for float extension. */ 45OPTAB_CL(sext_optab, "extend$b$a2", SIGN_EXTEND, "extend", gen_extend_conv_libfunc) 46OPTAB_CL(trunc_optab, "trunc$b$a2", TRUNCATE, "trunc", gen_trunc_conv_libfunc) 47OPTAB_CL(zext_optab, "zero_extend$b$a2", ZERO_EXTEND, NULL, NULL) 48 49OPTAB_CL(sfix_optab, "fix$F$b$I$a2", FIX, "fix", gen_fp_to_int_conv_libfunc) 50OPTAB_CL(ufix_optab, "fixuns$F$b$a2", UNSIGNED_FIX, "fixuns", gen_fp_to_int_conv_libfunc) 51OPTAB_CL(sfloat_optab, "float$I$b$F$a2", FLOAT, "float", gen_int_to_fp_conv_libfunc) 52OPTAB_CL(ufloat_optab, "floatuns$I$b$F$a2", UNSIGNED_FLOAT, NULL, gen_ufloat_conv_libfunc) 53 54OPTAB_CL(lrint_optab, "lrint$F$b$I$a2", UNKNOWN, "lrint", gen_int_to_fp_nondecimal_conv_libfunc) 55OPTAB_CL(lround_optab, "lround$F$b$I$a2", UNKNOWN, "lround", gen_int_to_fp_nondecimal_conv_libfunc) 56OPTAB_CL(lfloor_optab, "lfloor$F$b$I$a2", UNKNOWN, "lfloor", gen_int_to_fp_nondecimal_conv_libfunc) 57OPTAB_CL(lceil_optab, "lceil$F$b$I$a2", UNKNOWN, "lceil", gen_int_to_fp_nondecimal_conv_libfunc) 58 59/* Conversions for fixed-point modes and other modes. */ 60OPTAB_CL(fract_optab, "fract$b$a2", FRACT_CONVERT, "fract", gen_fract_conv_libfunc) 61OPTAB_CL(fractuns_optab, "fractuns$I$b$Q$a2", UNSIGNED_FRACT_CONVERT, "fractuns", gen_fractuns_conv_libfunc) 62OPTAB_CX(fractuns_optab, "fractuns$Q$b$I$a2") 63OPTAB_CL(satfract_optab, "satfract$b$Q$a2", SAT_FRACT, "satfract", gen_satfract_conv_libfunc) 64OPTAB_CL(satfractuns_optab, "satfractuns$I$b$Q$a2", UNSIGNED_SAT_FRACT, "satfractuns", gen_satfractuns_conv_libfunc) 65 66OPTAB_CD(sfixtrunc_optab, "fix_trunc$F$b$I$a2") 67OPTAB_CD(ufixtrunc_optab, "fixuns_trunc$F$b$I$a2") 68 69/* Misc optabs that use two modes; model them as "conversions". */ 70OPTAB_CD(smul_widen_optab, "mul$b$a3") 71OPTAB_CD(umul_widen_optab, "umul$b$a3") 72OPTAB_CD(usmul_widen_optab, "usmul$b$a3") 73OPTAB_CD(smadd_widen_optab, "madd$b$a4") 74OPTAB_CD(umadd_widen_optab, "umadd$b$a4") 75OPTAB_CD(ssmadd_widen_optab, "ssmadd$b$a4") 76OPTAB_CD(usmadd_widen_optab, "usmadd$b$a4") 77OPTAB_CD(smsub_widen_optab, "msub$b$a4") 78OPTAB_CD(umsub_widen_optab, "umsub$b$a4") 79OPTAB_CD(ssmsub_widen_optab, "ssmsub$b$a4") 80OPTAB_CD(usmsub_widen_optab, "usmsub$a$b4") 81OPTAB_CD(vec_load_lanes_optab, "vec_load_lanes$a$b") 82OPTAB_CD(vec_store_lanes_optab, "vec_store_lanes$a$b") 83OPTAB_CD(vec_mask_load_lanes_optab, "vec_mask_load_lanes$a$b") 84OPTAB_CD(vec_mask_store_lanes_optab, "vec_mask_store_lanes$a$b") 85OPTAB_CD(vcond_optab, "vcond$a$b") 86OPTAB_CD(vcondu_optab, "vcondu$a$b") 87OPTAB_CD(vcondeq_optab, "vcondeq$a$b") 88OPTAB_CD(vcond_mask_optab, "vcond_mask_$a$b") 89OPTAB_CD(vec_cmp_optab, "vec_cmp$a$b") 90OPTAB_CD(vec_cmpu_optab, "vec_cmpu$a$b") 91OPTAB_CD(vec_cmpeq_optab, "vec_cmpeq$a$b") 92OPTAB_CD(maskload_optab, "maskload$a$b") 93OPTAB_CD(maskstore_optab, "maskstore$a$b") 94OPTAB_CD(gather_load_optab, "gather_load$a$b") 95OPTAB_CD(mask_gather_load_optab, "mask_gather_load$a$b") 96OPTAB_CD(scatter_store_optab, "scatter_store$a$b") 97OPTAB_CD(mask_scatter_store_optab, "mask_scatter_store$a$b") 98OPTAB_CD(vec_extract_optab, "vec_extract$a$b") 99OPTAB_CD(vec_init_optab, "vec_init$a$b") 100 101OPTAB_CD (while_ult_optab, "while_ult$a$b") 102 103OPTAB_NL(add_optab, "add$P$a3", PLUS, "add", '3', gen_int_fp_fixed_libfunc) 104OPTAB_NX(add_optab, "add$F$a3") 105OPTAB_NX(add_optab, "add$Q$a3") 106OPTAB_VL(addv_optab, "addv$I$a3", PLUS, "add", '3', gen_intv_fp_libfunc) 107OPTAB_VX(addv_optab, "add$F$a3") 108OPTAB_NL(ssadd_optab, "ssadd$Q$a3", SS_PLUS, "ssadd", '3', gen_signed_fixed_libfunc) 109OPTAB_NL(usadd_optab, "usadd$Q$a3", US_PLUS, "usadd", '3', gen_unsigned_fixed_libfunc) 110OPTAB_NL(sub_optab, "sub$P$a3", MINUS, "sub", '3', gen_int_fp_fixed_libfunc) 111OPTAB_NX(sub_optab, "sub$F$a3") 112OPTAB_NX(sub_optab, "sub$Q$a3") 113OPTAB_VL(subv_optab, "subv$I$a3", MINUS, "sub", '3', gen_intv_fp_libfunc) 114OPTAB_VX(subv_optab, "sub$F$a3") 115OPTAB_NL(sssub_optab, "sssub$Q$a3", SS_MINUS, "sssub", '3', gen_signed_fixed_libfunc) 116OPTAB_NL(ussub_optab, "ussub$Q$a3", US_MINUS, "ussub", '3', gen_unsigned_fixed_libfunc) 117OPTAB_NL(smul_optab, "mul$Q$a3", MULT, "mul", '3', gen_int_fp_fixed_libfunc) 118OPTAB_NX(smul_optab, "mul$P$a3") 119OPTAB_NX(smul_optab, "mul$F$a3") 120OPTAB_VL(smulv_optab, "mulv$I$a3", MULT, "mul", '3', gen_intv_fp_libfunc) 121OPTAB_VX(smulv_optab, "mul$F$a3") 122OPTAB_NL(ssmul_optab, "ssmul$Q$a3", SS_MULT, "ssmul", '3', gen_signed_fixed_libfunc) 123OPTAB_NL(usmul_optab, "usmul$Q$a3", US_MULT, "usmul", '3', gen_unsigned_fixed_libfunc) 124OPTAB_NL(sdiv_optab, "div$a3", DIV, "div", '3', gen_int_fp_signed_fixed_libfunc) 125OPTAB_VL(sdivv_optab, "divv$I$a3", DIV, "divv", '3', gen_int_libfunc) 126OPTAB_VX(sdivv_optab, "div$F$a3") 127OPTAB_NL(ssdiv_optab, "ssdiv$Q$a3", SS_DIV, "ssdiv", '3', gen_signed_fixed_libfunc) 128OPTAB_NL(udiv_optab, "udiv$I$a3", UDIV, "udiv", '3', gen_int_unsigned_fixed_libfunc) 129OPTAB_NX(udiv_optab, "udiv$Q$a3") 130OPTAB_NL(usdiv_optab, "usdiv$Q$a3", US_DIV, "usdiv", '3', gen_unsigned_fixed_libfunc) 131OPTAB_NC(sdivmod_optab, "divmod$a4", UNKNOWN) 132OPTAB_NC(udivmod_optab, "udivmod$a4", UNKNOWN) 133OPTAB_NL(smod_optab, "mod$a3", MOD, "mod", '3', gen_int_libfunc) 134OPTAB_NL(umod_optab, "umod$a3", UMOD, "umod", '3', gen_int_libfunc) 135OPTAB_NL(ftrunc_optab, "ftrunc$F$a2", UNKNOWN, "ftrunc", '2', gen_fp_libfunc) 136OPTAB_NL(and_optab, "and$a3", AND, "and", '3', gen_int_libfunc) 137OPTAB_NL(ior_optab, "ior$a3", IOR, "ior", '3', gen_int_libfunc) 138OPTAB_NL(xor_optab, "xor$a3", XOR, "xor", '3', gen_int_libfunc) 139OPTAB_NL(ashl_optab, "ashl$a3", ASHIFT, "ashl", '3', gen_int_fixed_libfunc) 140OPTAB_NL(ssashl_optab, "ssashl$Q$a3", SS_ASHIFT, "ssashl", '3', gen_signed_fixed_libfunc) 141OPTAB_NL(usashl_optab, "usashl$Q$a3", US_ASHIFT, "usashl", '3', gen_unsigned_fixed_libfunc) 142OPTAB_NL(ashr_optab, "ashr$a3", ASHIFTRT, "ashr", '3', gen_int_signed_fixed_libfunc) 143OPTAB_NL(lshr_optab, "lshr$a3", LSHIFTRT, "lshr", '3', gen_int_unsigned_fixed_libfunc) 144OPTAB_NC(rotl_optab, "rotl$a3", ROTATE) 145OPTAB_NC(rotr_optab, "rotr$a3", ROTATERT) 146OPTAB_VC(vashl_optab, "vashl$a3", ASHIFT) 147OPTAB_VC(vashr_optab, "vashr$a3", ASHIFTRT) 148OPTAB_VC(vlshr_optab, "vlshr$a3", LSHIFTRT) 149OPTAB_VC(vrotl_optab, "vrotl$a3", ROTATE) 150OPTAB_VC(vrotr_optab, "vrotr$a3", ROTATERT) 151OPTAB_NL(smin_optab, "smin$a3", SMIN, "min", '3', gen_int_fp_libfunc) 152OPTAB_NL(smax_optab, "smax$a3", SMAX, "max", '3', gen_int_fp_libfunc) 153OPTAB_NL(umin_optab, "umin$I$a3", UMIN, "umin", '3', gen_int_libfunc) 154OPTAB_NL(umax_optab, "umax$I$a3", UMAX, "umax", '3', gen_int_libfunc) 155 156OPTAB_NL(neg_optab, "neg$P$a2", NEG, "neg", '2', gen_int_fp_fixed_libfunc) 157OPTAB_NX(neg_optab, "neg$F$a2") 158OPTAB_NX(neg_optab, "neg$Q$a2") 159OPTAB_VL(negv_optab, "negv$I$a2", NEG, "neg", '2', gen_intv_fp_libfunc) 160OPTAB_VX(negv_optab, "neg$F$a2") 161OPTAB_NL(ssneg_optab, "ssneg$Q$a2", SS_NEG, "ssneg", '2', gen_signed_fixed_libfunc) 162OPTAB_NL(usneg_optab, "usneg$Q$a2", US_NEG, "usneg", '2', gen_unsigned_fixed_libfunc) 163OPTAB_NC(abs_optab, "abs$P$a2", ABS) 164OPTAB_NX(abs_optab, "abs$F$a2") 165OPTAB_VC(absv_optab, "absv$I$a2", ABS) 166OPTAB_VX(absv_optab, "abs$F$a2") 167OPTAB_NL(one_cmpl_optab, "one_cmpl$a2", NOT, "one_cmpl", '2', gen_int_libfunc) 168OPTAB_NC(bswap_optab, "bswap$a2", BSWAP) 169OPTAB_NL(ffs_optab, "ffs$a2", FFS, "ffs", '2', gen_int_libfunc) 170OPTAB_NL(clz_optab, "clz$a2", CLZ, "clz", '2', gen_int_libfunc) 171OPTAB_NL(ctz_optab, "ctz$a2", CTZ, "ctz", '2', gen_int_libfunc) 172OPTAB_NL(clrsb_optab, "clrsb$a2", CLRSB, "clrsb", '2', gen_int_libfunc) 173OPTAB_NL(popcount_optab, "popcount$a2", POPCOUNT, "popcount", '2', gen_int_libfunc) 174OPTAB_NL(parity_optab, "parity$a2", PARITY, "parity", '2', gen_int_libfunc) 175 176/* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */ 177OPTAB_NL(cmp_optab, NULL, UNKNOWN, "cmp", '2', gen_int_fp_fixed_libfunc) 178OPTAB_NL(ucmp_optab, NULL, UNKNOWN, "ucmp", '2', gen_int_libfunc) 179 180/* EQ etc are floating point comparisons. */ 181OPTAB_NL(eq_optab, NULL, EQ, "eq", '2', gen_fp_libfunc) 182OPTAB_NL(ne_optab, NULL, NE, "ne", '2', gen_fp_libfunc) 183OPTAB_NL(gt_optab, NULL, GT, "gt", '2', gen_fp_libfunc) 184OPTAB_NL(ge_optab, NULL, GE, "ge", '2', gen_fp_libfunc) 185OPTAB_NL(lt_optab, NULL, LT, "lt", '2', gen_fp_libfunc) 186OPTAB_NL(le_optab, NULL, LE, "le", '2', gen_fp_libfunc) 187OPTAB_NL(unord_optab, NULL, UNORDERED, "unord", '2', gen_fp_libfunc) 188 189OPTAB_NL(powi_optab, NULL, UNKNOWN, "powi", '2', gen_fp_libfunc) 190 191/* These are all initialized individually, on a per-host basis. */ 192OPTAB_NC(sqrt_optab, "sqrt$a2", SQRT) 193OPTAB_NC(sync_old_add_optab, "sync_old_add$I$a", UNKNOWN) 194OPTAB_NC(sync_old_sub_optab, "sync_old_sub$I$a", UNKNOWN) 195OPTAB_NC(sync_old_ior_optab, "sync_old_ior$I$a", UNKNOWN) 196OPTAB_NC(sync_old_and_optab, "sync_old_and$I$a", UNKNOWN) 197OPTAB_NC(sync_old_xor_optab, "sync_old_xor$I$a", UNKNOWN) 198OPTAB_NC(sync_old_nand_optab, "sync_old_nand$I$a", UNKNOWN) 199OPTAB_NC(sync_new_add_optab, "sync_new_add$I$a", UNKNOWN) 200OPTAB_NC(sync_new_sub_optab, "sync_new_sub$I$a", UNKNOWN) 201OPTAB_NC(sync_new_ior_optab, "sync_new_ior$I$a", UNKNOWN) 202OPTAB_NC(sync_new_and_optab, "sync_new_and$I$a", UNKNOWN) 203OPTAB_NC(sync_new_xor_optab, "sync_new_xor$I$a", UNKNOWN) 204OPTAB_NC(sync_new_nand_optab, "sync_new_nand$I$a", UNKNOWN) 205OPTAB_NC(sync_compare_and_swap_optab, "sync_compare_and_swap$I$a", UNKNOWN) 206OPTAB_NC(sync_lock_test_and_set_optab, "sync_lock_test_and_set$I$a", UNKNOWN) 207 208OPTAB_DC(mov_optab, "mov$a", SET) 209OPTAB_DC(movstrict_optab, "movstrict$a", STRICT_LOW_PART) 210OPTAB_D (movmisalign_optab, "movmisalign$a") 211OPTAB_D (storent_optab, "storent$a") 212OPTAB_D (insv_optab, "insv$a") 213OPTAB_D (extv_optab, "extv$a") 214OPTAB_D (extzv_optab, "extzv$a") 215OPTAB_D (insvmisalign_optab, "insvmisalign$a") 216OPTAB_D (extvmisalign_optab, "extvmisalign$a") 217OPTAB_D (extzvmisalign_optab, "extzvmisalign$a") 218OPTAB_D (push_optab, "push$a1") 219OPTAB_D (reload_in_optab, "reload_in$a") 220OPTAB_D (reload_out_optab, "reload_out$a") 221 222OPTAB_DC(cbranch_optab, "cbranch$a4", COMPARE) 223OPTAB_D (addcc_optab, "add$acc") 224OPTAB_D (negcc_optab, "neg$acc") 225OPTAB_D (notcc_optab, "not$acc") 226OPTAB_D (movcc_optab, "mov$acc") 227OPTAB_D (cond_add_optab, "cond_add$a") 228OPTAB_D (cond_sub_optab, "cond_sub$a") 229OPTAB_D (cond_smul_optab, "cond_mul$a") 230OPTAB_D (cond_sdiv_optab, "cond_div$a") 231OPTAB_D (cond_smod_optab, "cond_mod$a") 232OPTAB_D (cond_udiv_optab, "cond_udiv$a") 233OPTAB_D (cond_umod_optab, "cond_umod$a") 234OPTAB_D (cond_and_optab, "cond_and$a") 235OPTAB_D (cond_ior_optab, "cond_ior$a") 236OPTAB_D (cond_xor_optab, "cond_xor$a") 237OPTAB_D (cond_ashl_optab, "cond_ashl$a") 238OPTAB_D (cond_ashr_optab, "cond_ashr$a") 239OPTAB_D (cond_lshr_optab, "cond_lshr$a") 240OPTAB_D (cond_smin_optab, "cond_smin$a") 241OPTAB_D (cond_smax_optab, "cond_smax$a") 242OPTAB_D (cond_umin_optab, "cond_umin$a") 243OPTAB_D (cond_umax_optab, "cond_umax$a") 244OPTAB_D (cond_fma_optab, "cond_fma$a") 245OPTAB_D (cond_fms_optab, "cond_fms$a") 246OPTAB_D (cond_fnma_optab, "cond_fnma$a") 247OPTAB_D (cond_fnms_optab, "cond_fnms$a") 248OPTAB_D (cmov_optab, "cmov$a6") 249OPTAB_D (cstore_optab, "cstore$a4") 250OPTAB_D (ctrap_optab, "ctrap$a4") 251OPTAB_D (addv4_optab, "addv$I$a4") 252OPTAB_D (subv4_optab, "subv$I$a4") 253OPTAB_D (mulv4_optab, "mulv$I$a4") 254OPTAB_D (uaddv4_optab, "uaddv$I$a4") 255OPTAB_D (usubv4_optab, "usubv$I$a4") 256OPTAB_D (umulv4_optab, "umulv$I$a4") 257OPTAB_D (negv3_optab, "negv$I$a3") 258OPTAB_D (addptr3_optab, "addptr$a3") 259 260OPTAB_D (smul_highpart_optab, "smul$a3_highpart") 261OPTAB_D (umul_highpart_optab, "umul$a3_highpart") 262 263OPTAB_D (cmpmem_optab, "cmpmem$a") 264OPTAB_D (cmpstr_optab, "cmpstr$a") 265OPTAB_D (cmpstrn_optab, "cmpstrn$a") 266OPTAB_D (cpymem_optab, "cpymem$a") 267OPTAB_D (movmem_optab, "movmem$a") 268OPTAB_D (setmem_optab, "setmem$a") 269OPTAB_D (strlen_optab, "strlen$a") 270 271OPTAB_DC(fma_optab, "fma$a4", FMA) 272OPTAB_D (fms_optab, "fms$a4") 273OPTAB_D (fnma_optab, "fnma$a4") 274OPTAB_D (fnms_optab, "fnms$a4") 275 276OPTAB_D (rint_optab, "rint$a2") 277OPTAB_D (round_optab, "round$a2") 278OPTAB_D (roundeven_optab, "roundeven$a2") 279OPTAB_D (floor_optab, "floor$a2") 280OPTAB_D (ceil_optab, "ceil$a2") 281OPTAB_D (btrunc_optab, "btrunc$a2") 282OPTAB_D (nearbyint_optab, "nearbyint$a2") 283 284OPTAB_D (acos_optab, "acos$a2") 285OPTAB_D (acosh_optab, "acosh$a2") 286OPTAB_D (asin_optab, "asin$a2") 287OPTAB_D (asinh_optab, "asinh$a2") 288OPTAB_D (atan2_optab, "atan2$a3") 289OPTAB_D (atan_optab, "atan$a2") 290OPTAB_D (atanh_optab, "atanh$a2") 291OPTAB_D (copysign_optab, "copysign$F$a3") 292OPTAB_D (xorsign_optab, "xorsign$F$a3") 293OPTAB_D (cos_optab, "cos$a2") 294OPTAB_D (cosh_optab, "cosh$a2") 295OPTAB_D (exp10_optab, "exp10$a2") 296OPTAB_D (exp2_optab, "exp2$a2") 297OPTAB_D (exp_optab, "exp$a2") 298OPTAB_D (expm1_optab, "expm1$a2") 299OPTAB_D (fmod_optab, "fmod$a3") 300OPTAB_D (hypot_optab, "hypot$a3") 301OPTAB_D (ilogb_optab, "ilogb$a2") 302OPTAB_D (isinf_optab, "isinf$a2") 303OPTAB_D (ldexp_optab, "ldexp$a3") 304OPTAB_D (log10_optab, "log10$a2") 305OPTAB_D (log1p_optab, "log1p$a2") 306OPTAB_D (log2_optab, "log2$a2") 307OPTAB_D (log_optab, "log$a2") 308OPTAB_D (logb_optab, "logb$a2") 309OPTAB_D (pow_optab, "pow$a3") 310OPTAB_D (remainder_optab, "remainder$a3") 311OPTAB_D (rsqrt_optab, "rsqrt$a2") 312OPTAB_D (scalb_optab, "scalb$a3") 313OPTAB_D (signbit_optab, "signbit$F$a2") 314OPTAB_D (significand_optab, "significand$a2") 315OPTAB_D (sin_optab, "sin$a2") 316OPTAB_D (sincos_optab, "sincos$a3") 317OPTAB_D (sinh_optab, "sinh$a2") 318OPTAB_D (tan_optab, "tan$a2") 319OPTAB_D (tanh_optab, "tanh$a2") 320 321/* C99 implementations of fmax/fmin. */ 322OPTAB_D (fmax_optab, "fmax$a3") 323OPTAB_D (fmin_optab, "fmin$a3") 324 325/* Vector reduction to a scalar. */ 326OPTAB_D (reduc_smax_scal_optab, "reduc_smax_scal_$a") 327OPTAB_D (reduc_smin_scal_optab, "reduc_smin_scal_$a") 328OPTAB_D (reduc_plus_scal_optab, "reduc_plus_scal_$a") 329OPTAB_D (reduc_umax_scal_optab, "reduc_umax_scal_$a") 330OPTAB_D (reduc_umin_scal_optab, "reduc_umin_scal_$a") 331OPTAB_D (reduc_and_scal_optab, "reduc_and_scal_$a") 332OPTAB_D (reduc_ior_scal_optab, "reduc_ior_scal_$a") 333OPTAB_D (reduc_xor_scal_optab, "reduc_xor_scal_$a") 334OPTAB_D (fold_left_plus_optab, "fold_left_plus_$a") 335OPTAB_D (mask_fold_left_plus_optab, "mask_fold_left_plus_$a") 336 337OPTAB_D (extract_last_optab, "extract_last_$a") 338OPTAB_D (fold_extract_last_optab, "fold_extract_last_$a") 339 340OPTAB_D (savg_floor_optab, "avg$a3_floor") 341OPTAB_D (uavg_floor_optab, "uavg$a3_floor") 342OPTAB_D (savg_ceil_optab, "avg$a3_ceil") 343OPTAB_D (uavg_ceil_optab, "uavg$a3_ceil") 344OPTAB_D (sdot_prod_optab, "sdot_prod$I$a") 345OPTAB_D (ssum_widen_optab, "widen_ssum$I$a3") 346OPTAB_D (udot_prod_optab, "udot_prod$I$a") 347OPTAB_D (usum_widen_optab, "widen_usum$I$a3") 348OPTAB_D (usad_optab, "usad$I$a") 349OPTAB_D (ssad_optab, "ssad$I$a") 350OPTAB_D (smulhs_optab, "smulhs$a3") 351OPTAB_D (smulhrs_optab, "smulhrs$a3") 352OPTAB_D (umulhs_optab, "umulhs$a3") 353OPTAB_D (umulhrs_optab, "umulhrs$a3") 354OPTAB_D (sdiv_pow2_optab, "sdiv_pow2$a3") 355OPTAB_D (vec_pack_sfix_trunc_optab, "vec_pack_sfix_trunc_$a") 356OPTAB_D (vec_pack_ssat_optab, "vec_pack_ssat_$a") 357OPTAB_D (vec_pack_trunc_optab, "vec_pack_trunc_$a") 358OPTAB_D (vec_pack_ufix_trunc_optab, "vec_pack_ufix_trunc_$a") 359OPTAB_D (vec_pack_sbool_trunc_optab, "vec_pack_sbool_trunc_$a") 360OPTAB_D (vec_pack_usat_optab, "vec_pack_usat_$a") 361OPTAB_D (vec_packs_float_optab, "vec_packs_float_$a") 362OPTAB_D (vec_packu_float_optab, "vec_packu_float_$a") 363OPTAB_D (vec_perm_optab, "vec_perm$a") 364OPTAB_D (vec_realign_load_optab, "vec_realign_load_$a") 365OPTAB_D (vec_set_optab, "vec_set$a") 366OPTAB_D (vec_shl_optab, "vec_shl_$a") 367OPTAB_D (vec_shr_optab, "vec_shr_$a") 368OPTAB_D (vec_unpack_sfix_trunc_hi_optab, "vec_unpack_sfix_trunc_hi_$a") 369OPTAB_D (vec_unpack_sfix_trunc_lo_optab, "vec_unpack_sfix_trunc_lo_$a") 370OPTAB_D (vec_unpack_ufix_trunc_hi_optab, "vec_unpack_ufix_trunc_hi_$a") 371OPTAB_D (vec_unpack_ufix_trunc_lo_optab, "vec_unpack_ufix_trunc_lo_$a") 372OPTAB_D (vec_unpacks_float_hi_optab, "vec_unpacks_float_hi_$a") 373OPTAB_D (vec_unpacks_float_lo_optab, "vec_unpacks_float_lo_$a") 374OPTAB_D (vec_unpacks_hi_optab, "vec_unpacks_hi_$a") 375OPTAB_D (vec_unpacks_lo_optab, "vec_unpacks_lo_$a") 376OPTAB_D (vec_unpacks_sbool_hi_optab, "vec_unpacks_sbool_hi_$a") 377OPTAB_D (vec_unpacks_sbool_lo_optab, "vec_unpacks_sbool_lo_$a") 378OPTAB_D (vec_unpacku_float_hi_optab, "vec_unpacku_float_hi_$a") 379OPTAB_D (vec_unpacku_float_lo_optab, "vec_unpacku_float_lo_$a") 380OPTAB_D (vec_unpacku_hi_optab, "vec_unpacku_hi_$a") 381OPTAB_D (vec_unpacku_lo_optab, "vec_unpacku_lo_$a") 382OPTAB_D (vec_widen_smult_even_optab, "vec_widen_smult_even_$a") 383OPTAB_D (vec_widen_smult_hi_optab, "vec_widen_smult_hi_$a") 384OPTAB_D (vec_widen_smult_lo_optab, "vec_widen_smult_lo_$a") 385OPTAB_D (vec_widen_smult_odd_optab, "vec_widen_smult_odd_$a") 386OPTAB_D (vec_widen_sshiftl_hi_optab, "vec_widen_sshiftl_hi_$a") 387OPTAB_D (vec_widen_sshiftl_lo_optab, "vec_widen_sshiftl_lo_$a") 388OPTAB_D (vec_widen_umult_even_optab, "vec_widen_umult_even_$a") 389OPTAB_D (vec_widen_umult_hi_optab, "vec_widen_umult_hi_$a") 390OPTAB_D (vec_widen_umult_lo_optab, "vec_widen_umult_lo_$a") 391OPTAB_D (vec_widen_umult_odd_optab, "vec_widen_umult_odd_$a") 392OPTAB_D (vec_widen_ushiftl_hi_optab, "vec_widen_ushiftl_hi_$a") 393OPTAB_D (vec_widen_ushiftl_lo_optab, "vec_widen_ushiftl_lo_$a") 394 395OPTAB_D (sync_add_optab, "sync_add$I$a") 396OPTAB_D (sync_and_optab, "sync_and$I$a") 397OPTAB_D (sync_ior_optab, "sync_ior$I$a") 398OPTAB_D (sync_lock_release_optab, "sync_lock_release$I$a") 399OPTAB_D (sync_nand_optab, "sync_nand$I$a") 400OPTAB_D (sync_sub_optab, "sync_sub$I$a") 401OPTAB_D (sync_xor_optab, "sync_xor$I$a") 402 403OPTAB_D (atomic_add_fetch_optab, "atomic_add_fetch$I$a") 404OPTAB_D (atomic_add_optab, "atomic_add$I$a") 405OPTAB_D (atomic_and_fetch_optab, "atomic_and_fetch$I$a") 406OPTAB_D (atomic_and_optab, "atomic_and$I$a") 407OPTAB_D (atomic_bit_test_and_set_optab, "atomic_bit_test_and_set$I$a") 408OPTAB_D (atomic_bit_test_and_complement_optab, "atomic_bit_test_and_complement$I$a") 409OPTAB_D (atomic_bit_test_and_reset_optab, "atomic_bit_test_and_reset$I$a") 410OPTAB_D (atomic_compare_and_swap_optab, "atomic_compare_and_swap$I$a") 411OPTAB_D (atomic_exchange_optab, "atomic_exchange$I$a") 412OPTAB_D (atomic_fetch_add_optab, "atomic_fetch_add$I$a") 413OPTAB_D (atomic_fetch_and_optab, "atomic_fetch_and$I$a") 414OPTAB_D (atomic_fetch_nand_optab, "atomic_fetch_nand$I$a") 415OPTAB_D (atomic_fetch_or_optab, "atomic_fetch_or$I$a") 416OPTAB_D (atomic_fetch_sub_optab, "atomic_fetch_sub$I$a") 417OPTAB_D (atomic_fetch_xor_optab, "atomic_fetch_xor$I$a") 418OPTAB_D (atomic_load_optab, "atomic_load$I$a") 419OPTAB_D (atomic_nand_fetch_optab, "atomic_nand_fetch$I$a") 420OPTAB_D (atomic_nand_optab, "atomic_nand$I$a") 421OPTAB_D (atomic_or_fetch_optab, "atomic_or_fetch$I$a") 422OPTAB_D (atomic_or_optab, "atomic_or$I$a") 423OPTAB_D (atomic_store_optab, "atomic_store$I$a") 424OPTAB_D (atomic_sub_fetch_optab, "atomic_sub_fetch$I$a") 425OPTAB_D (atomic_sub_optab, "atomic_sub$I$a") 426OPTAB_D (atomic_xor_fetch_optab, "atomic_xor_fetch$I$a") 427OPTAB_D (atomic_xor_optab, "atomic_xor$I$a") 428 429OPTAB_D (get_thread_pointer_optab, "get_thread_pointer$I$a") 430OPTAB_D (set_thread_pointer_optab, "set_thread_pointer$I$a") 431 432OPTAB_D (check_raw_ptrs_optab, "check_raw_ptrs$a") 433OPTAB_D (check_war_ptrs_optab, "check_war_ptrs$a") 434 435OPTAB_DC (vec_duplicate_optab, "vec_duplicate$a", VEC_DUPLICATE) 436OPTAB_DC (vec_series_optab, "vec_series$a", VEC_SERIES) 437OPTAB_D (vec_shl_insert_optab, "vec_shl_insert_$a") 438