1/* Definitions for operation tables, or "optabs". 2 Copyright (C) 1987-2016 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(vcond_optab, "vcond$a$b") 84OPTAB_CD(vcondu_optab, "vcondu$a$b") 85OPTAB_CD(vcond_mask_optab, "vcond_mask_$a$b") 86OPTAB_CD(vec_cmp_optab, "vec_cmp$a$b") 87OPTAB_CD(vec_cmpu_optab, "vec_cmpu$a$b") 88OPTAB_CD(maskload_optab, "maskload$a$b") 89OPTAB_CD(maskstore_optab, "maskstore$a$b") 90 91OPTAB_NL(add_optab, "add$P$a3", PLUS, "add", '3', gen_int_fp_fixed_libfunc) 92OPTAB_NX(add_optab, "add$F$a3") 93OPTAB_NX(add_optab, "add$Q$a3") 94OPTAB_VL(addv_optab, "addv$I$a3", PLUS, "add", '3', gen_intv_fp_libfunc) 95OPTAB_VX(addv_optab, "add$F$a3") 96OPTAB_NL(ssadd_optab, "ssadd$Q$a3", SS_PLUS, "ssadd", '3', gen_signed_fixed_libfunc) 97OPTAB_NL(usadd_optab, "usadd$Q$a3", US_PLUS, "usadd", '3', gen_unsigned_fixed_libfunc) 98OPTAB_NL(sub_optab, "sub$P$a3", MINUS, "sub", '3', gen_int_fp_fixed_libfunc) 99OPTAB_NX(sub_optab, "sub$F$a3") 100OPTAB_NX(sub_optab, "sub$Q$a3") 101OPTAB_VL(subv_optab, "subv$I$a3", MINUS, "sub", '3', gen_intv_fp_libfunc) 102OPTAB_VX(subv_optab, "sub$F$a3") 103OPTAB_NL(sssub_optab, "sssub$Q$a3", SS_MINUS, "sssub", '3', gen_signed_fixed_libfunc) 104OPTAB_NL(ussub_optab, "ussub$Q$a3", US_MINUS, "ussub", '3', gen_unsigned_fixed_libfunc) 105OPTAB_NL(smul_optab, "mul$Q$a3", MULT, "mul", '3', gen_int_fp_fixed_libfunc) 106OPTAB_NX(smul_optab, "mul$P$a3") 107OPTAB_NX(smul_optab, "mul$F$a3") 108OPTAB_VL(smulv_optab, "mulv$I$a3", MULT, "mul", '3', gen_intv_fp_libfunc) 109OPTAB_VX(smulv_optab, "mul$F$a3") 110OPTAB_NL(ssmul_optab, "ssmul$Q$a3", SS_MULT, "ssmul", '3', gen_signed_fixed_libfunc) 111OPTAB_NL(usmul_optab, "usmul$Q$a3", US_MULT, "usmul", '3', gen_unsigned_fixed_libfunc) 112OPTAB_NL(sdiv_optab, "div$a3", DIV, "div", '3', gen_int_fp_signed_fixed_libfunc) 113OPTAB_VL(sdivv_optab, "divv$I$a3", DIV, "divv", '3', gen_int_libfunc) 114OPTAB_VX(sdivv_optab, "div$F$a3") 115OPTAB_NL(ssdiv_optab, "ssdiv$Q$a3", SS_DIV, "ssdiv", '3', gen_signed_fixed_libfunc) 116OPTAB_NL(udiv_optab, "udiv$I$a3", UDIV, "udiv", '3', gen_int_unsigned_fixed_libfunc) 117OPTAB_NX(udiv_optab, "udiv$Q$a3") 118OPTAB_NL(usdiv_optab, "usdiv$Q$a3", US_DIV, "usdiv", '3', gen_unsigned_fixed_libfunc) 119OPTAB_NL(sdivmod_optab, "divmod$a4", UNKNOWN, "divmod", '4', gen_int_libfunc) 120OPTAB_NL(udivmod_optab, "udivmod$a4", UNKNOWN, "udivmod", '4', gen_int_libfunc) 121OPTAB_NL(smod_optab, "mod$a3", MOD, "mod", '3', gen_int_libfunc) 122OPTAB_NL(umod_optab, "umod$a3", UMOD, "umod", '3', gen_int_libfunc) 123OPTAB_NL(ftrunc_optab, "ftrunc$F$a2", UNKNOWN, "ftrunc", '2', gen_fp_libfunc) 124OPTAB_NL(and_optab, "and$a3", AND, "and", '3', gen_int_libfunc) 125OPTAB_NL(ior_optab, "ior$a3", IOR, "ior", '3', gen_int_libfunc) 126OPTAB_NL(xor_optab, "xor$a3", XOR, "xor", '3', gen_int_libfunc) 127OPTAB_NL(ashl_optab, "ashl$a3", ASHIFT, "ashl", '3', gen_int_fixed_libfunc) 128OPTAB_NL(ssashl_optab, "ssashl$Q$a3", SS_ASHIFT, "ssashl", '3', gen_signed_fixed_libfunc) 129OPTAB_NL(usashl_optab, "usashl$Q$a3", US_ASHIFT, "usashl", '3', gen_unsigned_fixed_libfunc) 130OPTAB_NL(ashr_optab, "ashr$a3", ASHIFTRT, "ashr", '3', gen_int_signed_fixed_libfunc) 131OPTAB_NL(lshr_optab, "lshr$a3", LSHIFTRT, "lshr", '3', gen_int_unsigned_fixed_libfunc) 132OPTAB_NC(rotl_optab, "rotl$a3", ROTATE) 133OPTAB_NC(rotr_optab, "rotr$a3", ROTATERT) 134OPTAB_VC(vashl_optab, "vashl$a3", ASHIFT) 135OPTAB_VC(vashr_optab, "vashr$a3", ASHIFTRT) 136OPTAB_VC(vlshr_optab, "vlshr$a3", LSHIFTRT) 137OPTAB_VC(vrotl_optab, "vrotl$a3", ROTATE) 138OPTAB_VC(vrotr_optab, "vrotr$a3", ROTATERT) 139OPTAB_NL(smin_optab, "smin$a3", SMIN, "min", '3', gen_int_fp_libfunc) 140OPTAB_NL(smax_optab, "smax$a3", SMAX, "max", '3', gen_int_fp_libfunc) 141OPTAB_NL(umin_optab, "umin$I$a3", UMIN, "umin", '3', gen_int_libfunc) 142OPTAB_NL(umax_optab, "umax$I$a3", UMAX, "umax", '3', gen_int_libfunc) 143 144OPTAB_NL(neg_optab, "neg$P$a2", NEG, "neg", '2', gen_int_fp_fixed_libfunc) 145OPTAB_NX(neg_optab, "neg$F$a2") 146OPTAB_NX(neg_optab, "neg$Q$a2") 147OPTAB_VL(negv_optab, "negv$I$a2", NEG, "neg", '2', gen_intv_fp_libfunc) 148OPTAB_VX(negv_optab, "neg$F$a2") 149OPTAB_NL(ssneg_optab, "ssneg$Q$a2", SS_NEG, "ssneg", '2', gen_signed_fixed_libfunc) 150OPTAB_NL(usneg_optab, "usneg$Q$a2", US_NEG, "usneg", '2', gen_unsigned_fixed_libfunc) 151OPTAB_NC(abs_optab, "abs$P$a2", ABS) 152OPTAB_NX(abs_optab, "abs$F$a2") 153OPTAB_VC(absv_optab, "absv$I$a2", ABS) 154OPTAB_VX(absv_optab, "abs$F$a2") 155OPTAB_NL(one_cmpl_optab, "one_cmpl$a2", NOT, "one_cmpl", '2', gen_int_libfunc) 156OPTAB_NC(bswap_optab, "bswap$a2", BSWAP) 157OPTAB_NL(ffs_optab, "ffs$a2", FFS, "ffs", '2', gen_int_libfunc) 158OPTAB_NL(clz_optab, "clz$a2", CLZ, "clz", '2', gen_int_libfunc) 159OPTAB_NL(ctz_optab, "ctz$a2", CTZ, "ctz", '2', gen_int_libfunc) 160OPTAB_NL(clrsb_optab, "clrsb$a2", CLRSB, "clrsb", '2', gen_int_libfunc) 161OPTAB_NL(popcount_optab, "popcount$a2", POPCOUNT, "popcount", '2', gen_int_libfunc) 162OPTAB_NL(parity_optab, "parity$a2", PARITY, "parity", '2', gen_int_libfunc) 163 164/* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */ 165OPTAB_NL(cmp_optab, NULL, UNKNOWN, "cmp", '2', gen_int_fp_fixed_libfunc) 166OPTAB_NL(ucmp_optab, NULL, UNKNOWN, "ucmp", '2', gen_int_libfunc) 167 168/* EQ etc are floating point comparisons. */ 169OPTAB_NL(eq_optab, NULL, EQ, "eq", '2', gen_fp_libfunc) 170OPTAB_NL(ne_optab, NULL, NE, "ne", '2', gen_fp_libfunc) 171OPTAB_NL(gt_optab, NULL, GT, "gt", '2', gen_fp_libfunc) 172OPTAB_NL(ge_optab, NULL, GE, "ge", '2', gen_fp_libfunc) 173OPTAB_NL(lt_optab, NULL, LT, "lt", '2', gen_fp_libfunc) 174OPTAB_NL(le_optab, NULL, LE, "le", '2', gen_fp_libfunc) 175OPTAB_NL(unord_optab, NULL, UNORDERED, "unord", '2', gen_fp_libfunc) 176 177OPTAB_NL(powi_optab, NULL, UNKNOWN, "powi", '2', gen_fp_libfunc) 178 179/* These are all initialized individually, on a per-host basis. */ 180OPTAB_NC(sqrt_optab, "sqrt$a2", SQRT) 181OPTAB_NC(sync_old_add_optab, "sync_old_add$I$a", UNKNOWN) 182OPTAB_NC(sync_old_sub_optab, "sync_old_sub$I$a", UNKNOWN) 183OPTAB_NC(sync_old_ior_optab, "sync_old_ior$I$a", UNKNOWN) 184OPTAB_NC(sync_old_and_optab, "sync_old_and$I$a", UNKNOWN) 185OPTAB_NC(sync_old_xor_optab, "sync_old_xor$I$a", UNKNOWN) 186OPTAB_NC(sync_old_nand_optab, "sync_old_nand$I$a", UNKNOWN) 187OPTAB_NC(sync_new_add_optab, "sync_new_add$I$a", UNKNOWN) 188OPTAB_NC(sync_new_sub_optab, "sync_new_sub$I$a", UNKNOWN) 189OPTAB_NC(sync_new_ior_optab, "sync_new_ior$I$a", UNKNOWN) 190OPTAB_NC(sync_new_and_optab, "sync_new_and$I$a", UNKNOWN) 191OPTAB_NC(sync_new_xor_optab, "sync_new_xor$I$a", UNKNOWN) 192OPTAB_NC(sync_new_nand_optab, "sync_new_nand$I$a", UNKNOWN) 193OPTAB_NC(sync_compare_and_swap_optab, "sync_compare_and_swap$I$a", UNKNOWN) 194OPTAB_NC(sync_lock_test_and_set_optab, "sync_lock_test_and_set$I$a", UNKNOWN) 195 196OPTAB_DC(mov_optab, "mov$a", SET) 197OPTAB_DC(movstrict_optab, "movstrict$a", STRICT_LOW_PART) 198OPTAB_D (movmisalign_optab, "movmisalign$a") 199OPTAB_D (storent_optab, "storent$a") 200OPTAB_D (insv_optab, "insv$a") 201OPTAB_D (extv_optab, "extv$a") 202OPTAB_D (extzv_optab, "extzv$a") 203OPTAB_D (insvmisalign_optab, "insvmisalign$a") 204OPTAB_D (extvmisalign_optab, "extvmisalign$a") 205OPTAB_D (extzvmisalign_optab, "extzvmisalign$a") 206OPTAB_D (push_optab, "push$a1") 207OPTAB_D (reload_in_optab, "reload_in$a") 208OPTAB_D (reload_out_optab, "reload_out$a") 209 210OPTAB_DC(cbranch_optab, "cbranch$a4", COMPARE) 211OPTAB_D (addcc_optab, "add$acc") 212OPTAB_D (negcc_optab, "neg$acc") 213OPTAB_D (notcc_optab, "not$acc") 214OPTAB_D (movcc_optab, "mov$acc") 215OPTAB_D (cmov_optab, "cmov$a6") 216OPTAB_D (cstore_optab, "cstore$a4") 217OPTAB_D (ctrap_optab, "ctrap$a4") 218OPTAB_D (addv4_optab, "addv$I$a4") 219OPTAB_D (subv4_optab, "subv$I$a4") 220OPTAB_D (mulv4_optab, "mulv$I$a4") 221OPTAB_D (uaddv4_optab, "uaddv$I$a4") 222OPTAB_D (usubv4_optab, "usubv$I$a4") 223OPTAB_D (umulv4_optab, "umulv$I$a4") 224OPTAB_D (negv3_optab, "negv$I$a3") 225OPTAB_D (addptr3_optab, "addptr$a3") 226 227OPTAB_D (smul_highpart_optab, "smul$a3_highpart") 228OPTAB_D (umul_highpart_optab, "umul$a3_highpart") 229 230OPTAB_D (cmpmem_optab, "cmpmem$a") 231OPTAB_D (cmpstr_optab, "cmpstr$a") 232OPTAB_D (cmpstrn_optab, "cmpstrn$a") 233OPTAB_D (movmem_optab, "movmem$a") 234OPTAB_D (setmem_optab, "setmem$a") 235OPTAB_D (strlen_optab, "strlen$a") 236 237OPTAB_DC(fma_optab, "fma$a4", FMA) 238OPTAB_D (fms_optab, "fms$a4") 239OPTAB_D (fnma_optab, "fnma$a4") 240OPTAB_D (fnms_optab, "fnms$a4") 241 242OPTAB_D (rint_optab, "rint$a2") 243OPTAB_D (round_optab, "round$a2") 244OPTAB_D (floor_optab, "floor$a2") 245OPTAB_D (ceil_optab, "ceil$a2") 246OPTAB_D (btrunc_optab, "btrunc$a2") 247OPTAB_D (nearbyint_optab, "nearbyint$a2") 248 249OPTAB_D (acos_optab, "acos$a2") 250OPTAB_D (asin_optab, "asin$a2") 251OPTAB_D (atan2_optab, "atan2$a3") 252OPTAB_D (atan_optab, "atan$a2") 253OPTAB_D (copysign_optab, "copysign$F$a3") 254OPTAB_D (cos_optab, "cos$a2") 255OPTAB_D (exp10_optab, "exp10$a2") 256OPTAB_D (exp2_optab, "exp2$a2") 257OPTAB_D (exp_optab, "exp$a2") 258OPTAB_D (expm1_optab, "expm1$a2") 259OPTAB_D (fmod_optab, "fmod$a3") 260OPTAB_D (ilogb_optab, "ilogb$a2") 261OPTAB_D (isinf_optab, "isinf$a2") 262OPTAB_D (ldexp_optab, "ldexp$a3") 263OPTAB_D (log10_optab, "log10$a2") 264OPTAB_D (log1p_optab, "log1p$a2") 265OPTAB_D (log2_optab, "log2$a2") 266OPTAB_D (log_optab, "log$a2") 267OPTAB_D (logb_optab, "logb$a2") 268OPTAB_D (pow_optab, "pow$a3") 269OPTAB_D (remainder_optab, "remainder$a3") 270OPTAB_D (rsqrt_optab, "rsqrt$a2") 271OPTAB_D (scalb_optab, "scalb$a3") 272OPTAB_D (signbit_optab, "signbit$F$a2") 273OPTAB_D (significand_optab, "significand$a2") 274OPTAB_D (sin_optab, "sin$a2") 275OPTAB_D (sincos_optab, "sincos$a3") 276OPTAB_D (tan_optab, "tan$a2") 277 278/* C99 implementations of fmax/fmin. */ 279OPTAB_D (fmax_optab, "fmax$a3") 280OPTAB_D (fmin_optab, "fmin$a3") 281 282/* Vector reduction to a scalar. */ 283OPTAB_D (reduc_smax_scal_optab, "reduc_smax_scal_$a") 284OPTAB_D (reduc_smin_scal_optab, "reduc_smin_scal_$a") 285OPTAB_D (reduc_plus_scal_optab, "reduc_plus_scal_$a") 286OPTAB_D (reduc_umax_scal_optab, "reduc_umax_scal_$a") 287OPTAB_D (reduc_umin_scal_optab, "reduc_umin_scal_$a") 288 289OPTAB_D (sdot_prod_optab, "sdot_prod$I$a") 290OPTAB_D (ssum_widen_optab, "widen_ssum$I$a3") 291OPTAB_D (udot_prod_optab, "udot_prod$I$a") 292OPTAB_D (usum_widen_optab, "widen_usum$I$a3") 293OPTAB_D (usad_optab, "usad$I$a") 294OPTAB_D (ssad_optab, "ssad$I$a") 295OPTAB_D (vec_extract_optab, "vec_extract$a") 296OPTAB_D (vec_init_optab, "vec_init$a") 297OPTAB_D (vec_pack_sfix_trunc_optab, "vec_pack_sfix_trunc_$a") 298OPTAB_D (vec_pack_ssat_optab, "vec_pack_ssat_$a") 299OPTAB_D (vec_pack_trunc_optab, "vec_pack_trunc_$a") 300OPTAB_D (vec_pack_ufix_trunc_optab, "vec_pack_ufix_trunc_$a") 301OPTAB_D (vec_pack_usat_optab, "vec_pack_usat_$a") 302OPTAB_D (vec_perm_const_optab, "vec_perm_const$a") 303OPTAB_D (vec_perm_optab, "vec_perm$a") 304OPTAB_D (vec_realign_load_optab, "vec_realign_load_$a") 305OPTAB_D (vec_set_optab, "vec_set$a") 306OPTAB_D (vec_shr_optab, "vec_shr_$a") 307OPTAB_D (vec_unpacks_float_hi_optab, "vec_unpacks_float_hi_$a") 308OPTAB_D (vec_unpacks_float_lo_optab, "vec_unpacks_float_lo_$a") 309OPTAB_D (vec_unpacks_hi_optab, "vec_unpacks_hi_$a") 310OPTAB_D (vec_unpacks_lo_optab, "vec_unpacks_lo_$a") 311OPTAB_D (vec_unpacku_float_hi_optab, "vec_unpacku_float_hi_$a") 312OPTAB_D (vec_unpacku_float_lo_optab, "vec_unpacku_float_lo_$a") 313OPTAB_D (vec_unpacku_hi_optab, "vec_unpacku_hi_$a") 314OPTAB_D (vec_unpacku_lo_optab, "vec_unpacku_lo_$a") 315OPTAB_D (vec_widen_smult_even_optab, "vec_widen_smult_even_$a") 316OPTAB_D (vec_widen_smult_hi_optab, "vec_widen_smult_hi_$a") 317OPTAB_D (vec_widen_smult_lo_optab, "vec_widen_smult_lo_$a") 318OPTAB_D (vec_widen_smult_odd_optab, "vec_widen_smult_odd_$a") 319OPTAB_D (vec_widen_sshiftl_hi_optab, "vec_widen_sshiftl_hi_$a") 320OPTAB_D (vec_widen_sshiftl_lo_optab, "vec_widen_sshiftl_lo_$a") 321OPTAB_D (vec_widen_umult_even_optab, "vec_widen_umult_even_$a") 322OPTAB_D (vec_widen_umult_hi_optab, "vec_widen_umult_hi_$a") 323OPTAB_D (vec_widen_umult_lo_optab, "vec_widen_umult_lo_$a") 324OPTAB_D (vec_widen_umult_odd_optab, "vec_widen_umult_odd_$a") 325OPTAB_D (vec_widen_ushiftl_hi_optab, "vec_widen_ushiftl_hi_$a") 326OPTAB_D (vec_widen_ushiftl_lo_optab, "vec_widen_ushiftl_lo_$a") 327 328OPTAB_D (sync_add_optab, "sync_add$I$a") 329OPTAB_D (sync_and_optab, "sync_and$I$a") 330OPTAB_D (sync_ior_optab, "sync_ior$I$a") 331OPTAB_D (sync_lock_release_optab, "sync_lock_release$I$a") 332OPTAB_D (sync_nand_optab, "sync_nand$I$a") 333OPTAB_D (sync_sub_optab, "sync_sub$I$a") 334OPTAB_D (sync_xor_optab, "sync_xor$I$a") 335 336OPTAB_D (atomic_add_fetch_optab, "atomic_add_fetch$I$a") 337OPTAB_D (atomic_add_optab, "atomic_add$I$a") 338OPTAB_D (atomic_and_fetch_optab, "atomic_and_fetch$I$a") 339OPTAB_D (atomic_and_optab, "atomic_and$I$a") 340OPTAB_D (atomic_compare_and_swap_optab, "atomic_compare_and_swap$I$a") 341OPTAB_D (atomic_exchange_optab, "atomic_exchange$I$a") 342OPTAB_D (atomic_fetch_add_optab, "atomic_fetch_add$I$a") 343OPTAB_D (atomic_fetch_and_optab, "atomic_fetch_and$I$a") 344OPTAB_D (atomic_fetch_nand_optab, "atomic_fetch_nand$I$a") 345OPTAB_D (atomic_fetch_or_optab, "atomic_fetch_or$I$a") 346OPTAB_D (atomic_fetch_sub_optab, "atomic_fetch_sub$I$a") 347OPTAB_D (atomic_fetch_xor_optab, "atomic_fetch_xor$I$a") 348OPTAB_D (atomic_load_optab, "atomic_load$I$a") 349OPTAB_D (atomic_nand_fetch_optab, "atomic_nand_fetch$I$a") 350OPTAB_D (atomic_nand_optab, "atomic_nand$I$a") 351OPTAB_D (atomic_or_fetch_optab, "atomic_or_fetch$I$a") 352OPTAB_D (atomic_or_optab, "atomic_or$I$a") 353OPTAB_D (atomic_store_optab, "atomic_store$I$a") 354OPTAB_D (atomic_sub_fetch_optab, "atomic_sub_fetch$I$a") 355OPTAB_D (atomic_sub_optab, "atomic_sub$I$a") 356OPTAB_D (atomic_xor_fetch_optab, "atomic_xor_fetch$I$a") 357OPTAB_D (atomic_xor_optab, "atomic_xor$I$a") 358 359OPTAB_D (get_thread_pointer_optab, "get_thread_pointer$I$a") 360OPTAB_D (set_thread_pointer_optab, "set_thread_pointer$I$a") 361