]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/optabs.def
x86: Remove "%!" before ret
[thirdparty/gcc.git] / gcc / optabs.def
CommitLineData
cd1440b1 1/* Definitions for operation tables, or "optabs".
99dee823 2 Copyright (C) 1987-2021 Free Software Foundation, Inc.
cd1440b1
RH
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
886456e2
RS
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. */
cd1440b1
RH
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")
7e11fc7f
RS
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")
cd1440b1
RH
85OPTAB_CD(vcond_optab, "vcond$a$b")
86OPTAB_CD(vcondu_optab, "vcondu$a$b")
96592eed 87OPTAB_CD(vcondeq_optab, "vcondeq$a$b")
a414c77f 88OPTAB_CD(vcond_mask_optab, "vcond_mask_$a$b")
42fd8198
IE
89OPTAB_CD(vec_cmp_optab, "vec_cmp$a$b")
90OPTAB_CD(vec_cmpu_optab, "vec_cmpu$a$b")
96592eed 91OPTAB_CD(vec_cmpeq_optab, "vec_cmpeq$a$b")
045c1278
IE
92OPTAB_CD(maskload_optab, "maskload$a$b")
93OPTAB_CD(maskstore_optab, "maskstore$a$b")
09eb042a
RS
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")
ff03930a
JJ
98OPTAB_CD(vec_extract_optab, "vec_extract$a$b")
99OPTAB_CD(vec_init_optab, "vec_init$a$b")
cd1440b1 100
7cfb4d93
RS
101OPTAB_CD (while_ult_optab, "while_ult$a$b")
102
cd1440b1
RH
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)
b0057783
PK
131OPTAB_NC(sdivmod_optab, "divmod$a4", UNKNOWN)
132OPTAB_NC(udivmod_optab, "udivmod$a4", UNKNOWN)
cd1440b1
RH
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")
d2eeb2d1
RS
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")
cd1440b1
RH
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")
ce68b5cf
KT
224OPTAB_D (negcc_optab, "neg$acc")
225OPTAB_D (notcc_optab, "not$acc")
cd1440b1 226OPTAB_D (movcc_optab, "mov$acc")
0972596e
RS
227OPTAB_D (cond_add_optab, "cond_add$a")
228OPTAB_D (cond_sub_optab, "cond_sub$a")
6c4fd4a9
RS
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")
0972596e
RS
234OPTAB_D (cond_and_optab, "cond_and$a")
235OPTAB_D (cond_ior_optab, "cond_ior$a")
236OPTAB_D (cond_xor_optab, "cond_xor$a")
20103c0e
RS
237OPTAB_D (cond_ashl_optab, "cond_ashl$a")
238OPTAB_D (cond_ashr_optab, "cond_ashr$a")
239OPTAB_D (cond_lshr_optab, "cond_lshr$a")
0972596e
RS
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")
70613000
RS
244OPTAB_D (cond_fmin_optab, "cond_fmin$a")
245OPTAB_D (cond_fmax_optab, "cond_fmax$a")
b41d1f6e
RS
246OPTAB_D (cond_fma_optab, "cond_fma$a")
247OPTAB_D (cond_fms_optab, "cond_fms$a")
248OPTAB_D (cond_fnma_optab, "cond_fnma$a")
249OPTAB_D (cond_fnms_optab, "cond_fnms$a")
20dcda98 250OPTAB_D (cond_neg_optab, "cond_neg$a")
cd1440b1
RH
251OPTAB_D (cmov_optab, "cmov$a6")
252OPTAB_D (cstore_optab, "cstore$a4")
253OPTAB_D (ctrap_optab, "ctrap$a4")
31e071ae
MP
254OPTAB_D (addv4_optab, "addv$I$a4")
255OPTAB_D (subv4_optab, "subv$I$a4")
256OPTAB_D (mulv4_optab, "mulv$I$a4")
cde9d596
RH
257OPTAB_D (uaddv4_optab, "uaddv$I$a4")
258OPTAB_D (usubv4_optab, "usubv$I$a4")
1304953e 259OPTAB_D (umulv4_optab, "umulv$I$a4")
31e071ae 260OPTAB_D (negv3_optab, "negv$I$a3")
72a4ddf2 261OPTAB_D (addptr3_optab, "addptr$a3")
cd1440b1
RH
262
263OPTAB_D (smul_highpart_optab, "smul$a3_highpart")
264OPTAB_D (umul_highpart_optab, "umul$a3_highpart")
265
266OPTAB_D (cmpmem_optab, "cmpmem$a")
267OPTAB_D (cmpstr_optab, "cmpstr$a")
268OPTAB_D (cmpstrn_optab, "cmpstrn$a")
76715c32 269OPTAB_D (cpymem_optab, "cpymem$a")
02e3025e 270OPTAB_D (movmem_optab, "movmem$a")
cd1440b1
RH
271OPTAB_D (setmem_optab, "setmem$a")
272OPTAB_D (strlen_optab, "strlen$a")
6f966f06 273OPTAB_D (rawmemchr_optab, "rawmemchr$a")
cd1440b1
RH
274
275OPTAB_DC(fma_optab, "fma$a4", FMA)
276OPTAB_D (fms_optab, "fms$a4")
277OPTAB_D (fnma_optab, "fnma$a4")
278OPTAB_D (fnms_optab, "fnms$a4")
279
280OPTAB_D (rint_optab, "rint$a2")
281OPTAB_D (round_optab, "round$a2")
d3b92f35 282OPTAB_D (roundeven_optab, "roundeven$a2")
cd1440b1
RH
283OPTAB_D (floor_optab, "floor$a2")
284OPTAB_D (ceil_optab, "ceil$a2")
285OPTAB_D (btrunc_optab, "btrunc$a2")
286OPTAB_D (nearbyint_optab, "nearbyint$a2")
287
288OPTAB_D (acos_optab, "acos$a2")
a81037ce 289OPTAB_D (acosh_optab, "acosh$a2")
cd1440b1 290OPTAB_D (asin_optab, "asin$a2")
a81037ce 291OPTAB_D (asinh_optab, "asinh$a2")
cd1440b1
RH
292OPTAB_D (atan2_optab, "atan2$a3")
293OPTAB_D (atan_optab, "atan$a2")
a81037ce 294OPTAB_D (atanh_optab, "atanh$a2")
cd1440b1 295OPTAB_D (copysign_optab, "copysign$F$a3")
336a06a1 296OPTAB_D (xorsign_optab, "xorsign$F$a3")
3ed472af
TC
297OPTAB_D (cadd90_optab, "cadd90$a3")
298OPTAB_D (cadd270_optab, "cadd270$a3")
e09173d8
TC
299OPTAB_D (cmul_optab, "cmul$a3")
300OPTAB_D (cmul_conj_optab, "cmul_conj$a3")
31fac318
TC
301OPTAB_D (cmla_optab, "cmla$a4")
302OPTAB_D (cmla_conj_optab, "cmla_conj$a4")
478e571a
TC
303OPTAB_D (cmls_optab, "cmls$a4")
304OPTAB_D (cmls_conj_optab, "cmls_conj$a4")
cd1440b1 305OPTAB_D (cos_optab, "cos$a2")
247c45b2 306OPTAB_D (cosh_optab, "cosh$a2")
cd1440b1
RH
307OPTAB_D (exp10_optab, "exp10$a2")
308OPTAB_D (exp2_optab, "exp2$a2")
309OPTAB_D (exp_optab, "exp$a2")
310OPTAB_D (expm1_optab, "expm1$a2")
311OPTAB_D (fmod_optab, "fmod$a3")
4dd9b6c6 312OPTAB_D (hypot_optab, "hypot$a3")
cd1440b1
RH
313OPTAB_D (ilogb_optab, "ilogb$a2")
314OPTAB_D (isinf_optab, "isinf$a2")
315OPTAB_D (ldexp_optab, "ldexp$a3")
316OPTAB_D (log10_optab, "log10$a2")
317OPTAB_D (log1p_optab, "log1p$a2")
318OPTAB_D (log2_optab, "log2$a2")
319OPTAB_D (log_optab, "log$a2")
320OPTAB_D (logb_optab, "logb$a2")
321OPTAB_D (pow_optab, "pow$a3")
322OPTAB_D (remainder_optab, "remainder$a3")
ee62a5a6 323OPTAB_D (rsqrt_optab, "rsqrt$a2")
cd1440b1
RH
324OPTAB_D (scalb_optab, "scalb$a3")
325OPTAB_D (signbit_optab, "signbit$F$a2")
326OPTAB_D (significand_optab, "significand$a2")
327OPTAB_D (sin_optab, "sin$a2")
328OPTAB_D (sincos_optab, "sincos$a3")
247c45b2 329OPTAB_D (sinh_optab, "sinh$a2")
cd1440b1 330OPTAB_D (tan_optab, "tan$a2")
247c45b2 331OPTAB_D (tanh_optab, "tanh$a2")
cd1440b1 332
ccb57bb0
DS
333/* C99 implementations of fmax/fmin. */
334OPTAB_D (fmax_optab, "fmax$a3")
335OPTAB_D (fmin_optab, "fmin$a3")
336
d43a252e
AL
337/* Vector reduction to a scalar. */
338OPTAB_D (reduc_smax_scal_optab, "reduc_smax_scal_$a")
339OPTAB_D (reduc_smin_scal_optab, "reduc_smin_scal_$a")
340OPTAB_D (reduc_plus_scal_optab, "reduc_plus_scal_$a")
341OPTAB_D (reduc_umax_scal_optab, "reduc_umax_scal_$a")
342OPTAB_D (reduc_umin_scal_optab, "reduc_umin_scal_$a")
898f07b0
RS
343OPTAB_D (reduc_and_scal_optab, "reduc_and_scal_$a")
344OPTAB_D (reduc_ior_scal_optab, "reduc_ior_scal_$a")
345OPTAB_D (reduc_xor_scal_optab, "reduc_xor_scal_$a")
b781a135 346OPTAB_D (fold_left_plus_optab, "fold_left_plus_$a")
bce29d65 347OPTAB_D (mask_fold_left_plus_optab, "mask_fold_left_plus_$a")
d43a252e 348
bfe1bb57 349OPTAB_D (extract_last_optab, "extract_last_$a")
bb6c2b68 350OPTAB_D (fold_extract_last_optab, "fold_extract_last_$a")
bfe1bb57 351
0267732b
RS
352OPTAB_D (savg_floor_optab, "avg$a3_floor")
353OPTAB_D (uavg_floor_optab, "uavg$a3_floor")
354OPTAB_D (savg_ceil_optab, "avg$a3_ceil")
355OPTAB_D (uavg_ceil_optab, "uavg$a3_ceil")
cd1440b1
RH
356OPTAB_D (sdot_prod_optab, "sdot_prod$I$a")
357OPTAB_D (ssum_widen_optab, "widen_ssum$I$a3")
358OPTAB_D (udot_prod_optab, "udot_prod$I$a")
ab0a6b21 359OPTAB_D (usdot_prod_optab, "usdot_prod$I$a")
cd1440b1 360OPTAB_D (usum_widen_optab, "widen_usum$I$a3")
79d652a5
CH
361OPTAB_D (usad_optab, "usad$I$a")
362OPTAB_D (ssad_optab, "ssad$I$a")
58cc9876
YW
363OPTAB_D (smulhs_optab, "smulhs$a3")
364OPTAB_D (smulhrs_optab, "smulhrs$a3")
365OPTAB_D (umulhs_optab, "umulhs$a3")
366OPTAB_D (umulhrs_optab, "umulhrs$a3")
c0c2f013 367OPTAB_D (sdiv_pow2_optab, "sdiv_pow2$a3")
cd1440b1
RH
368OPTAB_D (vec_pack_sfix_trunc_optab, "vec_pack_sfix_trunc_$a")
369OPTAB_D (vec_pack_ssat_optab, "vec_pack_ssat_$a")
370OPTAB_D (vec_pack_trunc_optab, "vec_pack_trunc_$a")
371OPTAB_D (vec_pack_ufix_trunc_optab, "vec_pack_ufix_trunc_$a")
4714942e 372OPTAB_D (vec_pack_sbool_trunc_optab, "vec_pack_sbool_trunc_$a")
cd1440b1 373OPTAB_D (vec_pack_usat_optab, "vec_pack_usat_$a")
1bda738b
JJ
374OPTAB_D (vec_packs_float_optab, "vec_packs_float_$a")
375OPTAB_D (vec_packu_float_optab, "vec_packu_float_$a")
cd1440b1
RH
376OPTAB_D (vec_perm_optab, "vec_perm$a")
377OPTAB_D (vec_realign_load_optab, "vec_realign_load_$a")
378OPTAB_D (vec_set_optab, "vec_set$a")
2e83f583 379OPTAB_D (vec_shl_optab, "vec_shl_$a")
cd1440b1 380OPTAB_D (vec_shr_optab, "vec_shr_$a")
1bda738b
JJ
381OPTAB_D (vec_unpack_sfix_trunc_hi_optab, "vec_unpack_sfix_trunc_hi_$a")
382OPTAB_D (vec_unpack_sfix_trunc_lo_optab, "vec_unpack_sfix_trunc_lo_$a")
383OPTAB_D (vec_unpack_ufix_trunc_hi_optab, "vec_unpack_ufix_trunc_hi_$a")
384OPTAB_D (vec_unpack_ufix_trunc_lo_optab, "vec_unpack_ufix_trunc_lo_$a")
cd1440b1
RH
385OPTAB_D (vec_unpacks_float_hi_optab, "vec_unpacks_float_hi_$a")
386OPTAB_D (vec_unpacks_float_lo_optab, "vec_unpacks_float_lo_$a")
387OPTAB_D (vec_unpacks_hi_optab, "vec_unpacks_hi_$a")
388OPTAB_D (vec_unpacks_lo_optab, "vec_unpacks_lo_$a")
4714942e
JJ
389OPTAB_D (vec_unpacks_sbool_hi_optab, "vec_unpacks_sbool_hi_$a")
390OPTAB_D (vec_unpacks_sbool_lo_optab, "vec_unpacks_sbool_lo_$a")
cd1440b1
RH
391OPTAB_D (vec_unpacku_float_hi_optab, "vec_unpacku_float_hi_$a")
392OPTAB_D (vec_unpacku_float_lo_optab, "vec_unpacku_float_lo_$a")
393OPTAB_D (vec_unpacku_hi_optab, "vec_unpacku_hi_$a")
394OPTAB_D (vec_unpacku_lo_optab, "vec_unpacku_lo_$a")
395OPTAB_D (vec_widen_smult_even_optab, "vec_widen_smult_even_$a")
396OPTAB_D (vec_widen_smult_hi_optab, "vec_widen_smult_hi_$a")
397OPTAB_D (vec_widen_smult_lo_optab, "vec_widen_smult_lo_$a")
398OPTAB_D (vec_widen_smult_odd_optab, "vec_widen_smult_odd_$a")
9fc9573f
JH
399OPTAB_D (vec_widen_ssubl_hi_optab, "vec_widen_ssubl_hi_$a")
400OPTAB_D (vec_widen_ssubl_lo_optab, "vec_widen_ssubl_lo_$a")
401OPTAB_D (vec_widen_saddl_hi_optab, "vec_widen_saddl_hi_$a")
402OPTAB_D (vec_widen_saddl_lo_optab, "vec_widen_saddl_lo_$a")
cd1440b1
RH
403OPTAB_D (vec_widen_sshiftl_hi_optab, "vec_widen_sshiftl_hi_$a")
404OPTAB_D (vec_widen_sshiftl_lo_optab, "vec_widen_sshiftl_lo_$a")
405OPTAB_D (vec_widen_umult_even_optab, "vec_widen_umult_even_$a")
406OPTAB_D (vec_widen_umult_hi_optab, "vec_widen_umult_hi_$a")
407OPTAB_D (vec_widen_umult_lo_optab, "vec_widen_umult_lo_$a")
408OPTAB_D (vec_widen_umult_odd_optab, "vec_widen_umult_odd_$a")
409OPTAB_D (vec_widen_ushiftl_hi_optab, "vec_widen_ushiftl_hi_$a")
410OPTAB_D (vec_widen_ushiftl_lo_optab, "vec_widen_ushiftl_lo_$a")
9fc9573f
JH
411OPTAB_D (vec_widen_usubl_hi_optab, "vec_widen_usubl_hi_$a")
412OPTAB_D (vec_widen_usubl_lo_optab, "vec_widen_usubl_lo_$a")
413OPTAB_D (vec_widen_uaddl_hi_optab, "vec_widen_uaddl_hi_$a")
414OPTAB_D (vec_widen_uaddl_lo_optab, "vec_widen_uaddl_lo_$a")
7a6c31f0 415OPTAB_D (vec_addsub_optab, "vec_addsub$a3")
7d810646
RB
416OPTAB_D (vec_fmaddsub_optab, "vec_fmaddsub$a4")
417OPTAB_D (vec_fmsubadd_optab, "vec_fmsubadd$a4")
cd1440b1
RH
418
419OPTAB_D (sync_add_optab, "sync_add$I$a")
420OPTAB_D (sync_and_optab, "sync_and$I$a")
421OPTAB_D (sync_ior_optab, "sync_ior$I$a")
422OPTAB_D (sync_lock_release_optab, "sync_lock_release$I$a")
423OPTAB_D (sync_nand_optab, "sync_nand$I$a")
424OPTAB_D (sync_sub_optab, "sync_sub$I$a")
425OPTAB_D (sync_xor_optab, "sync_xor$I$a")
426
427OPTAB_D (atomic_add_fetch_optab, "atomic_add_fetch$I$a")
428OPTAB_D (atomic_add_optab, "atomic_add$I$a")
429OPTAB_D (atomic_and_fetch_optab, "atomic_and_fetch$I$a")
430OPTAB_D (atomic_and_optab, "atomic_and$I$a")
adedd5c1
JJ
431OPTAB_D (atomic_bit_test_and_set_optab, "atomic_bit_test_and_set$I$a")
432OPTAB_D (atomic_bit_test_and_complement_optab, "atomic_bit_test_and_complement$I$a")
433OPTAB_D (atomic_bit_test_and_reset_optab, "atomic_bit_test_and_reset$I$a")
cd1440b1
RH
434OPTAB_D (atomic_compare_and_swap_optab, "atomic_compare_and_swap$I$a")
435OPTAB_D (atomic_exchange_optab, "atomic_exchange$I$a")
436OPTAB_D (atomic_fetch_add_optab, "atomic_fetch_add$I$a")
437OPTAB_D (atomic_fetch_and_optab, "atomic_fetch_and$I$a")
438OPTAB_D (atomic_fetch_nand_optab, "atomic_fetch_nand$I$a")
439OPTAB_D (atomic_fetch_or_optab, "atomic_fetch_or$I$a")
440OPTAB_D (atomic_fetch_sub_optab, "atomic_fetch_sub$I$a")
441OPTAB_D (atomic_fetch_xor_optab, "atomic_fetch_xor$I$a")
442OPTAB_D (atomic_load_optab, "atomic_load$I$a")
443OPTAB_D (atomic_nand_fetch_optab, "atomic_nand_fetch$I$a")
444OPTAB_D (atomic_nand_optab, "atomic_nand$I$a")
445OPTAB_D (atomic_or_fetch_optab, "atomic_or_fetch$I$a")
446OPTAB_D (atomic_or_optab, "atomic_or$I$a")
447OPTAB_D (atomic_store_optab, "atomic_store$I$a")
448OPTAB_D (atomic_sub_fetch_optab, "atomic_sub_fetch$I$a")
449OPTAB_D (atomic_sub_optab, "atomic_sub$I$a")
450OPTAB_D (atomic_xor_fetch_optab, "atomic_xor_fetch$I$a")
451OPTAB_D (atomic_xor_optab, "atomic_xor$I$a")
f959607b
CLT
452
453OPTAB_D (get_thread_pointer_optab, "get_thread_pointer$I$a")
454OPTAB_D (set_thread_pointer_optab, "set_thread_pointer$I$a")
be4c1d4a 455
58c036c8
RS
456OPTAB_D (check_raw_ptrs_optab, "check_raw_ptrs$a")
457OPTAB_D (check_war_ptrs_optab, "check_war_ptrs$a")
458
be4c1d4a 459OPTAB_DC (vec_duplicate_optab, "vec_duplicate$a", VEC_DUPLICATE)
9adab579 460OPTAB_DC (vec_series_optab, "vec_series$a", VEC_SERIES)
f1739b48 461OPTAB_D (vec_shl_insert_optab, "vec_shl_insert_$a")
d496134a
KL
462OPTAB_D (len_load_optab, "len_load_$a")
463OPTAB_D (len_store_optab, "len_store_$a")