This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH][GAS][AArch64] Enable Dot Product by default for ARMv8.4-a. [Patch (6/6)]
- From: Tamar Christina <tamar dot christina at arm dot com>
- To: binutils at sourceware dot org
- Cc: nd at arm dot com, Richard dot Earnshaw at arm dot com, marcus dot shawcroft at arm dot com
- Date: Wed, 8 Nov 2017 10:14:07 +0000
- Subject: [PATCH][GAS][AArch64] Enable Dot Product by default for ARMv8.4-a. [Patch (6/6)]
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Tamar dot Christina at arm dot com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Hi All,
This patch enables the Dot Product extension by default for
Armv8.4-a.
Checked with check-gas on aarch64-none-elf and aarch64_be-none-elf,
no regressions.
Ok for Trunk?
Ps. I do not have commit access so if OK can someone apply for me?
Thanks,
Tamar
include/
2017-11-08 Tamar Christina <tamar.christina@arm.com>
* opcode/aarch64.h (AARCH64_ARCH_V8_4): Enable DOTPROD.
gas/testsuite
2017-11-08 Tamar Christina <tamar.christina@arm.com>
* gas/aarch64/dotproduct_armv8_4.s: New.
* gas/aarch64/dotproduct_armv8_4.d: New.
--
diff --git a/gas/testsuite/gas/aarch64/dotproduct_armv8_4.d b/gas/testsuite/gas/aarch64/dotproduct_armv8_4.d
new file mode 100644
index 0000000000000000000000000000000000000000..121eb11bb40a12b57ebf1f52beaeade1bdb29e16
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/dotproduct_armv8_4.d
@@ -0,0 +1,10 @@
+#as: -march=armv8.4-a
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+[^:]+:\s+2e809400 udot v0.2s, v0.8b, v0.8b
+[^:]+:\s+2e8b9400 udot v0.2s, v0.8b, v11.8b
diff --git a/gas/testsuite/gas/aarch64/dotproduct_armv8_4.s b/gas/testsuite/gas/aarch64/dotproduct_armv8_4.s
new file mode 100644
index 0000000000000000000000000000000000000000..37538d9bb8270832a003a27e89e3f2d0e6ab44c0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/dotproduct_armv8_4.s
@@ -0,0 +1,2 @@
+UDOT V0.2S, V0.8B, V0.8B
+UDOT V0.2S, V0.8B, V11.8B
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 9e76952610ecb0c314f4971ea7f2b60282993bb0..60653a2cdb88db3f3b4d3836070c55863e37b530 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -81,7 +81,8 @@ typedef uint32_t aarch64_insn;
| AARCH64_FEATURE_RCPC \
| AARCH64_FEATURE_COMPNUM)
#define AARCH64_ARCH_V8_4 AARCH64_FEATURE (AARCH64_ARCH_V8_3, \
- AARCH64_FEATURE_V8_4)
+ AARCH64_FEATURE_V8_4 \
+ | AARCH64_FEATURE_DOTPROD)
#define AARCH64_ARCH_NONE AARCH64_FEATURE (0, 0)
#define AARCH64_ANY AARCH64_FEATURE (-1, 0) /* Any basic core. */