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