diff options
author | Matthew Wahab <matthew.wahab@arm.com> | 2015-12-14 17:35:47 +0000 |
---|---|---|
committer | Matthew Wahab <matthew.wahab@arm.com> | 2015-12-14 17:35:47 +0000 |
commit | b195470dd29e8a5c8810209fb2d22c30004fe6ab (patch) | |
tree | 6b458e668bbae8dd38eeec8e8849ec8da79010d2 /gas | |
parent | 3067d3b96cfb88e86acf94d2aa1575cff0e0110f (diff) | |
download | gdb-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/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/advsimd-fp16.d | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/advsimd-fp16.s | 16 |
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 + |