aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMatthew Wahab <matthew.wahab@arm.com>2015-12-14 17:35:47 +0000
committerMatthew Wahab <matthew.wahab@arm.com>2015-12-14 17:35:47 +0000
commitb195470dd29e8a5c8810209fb2d22c30004fe6ab (patch)
tree6b458e668bbae8dd38eeec8e8849ec8da79010d2 /gas
parent3067d3b96cfb88e86acf94d2aa1575cff0e0110f (diff)
downloadgdb-b195470dd29e8a5c8810209fb2d22c30004fe6ab.zip
gdb-b195470dd29e8a5c8810209fb2d22c30004fe6ab.tar.gz
gdb-b195470dd29e8a5c8810209fb2d22c30004fe6ab.tar.bz2
[AArch64][PATCH 12/14] Support FP16 Adv.SIMD Scalar Pairwise instructions.
ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Adv.SIMD Scalar Pairwise, making them available when +simd+fp16 is enabled. The instructions added are: FMAXNMP, FADDP, FMAXP, FMINNMP and FMINP The general form for these instructions is <OP> <Hd>, <V>.<T> where T is 4h or 8h. gas/testsuite/ 2015-12-14 Matthew Wahab <matthew.wahab@arm.com> * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD Scalar Pairwise instructions. opcodes/ 2015-12-14 Matthew Wahab <matthew.wahab@arm.com> * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_SISD_PAIR_H): New. (aarch64_opcode_table): Add fp16 versions of fmaxnmp, faddp, fmaxp, fminnmp, fminp to the Adv.SIMD scalar pairwise group. Change-Id: I19937ede3441b66dd0f940269ece895b17d3c345
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-fp16.d20
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-fp16.s16
3 files changed, 42 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index ff7b695..d8a7e18 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,6 +1,12 @@
2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
* gas/aarch64/advsimd-fp16.d: Update expected output.
+ * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD Scalar
+ Pairwise instructions.
+
+2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
+
+ * gas/aarch64/advsimd-fp16.d: Update expected output.
* gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD modified
immediate instructions.
diff --git a/gas/testsuite/gas/aarch64/advsimd-fp16.d b/gas/testsuite/gas/aarch64/advsimd-fp16.d
index 5abad7e..3b8506b 100644
--- a/gas/testsuite/gas/aarch64/advsimd-fp16.d
+++ b/gas/testsuite/gas/aarch64/advsimd-fp16.d
@@ -499,3 +499,23 @@ Disassembly of section \.text:
[0-9a-f]+: 4f00fc01 fmov v1.8h, #2.000000000000000000e\+00
[0-9a-f]+: 0f03fe00 fmov v0.4h, #1.000000000000000000e\+00
[0-9a-f]+: 4f03fe00 fmov v0.8h, #1.000000000000000000e\+00
+ [0-9a-f]+: 7e70c841 fmaxnmp d1, v2.2d
+ [0-9a-f]+: 7e30c841 fmaxnmp s1, v2.2s
+ [0-9a-f]+: 5e30c841 fmaxnmp h1, v2.2h
+ [0-9a-f]+: 5e30c800 fmaxnmp h0, v0.2h
+ [0-9a-f]+: 7e70d841 faddp d1, v2.2d
+ [0-9a-f]+: 7e30d841 faddp s1, v2.2s
+ [0-9a-f]+: 5e30d841 faddp h1, v2.2h
+ [0-9a-f]+: 5e30d800 faddp h0, v0.2h
+ [0-9a-f]+: 7e70f841 fmaxp d1, v2.2d
+ [0-9a-f]+: 7e30f841 fmaxp s1, v2.2s
+ [0-9a-f]+: 5e30f841 fmaxp h1, v2.2h
+ [0-9a-f]+: 5e30f800 fmaxp h0, v0.2h
+ [0-9a-f]+: 7ef0c841 fminnmp d1, v2.2d
+ [0-9a-f]+: 7eb0c841 fminnmp s1, v2.2s
+ [0-9a-f]+: 5eb0c841 fminnmp h1, v2.2h
+ [0-9a-f]+: 5eb0c800 fminnmp h0, v0.2h
+ [0-9a-f]+: 7ef0f841 fminp d1, v2.2d
+ [0-9a-f]+: 7eb0f841 fminp s1, v2.2s
+ [0-9a-f]+: 5eb0f841 fminp h1, v2.2h
+ [0-9a-f]+: 5eb0f800 fminp h0, v0.2h
diff --git a/gas/testsuite/gas/aarch64/advsimd-fp16.s b/gas/testsuite/gas/aarch64/advsimd-fp16.s
index 75aacf6..c0ea786 100644
--- a/gas/testsuite/gas/aarch64/advsimd-fp16.s
+++ b/gas/testsuite/gas/aarch64/advsimd-fp16.s
@@ -212,3 +212,19 @@
fmov v1.8h, #2.0
fmov v0.4h, #1.0
fmov v0.8h, #1.0
+
+ /* Adv.SIMD modified immediate. */
+
+ .macro scalar_pairwise, op
+ \op d1, v2.2d
+ \op s1, v2.2s
+ \op h1, v2.2h
+ \op h0, v0.2h
+ .endm
+
+ scalar_pairwise fmaxnmp
+ scalar_pairwise faddp
+ scalar_pairwise fmaxp
+ scalar_pairwise fminnmp
+ scalar_pairwise fminp
+