Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/aarch64/aarch64-simd-builtins.def @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Machine description for AArch64 architecture. | 1 /* Machine description for AArch64 architecture. |
2 Copyright (C) 2012-2018 Free Software Foundation, Inc. | 2 Copyright (C) 2012-2020 Free Software Foundation, Inc. |
3 Contributed by ARM Ltd. | 3 Contributed by ARM Ltd. |
4 | 4 |
5 This file is part of GCC. | 5 This file is part of GCC. |
6 | 6 |
7 GCC is free software; you can redistribute it and/or modify it | 7 GCC is free software; you can redistribute it and/or modify it |
210 BUILTIN_VSDQ_I_DI (BINOP_UUS, urshl, 0) | 210 BUILTIN_VSDQ_I_DI (BINOP_UUS, urshl, 0) |
211 | 211 |
212 /* Implemented by aarch64_<sur><dotprod>{_lane}{q}<dot_mode>. */ | 212 /* Implemented by aarch64_<sur><dotprod>{_lane}{q}<dot_mode>. */ |
213 BUILTIN_VB (TERNOP, sdot, 0) | 213 BUILTIN_VB (TERNOP, sdot, 0) |
214 BUILTIN_VB (TERNOPU, udot, 0) | 214 BUILTIN_VB (TERNOPU, udot, 0) |
215 BUILTIN_VB (TERNOP_SSUS, usdot, 0) | |
215 BUILTIN_VB (QUADOP_LANE, sdot_lane, 0) | 216 BUILTIN_VB (QUADOP_LANE, sdot_lane, 0) |
216 BUILTIN_VB (QUADOPU_LANE, udot_lane, 0) | 217 BUILTIN_VB (QUADOPU_LANE, udot_lane, 0) |
217 BUILTIN_VB (QUADOP_LANE, sdot_laneq, 0) | 218 BUILTIN_VB (QUADOP_LANE, sdot_laneq, 0) |
218 BUILTIN_VB (QUADOPU_LANE, udot_laneq, 0) | 219 BUILTIN_VB (QUADOPU_LANE, udot_laneq, 0) |
220 BUILTIN_VB (QUADOPSSUS_LANE_QUADTUP, usdot_lane, 0) | |
221 BUILTIN_VB (QUADOPSSUS_LANE_QUADTUP, usdot_laneq, 0) | |
222 BUILTIN_VB (QUADOPSSSU_LANE_QUADTUP, sudot_lane, 0) | |
223 BUILTIN_VB (QUADOPSSSU_LANE_QUADTUP, sudot_laneq, 0) | |
224 | |
225 /* Implemented by aarch64_fcadd<rot><mode>. */ | |
226 BUILTIN_VHSDF (BINOP, fcadd90, 0) | |
227 BUILTIN_VHSDF (BINOP, fcadd270, 0) | |
228 | |
229 /* Implemented by aarch64_fcmla{_lane}{q}<rot><mode>. */ | |
230 BUILTIN_VHSDF (TERNOP, fcmla0, 0) | |
231 BUILTIN_VHSDF (TERNOP, fcmla90, 0) | |
232 BUILTIN_VHSDF (TERNOP, fcmla180, 0) | |
233 BUILTIN_VHSDF (TERNOP, fcmla270, 0) | |
234 BUILTIN_VHSDF (QUADOP_LANE_PAIR, fcmla_lane0, 0) | |
235 BUILTIN_VHSDF (QUADOP_LANE_PAIR, fcmla_lane90, 0) | |
236 BUILTIN_VHSDF (QUADOP_LANE_PAIR, fcmla_lane180, 0) | |
237 BUILTIN_VHSDF (QUADOP_LANE_PAIR, fcmla_lane270, 0) | |
238 | |
239 BUILTIN_VQ_HSF (QUADOP_LANE_PAIR, fcmlaq_lane0, 0) | |
240 BUILTIN_VQ_HSF (QUADOP_LANE_PAIR, fcmlaq_lane90, 0) | |
241 BUILTIN_VQ_HSF (QUADOP_LANE_PAIR, fcmlaq_lane180, 0) | |
242 BUILTIN_VQ_HSF (QUADOP_LANE_PAIR, fcmlaq_lane270, 0) | |
219 | 243 |
220 BUILTIN_VDQ_I (SHIFTIMM, ashr, 3) | 244 BUILTIN_VDQ_I (SHIFTIMM, ashr, 3) |
221 VAR1 (SHIFTIMM, ashr_simd, 0, di) | 245 VAR1 (SHIFTIMM, ashr_simd, 0, di) |
222 BUILTIN_VDQ_I (SHIFTIMM, lshr, 3) | 246 BUILTIN_VDQ_I (SHIFTIMM, lshr, 3) |
223 VAR1 (USHIFTIMM, lshr_simd, 0, di) | 247 VAR1 (USHIFTIMM, lshr_simd, 0, di) |
403 VAR5 (UNOPU, bswap, 2, v4hi, v8hi, v2si, v4si, v2di) | 427 VAR5 (UNOPU, bswap, 2, v4hi, v8hi, v2si, v4si, v2di) |
404 | 428 |
405 BUILTIN_VB (UNOP, rbit, 0) | 429 BUILTIN_VB (UNOP, rbit, 0) |
406 | 430 |
407 /* Implemented by | 431 /* Implemented by |
408 aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>. */ | 432 aarch64_<PERMUTE:perm_insn><mode>. */ |
409 BUILTIN_VALL (BINOP, zip1, 0) | 433 BUILTIN_VALL (BINOP, zip1, 0) |
410 BUILTIN_VALL (BINOP, zip2, 0) | 434 BUILTIN_VALL (BINOP, zip2, 0) |
411 BUILTIN_VALL (BINOP, uzp1, 0) | 435 BUILTIN_VALL (BINOP, uzp1, 0) |
412 BUILTIN_VALL (BINOP, uzp2, 0) | 436 BUILTIN_VALL (BINOP, uzp2, 0) |
413 BUILTIN_VALL (BINOP, trn1, 0) | 437 BUILTIN_VALL (BINOP, trn1, 0) |
444 VAR1(STORE1P, st1, 0, v2di) | 468 VAR1(STORE1P, st1, 0, v2di) |
445 | 469 |
446 /* Implemented by aarch64_ld1x3<VALLDIF:mode>. */ | 470 /* Implemented by aarch64_ld1x3<VALLDIF:mode>. */ |
447 BUILTIN_VALLDIF (LOADSTRUCT, ld1x3, 0) | 471 BUILTIN_VALLDIF (LOADSTRUCT, ld1x3, 0) |
448 | 472 |
473 /* Implemented by aarch64_ld1x4<VALLDIF:mode>. */ | |
474 BUILTIN_VALLDIF (LOADSTRUCT, ld1x4, 0) | |
475 | |
449 /* Implemented by aarch64_st1x2<VALLDIF:mode>. */ | 476 /* Implemented by aarch64_st1x2<VALLDIF:mode>. */ |
450 BUILTIN_VALLDIF (STORESTRUCT, st1x2, 0) | 477 BUILTIN_VALLDIF (STORESTRUCT, st1x2, 0) |
451 | 478 |
452 /* Implemented by aarch64_st1x3<VALLDIF:mode>. */ | 479 /* Implemented by aarch64_st1x3<VALLDIF:mode>. */ |
453 BUILTIN_VALLDIF (STORESTRUCT, st1x3, 0) | 480 BUILTIN_VALLDIF (STORESTRUCT, st1x3, 0) |
481 | |
482 /* Implemented by aarch64_st1x4<VALLDIF:mode>. */ | |
483 BUILTIN_VALLDIF (STORESTRUCT, st1x4, 0) | |
454 | 484 |
455 /* Implemented by fma<mode>4. */ | 485 /* Implemented by fma<mode>4. */ |
456 BUILTIN_VHSDF (TERNOP, fma, 4) | 486 BUILTIN_VHSDF (TERNOP, fma, 4) |
457 VAR1 (TERNOP, fma, 4, hf) | 487 VAR1 (TERNOP, fma, 4, hf) |
458 /* Implemented by fnma<mode>4. */ | 488 /* Implemented by fnma<mode>4. */ |
649 VAR1 (QUADOP_LANE, fmlalq_lane_high, 0, v4sf) | 679 VAR1 (QUADOP_LANE, fmlalq_lane_high, 0, v4sf) |
650 VAR1 (QUADOP_LANE, fmlslq_lane_high, 0, v4sf) | 680 VAR1 (QUADOP_LANE, fmlslq_lane_high, 0, v4sf) |
651 /* Implemented by aarch64_fml<f16mac1>lq_laneq_highv4sf. */ | 681 /* Implemented by aarch64_fml<f16mac1>lq_laneq_highv4sf. */ |
652 VAR1 (QUADOP_LANE, fmlalq_laneq_high, 0, v4sf) | 682 VAR1 (QUADOP_LANE, fmlalq_laneq_high, 0, v4sf) |
653 VAR1 (QUADOP_LANE, fmlslq_laneq_high, 0, v4sf) | 683 VAR1 (QUADOP_LANE, fmlslq_laneq_high, 0, v4sf) |
684 | |
685 /* Implemented by aarch64_<frintnzs_op><mode>. */ | |
686 BUILTIN_VSFDF (UNOP, frint32z, 0) | |
687 BUILTIN_VSFDF (UNOP, frint32x, 0) | |
688 BUILTIN_VSFDF (UNOP, frint64z, 0) | |
689 BUILTIN_VSFDF (UNOP, frint64x, 0) | |
690 | |
691 /* Implemented by aarch64_bfdot{_lane}{q}<mode>. */ | |
692 VAR2 (TERNOP, bfdot, 0, v2sf, v4sf) | |
693 VAR2 (QUADOP_LANE_PAIR, bfdot_lane, 0, v2sf, v4sf) | |
694 VAR2 (QUADOP_LANE_PAIR, bfdot_laneq, 0, v2sf, v4sf) | |
695 | |
696 /* Implemented by aarch64_bfmmlaqv4sf */ | |
697 VAR1 (TERNOP, bfmmlaq, 0, v4sf) | |
698 | |
699 /* Implemented by aarch64_bfmlal<bt>{_lane{q}}v4sf */ | |
700 VAR1 (TERNOP, bfmlalb, 0, v4sf) | |
701 VAR1 (TERNOP, bfmlalt, 0, v4sf) | |
702 VAR1 (QUADOP_LANE, bfmlalb_lane, 0, v4sf) | |
703 VAR1 (QUADOP_LANE, bfmlalt_lane, 0, v4sf) | |
704 VAR1 (QUADOP_LANE, bfmlalb_lane_q, 0, v4sf) | |
705 VAR1 (QUADOP_LANE, bfmlalt_lane_q, 0, v4sf) | |
706 | |
707 /* Implemented by aarch64_simd_<sur>mmlav16qi. */ | |
708 VAR1 (TERNOP, simd_smmla, 0, v16qi) | |
709 VAR1 (TERNOPU, simd_ummla, 0, v16qi) | |
710 VAR1 (TERNOP_SSUS, simd_usmmla, 0, v16qi) |