aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/iterators.md
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@arm.com>2016-07-25 14:49:57 +0000
committerJiong Wang <jiwang@gcc.gnu.org>2016-07-25 14:49:57 +0000
commitab2e8f01f1bc926ba403ea16f1663c95aa1a3c66 (patch)
treeedb585c6d9bbaef6323ece41c3b3b8d226bdd120 /gcc/config/aarch64/iterators.md
parent89ed6d5f5e9207087bde180bb4ed2be8a8b39787 (diff)
downloadgcc-ab2e8f01f1bc926ba403ea16f1663c95aa1a3c66.zip
gcc-ab2e8f01f1bc926ba403ea16f1663c95aa1a3c66.tar.gz
gcc-ab2e8f01f1bc926ba403ea16f1663c95aa1a3c66.tar.bz2
[AArch64][5/10] ARMv8.2-A FP16 lane vector intrinsics
gcc/ * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to "*aarch64_mulx_elt_from_dup<mode>". (*aarch64_mul3_elt<mode>): Update schedule type. (*aarch64_mul3_elt_from_dup<mode>): Likewise. (*aarch64_fma4_elt_from_dup<mode>): Likewise. (*aarch64_fnma4_elt_from_dup<mode>): Likewise. * config/aarch64/iterators.md (VMUL): Supprt half precision float modes. (f, fp): Support HF modes. * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16, vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16, vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16, vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16, vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16, vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New. From-SVN: r238719
Diffstat (limited to 'gcc/config/aarch64/iterators.md')
-rw-r--r--gcc/config/aarch64/iterators.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index 35190b4..8d4dc6c 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -218,7 +218,10 @@
(define_mode_iterator DX [DI DF])
;; Modes available for <f>mul lane operations.
-(define_mode_iterator VMUL [V4HI V8HI V2SI V4SI V2SF V4SF V2DF])
+(define_mode_iterator VMUL [V4HI V8HI V2SI V4SI
+ (V4HF "TARGET_SIMD_F16INST")
+ (V8HF "TARGET_SIMD_F16INST")
+ V2SF V4SF V2DF])
;; Modes available for <f>mul lane operations changing lane count.
(define_mode_iterator VMUL_CHANGE_NLANES [V4HI V8HI V2SI V4SI V2SF V4SF])
@@ -730,6 +733,7 @@
(V4HI "") (V8HI "")
(V2SI "") (V4SI "")
(DI "") (V2DI "")
+ (V4HF "f") (V8HF "f")
(V2SF "f") (V4SF "f")
(V2DF "f") (DF "f")])
@@ -738,6 +742,7 @@
(V4HI "") (V8HI "")
(V2SI "") (V4SI "")
(DI "") (V2DI "")
+ (V4HF "_fp") (V8HF "_fp")
(V2SF "_fp") (V4SF "_fp")
(V2DF "_fp") (DF "_fp")
(SF "_fp")])