PR sanitizer/80403
[official-gcc.git] / gcc / optabs.def
blob504c655be0210a72e7f0f34cde0131e21ccf8089
1 /* Definitions for operation tables, or "optabs".
2 Copyright (C) 1987-2017 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 3, or (at your option) any later
9 version.
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
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.
27 CX, NX, VX: An extra pattern entry for a conversion or normal optab.
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).
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.
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. */
44 /* The extension libcalls are used for float extension. */
45 OPTAB_CL(sext_optab, "extend$b$a2", SIGN_EXTEND, "extend", gen_extend_conv_libfunc)
46 OPTAB_CL(trunc_optab, "trunc$b$a2", TRUNCATE, "trunc", gen_trunc_conv_libfunc)
47 OPTAB_CL(zext_optab, "zero_extend$b$a2", ZERO_EXTEND, NULL, NULL)
49 OPTAB_CL(sfix_optab, "fix$F$b$I$a2", FIX, "fix", gen_fp_to_int_conv_libfunc)
50 OPTAB_CL(ufix_optab, "fixuns$F$b$a2", UNSIGNED_FIX, "fixuns", gen_fp_to_int_conv_libfunc)
51 OPTAB_CL(sfloat_optab, "float$I$b$F$a2", FLOAT, "float", gen_int_to_fp_conv_libfunc)
52 OPTAB_CL(ufloat_optab, "floatuns$I$b$F$a2", UNSIGNED_FLOAT, NULL, gen_ufloat_conv_libfunc)
54 OPTAB_CL(lrint_optab, "lrint$F$b$I$a2", UNKNOWN, "lrint", gen_int_to_fp_nondecimal_conv_libfunc)
55 OPTAB_CL(lround_optab, "lround$F$b$I$a2", UNKNOWN, "lround", gen_int_to_fp_nondecimal_conv_libfunc)
56 OPTAB_CL(lfloor_optab, "lfloor$F$b$I$a2", UNKNOWN, "lfloor", gen_int_to_fp_nondecimal_conv_libfunc)
57 OPTAB_CL(lceil_optab, "lceil$F$b$I$a2", UNKNOWN, "lceil", gen_int_to_fp_nondecimal_conv_libfunc)
59 /* Conversions for fixed-point modes and other modes. */
60 OPTAB_CL(fract_optab, "fract$b$a2", FRACT_CONVERT, "fract", gen_fract_conv_libfunc)
61 OPTAB_CL(fractuns_optab, "fractuns$I$b$Q$a2", UNSIGNED_FRACT_CONVERT, "fractuns", gen_fractuns_conv_libfunc)
62 OPTAB_CX(fractuns_optab, "fractuns$Q$b$I$a2")
63 OPTAB_CL(satfract_optab, "satfract$b$Q$a2", SAT_FRACT, "satfract", gen_satfract_conv_libfunc)
64 OPTAB_CL(satfractuns_optab, "satfractuns$I$b$Q$a2", UNSIGNED_SAT_FRACT, "satfractuns", gen_satfractuns_conv_libfunc)
66 OPTAB_CD(sfixtrunc_optab, "fix_trunc$F$b$I$a2")
67 OPTAB_CD(ufixtrunc_optab, "fixuns_trunc$F$b$I$a2")
69 /* Misc optabs that use two modes; model them as "conversions". */
70 OPTAB_CD(smul_widen_optab, "mul$b$a3")
71 OPTAB_CD(umul_widen_optab, "umul$b$a3")
72 OPTAB_CD(usmul_widen_optab, "usmul$b$a3")
73 OPTAB_CD(smadd_widen_optab, "madd$b$a4")
74 OPTAB_CD(umadd_widen_optab, "umadd$b$a4")
75 OPTAB_CD(ssmadd_widen_optab, "ssmadd$b$a4")
76 OPTAB_CD(usmadd_widen_optab, "usmadd$b$a4")
77 OPTAB_CD(smsub_widen_optab, "msub$b$a4")
78 OPTAB_CD(umsub_widen_optab, "umsub$b$a4")
79 OPTAB_CD(ssmsub_widen_optab, "ssmsub$b$a4")
80 OPTAB_CD(usmsub_widen_optab, "usmsub$a$b4")
81 OPTAB_CD(vec_load_lanes_optab, "vec_load_lanes$a$b")
82 OPTAB_CD(vec_store_lanes_optab, "vec_store_lanes$a$b")
83 OPTAB_CD(vcond_optab, "vcond$a$b")
84 OPTAB_CD(vcondu_optab, "vcondu$a$b")
85 OPTAB_CD(vcondeq_optab, "vcondeq$a$b")
86 OPTAB_CD(vcond_mask_optab, "vcond_mask_$a$b")
87 OPTAB_CD(vec_cmp_optab, "vec_cmp$a$b")
88 OPTAB_CD(vec_cmpu_optab, "vec_cmpu$a$b")
89 OPTAB_CD(vec_cmpeq_optab, "vec_cmpeq$a$b")
90 OPTAB_CD(maskload_optab, "maskload$a$b")
91 OPTAB_CD(maskstore_optab, "maskstore$a$b")
93 OPTAB_NL(add_optab, "add$P$a3", PLUS, "add", '3', gen_int_fp_fixed_libfunc)
94 OPTAB_NX(add_optab, "add$F$a3")
95 OPTAB_NX(add_optab, "add$Q$a3")
96 OPTAB_VL(addv_optab, "addv$I$a3", PLUS, "add", '3', gen_intv_fp_libfunc)
97 OPTAB_VX(addv_optab, "add$F$a3")
98 OPTAB_NL(ssadd_optab, "ssadd$Q$a3", SS_PLUS, "ssadd", '3', gen_signed_fixed_libfunc)
99 OPTAB_NL(usadd_optab, "usadd$Q$a3", US_PLUS, "usadd", '3', gen_unsigned_fixed_libfunc)
100 OPTAB_NL(sub_optab, "sub$P$a3", MINUS, "sub", '3', gen_int_fp_fixed_libfunc)
101 OPTAB_NX(sub_optab, "sub$F$a3")
102 OPTAB_NX(sub_optab, "sub$Q$a3")
103 OPTAB_VL(subv_optab, "subv$I$a3", MINUS, "sub", '3', gen_intv_fp_libfunc)
104 OPTAB_VX(subv_optab, "sub$F$a3")
105 OPTAB_NL(sssub_optab, "sssub$Q$a3", SS_MINUS, "sssub", '3', gen_signed_fixed_libfunc)
106 OPTAB_NL(ussub_optab, "ussub$Q$a3", US_MINUS, "ussub", '3', gen_unsigned_fixed_libfunc)
107 OPTAB_NL(smul_optab, "mul$Q$a3", MULT, "mul", '3', gen_int_fp_fixed_libfunc)
108 OPTAB_NX(smul_optab, "mul$P$a3")
109 OPTAB_NX(smul_optab, "mul$F$a3")
110 OPTAB_VL(smulv_optab, "mulv$I$a3", MULT, "mul", '3', gen_intv_fp_libfunc)
111 OPTAB_VX(smulv_optab, "mul$F$a3")
112 OPTAB_NL(ssmul_optab, "ssmul$Q$a3", SS_MULT, "ssmul", '3', gen_signed_fixed_libfunc)
113 OPTAB_NL(usmul_optab, "usmul$Q$a3", US_MULT, "usmul", '3', gen_unsigned_fixed_libfunc)
114 OPTAB_NL(sdiv_optab, "div$a3", DIV, "div", '3', gen_int_fp_signed_fixed_libfunc)
115 OPTAB_VL(sdivv_optab, "divv$I$a3", DIV, "divv", '3', gen_int_libfunc)
116 OPTAB_VX(sdivv_optab, "div$F$a3")
117 OPTAB_NL(ssdiv_optab, "ssdiv$Q$a3", SS_DIV, "ssdiv", '3', gen_signed_fixed_libfunc)
118 OPTAB_NL(udiv_optab, "udiv$I$a3", UDIV, "udiv", '3', gen_int_unsigned_fixed_libfunc)
119 OPTAB_NX(udiv_optab, "udiv$Q$a3")
120 OPTAB_NL(usdiv_optab, "usdiv$Q$a3", US_DIV, "usdiv", '3', gen_unsigned_fixed_libfunc)
121 OPTAB_NC(sdivmod_optab, "divmod$a4", UNKNOWN)
122 OPTAB_NC(udivmod_optab, "udivmod$a4", UNKNOWN)
123 OPTAB_NL(smod_optab, "mod$a3", MOD, "mod", '3', gen_int_libfunc)
124 OPTAB_NL(umod_optab, "umod$a3", UMOD, "umod", '3', gen_int_libfunc)
125 OPTAB_NL(ftrunc_optab, "ftrunc$F$a2", UNKNOWN, "ftrunc", '2', gen_fp_libfunc)
126 OPTAB_NL(and_optab, "and$a3", AND, "and", '3', gen_int_libfunc)
127 OPTAB_NL(ior_optab, "ior$a3", IOR, "ior", '3', gen_int_libfunc)
128 OPTAB_NL(xor_optab, "xor$a3", XOR, "xor", '3', gen_int_libfunc)
129 OPTAB_NL(ashl_optab, "ashl$a3", ASHIFT, "ashl", '3', gen_int_fixed_libfunc)
130 OPTAB_NL(ssashl_optab, "ssashl$Q$a3", SS_ASHIFT, "ssashl", '3', gen_signed_fixed_libfunc)
131 OPTAB_NL(usashl_optab, "usashl$Q$a3", US_ASHIFT, "usashl", '3', gen_unsigned_fixed_libfunc)
132 OPTAB_NL(ashr_optab, "ashr$a3", ASHIFTRT, "ashr", '3', gen_int_signed_fixed_libfunc)
133 OPTAB_NL(lshr_optab, "lshr$a3", LSHIFTRT, "lshr", '3', gen_int_unsigned_fixed_libfunc)
134 OPTAB_NC(rotl_optab, "rotl$a3", ROTATE)
135 OPTAB_NC(rotr_optab, "rotr$a3", ROTATERT)
136 OPTAB_VC(vashl_optab, "vashl$a3", ASHIFT)
137 OPTAB_VC(vashr_optab, "vashr$a3", ASHIFTRT)
138 OPTAB_VC(vlshr_optab, "vlshr$a3", LSHIFTRT)
139 OPTAB_VC(vrotl_optab, "vrotl$a3", ROTATE)
140 OPTAB_VC(vrotr_optab, "vrotr$a3", ROTATERT)
141 OPTAB_NL(smin_optab, "smin$a3", SMIN, "min", '3', gen_int_fp_libfunc)
142 OPTAB_NL(smax_optab, "smax$a3", SMAX, "max", '3', gen_int_fp_libfunc)
143 OPTAB_NL(umin_optab, "umin$I$a3", UMIN, "umin", '3', gen_int_libfunc)
144 OPTAB_NL(umax_optab, "umax$I$a3", UMAX, "umax", '3', gen_int_libfunc)
146 OPTAB_NL(neg_optab, "neg$P$a2", NEG, "neg", '2', gen_int_fp_fixed_libfunc)
147 OPTAB_NX(neg_optab, "neg$F$a2")
148 OPTAB_NX(neg_optab, "neg$Q$a2")
149 OPTAB_VL(negv_optab, "negv$I$a2", NEG, "neg", '2', gen_intv_fp_libfunc)
150 OPTAB_VX(negv_optab, "neg$F$a2")
151 OPTAB_NL(ssneg_optab, "ssneg$Q$a2", SS_NEG, "ssneg", '2', gen_signed_fixed_libfunc)
152 OPTAB_NL(usneg_optab, "usneg$Q$a2", US_NEG, "usneg", '2', gen_unsigned_fixed_libfunc)
153 OPTAB_NC(abs_optab, "abs$P$a2", ABS)
154 OPTAB_NX(abs_optab, "abs$F$a2")
155 OPTAB_VC(absv_optab, "absv$I$a2", ABS)
156 OPTAB_VX(absv_optab, "abs$F$a2")
157 OPTAB_NL(one_cmpl_optab, "one_cmpl$a2", NOT, "one_cmpl", '2', gen_int_libfunc)
158 OPTAB_NC(bswap_optab, "bswap$a2", BSWAP)
159 OPTAB_NL(ffs_optab, "ffs$a2", FFS, "ffs", '2', gen_int_libfunc)
160 OPTAB_NL(clz_optab, "clz$a2", CLZ, "clz", '2', gen_int_libfunc)
161 OPTAB_NL(ctz_optab, "ctz$a2", CTZ, "ctz", '2', gen_int_libfunc)
162 OPTAB_NL(clrsb_optab, "clrsb$a2", CLRSB, "clrsb", '2', gen_int_libfunc)
163 OPTAB_NL(popcount_optab, "popcount$a2", POPCOUNT, "popcount", '2', gen_int_libfunc)
164 OPTAB_NL(parity_optab, "parity$a2", PARITY, "parity", '2', gen_int_libfunc)
166 /* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */
167 OPTAB_NL(cmp_optab, NULL, UNKNOWN, "cmp", '2', gen_int_fp_fixed_libfunc)
168 OPTAB_NL(ucmp_optab, NULL, UNKNOWN, "ucmp", '2', gen_int_libfunc)
170 /* EQ etc are floating point comparisons. */
171 OPTAB_NL(eq_optab, NULL, EQ, "eq", '2', gen_fp_libfunc)
172 OPTAB_NL(ne_optab, NULL, NE, "ne", '2', gen_fp_libfunc)
173 OPTAB_NL(gt_optab, NULL, GT, "gt", '2', gen_fp_libfunc)
174 OPTAB_NL(ge_optab, NULL, GE, "ge", '2', gen_fp_libfunc)
175 OPTAB_NL(lt_optab, NULL, LT, "lt", '2', gen_fp_libfunc)
176 OPTAB_NL(le_optab, NULL, LE, "le", '2', gen_fp_libfunc)
177 OPTAB_NL(unord_optab, NULL, UNORDERED, "unord", '2', gen_fp_libfunc)
179 OPTAB_NL(powi_optab, NULL, UNKNOWN, "powi", '2', gen_fp_libfunc)
181 /* These are all initialized individually, on a per-host basis. */
182 OPTAB_NC(sqrt_optab, "sqrt$a2", SQRT)
183 OPTAB_NC(sync_old_add_optab, "sync_old_add$I$a", UNKNOWN)
184 OPTAB_NC(sync_old_sub_optab, "sync_old_sub$I$a", UNKNOWN)
185 OPTAB_NC(sync_old_ior_optab, "sync_old_ior$I$a", UNKNOWN)
186 OPTAB_NC(sync_old_and_optab, "sync_old_and$I$a", UNKNOWN)
187 OPTAB_NC(sync_old_xor_optab, "sync_old_xor$I$a", UNKNOWN)
188 OPTAB_NC(sync_old_nand_optab, "sync_old_nand$I$a", UNKNOWN)
189 OPTAB_NC(sync_new_add_optab, "sync_new_add$I$a", UNKNOWN)
190 OPTAB_NC(sync_new_sub_optab, "sync_new_sub$I$a", UNKNOWN)
191 OPTAB_NC(sync_new_ior_optab, "sync_new_ior$I$a", UNKNOWN)
192 OPTAB_NC(sync_new_and_optab, "sync_new_and$I$a", UNKNOWN)
193 OPTAB_NC(sync_new_xor_optab, "sync_new_xor$I$a", UNKNOWN)
194 OPTAB_NC(sync_new_nand_optab, "sync_new_nand$I$a", UNKNOWN)
195 OPTAB_NC(sync_compare_and_swap_optab, "sync_compare_and_swap$I$a", UNKNOWN)
196 OPTAB_NC(sync_lock_test_and_set_optab, "sync_lock_test_and_set$I$a", UNKNOWN)
198 OPTAB_DC(mov_optab, "mov$a", SET)
199 OPTAB_DC(movstrict_optab, "movstrict$a", STRICT_LOW_PART)
200 OPTAB_D (movmisalign_optab, "movmisalign$a")
201 OPTAB_D (storent_optab, "storent$a")
202 OPTAB_D (insv_optab, "insv$a")
203 OPTAB_D (extv_optab, "extv$a")
204 OPTAB_D (extzv_optab, "extzv$a")
205 OPTAB_D (insvmisalign_optab, "insvmisalign$a")
206 OPTAB_D (extvmisalign_optab, "extvmisalign$a")
207 OPTAB_D (extzvmisalign_optab, "extzvmisalign$a")
208 OPTAB_D (push_optab, "push$a1")
209 OPTAB_D (reload_in_optab, "reload_in$a")
210 OPTAB_D (reload_out_optab, "reload_out$a")
212 OPTAB_DC(cbranch_optab, "cbranch$a4", COMPARE)
213 OPTAB_D (addcc_optab, "add$acc")
214 OPTAB_D (negcc_optab, "neg$acc")
215 OPTAB_D (notcc_optab, "not$acc")
216 OPTAB_D (movcc_optab, "mov$acc")
217 OPTAB_D (cmov_optab, "cmov$a6")
218 OPTAB_D (cstore_optab, "cstore$a4")
219 OPTAB_D (ctrap_optab, "ctrap$a4")
220 OPTAB_D (addv4_optab, "addv$I$a4")
221 OPTAB_D (subv4_optab, "subv$I$a4")
222 OPTAB_D (mulv4_optab, "mulv$I$a4")
223 OPTAB_D (uaddv4_optab, "uaddv$I$a4")
224 OPTAB_D (usubv4_optab, "usubv$I$a4")
225 OPTAB_D (umulv4_optab, "umulv$I$a4")
226 OPTAB_D (negv3_optab, "negv$I$a3")
227 OPTAB_D (addptr3_optab, "addptr$a3")
229 OPTAB_D (smul_highpart_optab, "smul$a3_highpart")
230 OPTAB_D (umul_highpart_optab, "umul$a3_highpart")
232 OPTAB_D (cmpmem_optab, "cmpmem$a")
233 OPTAB_D (cmpstr_optab, "cmpstr$a")
234 OPTAB_D (cmpstrn_optab, "cmpstrn$a")
235 OPTAB_D (movmem_optab, "movmem$a")
236 OPTAB_D (setmem_optab, "setmem$a")
237 OPTAB_D (strlen_optab, "strlen$a")
239 OPTAB_DC(fma_optab, "fma$a4", FMA)
240 OPTAB_D (fms_optab, "fms$a4")
241 OPTAB_D (fnma_optab, "fnma$a4")
242 OPTAB_D (fnms_optab, "fnms$a4")
244 OPTAB_D (rint_optab, "rint$a2")
245 OPTAB_D (round_optab, "round$a2")
246 OPTAB_D (floor_optab, "floor$a2")
247 OPTAB_D (ceil_optab, "ceil$a2")
248 OPTAB_D (btrunc_optab, "btrunc$a2")
249 OPTAB_D (nearbyint_optab, "nearbyint$a2")
251 OPTAB_D (acos_optab, "acos$a2")
252 OPTAB_D (asin_optab, "asin$a2")
253 OPTAB_D (atan2_optab, "atan2$a3")
254 OPTAB_D (atan_optab, "atan$a2")
255 OPTAB_D (copysign_optab, "copysign$F$a3")
256 OPTAB_D (cos_optab, "cos$a2")
257 OPTAB_D (exp10_optab, "exp10$a2")
258 OPTAB_D (exp2_optab, "exp2$a2")
259 OPTAB_D (exp_optab, "exp$a2")
260 OPTAB_D (expm1_optab, "expm1$a2")
261 OPTAB_D (fmod_optab, "fmod$a3")
262 OPTAB_D (ilogb_optab, "ilogb$a2")
263 OPTAB_D (isinf_optab, "isinf$a2")
264 OPTAB_D (ldexp_optab, "ldexp$a3")
265 OPTAB_D (log10_optab, "log10$a2")
266 OPTAB_D (log1p_optab, "log1p$a2")
267 OPTAB_D (log2_optab, "log2$a2")
268 OPTAB_D (log_optab, "log$a2")
269 OPTAB_D (logb_optab, "logb$a2")
270 OPTAB_D (pow_optab, "pow$a3")
271 OPTAB_D (remainder_optab, "remainder$a3")
272 OPTAB_D (rsqrt_optab, "rsqrt$a2")
273 OPTAB_D (scalb_optab, "scalb$a3")
274 OPTAB_D (signbit_optab, "signbit$F$a2")
275 OPTAB_D (significand_optab, "significand$a2")
276 OPTAB_D (sin_optab, "sin$a2")
277 OPTAB_D (sincos_optab, "sincos$a3")
278 OPTAB_D (tan_optab, "tan$a2")
280 /* C99 implementations of fmax/fmin. */
281 OPTAB_D (fmax_optab, "fmax$a3")
282 OPTAB_D (fmin_optab, "fmin$a3")
284 /* Vector reduction to a scalar. */
285 OPTAB_D (reduc_smax_scal_optab, "reduc_smax_scal_$a")
286 OPTAB_D (reduc_smin_scal_optab, "reduc_smin_scal_$a")
287 OPTAB_D (reduc_plus_scal_optab, "reduc_plus_scal_$a")
288 OPTAB_D (reduc_umax_scal_optab, "reduc_umax_scal_$a")
289 OPTAB_D (reduc_umin_scal_optab, "reduc_umin_scal_$a")
291 OPTAB_D (sdot_prod_optab, "sdot_prod$I$a")
292 OPTAB_D (ssum_widen_optab, "widen_ssum$I$a3")
293 OPTAB_D (udot_prod_optab, "udot_prod$I$a")
294 OPTAB_D (usum_widen_optab, "widen_usum$I$a3")
295 OPTAB_D (usad_optab, "usad$I$a")
296 OPTAB_D (ssad_optab, "ssad$I$a")
297 OPTAB_D (vec_extract_optab, "vec_extract$a")
298 OPTAB_D (vec_init_optab, "vec_init$a")
299 OPTAB_D (vec_pack_sfix_trunc_optab, "vec_pack_sfix_trunc_$a")
300 OPTAB_D (vec_pack_ssat_optab, "vec_pack_ssat_$a")
301 OPTAB_D (vec_pack_trunc_optab, "vec_pack_trunc_$a")
302 OPTAB_D (vec_pack_ufix_trunc_optab, "vec_pack_ufix_trunc_$a")
303 OPTAB_D (vec_pack_usat_optab, "vec_pack_usat_$a")
304 OPTAB_D (vec_perm_const_optab, "vec_perm_const$a")
305 OPTAB_D (vec_perm_optab, "vec_perm$a")
306 OPTAB_D (vec_realign_load_optab, "vec_realign_load_$a")
307 OPTAB_D (vec_set_optab, "vec_set$a")
308 OPTAB_D (vec_shr_optab, "vec_shr_$a")
309 OPTAB_D (vec_unpacks_float_hi_optab, "vec_unpacks_float_hi_$a")
310 OPTAB_D (vec_unpacks_float_lo_optab, "vec_unpacks_float_lo_$a")
311 OPTAB_D (vec_unpacks_hi_optab, "vec_unpacks_hi_$a")
312 OPTAB_D (vec_unpacks_lo_optab, "vec_unpacks_lo_$a")
313 OPTAB_D (vec_unpacku_float_hi_optab, "vec_unpacku_float_hi_$a")
314 OPTAB_D (vec_unpacku_float_lo_optab, "vec_unpacku_float_lo_$a")
315 OPTAB_D (vec_unpacku_hi_optab, "vec_unpacku_hi_$a")
316 OPTAB_D (vec_unpacku_lo_optab, "vec_unpacku_lo_$a")
317 OPTAB_D (vec_widen_smult_even_optab, "vec_widen_smult_even_$a")
318 OPTAB_D (vec_widen_smult_hi_optab, "vec_widen_smult_hi_$a")
319 OPTAB_D (vec_widen_smult_lo_optab, "vec_widen_smult_lo_$a")
320 OPTAB_D (vec_widen_smult_odd_optab, "vec_widen_smult_odd_$a")
321 OPTAB_D (vec_widen_sshiftl_hi_optab, "vec_widen_sshiftl_hi_$a")
322 OPTAB_D (vec_widen_sshiftl_lo_optab, "vec_widen_sshiftl_lo_$a")
323 OPTAB_D (vec_widen_umult_even_optab, "vec_widen_umult_even_$a")
324 OPTAB_D (vec_widen_umult_hi_optab, "vec_widen_umult_hi_$a")
325 OPTAB_D (vec_widen_umult_lo_optab, "vec_widen_umult_lo_$a")
326 OPTAB_D (vec_widen_umult_odd_optab, "vec_widen_umult_odd_$a")
327 OPTAB_D (vec_widen_ushiftl_hi_optab, "vec_widen_ushiftl_hi_$a")
328 OPTAB_D (vec_widen_ushiftl_lo_optab, "vec_widen_ushiftl_lo_$a")
330 OPTAB_D (sync_add_optab, "sync_add$I$a")
331 OPTAB_D (sync_and_optab, "sync_and$I$a")
332 OPTAB_D (sync_ior_optab, "sync_ior$I$a")
333 OPTAB_D (sync_lock_release_optab, "sync_lock_release$I$a")
334 OPTAB_D (sync_nand_optab, "sync_nand$I$a")
335 OPTAB_D (sync_sub_optab, "sync_sub$I$a")
336 OPTAB_D (sync_xor_optab, "sync_xor$I$a")
338 OPTAB_D (atomic_add_fetch_optab, "atomic_add_fetch$I$a")
339 OPTAB_D (atomic_add_optab, "atomic_add$I$a")
340 OPTAB_D (atomic_and_fetch_optab, "atomic_and_fetch$I$a")
341 OPTAB_D (atomic_and_optab, "atomic_and$I$a")
342 OPTAB_D (atomic_bit_test_and_set_optab, "atomic_bit_test_and_set$I$a")
343 OPTAB_D (atomic_bit_test_and_complement_optab, "atomic_bit_test_and_complement$I$a")
344 OPTAB_D (atomic_bit_test_and_reset_optab, "atomic_bit_test_and_reset$I$a")
345 OPTAB_D (atomic_compare_and_swap_optab, "atomic_compare_and_swap$I$a")
346 OPTAB_D (atomic_exchange_optab, "atomic_exchange$I$a")
347 OPTAB_D (atomic_fetch_add_optab, "atomic_fetch_add$I$a")
348 OPTAB_D (atomic_fetch_and_optab, "atomic_fetch_and$I$a")
349 OPTAB_D (atomic_fetch_nand_optab, "atomic_fetch_nand$I$a")
350 OPTAB_D (atomic_fetch_or_optab, "atomic_fetch_or$I$a")
351 OPTAB_D (atomic_fetch_sub_optab, "atomic_fetch_sub$I$a")
352 OPTAB_D (atomic_fetch_xor_optab, "atomic_fetch_xor$I$a")
353 OPTAB_D (atomic_load_optab, "atomic_load$I$a")
354 OPTAB_D (atomic_nand_fetch_optab, "atomic_nand_fetch$I$a")
355 OPTAB_D (atomic_nand_optab, "atomic_nand$I$a")
356 OPTAB_D (atomic_or_fetch_optab, "atomic_or_fetch$I$a")
357 OPTAB_D (atomic_or_optab, "atomic_or$I$a")
358 OPTAB_D (atomic_store_optab, "atomic_store$I$a")
359 OPTAB_D (atomic_sub_fetch_optab, "atomic_sub_fetch$I$a")
360 OPTAB_D (atomic_sub_optab, "atomic_sub$I$a")
361 OPTAB_D (atomic_xor_fetch_optab, "atomic_xor_fetch$I$a")
362 OPTAB_D (atomic_xor_optab, "atomic_xor$I$a")
364 OPTAB_D (get_thread_pointer_optab, "get_thread_pointer$I$a")
365 OPTAB_D (set_thread_pointer_optab, "set_thread_pointer$I$a")