]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/arm/types.md
Update copyright years.
[thirdparty/gcc.git] / gcc / config / arm / types.md
CommitLineData
701bd1bd
SN
1;; Instruction Classification for ARM for GNU compiler.
2
a5544970 3;; Copyright (C) 1991-2019 Free Software Foundation, Inc.
701bd1bd
SN
4;; Contributed by ARM Ltd.
5
6;; This file is part of GCC.
7
8;; GCC is free software; you can redistribute it and/or modify it
9;; under the terms of the GNU General Public License as published
10;; by the Free Software Foundation; either version 3, or (at your
11;; option) any later version.
12
13;; GCC is distributed in the hope that it will be useful, but WITHOUT
14;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16;; License for more details.
17
18;; You should have received a copy of the GNU General Public License
19;; along with GCC; see the file COPYING3. If not see
20;; <http://www.gnu.org/licenses/>.
21
22; TYPE attribute is used to classify instructions for use in scheduling.
23;
24; Instruction classification:
25;
6e4150e1
JG
26; adc_imm add/subtract with carry and with an immediate operand.
27; adc_reg add/subtract with carry and no immediate operand.
28; adcs_imm as adc_imm, setting condition flags.
29; adcs_reg as adc_reg, setting condition flags.
30; adr calculate address.
31; alu_ext From ARMv8-A: any arithmetic instruction that has a
32; sign/zero-extended.
33; AArch64 Only.
34; source operand
35; alu_imm any arithmetic instruction that doesn't have a shifted
36; operand and has an immediate operand. This
701bd1bd 37; excludes MOV, MVN and RSB(S) immediate.
1d61feeb 38; alu_sreg any arithmetic instruction that doesn't have a shifted
6e4150e1 39; or an immediate operand. This excludes
1d61feeb
TG
40; MOV and MVN but includes MOVT. This also excludes
41; DSP-kind instructions. This is also the default.
6e4150e1
JG
42; alu_shift_imm any arithmetic instruction that has a source operand
43; shifted by a constant. This excludes simple shifts.
44; alu_shift_reg as alu_shift_imm, with the shift amount specified in a
701bd1bd 45; register.
1d61feeb 46; alu_dsp_reg any DSP-kind instruction like QSUB8.
6e4150e1
JG
47; alus_ext From ARMv8-A: as alu_ext, setting condition flags.
48; AArch64 Only.
49; alus_imm as alu_imm, setting condition flags.
1d61feeb 50; alus_sreg as alu_sreg, setting condition flags.
6e4150e1
JG
51; alus_shift_imm as alu_shift_imm, setting condition flags.
52; alus_shift_reg as alu_shift_reg, setting condition flags.
53; bfm bitfield move operation.
94f7a25e 54; bfx bitfield extract operation.
701bd1bd
SN
55; block blockage insn, this blocks all functional units.
56; branch branch.
57; call subroutine call.
58; clz count leading zeros (CLZ).
6e4150e1 59; csel From ARMv8-A: conditional select.
701bd1bd 60; extend extend instruction (SXTB, SXTH, UXTB, UXTH).
7b49c9e1
JG
61; f_cvt conversion between float representations.
62; f_cvtf2i conversion between float and integral types.
63; f_cvti2f conversion between integral and float types.
701bd1bd
SN
64; f_flag transfer of co-processor flags to the CPSR.
65; f_load[d,s] double/single load from memory. Used for VFP unit.
003bb7f3
JG
66; f_mcr transfer arm to vfp reg.
67; f_mcrr transfer two arm regs to vfp reg.
701bd1bd 68; f_minmax[d,s] double/single floating point minimum/maximum.
003bb7f3
JG
69; f_mrc transfer vfp to arm reg.
70; f_mrrc transfer vfp to two arm regs.
701bd1bd 71; f_rint[d,s] double/single floating point rount to integral.
701bd1bd
SN
72; f_store[d,s] double/single store to memory. Used for VFP unit.
73; fadd[d,s] double/single floating-point scalar addition.
c297d256 74; fccmp[d,s] From ARMv8-A: floating-point conditional compare.
701bd1bd
SN
75; fcmp[d,s] double/single floating-point compare.
76; fconst[d,s] double/single load immediate.
6e4150e1 77; fcsel From ARMv8-A: Floating-point conditional select.
701bd1bd
SN
78; fdiv[d,s] double/single precision floating point division.
79; ffarith[d,s] double/single floating point abs/neg/cpy.
80; ffma[d,s] double/single floating point fused multiply-accumulate.
81; float floating point arithmetic operation.
82; fmac[d,s] double/single floating point multiply-accumulate.
292b89b3 83; fmov floating point to floating point register move.
701bd1bd 84; fmul[d,s] double/single floating point multiply.
b86923f0 85; fsqrt[d,s] double/single precision floating point square root.
e2fd7ca7 86; load_acq load-acquire.
89b2133e
JG
87; load_byte load 1 byte from memory.
88; load_4 load 4 bytes from memory.
89; load_8 load 8 bytes from memory.
90; load_12 load 12 bytes from memory.
91; load_16 load 16 bytes from memory.
6e4150e1
JG
92; logic_imm any logical instruction that doesn't have a shifted
93; operand and has an immediate operand.
94; logic_reg any logical instruction that doesn't have a shifted
95; operand or an immediate operand.
96; logic_shift_imm any logical instruction that has a source operand
97; shifted by a constant. This excludes simple shifts.
98; logic_shift_reg as logic_shift_imm, with the shift amount specified in a
99; register.
100; logics_imm as logic_imm, setting condition flags.
101; logics_reg as logic_reg, setting condition flags.
102; logics_shift_imm as logic_shift_imm, setting condition flags.
103; logics_shift_reg as logic_shift_reg, setting condition flags.
701bd1bd
SN
104; mla integer multiply accumulate.
105; mlas integer multiply accumulate, flag setting.
106; mov_imm simple MOV instruction that moves an immediate to
107; register. This includes MOVW, but not MOVT.
108; mov_reg simple MOV instruction that moves a register to another
109; register. This includes MOVW, but not MOVT.
110; mov_shift simple MOV instruction, shifted operand by a constant.
111; mov_shift_reg simple MOV instruction, shifted operand by a register.
8c48eecd 112; mrs system/special/co-processor register move.
701bd1bd
SN
113; mul integer multiply.
114; muls integer multiply, flag setting.
594726e4
JG
115; multiple more than one instruction, candidate for future
116; splitting, or better modeling.
701bd1bd
SN
117; mvn_imm inverting move instruction, immediate.
118; mvn_reg inverting move instruction, register.
119; mvn_shift inverting move instruction, shifted operand by a constant.
120; mvn_shift_reg inverting move instruction, shifted operand by a register.
594726e4
JG
121; no_insn an insn which does not represent an instruction in the
122; final output, thus having no impact on scheduling.
6e4150e1
JG
123; rbit reverse bits.
124; rev reverse bytes.
b81f1ee3 125; rotate_imm rotate by immediate.
701bd1bd 126; sdiv signed division.
6e4150e1 127; shift_imm simple shift operation (LSL, LSR, ASR, ROR) with an
701bd1bd
SN
128; immediate.
129; shift_reg simple shift by a register.
130; smlad signed multiply accumulate dual.
131; smladx signed multiply accumulate dual reverse.
132; smlal signed multiply accumulate long.
133; smlald signed multiply accumulate long dual.
134; smlals signed multiply accumulate long, flag setting.
135; smlalxy signed multiply accumulate, 16x16-bit, 64-bit accumulate.
136; smlawx signed multiply accumulate, 32x16-bit, 32-bit accumulate.
137; smlawy signed multiply accumulate wide, 32x16-bit,
138; 32-bit accumulate.
139; smlaxy signed multiply accumulate, 16x16-bit, 32-bit accumulate.
140; smlsd signed multiply subtract dual.
141; smlsdx signed multiply subtract dual reverse.
142; smlsld signed multiply subtract long dual.
143; smmla signed most significant word multiply accumulate.
144; smmul signed most significant word multiply.
145; smmulr signed most significant word multiply, rounded.
146; smuad signed dual multiply add.
147; smuadx signed dual multiply add reverse.
148; smull signed multiply long.
149; smulls signed multiply long, flag setting.
150; smulwy signed multiply wide, 32x16-bit, 32-bit accumulate.
151; smulxy signed multiply, 16x16-bit, 32-bit accumulate.
152; smusd signed dual multiply subtract.
153; smusdx signed dual multiply subtract reverse.
e2fd7ca7 154; store_rel store-release.
89b2133e
JG
155; store_4 store 4 bytes to memory.
156; store_8 store 8 bytes to memory.
157; store_12 store 12 bytes to memory.
158; store_16 store 16 bytes (or more) to memory.
60ea4be6 159; trap cause a trap in the kernel.
701bd1bd
SN
160; udiv unsigned division.
161; umaal unsigned multiply accumulate accumulate long.
162; umlal unsigned multiply accumulate long.
163; umlals unsigned multiply accumulate long, flag setting.
164; umull unsigned multiply long.
165; umulls unsigned multiply long, flag setting.
594726e4
JG
166; untyped insn without type information - default, and error,
167; case.
701bd1bd
SN
168;
169; The classification below is for instructions used by the Wireless MMX
170; Technology. Each attribute value is used to classify an instruction of the
171; same name or family.
172;
173; wmmx_tandc
174; wmmx_tbcst
175; wmmx_textrc
176; wmmx_textrm
177; wmmx_tinsr
178; wmmx_tmcr
179; wmmx_tmcrr
180; wmmx_tmia
181; wmmx_tmiaph
182; wmmx_tmiaxy
183; wmmx_tmrc
184; wmmx_tmrrc
185; wmmx_tmovmsk
186; wmmx_torc
187; wmmx_torvsc
188; wmmx_wabs
189; wmmx_wdiff
190; wmmx_wacc
191; wmmx_wadd
192; wmmx_waddbhus
193; wmmx_waddsubhx
194; wmmx_waligni
195; wmmx_walignr
196; wmmx_wand
197; wmmx_wandn
198; wmmx_wavg2
199; wmmx_wavg4
200; wmmx_wcmpeq
201; wmmx_wcmpgt
202; wmmx_wmac
203; wmmx_wmadd
204; wmmx_wmax
205; wmmx_wmerge
206; wmmx_wmiawxy
207; wmmx_wmiaxy
208; wmmx_wmin
209; wmmx_wmov
210; wmmx_wmul
211; wmmx_wmulw
212; wmmx_wldr
213; wmmx_wor
214; wmmx_wpack
215; wmmx_wqmiaxy
216; wmmx_wqmulm
217; wmmx_wqmulwm
218; wmmx_wror
219; wmmx_wsad
220; wmmx_wshufh
221; wmmx_wsll
222; wmmx_wsra
223; wmmx_wsrl
224; wmmx_wstr
225; wmmx_wsub
226; wmmx_wsubaddhx
227; wmmx_wunpckeh
228; wmmx_wunpckel
229; wmmx_wunpckih
230; wmmx_wunpckil
231; wmmx_wxor
003bb7f3
JG
232;
233; The classification below is for NEON instructions.
234;
20445ed6
JG
235; neon_add
236; neon_add_q
237; neon_add_widen
238; neon_add_long
239; neon_qadd
240; neon_qadd_q
241; neon_add_halve
242; neon_add_halve_q
243; neon_add_halve_narrow_q
244; neon_sub
245; neon_sub_q
246; neon_sub_widen
247; neon_sub_long
248; neon_qsub
249; neon_qsub_q
250; neon_sub_halve
251; neon_sub_halve_q
252; neon_sub_halve_narrow_q
253; neon_abs
254; neon_abs_q
255; neon_neg
256; neon_neg_q
257; neon_qneg
258; neon_qneg_q
259; neon_qabs
260; neon_qabs_q
261; neon_abd
262; neon_abd_q
263; neon_abd_long
264; neon_minmax
265; neon_minmax_q
266; neon_compare
267; neon_compare_q
268; neon_compare_zero
269; neon_compare_zero_q
270; neon_arith_acc
271; neon_arith_acc_q
272; neon_reduc_add
273; neon_reduc_add_q
274; neon_reduc_add_long
275; neon_reduc_add_acc
276; neon_reduc_add_acc_q
277; neon_reduc_minmax
278; neon_reduc_minmax_q
279; neon_logic
280; neon_logic_q
281; neon_tst
282; neon_tst_q
283; neon_shift_imm
284; neon_shift_imm_q
285; neon_shift_imm_narrow_q
286; neon_shift_imm_long
287; neon_shift_reg
288; neon_shift_reg_q
289; neon_shift_acc
290; neon_shift_acc_q
291; neon_sat_shift_imm
292; neon_sat_shift_imm_q
293; neon_sat_shift_imm_narrow_q
294; neon_sat_shift_reg
295; neon_sat_shift_reg_q
296; neon_ins
297; neon_ins_q
298; neon_move
299; neon_move_q
300; neon_move_narrow_q
301; neon_permute
302; neon_permute_q
303; neon_zip
304; neon_zip_q
305; neon_tbl1
306; neon_tbl1_q
307; neon_tbl2
308; neon_tbl2_q
309; neon_tbl3
310; neon_tbl3_q
311; neon_tbl4
312; neon_tbl4_q
313; neon_bsl
314; neon_bsl_q
315; neon_cls
316; neon_cls_q
317; neon_cnt
318; neon_cnt_q
f8e109ba
TC
319; neon_dot
320; neon_dot_q
20445ed6
JG
321; neon_ext
322; neon_ext_q
323; neon_rbit
324; neon_rbit_q
325; neon_rev
326; neon_rev_q
327; neon_mul_b
328; neon_mul_b_q
329; neon_mul_h
330; neon_mul_h_q
331; neon_mul_s
332; neon_mul_s_q
333; neon_mul_b_long
334; neon_mul_h_long
335; neon_mul_s_long
9783e598 336; neon_mul_d_long
20445ed6
JG
337; neon_mul_h_scalar
338; neon_mul_h_scalar_q
339; neon_mul_s_scalar
340; neon_mul_s_scalar_q
341; neon_mul_h_scalar_long
342; neon_mul_s_scalar_long
343; neon_sat_mul_b
344; neon_sat_mul_b_q
345; neon_sat_mul_h
346; neon_sat_mul_h_q
347; neon_sat_mul_s
348; neon_sat_mul_s_q
349; neon_sat_mul_b_long
350; neon_sat_mul_h_long
351; neon_sat_mul_s_long
352; neon_sat_mul_h_scalar
353; neon_sat_mul_h_scalar_q
354; neon_sat_mul_s_scalar
355; neon_sat_mul_s_scalar_q
356; neon_sat_mul_h_scalar_long
357; neon_sat_mul_s_scalar_long
358; neon_mla_b
359; neon_mla_b_q
360; neon_mla_h
361; neon_mla_h_q
362; neon_mla_s
363; neon_mla_s_q
364; neon_mla_b_long
365; neon_mla_h_long
366; neon_mla_s_long
367; neon_mla_h_scalar
368; neon_mla_h_scalar_q
369; neon_mla_s_scalar
370; neon_mla_s_scalar_q
371; neon_mla_h_scalar_long
372; neon_mla_s_scalar_long
373; neon_sat_mla_b_long
374; neon_sat_mla_h_long
375; neon_sat_mla_s_long
376; neon_sat_mla_h_scalar_long
377; neon_sat_mla_s_scalar_long
378; neon_to_gp
379; neon_to_gp_q
380; neon_from_gp
381; neon_from_gp_q
382; neon_ldr
5c4b7f1c
EM
383; neon_ldp
384; neon_ldp_q
20445ed6
JG
385; neon_load1_1reg
386; neon_load1_1reg_q
387; neon_load1_2reg
388; neon_load1_2reg_q
389; neon_load1_3reg
390; neon_load1_3reg_q
391; neon_load1_4reg
392; neon_load1_4reg_q
393; neon_load1_all_lanes
394; neon_load1_all_lanes_q
395; neon_load1_one_lane
396; neon_load1_one_lane_q
397; neon_load2_2reg
398; neon_load2_2reg_q
399; neon_load2_4reg
400; neon_load2_4reg_q
401; neon_load2_all_lanes
402; neon_load2_all_lanes_q
403; neon_load2_one_lane
404; neon_load2_one_lane_q
405; neon_load3_3reg
406; neon_load3_3reg_q
407; neon_load3_all_lanes
408; neon_load3_all_lanes_q
409; neon_load3_one_lane
410; neon_load3_one_lane_q
411; neon_load4_4reg
412; neon_load4_4reg_q
413; neon_load4_all_lanes
414; neon_load4_all_lanes_q
415; neon_load4_one_lane
416; neon_load4_one_lane_q
417; neon_str
5c4b7f1c
EM
418; neon_stp
419; neon_stp_q
20445ed6
JG
420; neon_store1_1reg
421; neon_store1_1reg_q
422; neon_store1_2reg
423; neon_store1_2reg_q
424; neon_store1_3reg
425; neon_store1_3reg_q
426; neon_store1_4reg
427; neon_store1_4reg_q
428; neon_store1_one_lane
429; neon_store1_one_lane_q
430; neon_store2_2reg
431; neon_store2_2reg_q
432; neon_store2_4reg
433; neon_store2_4reg_q
434; neon_store2_one_lane
435; neon_store2_one_lane_q
436; neon_store3_3reg
437; neon_store3_3reg_q
438; neon_store3_one_lane
439; neon_store3_one_lane_q
440; neon_store4_4reg
441; neon_store4_4reg_q
442; neon_store4_one_lane
443; neon_store4_one_lane_q
444; neon_fp_abs_s
445; neon_fp_abs_s_q
446; neon_fp_abs_d
447; neon_fp_abs_d_q
448; neon_fp_neg_s
449; neon_fp_neg_s_q
450; neon_fp_neg_d
451; neon_fp_neg_d_q
452; neon_fp_abd_s
453; neon_fp_abd_s_q
454; neon_fp_abd_d
455; neon_fp_abd_d_q
456; neon_fp_addsub_s
457; neon_fp_addsub_s_q
458; neon_fp_addsub_d
459; neon_fp_addsub_d_q
460; neon_fp_compare_s
461; neon_fp_compare_s_q
462; neon_fp_compare_d
463; neon_fp_compare_d_q
464; neon_fp_minmax_s
465; neon_fp_minmax_s_q
466; neon_fp_minmax_d
467; neon_fp_minmax_d_q
468; neon_fp_reduc_add_s
469; neon_fp_reduc_add_s_q
470; neon_fp_reduc_add_d
471; neon_fp_reduc_add_d_q
472; neon_fp_reduc_minmax_s
473; neon_fp_reduc_minmax_s_q
474; neon_fp_reduc_minmax_d
475; neon_fp_reduc_minmax_d_q
476; neon_fp_cvt_narrow_s_q
477; neon_fp_cvt_narrow_d_q
478; neon_fp_cvt_widen_h
479; neon_fp_cvt_widen_s
480; neon_fp_to_int_s
481; neon_fp_to_int_s_q
482; neon_fp_to_int_d
483; neon_fp_to_int_d_q
484; neon_int_to_fp_s
485; neon_int_to_fp_s_q
486; neon_int_to_fp_d
487; neon_int_to_fp_d_q
488; neon_fp_round_s
489; neon_fp_round_s_q
490; neon_fp_round_d
491; neon_fp_round_d_q
492; neon_fp_recpe_s
493; neon_fp_recpe_s_q
494; neon_fp_recpe_d
495; neon_fp_recpe_d_q
496; neon_fp_recps_s
497; neon_fp_recps_s_q
498; neon_fp_recps_d
499; neon_fp_recps_d_q
500; neon_fp_recpx_s
501; neon_fp_recpx_s_q
502; neon_fp_recpx_d
503; neon_fp_recpx_d_q
504; neon_fp_rsqrte_s
505; neon_fp_rsqrte_s_q
506; neon_fp_rsqrte_d
507; neon_fp_rsqrte_d_q
508; neon_fp_rsqrts_s
509; neon_fp_rsqrts_s_q
510; neon_fp_rsqrts_d
511; neon_fp_rsqrts_d_q
512; neon_fp_mul_s
513; neon_fp_mul_s_q
514; neon_fp_mul_s_scalar
515; neon_fp_mul_s_scalar_q
516; neon_fp_mul_d
517; neon_fp_mul_d_q
518; neon_fp_mul_d_scalar_q
519; neon_fp_mla_s
520; neon_fp_mla_s_q
521; neon_fp_mla_s_scalar
522; neon_fp_mla_s_scalar_q
523; neon_fp_mla_d
524; neon_fp_mla_d_q
525; neon_fp_mla_d_scalar_q
526; neon_fp_sqrt_s
527; neon_fp_sqrt_s_q
528; neon_fp_sqrt_d
529; neon_fp_sqrt_d_q
530; neon_fp_div_s
531; neon_fp_div_s_q
532; neon_fp_div_d
533; neon_fp_div_d_q
9783e598
TB
534;
535; The classification below is for Crypto instructions.
536;
b10baa95
KT
537; crypto_aese
538; crypto_aesmc
9783e598
TB
539; crypto_sha1_xor
540; crypto_sha1_fast
541; crypto_sha1_slow
542; crypto_sha256_fast
543; crypto_sha256_slow
a2074e9c 544; crypto_pmull
d57daa0c
AV
545;
546; The classification below is for coprocessor instructions
547;
548; coproc
701bd1bd
SN
549
550(define_attr "type"
6e4150e1
JG
551 "adc_imm,\
552 adc_reg,\
553 adcs_imm,\
554 adcs_reg,\
555 adr,\
556 alu_ext,\
557 alu_imm,\
1d61feeb 558 alu_sreg,\
6e4150e1
JG
559 alu_shift_imm,\
560 alu_shift_reg,\
1d61feeb 561 alu_dsp_reg,\
6e4150e1
JG
562 alus_ext,\
563 alus_imm,\
1d61feeb 564 alus_sreg,\
6e4150e1
JG
565 alus_shift_imm,\
566 alus_shift_reg,\
567 bfm,\
94f7a25e 568 bfx,\
701bd1bd
SN
569 block,\
570 branch,\
571 call,\
572 clz,\
594726e4 573 no_insn,\
6e4150e1 574 csel,\
582e2e43 575 crc,\
701bd1bd 576 extend,\
701bd1bd 577 f_cvt,\
7b49c9e1
JG
578 f_cvtf2i,\
579 f_cvti2f,\
701bd1bd
SN
580 f_flag,\
581 f_loadd,\
582 f_loads,\
003bb7f3
JG
583 f_mcr,\
584 f_mcrr,\
701bd1bd
SN
585 f_minmaxd,\
586 f_minmaxs,\
003bb7f3
JG
587 f_mrc,\
588 f_mrrc,\
701bd1bd
SN
589 f_rintd,\
590 f_rints,\
701bd1bd
SN
591 f_stored,\
592 f_stores,\
593 faddd,\
594 fadds,\
c297d256
EM
595 fccmpd,\
596 fccmps,\
701bd1bd
SN
597 fcmpd,\
598 fcmps,\
599 fconstd,\
600 fconsts,\
6e4150e1 601 fcsel,\
701bd1bd
SN
602 fdivd,\
603 fdivs,\
604 ffarithd,\
605 ffariths,\
606 ffmad,\
607 ffmas,\
608 float,\
609 fmacd,\
610 fmacs,\
292b89b3 611 fmov,\
701bd1bd
SN
612 fmuld,\
613 fmuls,\
b86923f0
JG
614 fsqrts,\
615 fsqrtd,\
e2fd7ca7 616 load_acq,\
701bd1bd 617 load_byte,\
89b2133e
JG
618 load_4,\
619 load_8,\
620 load_12,\
621 load_16,\
6e4150e1
JG
622 logic_imm,\
623 logic_reg,\
624 logic_shift_imm,\
625 logic_shift_reg,\
626 logics_imm,\
627 logics_reg,\
628 logics_shift_imm,\
629 logics_shift_reg,\
701bd1bd
SN
630 mla,\
631 mlas,\
632 mov_imm,\
633 mov_reg,\
634 mov_shift,\
635 mov_shift_reg,\
8c48eecd 636 mrs,\
701bd1bd
SN
637 mul,\
638 muls,\
594726e4 639 multiple,\
701bd1bd
SN
640 mvn_imm,\
641 mvn_reg,\
642 mvn_shift,\
643 mvn_shift_reg,\
594726e4 644 nop,\
6e4150e1
JG
645 rbit,\
646 rev,\
b81f1ee3 647 rotate_imm,\
701bd1bd 648 sdiv,\
6e4150e1 649 shift_imm,\
701bd1bd
SN
650 shift_reg,\
651 smlad,\
652 smladx,\
653 smlal,\
654 smlald,\
655 smlals,\
656 smlalxy,\
657 smlawx,\
658 smlawy,\
659 smlaxy,\
660 smlsd,\
661 smlsdx,\
662 smlsld,\
663 smmla,\
664 smmul,\
665 smmulr,\
666 smuad,\
667 smuadx,\
668 smull,\
669 smulls,\
670 smulwy,\
671 smulxy,\
672 smusd,\
673 smusdx,\
e2fd7ca7 674 store_rel,\
89b2133e
JG
675 store_4,\
676 store_8,\
677 store_12,\
678 store_16,\
60ea4be6 679 trap,\
701bd1bd
SN
680 udiv,\
681 umaal,\
682 umlal,\
683 umlals,\
684 umull,\
685 umulls,\
594726e4 686 untyped,\
701bd1bd
SN
687 wmmx_tandc,\
688 wmmx_tbcst,\
689 wmmx_textrc,\
690 wmmx_textrm,\
691 wmmx_tinsr,\
692 wmmx_tmcr,\
693 wmmx_tmcrr,\
694 wmmx_tmia,\
695 wmmx_tmiaph,\
696 wmmx_tmiaxy,\
697 wmmx_tmrc,\
698 wmmx_tmrrc,\
699 wmmx_tmovmsk,\
700 wmmx_torc,\
701 wmmx_torvsc,\
702 wmmx_wabs,\
703 wmmx_wabsdiff,\
704 wmmx_wacc,\
705 wmmx_wadd,\
706 wmmx_waddbhus,\
707 wmmx_waddsubhx,\
708 wmmx_waligni,\
709 wmmx_walignr,\
710 wmmx_wand,\
711 wmmx_wandn,\
712 wmmx_wavg2,\
713 wmmx_wavg4,\
714 wmmx_wcmpeq,\
715 wmmx_wcmpgt,\
716 wmmx_wmac,\
717 wmmx_wmadd,\
718 wmmx_wmax,\
719 wmmx_wmerge,\
720 wmmx_wmiawxy,\
721 wmmx_wmiaxy,\
722 wmmx_wmin,\
723 wmmx_wmov,\
724 wmmx_wmul,\
725 wmmx_wmulw,\
726 wmmx_wldr,\
727 wmmx_wor,\
728 wmmx_wpack,\
729 wmmx_wqmiaxy,\
730 wmmx_wqmulm,\
731 wmmx_wqmulwm,\
732 wmmx_wror,\
733 wmmx_wsad,\
734 wmmx_wshufh,\
735 wmmx_wsll,\
736 wmmx_wsra,\
737 wmmx_wsrl,\
738 wmmx_wstr,\
739 wmmx_wsub,\
740 wmmx_wsubaddhx,\
741 wmmx_wunpckeh,\
742 wmmx_wunpckel,\
743 wmmx_wunpckih,\
744 wmmx_wunpckil,\
003bb7f3 745 wmmx_wxor,\
20445ed6
JG
746\
747 neon_add,\
748 neon_add_q,\
749 neon_add_widen,\
750 neon_add_long,\
751 neon_qadd,\
752 neon_qadd_q,\
753 neon_add_halve,\
754 neon_add_halve_q,\
755 neon_add_halve_narrow_q,\
756\
757 neon_sub,\
758 neon_sub_q,\
759 neon_sub_widen,\
760 neon_sub_long,\
761 neon_qsub,\
762 neon_qsub_q,\
763 neon_sub_halve,\
764 neon_sub_halve_q,\
765 neon_sub_halve_narrow_q,\
766\
767 neon_abs,\
768 neon_abs_q,\
f8e109ba
TC
769 neon_dot,\
770 neon_dot_q,\
20445ed6
JG
771 neon_neg,\
772 neon_neg_q,\
773 neon_qneg,\
774 neon_qneg_q,\
775 neon_qabs,\
776 neon_qabs_q,\
777 neon_abd,\
778 neon_abd_q,\
779 neon_abd_long,\
780\
781 neon_minmax,\
782 neon_minmax_q,\
783 neon_compare,\
784 neon_compare_q,\
785 neon_compare_zero,\
786 neon_compare_zero_q,\
787\
788 neon_arith_acc,\
789 neon_arith_acc_q,\
790 neon_reduc_add,\
791 neon_reduc_add_q,\
792 neon_reduc_add_long,\
793 neon_reduc_add_acc,\
794 neon_reduc_add_acc_q,\
795 neon_reduc_minmax,\
796 neon_reduc_minmax_q,\
797 neon_logic,\
798 neon_logic_q,\
799 neon_tst,\
800 neon_tst_q,\
801\
802 neon_shift_imm,\
803 neon_shift_imm_q,\
804 neon_shift_imm_narrow_q,\
805 neon_shift_imm_long,\
806 neon_shift_reg,\
807 neon_shift_reg_q,\
808 neon_shift_acc,\
809 neon_shift_acc_q,\
810 neon_sat_shift_imm,\
811 neon_sat_shift_imm_q,\
812 neon_sat_shift_imm_narrow_q,\
813 neon_sat_shift_reg,\
814 neon_sat_shift_reg_q,\
815\
816 neon_ins,\
817 neon_ins_q,\
818 neon_move,\
819 neon_move_q,\
820 neon_move_narrow_q,\
821 neon_permute,\
822 neon_permute_q,\
823 neon_zip,\
824 neon_zip_q,\
825 neon_tbl1,\
826 neon_tbl1_q,\
827 neon_tbl2,\
828 neon_tbl2_q,\
829 neon_tbl3,\
830 neon_tbl3_q,\
831 neon_tbl4,\
832 neon_tbl4_q,\
833\
834 neon_bsl,\
835 neon_bsl_q,\
836 neon_cls,\
837 neon_cls_q,\
838 neon_cnt,\
839 neon_cnt_q,\
840 neon_dup,\
841 neon_dup_q,\
842 neon_ext,\
843 neon_ext_q,\
844 neon_rbit,\
845 neon_rbit_q,\
846 neon_rev,\
847 neon_rev_q,\
848\
849 neon_mul_b,\
850 neon_mul_b_q,\
851 neon_mul_h,\
852 neon_mul_h_q,\
853 neon_mul_s,\
854 neon_mul_s_q,\
855 neon_mul_b_long,\
856 neon_mul_h_long,\
857 neon_mul_s_long,\
9783e598 858 neon_mul_d_long,\
20445ed6
JG
859 neon_mul_h_scalar,\
860 neon_mul_h_scalar_q,\
861 neon_mul_s_scalar,\
862 neon_mul_s_scalar_q,\
863 neon_mul_h_scalar_long,\
864 neon_mul_s_scalar_long,\
865\
866 neon_sat_mul_b,\
867 neon_sat_mul_b_q,\
868 neon_sat_mul_h,\
869 neon_sat_mul_h_q,\
870 neon_sat_mul_s,\
871 neon_sat_mul_s_q,\
872 neon_sat_mul_b_long,\
873 neon_sat_mul_h_long,\
874 neon_sat_mul_s_long,\
875 neon_sat_mul_h_scalar,\
876 neon_sat_mul_h_scalar_q,\
877 neon_sat_mul_s_scalar,\
878 neon_sat_mul_s_scalar_q,\
879 neon_sat_mul_h_scalar_long,\
880 neon_sat_mul_s_scalar_long,\
881\
882 neon_mla_b,\
883 neon_mla_b_q,\
884 neon_mla_h,\
885 neon_mla_h_q,\
886 neon_mla_s,\
887 neon_mla_s_q,\
888 neon_mla_b_long,\
889 neon_mla_h_long,\
890 neon_mla_s_long,\
891 neon_mla_h_scalar,\
892 neon_mla_h_scalar_q,\
893 neon_mla_s_scalar,\
894 neon_mla_s_scalar_q,\
895 neon_mla_h_scalar_long,\
896 neon_mla_s_scalar_long,\
897\
898 neon_sat_mla_b_long,\
899 neon_sat_mla_h_long,\
900 neon_sat_mla_s_long,\
901 neon_sat_mla_h_scalar_long,\
902 neon_sat_mla_s_scalar_long,\
903\
904 neon_to_gp,\
905 neon_to_gp_q,\
906 neon_from_gp,\
907 neon_from_gp_q,\
908\
909 neon_ldr,\
5c4b7f1c
EM
910 neon_ldp,\
911 neon_ldp_q,\
20445ed6
JG
912 neon_load1_1reg,\
913 neon_load1_1reg_q,\
914 neon_load1_2reg,\
915 neon_load1_2reg_q,\
916 neon_load1_3reg,\
917 neon_load1_3reg_q,\
918 neon_load1_4reg,\
919 neon_load1_4reg_q,\
920 neon_load1_all_lanes,\
921 neon_load1_all_lanes_q,\
922 neon_load1_one_lane,\
923 neon_load1_one_lane_q,\
924\
925 neon_load2_2reg,\
926 neon_load2_2reg_q,\
927 neon_load2_4reg,\
928 neon_load2_4reg_q,\
929 neon_load2_all_lanes,\
930 neon_load2_all_lanes_q,\
931 neon_load2_one_lane,\
932 neon_load2_one_lane_q,\
933\
934 neon_load3_3reg,\
935 neon_load3_3reg_q,\
936 neon_load3_all_lanes,\
937 neon_load3_all_lanes_q,\
938 neon_load3_one_lane,\
939 neon_load3_one_lane_q,\
940\
941 neon_load4_4reg,\
942 neon_load4_4reg_q,\
943 neon_load4_all_lanes,\
944 neon_load4_all_lanes_q,\
945 neon_load4_one_lane,\
946 neon_load4_one_lane_q,\
947\
948 neon_str,\
5c4b7f1c
EM
949 neon_stp,\
950 neon_stp_q,\
20445ed6
JG
951 neon_store1_1reg,\
952 neon_store1_1reg_q,\
953 neon_store1_2reg,\
954 neon_store1_2reg_q,\
955 neon_store1_3reg,\
956 neon_store1_3reg_q,\
957 neon_store1_4reg,\
958 neon_store1_4reg_q,\
959 neon_store1_one_lane,\
960 neon_store1_one_lane_q,\
961\
962 neon_store2_2reg,\
963 neon_store2_2reg_q,\
964 neon_store2_4reg,\
965 neon_store2_4reg_q,\
966 neon_store2_one_lane,\
967 neon_store2_one_lane_q,\
968\
969 neon_store3_3reg,\
970 neon_store3_3reg_q,\
971 neon_store3_one_lane,\
972 neon_store3_one_lane_q,\
973\
974 neon_store4_4reg,\
975 neon_store4_4reg_q,\
976 neon_store4_one_lane,\
977 neon_store4_one_lane_q,\
978\
979 neon_fp_abs_s,\
980 neon_fp_abs_s_q,\
981 neon_fp_abs_d,\
982 neon_fp_abs_d_q,\
983 neon_fp_neg_s,\
984 neon_fp_neg_s_q,\
985 neon_fp_neg_d,\
986 neon_fp_neg_d_q,\
987\
988 neon_fp_abd_s,\
989 neon_fp_abd_s_q,\
990 neon_fp_abd_d,\
991 neon_fp_abd_d_q,\
992 neon_fp_addsub_s,\
993 neon_fp_addsub_s_q,\
994 neon_fp_addsub_d,\
995 neon_fp_addsub_d_q,\
996 neon_fp_compare_s,\
997 neon_fp_compare_s_q,\
998 neon_fp_compare_d,\
999 neon_fp_compare_d_q,\
1000 neon_fp_minmax_s,\
1001 neon_fp_minmax_s_q,\
1002 neon_fp_minmax_d,\
1003 neon_fp_minmax_d_q,\
1004\
1005 neon_fp_reduc_add_s,\
1006 neon_fp_reduc_add_s_q,\
1007 neon_fp_reduc_add_d,\
1008 neon_fp_reduc_add_d_q,\
1009 neon_fp_reduc_minmax_s,\
1010 neon_fp_reduc_minmax_s_q,\
1011 neon_fp_reduc_minmax_d,\
1012 neon_fp_reduc_minmax_d_q,\
1013\
1014 neon_fp_cvt_narrow_s_q,\
1015 neon_fp_cvt_narrow_d_q,\
1016 neon_fp_cvt_widen_h,\
1017 neon_fp_cvt_widen_s,\
1018\
1019 neon_fp_to_int_s,\
1020 neon_fp_to_int_s_q,\
1021 neon_fp_to_int_d,\
1022 neon_fp_to_int_d_q,\
1023 neon_int_to_fp_s,\
1024 neon_int_to_fp_s_q,\
1025 neon_int_to_fp_d,\
1026 neon_int_to_fp_d_q,\
1027 neon_fp_round_s,\
1028 neon_fp_round_s_q,\
1029 neon_fp_round_d,\
1030 neon_fp_round_d_q,\
1031\
1032 neon_fp_recpe_s,\
1033 neon_fp_recpe_s_q,\
1034 neon_fp_recpe_d,\
1035 neon_fp_recpe_d_q,\
1036 neon_fp_recps_s,\
1037 neon_fp_recps_s_q,\
1038 neon_fp_recps_d,\
1039 neon_fp_recps_d_q,\
1040 neon_fp_recpx_s,\
1041 neon_fp_recpx_s_q,\
1042 neon_fp_recpx_d,\
1043 neon_fp_recpx_d_q,\
1044\
1045 neon_fp_rsqrte_s,\
1046 neon_fp_rsqrte_s_q,\
1047 neon_fp_rsqrte_d,\
1048 neon_fp_rsqrte_d_q,\
1049 neon_fp_rsqrts_s,\
1050 neon_fp_rsqrts_s_q,\
1051 neon_fp_rsqrts_d,\
1052 neon_fp_rsqrts_d_q,\
1053\
1054 neon_fp_mul_s,\
1055 neon_fp_mul_s_q,\
1056 neon_fp_mul_s_scalar,\
1057 neon_fp_mul_s_scalar_q,\
1058 neon_fp_mul_d,\
1059 neon_fp_mul_d_q,\
1060 neon_fp_mul_d_scalar_q,\
1061\
1062 neon_fp_mla_s,\
1063 neon_fp_mla_s_q,\
1064 neon_fp_mla_s_scalar,\
1065 neon_fp_mla_s_scalar_q,\
1066 neon_fp_mla_d,\
1067 neon_fp_mla_d_q,\
1068 neon_fp_mla_d_scalar_q,\
1069\
1070 neon_fp_sqrt_s,\
1071 neon_fp_sqrt_s_q,\
1072 neon_fp_sqrt_d,\
1073 neon_fp_sqrt_d_q,\
1074 neon_fp_div_s,\
1075 neon_fp_div_s_q,\
1076 neon_fp_div_d,\
9783e598
TB
1077 neon_fp_div_d_q,\
1078\
b10baa95
KT
1079 crypto_aese,\
1080 crypto_aesmc,\
9783e598
TB
1081 crypto_sha1_xor,\
1082 crypto_sha1_fast,\
1083 crypto_sha1_slow,\
1084 crypto_sha256_fast,\
d57daa0c 1085 crypto_sha256_slow,\
a2074e9c 1086 crypto_pmull,\
27086ea3
MC
1087 crypto_sha512,\
1088 crypto_sha3,\
1089 crypto_sm3,\
1090 crypto_sm4,\
d57daa0c 1091 coproc"
20445ed6 1092 (const_string "untyped"))
701bd1bd
SN
1093
1094; Is this an (integer side) multiply with a 32-bit (or smaller) result?
1095(define_attr "mul32" "no,yes"
1096 (if_then_else
1097 (eq_attr "type"
1098 "smulxy,smlaxy,smulwy,smlawx,mul,muls,mla,mlas,smlawy,smuad,smuadx,\
1099 smlad,smladx,smusd,smusdx,smlsd,smlsdx,smmul,smmulr,smmla,smlald,smlsld")
1100 (const_string "yes")
1101 (const_string "no")))
1102
f51c724c
KT
1103; Is this an (integer side) widening multiply with a 64-bit result?
1104(define_attr "widen_mul64" "no,yes"
701bd1bd
SN
1105 (if_then_else
1106 (eq_attr "type"
1107 "smlalxy,umull,umulls,umaal,umlal,umlals,smull,smulls,smlal,smlals")
1108 (const_string "yes")
1109 (const_string "no")))
b10baa95
KT
1110
1111; YES if the "type" attribute assigned to the insn denotes an
1112; Advanced SIMD instruction, NO otherwise.
1113(define_attr "is_neon_type" "yes,no"
1114 (if_then_else (eq_attr "type"
1115 "neon_add, neon_add_q, neon_add_widen, neon_add_long,\
1116 neon_qadd, neon_qadd_q, neon_add_halve, neon_add_halve_q,\
1117 neon_add_halve_narrow_q,\
1118 neon_sub, neon_sub_q, neon_sub_widen, neon_sub_long, neon_qsub,\
1119 neon_qsub_q, neon_sub_halve, neon_sub_halve_q,\
1120 neon_sub_halve_narrow_q,\
f8e109ba
TC
1121 neon_abs, neon_abs_q, neon_dot, neon_dot_q, neon_neg, neon_neg_q,\
1122 neon_qneg, neon_qneg_q, neon_qabs, neon_qabs_q, neon_abd, neon_abd_q,\
b10baa95
KT
1123 neon_abd_long, neon_minmax, neon_minmax_q, neon_compare,\
1124 neon_compare_q, neon_compare_zero, neon_compare_zero_q,\
1125 neon_arith_acc, neon_arith_acc_q, neon_reduc_add,\
1126 neon_reduc_add_q, neon_reduc_add_long, neon_reduc_add_acc,\
1127 neon_reduc_add_acc_q, neon_reduc_minmax, neon_reduc_minmax_q,\
1128 neon_logic, neon_logic_q, neon_tst, neon_tst_q,\
1129 neon_shift_imm, neon_shift_imm_q, neon_shift_imm_narrow_q,\
1130 neon_shift_imm_long, neon_shift_reg, neon_shift_reg_q,\
1131 neon_shift_acc, neon_shift_acc_q, neon_sat_shift_imm,\
1132 neon_sat_shift_imm_q, neon_sat_shift_imm_narrow_q,\
1133 neon_sat_shift_reg, neon_sat_shift_reg_q,\
1134 neon_ins, neon_ins_q, neon_move, neon_move_q, neon_move_narrow_q,\
1135 neon_permute, neon_permute_q, neon_zip, neon_zip_q, neon_tbl1,\
1136 neon_tbl1_q, neon_tbl2, neon_tbl2_q, neon_tbl3, neon_tbl3_q,\
1137 neon_tbl4, neon_tbl4_q, neon_bsl, neon_bsl_q, neon_cls,\
1138 neon_cls_q, neon_cnt, neon_cnt_q, neon_dup, neon_dup_q,\
1139 neon_ext, neon_ext_q, neon_rbit, neon_rbit_q,\
1140 neon_rev, neon_rev_q, neon_mul_b, neon_mul_b_q, neon_mul_h,\
1141 neon_mul_h_q, neon_mul_s, neon_mul_s_q, neon_mul_b_long,\
1142 neon_mul_h_long, neon_mul_s_long, neon_mul_d_long, neon_mul_h_scalar,\
1143 neon_mul_h_scalar_q, neon_mul_s_scalar, neon_mul_s_scalar_q,\
1144 neon_mul_h_scalar_long, neon_mul_s_scalar_long, neon_sat_mul_b,\
1145 neon_sat_mul_b_q, neon_sat_mul_h, neon_sat_mul_h_q,\
1146 neon_sat_mul_s, neon_sat_mul_s_q, neon_sat_mul_b_long,\
1147 neon_sat_mul_h_long, neon_sat_mul_s_long, neon_sat_mul_h_scalar,\
1148 neon_sat_mul_h_scalar_q, neon_sat_mul_s_scalar,\
1149 neon_sat_mul_s_scalar_q, neon_sat_mul_h_scalar_long,\
1150 neon_sat_mul_s_scalar_long, neon_mla_b, neon_mla_b_q, neon_mla_h,\
1151 neon_mla_h_q, neon_mla_s, neon_mla_s_q, neon_mla_b_long,\
1152 neon_mla_h_long, neon_mla_s_long, neon_mla_h_scalar,\
1153 neon_mla_h_scalar_q, neon_mla_s_scalar, neon_mla_s_scalar_q,\
1154 neon_mla_h_scalar_long, neon_mla_s_scalar_long,\
1155 neon_sat_mla_b_long, neon_sat_mla_h_long,\
1156 neon_sat_mla_s_long, neon_sat_mla_h_scalar_long,\
1157 neon_sat_mla_s_scalar_long,\
1158 neon_to_gp, neon_to_gp_q, neon_from_gp, neon_from_gp_q,\
5c4b7f1c
EM
1159 neon_ldr, neon_ldp, neon_ldp_q,\
1160 neon_load1_1reg, neon_load1_1reg_q, neon_load1_2reg,\
b10baa95
KT
1161 neon_load1_2reg_q, neon_load1_3reg, neon_load1_3reg_q,\
1162 neon_load1_4reg, neon_load1_4reg_q, neon_load1_all_lanes,\
1163 neon_load1_all_lanes_q, neon_load1_one_lane, neon_load1_one_lane_q,\
1164 neon_load2_2reg, neon_load2_2reg_q, neon_load2_4reg,\
1165 neon_load2_4reg_q, neon_load2_all_lanes, neon_load2_all_lanes_q,\
1166 neon_load2_one_lane, neon_load2_one_lane_q,\
1167 neon_load3_3reg, neon_load3_3reg_q, neon_load3_all_lanes,\
1168 neon_load3_all_lanes_q, neon_load3_one_lane, neon_load3_one_lane_q,\
1169 neon_load4_4reg, neon_load4_4reg_q, neon_load4_all_lanes,\
1170 neon_load4_all_lanes_q, neon_load4_one_lane, neon_load4_one_lane_q,\
5c4b7f1c
EM
1171 neon_str, neon_stp, neon_stp_q,\
1172 neon_store1_1reg, neon_store1_1reg_q, neon_store1_2reg,\
b10baa95
KT
1173 neon_store1_2reg_q, neon_store1_3reg, neon_store1_3reg_q,\
1174 neon_store1_4reg, neon_store1_4reg_q, neon_store1_one_lane,\
1175 neon_store1_one_lane_q, neon_store2_2reg, neon_store2_2reg_q,\
1176 neon_store2_4reg, neon_store2_4reg_q, neon_store2_one_lane,\
1177 neon_store2_one_lane_q, neon_store3_3reg, neon_store3_3reg_q,\
1178 neon_store3_one_lane, neon_store3_one_lane_q, neon_store4_4reg,\
1179 neon_store4_4reg_q, neon_store4_one_lane, neon_store4_one_lane_q,\
1180 neon_fp_abd_s, neon_fp_abd_s_q, neon_fp_abd_d, neon_fp_abd_d_q,\
3d0810e1 1181 neon_fp_abs_s, neon_fp_abs_s_q, neon_fp_abs_d, neon_fp_abs_d_q,\
b10baa95
KT
1182 neon_fp_addsub_s, neon_fp_addsub_s_q, neon_fp_addsub_d,\
1183 neon_fp_addsub_d_q, neon_fp_compare_s, neon_fp_compare_s_q,\
1184 neon_fp_compare_d, neon_fp_compare_d_q, neon_fp_minmax_s,\
1185 neon_fp_minmax_s_q, neon_fp_minmax_d, neon_fp_minmax_d_q,\
3d0810e1 1186 neon_fp_neg_s, neon_fp_neg_s_q, neon_fp_neg_d, neon_fp_neg_d_q,\
b10baa95
KT
1187 neon_fp_reduc_add_s, neon_fp_reduc_add_s_q, neon_fp_reduc_add_d,\
1188 neon_fp_reduc_add_d_q, neon_fp_reduc_minmax_s,
1189 neon_fp_reduc_minmax_s_q, neon_fp_reduc_minmax_d,\
1190 neon_fp_reduc_minmax_d_q,\
1191 neon_fp_cvt_narrow_s_q, neon_fp_cvt_narrow_d_q,\
1192 neon_fp_cvt_widen_h, neon_fp_cvt_widen_s, neon_fp_to_int_s,\
1193 neon_fp_to_int_s_q, neon_int_to_fp_s, neon_int_to_fp_s_q,\
3d0810e1
JG
1194 neon_fp_to_int_d, neon_fp_to_int_d_q,\
1195 neon_int_to_fp_d, neon_int_to_fp_d_q,\
b10baa95
KT
1196 neon_fp_round_s, neon_fp_round_s_q, neon_fp_recpe_s,\
1197 neon_fp_recpe_s_q,\
1198 neon_fp_recpe_d, neon_fp_recpe_d_q, neon_fp_recps_s,\
1199 neon_fp_recps_s_q, neon_fp_recps_d, neon_fp_recps_d_q,\
1200 neon_fp_recpx_s, neon_fp_recpx_s_q, neon_fp_recpx_d,\
1201 neon_fp_recpx_d_q, neon_fp_rsqrte_s, neon_fp_rsqrte_s_q,\
1202 neon_fp_rsqrte_d, neon_fp_rsqrte_d_q, neon_fp_rsqrts_s,\
1203 neon_fp_rsqrts_s_q, neon_fp_rsqrts_d, neon_fp_rsqrts_d_q,\
1204 neon_fp_mul_s, neon_fp_mul_s_q, neon_fp_mul_s_scalar,\
1205 neon_fp_mul_s_scalar_q, neon_fp_mul_d, neon_fp_mul_d_q,\
1206 neon_fp_mul_d_scalar_q, neon_fp_mla_s, neon_fp_mla_s_q,\
1207 neon_fp_mla_s_scalar, neon_fp_mla_s_scalar_q, neon_fp_mla_d,\
1208 neon_fp_mla_d_q, neon_fp_mla_d_scalar_q, neon_fp_sqrt_s,\
1209 neon_fp_sqrt_s_q, neon_fp_sqrt_d, neon_fp_sqrt_d_q,\
1210 neon_fp_div_s, neon_fp_div_s_q, neon_fp_div_d, neon_fp_div_d_q, crypto_aese,\
1211 crypto_aesmc, crypto_sha1_xor, crypto_sha1_fast, crypto_sha1_slow,\
1212 crypto_sha256_fast, crypto_sha256_slow")
1213 (const_string "yes")
1214 (const_string "no")))