From 4b5fc357a17d59929cf39869d19fc4eabdb7ae81 Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Mon, 14 Dec 2015 17:22:36 +0000 Subject: [AArch64][PATCH 9/14] Support FP16 Adv.SIMD Modified Immediate instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds an FP16 instruction to the group Adv.SIMD Modified Immediate, making it available when +simd+fp16 is enabled. The instruction added is: FMOV. The form of this instructions is , # gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD modified immediate instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_SIMD_IMM_H): New. (aarch64_opcode_table): Add fp16 version of fmov to the Adv.SIMD modified immediate group. Change-Id: Ic66af44c494e6a53fb1cf01c372cdc62d12643e2 --- gas/testsuite/ChangeLog | 6 ++++++ gas/testsuite/gas/aarch64/advsimd-fp16.d | 7 +++++++ gas/testsuite/gas/aarch64/advsimd-fp16.s | 9 +++++++++ 3 files changed, 22 insertions(+) (limited to 'gas') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index a2a3bf8..ff7b695 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,6 +1,12 @@ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. + * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD modified + immediate instructions. + +2015-12-14 Matthew Wahab + + * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD across lanes instructions. * gas/aarch64/illegal.d: Update expected output. diff --git a/gas/testsuite/gas/aarch64/advsimd-fp16.d b/gas/testsuite/gas/aarch64/advsimd-fp16.d index 241dc3f..5abad7e 100644 --- a/gas/testsuite/gas/aarch64/advsimd-fp16.d +++ b/gas/testsuite/gas/aarch64/advsimd-fp16.d @@ -492,3 +492,10 @@ Disassembly of section \.text: [0-9a-f]+: 4eb0f841 fminv h1, v2.8h [0-9a-f]+: 0eb0f800 fminv h0, v0.4h [0-9a-f]+: 4eb0f800 fminv h0, v0.8h + [0-9a-f]+: 6f00f401 fmov v1.2d, #2.000000000000000000e\+00 + [0-9a-f]+: 0f00f401 fmov v1.2s, #2.000000000000000000e\+00 + [0-9a-f]+: 4f00f401 fmov v1.4s, #2.000000000000000000e\+00 + [0-9a-f]+: 0f00fc01 fmov v1.4h, #2.000000000000000000e\+00 + [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 diff --git a/gas/testsuite/gas/aarch64/advsimd-fp16.s b/gas/testsuite/gas/aarch64/advsimd-fp16.s index c4e0ad1..75aacf6 100644 --- a/gas/testsuite/gas/aarch64/advsimd-fp16.s +++ b/gas/testsuite/gas/aarch64/advsimd-fp16.s @@ -203,3 +203,12 @@ across_lanes fminnmv across_lanes fminv + /* Adv.SIMD modified immediate. */ + + fmov v1.2d, #2.0 + fmov v1.2s, #2.0 + fmov v1.4s, #2.0 + fmov v1.4h, #2.0 + fmov v1.8h, #2.0 + fmov v0.4h, #1.0 + fmov v0.8h, #1.0 -- cgit v1.1