]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/optabs.def
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / optabs.def
CommitLineData
cd1440b1 1/* Definitions for operation tables, or "optabs".
aeee4812 2 Copyright (C) 1987-2023 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")
bd68b33f
JZ
94OPTAB_CD(mask_len_load_optab, "mask_len_load$a$b")
95OPTAB_CD(mask_len_store_optab, "mask_len_store$a$b")
09eb042a
RS
96OPTAB_CD(gather_load_optab, "gather_load$a$b")
97OPTAB_CD(mask_gather_load_optab, "mask_gather_load$a$b")
bd68b33f 98OPTAB_CD(mask_len_gather_load_optab, "mask_len_gather_load$a$b")
09eb042a
RS
99OPTAB_CD(scatter_store_optab, "scatter_store$a$b")
100OPTAB_CD(mask_scatter_store_optab, "mask_scatter_store$a$b")
bd68b33f 101OPTAB_CD(mask_len_scatter_store_optab, "mask_len_scatter_store$a$b")
ff03930a
JJ
102OPTAB_CD(vec_extract_optab, "vec_extract$a$b")
103OPTAB_CD(vec_init_optab, "vec_init$a$b")
cd1440b1 104
7cfb4d93
RS
105OPTAB_CD (while_ult_optab, "while_ult$a$b")
106
cd1440b1
RH
107OPTAB_NL(add_optab, "add$P$a3", PLUS, "add", '3', gen_int_fp_fixed_libfunc)
108OPTAB_NX(add_optab, "add$F$a3")
109OPTAB_NX(add_optab, "add$Q$a3")
110OPTAB_VL(addv_optab, "addv$I$a3", PLUS, "add", '3', gen_intv_fp_libfunc)
111OPTAB_VX(addv_optab, "add$F$a3")
112OPTAB_NL(ssadd_optab, "ssadd$Q$a3", SS_PLUS, "ssadd", '3', gen_signed_fixed_libfunc)
113OPTAB_NL(usadd_optab, "usadd$Q$a3", US_PLUS, "usadd", '3', gen_unsigned_fixed_libfunc)
114OPTAB_NL(sub_optab, "sub$P$a3", MINUS, "sub", '3', gen_int_fp_fixed_libfunc)
115OPTAB_NX(sub_optab, "sub$F$a3")
116OPTAB_NX(sub_optab, "sub$Q$a3")
117OPTAB_VL(subv_optab, "subv$I$a3", MINUS, "sub", '3', gen_intv_fp_libfunc)
118OPTAB_VX(subv_optab, "sub$F$a3")
119OPTAB_NL(sssub_optab, "sssub$Q$a3", SS_MINUS, "sssub", '3', gen_signed_fixed_libfunc)
120OPTAB_NL(ussub_optab, "ussub$Q$a3", US_MINUS, "ussub", '3', gen_unsigned_fixed_libfunc)
121OPTAB_NL(smul_optab, "mul$Q$a3", MULT, "mul", '3', gen_int_fp_fixed_libfunc)
122OPTAB_NX(smul_optab, "mul$P$a3")
123OPTAB_NX(smul_optab, "mul$F$a3")
124OPTAB_VL(smulv_optab, "mulv$I$a3", MULT, "mul", '3', gen_intv_fp_libfunc)
125OPTAB_VX(smulv_optab, "mul$F$a3")
126OPTAB_NL(ssmul_optab, "ssmul$Q$a3", SS_MULT, "ssmul", '3', gen_signed_fixed_libfunc)
127OPTAB_NL(usmul_optab, "usmul$Q$a3", US_MULT, "usmul", '3', gen_unsigned_fixed_libfunc)
128OPTAB_NL(sdiv_optab, "div$a3", DIV, "div", '3', gen_int_fp_signed_fixed_libfunc)
129OPTAB_VL(sdivv_optab, "divv$I$a3", DIV, "divv", '3', gen_int_libfunc)
130OPTAB_VX(sdivv_optab, "div$F$a3")
131OPTAB_NL(ssdiv_optab, "ssdiv$Q$a3", SS_DIV, "ssdiv", '3', gen_signed_fixed_libfunc)
132OPTAB_NL(udiv_optab, "udiv$I$a3", UDIV, "udiv", '3', gen_int_unsigned_fixed_libfunc)
133OPTAB_NX(udiv_optab, "udiv$Q$a3")
134OPTAB_NL(usdiv_optab, "usdiv$Q$a3", US_DIV, "usdiv", '3', gen_unsigned_fixed_libfunc)
b0057783
PK
135OPTAB_NC(sdivmod_optab, "divmod$a4", UNKNOWN)
136OPTAB_NC(udivmod_optab, "udivmod$a4", UNKNOWN)
cd1440b1
RH
137OPTAB_NL(smod_optab, "mod$a3", MOD, "mod", '3', gen_int_libfunc)
138OPTAB_NL(umod_optab, "umod$a3", UMOD, "umod", '3', gen_int_libfunc)
139OPTAB_NL(ftrunc_optab, "ftrunc$F$a2", UNKNOWN, "ftrunc", '2', gen_fp_libfunc)
140OPTAB_NL(and_optab, "and$a3", AND, "and", '3', gen_int_libfunc)
141OPTAB_NL(ior_optab, "ior$a3", IOR, "ior", '3', gen_int_libfunc)
142OPTAB_NL(xor_optab, "xor$a3", XOR, "xor", '3', gen_int_libfunc)
143OPTAB_NL(ashl_optab, "ashl$a3", ASHIFT, "ashl", '3', gen_int_fixed_libfunc)
144OPTAB_NL(ssashl_optab, "ssashl$Q$a3", SS_ASHIFT, "ssashl", '3', gen_signed_fixed_libfunc)
145OPTAB_NL(usashl_optab, "usashl$Q$a3", US_ASHIFT, "usashl", '3', gen_unsigned_fixed_libfunc)
146OPTAB_NL(ashr_optab, "ashr$a3", ASHIFTRT, "ashr", '3', gen_int_signed_fixed_libfunc)
147OPTAB_NL(lshr_optab, "lshr$a3", LSHIFTRT, "lshr", '3', gen_int_unsigned_fixed_libfunc)
148OPTAB_NC(rotl_optab, "rotl$a3", ROTATE)
149OPTAB_NC(rotr_optab, "rotr$a3", ROTATERT)
150OPTAB_VC(vashl_optab, "vashl$a3", ASHIFT)
151OPTAB_VC(vashr_optab, "vashr$a3", ASHIFTRT)
152OPTAB_VC(vlshr_optab, "vlshr$a3", LSHIFTRT)
153OPTAB_VC(vrotl_optab, "vrotl$a3", ROTATE)
154OPTAB_VC(vrotr_optab, "vrotr$a3", ROTATERT)
155OPTAB_NL(smin_optab, "smin$a3", SMIN, "min", '3', gen_int_fp_libfunc)
156OPTAB_NL(smax_optab, "smax$a3", SMAX, "max", '3', gen_int_fp_libfunc)
157OPTAB_NL(umin_optab, "umin$I$a3", UMIN, "umin", '3', gen_int_libfunc)
158OPTAB_NL(umax_optab, "umax$I$a3", UMAX, "umax", '3', gen_int_libfunc)
159
160OPTAB_NL(neg_optab, "neg$P$a2", NEG, "neg", '2', gen_int_fp_fixed_libfunc)
161OPTAB_NX(neg_optab, "neg$F$a2")
162OPTAB_NX(neg_optab, "neg$Q$a2")
163OPTAB_VL(negv_optab, "negv$I$a2", NEG, "neg", '2', gen_intv_fp_libfunc)
164OPTAB_VX(negv_optab, "neg$F$a2")
165OPTAB_NL(ssneg_optab, "ssneg$Q$a2", SS_NEG, "ssneg", '2', gen_signed_fixed_libfunc)
166OPTAB_NL(usneg_optab, "usneg$Q$a2", US_NEG, "usneg", '2', gen_unsigned_fixed_libfunc)
167OPTAB_NC(abs_optab, "abs$P$a2", ABS)
168OPTAB_NX(abs_optab, "abs$F$a2")
169OPTAB_VC(absv_optab, "absv$I$a2", ABS)
170OPTAB_VX(absv_optab, "abs$F$a2")
171OPTAB_NL(one_cmpl_optab, "one_cmpl$a2", NOT, "one_cmpl", '2', gen_int_libfunc)
172OPTAB_NC(bswap_optab, "bswap$a2", BSWAP)
173OPTAB_NL(ffs_optab, "ffs$a2", FFS, "ffs", '2', gen_int_libfunc)
174OPTAB_NL(clz_optab, "clz$a2", CLZ, "clz", '2', gen_int_libfunc)
175OPTAB_NL(ctz_optab, "ctz$a2", CTZ, "ctz", '2', gen_int_libfunc)
176OPTAB_NL(clrsb_optab, "clrsb$a2", CLRSB, "clrsb", '2', gen_int_libfunc)
177OPTAB_NL(popcount_optab, "popcount$a2", POPCOUNT, "popcount", '2', gen_int_libfunc)
178OPTAB_NL(parity_optab, "parity$a2", PARITY, "parity", '2', gen_int_libfunc)
179
180/* Comparison libcalls for integers MUST come in pairs, signed/unsigned. */
181OPTAB_NL(cmp_optab, NULL, UNKNOWN, "cmp", '2', gen_int_fp_fixed_libfunc)
182OPTAB_NL(ucmp_optab, NULL, UNKNOWN, "ucmp", '2', gen_int_libfunc)
183
184/* EQ etc are floating point comparisons. */
185OPTAB_NL(eq_optab, NULL, EQ, "eq", '2', gen_fp_libfunc)
186OPTAB_NL(ne_optab, NULL, NE, "ne", '2', gen_fp_libfunc)
187OPTAB_NL(gt_optab, NULL, GT, "gt", '2', gen_fp_libfunc)
188OPTAB_NL(ge_optab, NULL, GE, "ge", '2', gen_fp_libfunc)
189OPTAB_NL(lt_optab, NULL, LT, "lt", '2', gen_fp_libfunc)
190OPTAB_NL(le_optab, NULL, LE, "le", '2', gen_fp_libfunc)
191OPTAB_NL(unord_optab, NULL, UNORDERED, "unord", '2', gen_fp_libfunc)
192
193OPTAB_NL(powi_optab, NULL, UNKNOWN, "powi", '2', gen_fp_libfunc)
194
195/* These are all initialized individually, on a per-host basis. */
196OPTAB_NC(sqrt_optab, "sqrt$a2", SQRT)
197OPTAB_NC(sync_old_add_optab, "sync_old_add$I$a", UNKNOWN)
198OPTAB_NC(sync_old_sub_optab, "sync_old_sub$I$a", UNKNOWN)
199OPTAB_NC(sync_old_ior_optab, "sync_old_ior$I$a", UNKNOWN)
200OPTAB_NC(sync_old_and_optab, "sync_old_and$I$a", UNKNOWN)
201OPTAB_NC(sync_old_xor_optab, "sync_old_xor$I$a", UNKNOWN)
202OPTAB_NC(sync_old_nand_optab, "sync_old_nand$I$a", UNKNOWN)
203OPTAB_NC(sync_new_add_optab, "sync_new_add$I$a", UNKNOWN)
204OPTAB_NC(sync_new_sub_optab, "sync_new_sub$I$a", UNKNOWN)
205OPTAB_NC(sync_new_ior_optab, "sync_new_ior$I$a", UNKNOWN)
206OPTAB_NC(sync_new_and_optab, "sync_new_and$I$a", UNKNOWN)
207OPTAB_NC(sync_new_xor_optab, "sync_new_xor$I$a", UNKNOWN)
208OPTAB_NC(sync_new_nand_optab, "sync_new_nand$I$a", UNKNOWN)
209OPTAB_NC(sync_compare_and_swap_optab, "sync_compare_and_swap$I$a", UNKNOWN)
210OPTAB_NC(sync_lock_test_and_set_optab, "sync_lock_test_and_set$I$a", UNKNOWN)
211
212OPTAB_DC(mov_optab, "mov$a", SET)
213OPTAB_DC(movstrict_optab, "movstrict$a", STRICT_LOW_PART)
214OPTAB_D (movmisalign_optab, "movmisalign$a")
215OPTAB_D (storent_optab, "storent$a")
d2eeb2d1
RS
216OPTAB_D (insv_optab, "insv$a")
217OPTAB_D (extv_optab, "extv$a")
218OPTAB_D (extzv_optab, "extzv$a")
219OPTAB_D (insvmisalign_optab, "insvmisalign$a")
220OPTAB_D (extvmisalign_optab, "extvmisalign$a")
221OPTAB_D (extzvmisalign_optab, "extzvmisalign$a")
cd1440b1
RH
222OPTAB_D (push_optab, "push$a1")
223OPTAB_D (reload_in_optab, "reload_in$a")
224OPTAB_D (reload_out_optab, "reload_out$a")
225
226OPTAB_DC(cbranch_optab, "cbranch$a4", COMPARE)
dc582d2e
TC
227OPTAB_D (tbranch_eq_optab, "tbranch_eq$a3")
228OPTAB_D (tbranch_ne_optab, "tbranch_ne$a3")
cd1440b1 229OPTAB_D (addcc_optab, "add$acc")
ce68b5cf
KT
230OPTAB_D (negcc_optab, "neg$acc")
231OPTAB_D (notcc_optab, "not$acc")
cd1440b1 232OPTAB_D (movcc_optab, "mov$acc")
0972596e
RS
233OPTAB_D (cond_add_optab, "cond_add$a")
234OPTAB_D (cond_sub_optab, "cond_sub$a")
6c4fd4a9
RS
235OPTAB_D (cond_smul_optab, "cond_mul$a")
236OPTAB_D (cond_sdiv_optab, "cond_div$a")
237OPTAB_D (cond_smod_optab, "cond_mod$a")
238OPTAB_D (cond_udiv_optab, "cond_udiv$a")
239OPTAB_D (cond_umod_optab, "cond_umod$a")
0972596e
RS
240OPTAB_D (cond_and_optab, "cond_and$a")
241OPTAB_D (cond_ior_optab, "cond_ior$a")
242OPTAB_D (cond_xor_optab, "cond_xor$a")
20103c0e
RS
243OPTAB_D (cond_ashl_optab, "cond_ashl$a")
244OPTAB_D (cond_ashr_optab, "cond_ashr$a")
245OPTAB_D (cond_lshr_optab, "cond_lshr$a")
0972596e
RS
246OPTAB_D (cond_smin_optab, "cond_smin$a")
247OPTAB_D (cond_smax_optab, "cond_smax$a")
248OPTAB_D (cond_umin_optab, "cond_umin$a")
249OPTAB_D (cond_umax_optab, "cond_umax$a")
70613000
RS
250OPTAB_D (cond_fmin_optab, "cond_fmin$a")
251OPTAB_D (cond_fmax_optab, "cond_fmax$a")
b41d1f6e
RS
252OPTAB_D (cond_fma_optab, "cond_fma$a")
253OPTAB_D (cond_fms_optab, "cond_fms$a")
254OPTAB_D (cond_fnma_optab, "cond_fnma$a")
255OPTAB_D (cond_fnms_optab, "cond_fnms$a")
20dcda98 256OPTAB_D (cond_neg_optab, "cond_neg$a")
6c96d1e4
JZZ
257OPTAB_D (cond_len_add_optab, "cond_len_add$a")
258OPTAB_D (cond_len_sub_optab, "cond_len_sub$a")
259OPTAB_D (cond_len_smul_optab, "cond_len_mul$a")
260OPTAB_D (cond_len_sdiv_optab, "cond_len_div$a")
261OPTAB_D (cond_len_smod_optab, "cond_len_mod$a")
262OPTAB_D (cond_len_udiv_optab, "cond_len_udiv$a")
263OPTAB_D (cond_len_umod_optab, "cond_len_umod$a")
264OPTAB_D (cond_len_and_optab, "cond_len_and$a")
265OPTAB_D (cond_len_ior_optab, "cond_len_ior$a")
266OPTAB_D (cond_len_xor_optab, "cond_len_xor$a")
267OPTAB_D (cond_len_ashl_optab, "cond_len_ashl$a")
268OPTAB_D (cond_len_ashr_optab, "cond_len_ashr$a")
269OPTAB_D (cond_len_lshr_optab, "cond_len_lshr$a")
270OPTAB_D (cond_len_smin_optab, "cond_len_smin$a")
271OPTAB_D (cond_len_smax_optab, "cond_len_smax$a")
272OPTAB_D (cond_len_umin_optab, "cond_len_umin$a")
273OPTAB_D (cond_len_umax_optab, "cond_len_umax$a")
274OPTAB_D (cond_len_fmin_optab, "cond_len_fmin$a")
275OPTAB_D (cond_len_fmax_optab, "cond_len_fmax$a")
276OPTAB_D (cond_len_fma_optab, "cond_len_fma$a")
277OPTAB_D (cond_len_fms_optab, "cond_len_fms$a")
278OPTAB_D (cond_len_fnma_optab, "cond_len_fnma$a")
279OPTAB_D (cond_len_fnms_optab, "cond_len_fnms$a")
280OPTAB_D (cond_len_neg_optab, "cond_len_neg$a")
cd1440b1
RH
281OPTAB_D (cmov_optab, "cmov$a6")
282OPTAB_D (cstore_optab, "cstore$a4")
283OPTAB_D (ctrap_optab, "ctrap$a4")
31e071ae
MP
284OPTAB_D (addv4_optab, "addv$I$a4")
285OPTAB_D (subv4_optab, "subv$I$a4")
286OPTAB_D (mulv4_optab, "mulv$I$a4")
cde9d596
RH
287OPTAB_D (uaddv4_optab, "uaddv$I$a4")
288OPTAB_D (usubv4_optab, "usubv$I$a4")
1304953e 289OPTAB_D (umulv4_optab, "umulv$I$a4")
31e071ae 290OPTAB_D (negv3_optab, "negv$I$a3")
43a3252c
JJ
291OPTAB_D (uaddc5_optab, "uaddc$I$a5")
292OPTAB_D (usubc5_optab, "usubc$I$a5")
72a4ddf2 293OPTAB_D (addptr3_optab, "addptr$a3")
463d9108 294OPTAB_D (spaceship_optab, "spaceship$a3")
cd1440b1
RH
295
296OPTAB_D (smul_highpart_optab, "smul$a3_highpart")
297OPTAB_D (umul_highpart_optab, "umul$a3_highpart")
298
299OPTAB_D (cmpmem_optab, "cmpmem$a")
300OPTAB_D (cmpstr_optab, "cmpstr$a")
301OPTAB_D (cmpstrn_optab, "cmpstrn$a")
76715c32 302OPTAB_D (cpymem_optab, "cpymem$a")
02e3025e 303OPTAB_D (movmem_optab, "movmem$a")
cd1440b1
RH
304OPTAB_D (setmem_optab, "setmem$a")
305OPTAB_D (strlen_optab, "strlen$a")
6f966f06 306OPTAB_D (rawmemchr_optab, "rawmemchr$a")
cd1440b1
RH
307
308OPTAB_DC(fma_optab, "fma$a4", FMA)
309OPTAB_D (fms_optab, "fms$a4")
310OPTAB_D (fnma_optab, "fnma$a4")
311OPTAB_D (fnms_optab, "fnms$a4")
312
313OPTAB_D (rint_optab, "rint$a2")
314OPTAB_D (round_optab, "round$a2")
d3b92f35 315OPTAB_D (roundeven_optab, "roundeven$a2")
cd1440b1
RH
316OPTAB_D (floor_optab, "floor$a2")
317OPTAB_D (ceil_optab, "ceil$a2")
318OPTAB_D (btrunc_optab, "btrunc$a2")
319OPTAB_D (nearbyint_optab, "nearbyint$a2")
320
321OPTAB_D (acos_optab, "acos$a2")
a81037ce 322OPTAB_D (acosh_optab, "acosh$a2")
cd1440b1 323OPTAB_D (asin_optab, "asin$a2")
a81037ce 324OPTAB_D (asinh_optab, "asinh$a2")
cd1440b1
RH
325OPTAB_D (atan2_optab, "atan2$a3")
326OPTAB_D (atan_optab, "atan$a2")
a81037ce 327OPTAB_D (atanh_optab, "atanh$a2")
cd1440b1 328OPTAB_D (copysign_optab, "copysign$F$a3")
336a06a1 329OPTAB_D (xorsign_optab, "xorsign$F$a3")
3ed472af
TC
330OPTAB_D (cadd90_optab, "cadd90$a3")
331OPTAB_D (cadd270_optab, "cadd270$a3")
e09173d8
TC
332OPTAB_D (cmul_optab, "cmul$a3")
333OPTAB_D (cmul_conj_optab, "cmul_conj$a3")
31fac318
TC
334OPTAB_D (cmla_optab, "cmla$a4")
335OPTAB_D (cmla_conj_optab, "cmla_conj$a4")
478e571a
TC
336OPTAB_D (cmls_optab, "cmls$a4")
337OPTAB_D (cmls_conj_optab, "cmls_conj$a4")
cd1440b1 338OPTAB_D (cos_optab, "cos$a2")
247c45b2 339OPTAB_D (cosh_optab, "cosh$a2")
cd1440b1
RH
340OPTAB_D (exp10_optab, "exp10$a2")
341OPTAB_D (exp2_optab, "exp2$a2")
342OPTAB_D (exp_optab, "exp$a2")
343OPTAB_D (expm1_optab, "expm1$a2")
344OPTAB_D (fmod_optab, "fmod$a3")
4dd9b6c6 345OPTAB_D (hypot_optab, "hypot$a3")
cd1440b1
RH
346OPTAB_D (ilogb_optab, "ilogb$a2")
347OPTAB_D (isinf_optab, "isinf$a2")
0982edd3 348OPTAB_D (issignaling_optab, "issignaling$a2")
cd1440b1
RH
349OPTAB_D (ldexp_optab, "ldexp$a3")
350OPTAB_D (log10_optab, "log10$a2")
351OPTAB_D (log1p_optab, "log1p$a2")
352OPTAB_D (log2_optab, "log2$a2")
353OPTAB_D (log_optab, "log$a2")
354OPTAB_D (logb_optab, "logb$a2")
355OPTAB_D (pow_optab, "pow$a3")
356OPTAB_D (remainder_optab, "remainder$a3")
ee62a5a6 357OPTAB_D (rsqrt_optab, "rsqrt$a2")
cd1440b1
RH
358OPTAB_D (scalb_optab, "scalb$a3")
359OPTAB_D (signbit_optab, "signbit$F$a2")
360OPTAB_D (significand_optab, "significand$a2")
361OPTAB_D (sin_optab, "sin$a2")
362OPTAB_D (sincos_optab, "sincos$a3")
247c45b2 363OPTAB_D (sinh_optab, "sinh$a2")
cd1440b1 364OPTAB_D (tan_optab, "tan$a2")
247c45b2 365OPTAB_D (tanh_optab, "tanh$a2")
cd1440b1 366
4343f5e2
RFF
367OPTAB_D (fegetround_optab, "fegetround$a")
368OPTAB_D (feclearexcept_optab, "feclearexcept$a")
369OPTAB_D (feraiseexcept_optab, "feraiseexcept$a")
370
ccb57bb0
DS
371/* C99 implementations of fmax/fmin. */
372OPTAB_D (fmax_optab, "fmax$a3")
373OPTAB_D (fmin_optab, "fmin$a3")
374
d43a252e 375/* Vector reduction to a scalar. */
e32b9eb3
RS
376OPTAB_D (reduc_fmax_scal_optab, "reduc_fmax_scal_$a")
377OPTAB_D (reduc_fmin_scal_optab, "reduc_fmin_scal_$a")
d43a252e
AL
378OPTAB_D (reduc_smax_scal_optab, "reduc_smax_scal_$a")
379OPTAB_D (reduc_smin_scal_optab, "reduc_smin_scal_$a")
380OPTAB_D (reduc_plus_scal_optab, "reduc_plus_scal_$a")
381OPTAB_D (reduc_umax_scal_optab, "reduc_umax_scal_$a")
382OPTAB_D (reduc_umin_scal_optab, "reduc_umin_scal_$a")
898f07b0
RS
383OPTAB_D (reduc_and_scal_optab, "reduc_and_scal_$a")
384OPTAB_D (reduc_ior_scal_optab, "reduc_ior_scal_$a")
385OPTAB_D (reduc_xor_scal_optab, "reduc_xor_scal_$a")
b781a135 386OPTAB_D (fold_left_plus_optab, "fold_left_plus_$a")
bce29d65 387OPTAB_D (mask_fold_left_plus_optab, "mask_fold_left_plus_$a")
ba49332b 388OPTAB_D (mask_len_fold_left_plus_optab, "mask_len_fold_left_plus_$a")
d43a252e 389
bfe1bb57 390OPTAB_D (extract_last_optab, "extract_last_$a")
bb6c2b68 391OPTAB_D (fold_extract_last_optab, "fold_extract_last_$a")
bfe1bb57 392
710b8dec
OA
393OPTAB_D (uabd_optab, "uabd$a3")
394OPTAB_D (sabd_optab, "sabd$a3")
0267732b
RS
395OPTAB_D (savg_floor_optab, "avg$a3_floor")
396OPTAB_D (uavg_floor_optab, "uavg$a3_floor")
397OPTAB_D (savg_ceil_optab, "avg$a3_ceil")
398OPTAB_D (uavg_ceil_optab, "uavg$a3_ceil")
cd1440b1
RH
399OPTAB_D (sdot_prod_optab, "sdot_prod$I$a")
400OPTAB_D (ssum_widen_optab, "widen_ssum$I$a3")
401OPTAB_D (udot_prod_optab, "udot_prod$I$a")
ab0a6b21 402OPTAB_D (usdot_prod_optab, "usdot_prod$I$a")
cd1440b1 403OPTAB_D (usum_widen_optab, "widen_usum$I$a3")
79d652a5
CH
404OPTAB_D (usad_optab, "usad$I$a")
405OPTAB_D (ssad_optab, "ssad$I$a")
58cc9876
YW
406OPTAB_D (smulhs_optab, "smulhs$a3")
407OPTAB_D (smulhrs_optab, "smulhrs$a3")
408OPTAB_D (umulhs_optab, "umulhs$a3")
409OPTAB_D (umulhrs_optab, "umulhrs$a3")
c0c2f013 410OPTAB_D (sdiv_pow2_optab, "sdiv_pow2$a3")
cd1440b1
RH
411OPTAB_D (vec_pack_sfix_trunc_optab, "vec_pack_sfix_trunc_$a")
412OPTAB_D (vec_pack_ssat_optab, "vec_pack_ssat_$a")
413OPTAB_D (vec_pack_trunc_optab, "vec_pack_trunc_$a")
414OPTAB_D (vec_pack_ufix_trunc_optab, "vec_pack_ufix_trunc_$a")
4714942e 415OPTAB_D (vec_pack_sbool_trunc_optab, "vec_pack_sbool_trunc_$a")
cd1440b1 416OPTAB_D (vec_pack_usat_optab, "vec_pack_usat_$a")
1bda738b
JJ
417OPTAB_D (vec_packs_float_optab, "vec_packs_float_$a")
418OPTAB_D (vec_packu_float_optab, "vec_packu_float_$a")
cd1440b1
RH
419OPTAB_D (vec_perm_optab, "vec_perm$a")
420OPTAB_D (vec_realign_load_optab, "vec_realign_load_$a")
421OPTAB_D (vec_set_optab, "vec_set$a")
2e83f583 422OPTAB_D (vec_shl_optab, "vec_shl_$a")
cd1440b1 423OPTAB_D (vec_shr_optab, "vec_shr_$a")
1bda738b
JJ
424OPTAB_D (vec_unpack_sfix_trunc_hi_optab, "vec_unpack_sfix_trunc_hi_$a")
425OPTAB_D (vec_unpack_sfix_trunc_lo_optab, "vec_unpack_sfix_trunc_lo_$a")
426OPTAB_D (vec_unpack_ufix_trunc_hi_optab, "vec_unpack_ufix_trunc_hi_$a")
427OPTAB_D (vec_unpack_ufix_trunc_lo_optab, "vec_unpack_ufix_trunc_lo_$a")
cd1440b1
RH
428OPTAB_D (vec_unpacks_float_hi_optab, "vec_unpacks_float_hi_$a")
429OPTAB_D (vec_unpacks_float_lo_optab, "vec_unpacks_float_lo_$a")
430OPTAB_D (vec_unpacks_hi_optab, "vec_unpacks_hi_$a")
431OPTAB_D (vec_unpacks_lo_optab, "vec_unpacks_lo_$a")
4714942e
JJ
432OPTAB_D (vec_unpacks_sbool_hi_optab, "vec_unpacks_sbool_hi_$a")
433OPTAB_D (vec_unpacks_sbool_lo_optab, "vec_unpacks_sbool_lo_$a")
cd1440b1
RH
434OPTAB_D (vec_unpacku_float_hi_optab, "vec_unpacku_float_hi_$a")
435OPTAB_D (vec_unpacku_float_lo_optab, "vec_unpacku_float_lo_$a")
436OPTAB_D (vec_unpacku_hi_optab, "vec_unpacku_hi_$a")
437OPTAB_D (vec_unpacku_lo_optab, "vec_unpacku_lo_$a")
438OPTAB_D (vec_widen_smult_even_optab, "vec_widen_smult_even_$a")
439OPTAB_D (vec_widen_smult_hi_optab, "vec_widen_smult_hi_$a")
440OPTAB_D (vec_widen_smult_lo_optab, "vec_widen_smult_lo_$a")
441OPTAB_D (vec_widen_smult_odd_optab, "vec_widen_smult_odd_$a")
2f482a07
AV
442OPTAB_D (vec_widen_ssub_optab, "vec_widen_ssub_$a")
443OPTAB_D (vec_widen_ssub_hi_optab, "vec_widen_ssub_hi_$a")
444OPTAB_D (vec_widen_ssub_lo_optab, "vec_widen_ssub_lo_$a")
445OPTAB_D (vec_widen_ssub_odd_optab, "vec_widen_ssub_odd_$a")
446OPTAB_D (vec_widen_ssub_even_optab, "vec_widen_ssub_even_$a")
447OPTAB_D (vec_widen_sadd_optab, "vec_widen_sadd_$a")
448OPTAB_D (vec_widen_sadd_hi_optab, "vec_widen_sadd_hi_$a")
449OPTAB_D (vec_widen_sadd_lo_optab, "vec_widen_sadd_lo_$a")
450OPTAB_D (vec_widen_sadd_odd_optab, "vec_widen_sadd_odd_$a")
451OPTAB_D (vec_widen_sadd_even_optab, "vec_widen_sadd_even_$a")
aec90c8b
OA
452OPTAB_D (vec_widen_sabd_optab, "vec_widen_sabd_$a")
453OPTAB_D (vec_widen_sabd_hi_optab, "vec_widen_sabd_hi_$a")
454OPTAB_D (vec_widen_sabd_lo_optab, "vec_widen_sabd_lo_$a")
455OPTAB_D (vec_widen_sabd_odd_optab, "vec_widen_sabd_odd_$a")
456OPTAB_D (vec_widen_sabd_even_optab, "vec_widen_sabd_even_$a")
cd1440b1
RH
457OPTAB_D (vec_widen_sshiftl_hi_optab, "vec_widen_sshiftl_hi_$a")
458OPTAB_D (vec_widen_sshiftl_lo_optab, "vec_widen_sshiftl_lo_$a")
459OPTAB_D (vec_widen_umult_even_optab, "vec_widen_umult_even_$a")
460OPTAB_D (vec_widen_umult_hi_optab, "vec_widen_umult_hi_$a")
461OPTAB_D (vec_widen_umult_lo_optab, "vec_widen_umult_lo_$a")
462OPTAB_D (vec_widen_umult_odd_optab, "vec_widen_umult_odd_$a")
463OPTAB_D (vec_widen_ushiftl_hi_optab, "vec_widen_ushiftl_hi_$a")
464OPTAB_D (vec_widen_ushiftl_lo_optab, "vec_widen_ushiftl_lo_$a")
2f482a07
AV
465OPTAB_D (vec_widen_usub_optab, "vec_widen_usub_$a")
466OPTAB_D (vec_widen_usub_hi_optab, "vec_widen_usub_hi_$a")
467OPTAB_D (vec_widen_usub_lo_optab, "vec_widen_usub_lo_$a")
468OPTAB_D (vec_widen_usub_odd_optab, "vec_widen_usub_odd_$a")
469OPTAB_D (vec_widen_usub_even_optab, "vec_widen_usub_even_$a")
470OPTAB_D (vec_widen_uadd_optab, "vec_widen_uadd_$a")
471OPTAB_D (vec_widen_uadd_hi_optab, "vec_widen_uadd_hi_$a")
472OPTAB_D (vec_widen_uadd_lo_optab, "vec_widen_uadd_lo_$a")
473OPTAB_D (vec_widen_uadd_odd_optab, "vec_widen_uadd_odd_$a")
474OPTAB_D (vec_widen_uadd_even_optab, "vec_widen_uadd_even_$a")
aec90c8b
OA
475OPTAB_D (vec_widen_uabd_optab, "vec_widen_uabd_$a")
476OPTAB_D (vec_widen_uabd_hi_optab, "vec_widen_uabd_hi_$a")
477OPTAB_D (vec_widen_uabd_lo_optab, "vec_widen_uabd_lo_$a")
478OPTAB_D (vec_widen_uabd_odd_optab, "vec_widen_uabd_odd_$a")
479OPTAB_D (vec_widen_uabd_even_optab, "vec_widen_uabd_even_$a")
7a6c31f0 480OPTAB_D (vec_addsub_optab, "vec_addsub$a3")
7d810646
RB
481OPTAB_D (vec_fmaddsub_optab, "vec_fmaddsub$a4")
482OPTAB_D (vec_fmsubadd_optab, "vec_fmsubadd$a4")
cd1440b1
RH
483
484OPTAB_D (sync_add_optab, "sync_add$I$a")
485OPTAB_D (sync_and_optab, "sync_and$I$a")
486OPTAB_D (sync_ior_optab, "sync_ior$I$a")
487OPTAB_D (sync_lock_release_optab, "sync_lock_release$I$a")
488OPTAB_D (sync_nand_optab, "sync_nand$I$a")
489OPTAB_D (sync_sub_optab, "sync_sub$I$a")
490OPTAB_D (sync_xor_optab, "sync_xor$I$a")
491
492OPTAB_D (atomic_add_fetch_optab, "atomic_add_fetch$I$a")
493OPTAB_D (atomic_add_optab, "atomic_add$I$a")
494OPTAB_D (atomic_and_fetch_optab, "atomic_and_fetch$I$a")
495OPTAB_D (atomic_and_optab, "atomic_and$I$a")
adedd5c1
JJ
496OPTAB_D (atomic_bit_test_and_set_optab, "atomic_bit_test_and_set$I$a")
497OPTAB_D (atomic_bit_test_and_complement_optab, "atomic_bit_test_and_complement$I$a")
498OPTAB_D (atomic_bit_test_and_reset_optab, "atomic_bit_test_and_reset$I$a")
cd1440b1
RH
499OPTAB_D (atomic_compare_and_swap_optab, "atomic_compare_and_swap$I$a")
500OPTAB_D (atomic_exchange_optab, "atomic_exchange$I$a")
501OPTAB_D (atomic_fetch_add_optab, "atomic_fetch_add$I$a")
502OPTAB_D (atomic_fetch_and_optab, "atomic_fetch_and$I$a")
503OPTAB_D (atomic_fetch_nand_optab, "atomic_fetch_nand$I$a")
504OPTAB_D (atomic_fetch_or_optab, "atomic_fetch_or$I$a")
505OPTAB_D (atomic_fetch_sub_optab, "atomic_fetch_sub$I$a")
506OPTAB_D (atomic_fetch_xor_optab, "atomic_fetch_xor$I$a")
507OPTAB_D (atomic_load_optab, "atomic_load$I$a")
508OPTAB_D (atomic_nand_fetch_optab, "atomic_nand_fetch$I$a")
509OPTAB_D (atomic_nand_optab, "atomic_nand$I$a")
510OPTAB_D (atomic_or_fetch_optab, "atomic_or_fetch$I$a")
511OPTAB_D (atomic_or_optab, "atomic_or$I$a")
512OPTAB_D (atomic_store_optab, "atomic_store$I$a")
513OPTAB_D (atomic_sub_fetch_optab, "atomic_sub_fetch$I$a")
514OPTAB_D (atomic_sub_optab, "atomic_sub$I$a")
515OPTAB_D (atomic_xor_fetch_optab, "atomic_xor_fetch$I$a")
516OPTAB_D (atomic_xor_optab, "atomic_xor$I$a")
6362627b
JJ
517OPTAB_D (atomic_add_fetch_cmp_0_optab, "atomic_add_fetch_cmp_0$I$a")
518OPTAB_D (atomic_sub_fetch_cmp_0_optab, "atomic_sub_fetch_cmp_0$I$a")
519OPTAB_D (atomic_and_fetch_cmp_0_optab, "atomic_and_fetch_cmp_0$I$a")
520OPTAB_D (atomic_or_fetch_cmp_0_optab, "atomic_or_fetch_cmp_0$I$a")
521OPTAB_D (atomic_xor_fetch_cmp_0_optab, "atomic_xor_fetch_cmp_0$I$a")
f959607b
CLT
522
523OPTAB_D (get_thread_pointer_optab, "get_thread_pointer$I$a")
524OPTAB_D (set_thread_pointer_optab, "set_thread_pointer$I$a")
be4c1d4a 525
58c036c8
RS
526OPTAB_D (check_raw_ptrs_optab, "check_raw_ptrs$a")
527OPTAB_D (check_war_ptrs_optab, "check_war_ptrs$a")
528
be4c1d4a 529OPTAB_DC (vec_duplicate_optab, "vec_duplicate$a", VEC_DUPLICATE)
9adab579 530OPTAB_DC (vec_series_optab, "vec_series$a", VEC_SERIES)
f1739b48 531OPTAB_D (vec_shl_insert_optab, "vec_shl_insert_$a")
d496134a
KL
532OPTAB_D (len_load_optab, "len_load_$a")
533OPTAB_D (len_store_optab, "len_store_$a")
47203d89 534OPTAB_D (select_vl_optab, "select_vl$a")