[00/16,gas,aarch64] SVE2 binutils instructions for aarch64

Message ID 1556721866-21052-1-git-send-email-matthew.malcomson@arm.com
Headers show
Series
  • SVE2 binutils instructions for aarch64
Related show

Message

Matthew Malcomson May 1, 2019, 2:44 p.m.
This series of patches adds support for the "Future Architecture Technologies"
Scalable Vector Extension V2 (SVE2) announced at Linaro Connect.
https://connect.linaro.org/resources/bkk19/new-technologies-in-the-arm-architecture/

Tested by comparing against an independent implementation with the testfile
provided and running the testsuite on an aarch64-linux-gnu cross-assembler.

The instructions and testcases are added in the final two patches to keep the
number of patches that need to be zipped to a minimum.

The instructions are published at the link below.
https://developer.arm.com/docs/ddi0602/latest/a64-sve-instructions-alphabetic-order

Thanks,
Matthew

Comments

Matthew Malcomson May 1, 2019, 3:02 p.m. | #1
Add tests that SVE2 instructions are encoded as they should be, and
tests that invalid instructions have their problems reported.

Also check that each sve2 cryptographic extension is required to use the
corresponding cryptographic instructions.

Finally, test to ensure that sve2 instructions using mnemonics that
exist in sve1 still need the sve2 feature to be used.

gzipped patch is attached.

gas/ChangeLog:

2019-04-04  Matthew Malcomson  <matthew.malcomson@arm.com>

	* testsuite/gas/aarch64/illegal-sve2-aes.d: New test.
	* testsuite/gas/aarch64/illegal-sve2-bitperm.d: New test.
	* testsuite/gas/aarch64/illegal-sve2-sha3.d: Test new instructions.
	* testsuite/gas/aarch64/illegal-sve2-sm4.d: Test new instructions.
	* testsuite/gas/aarch64/illegal-sve2-sve1ext.d: Test new instructions.
	* testsuite/gas/aarch64/illegal-sve2-sve1ext.l: Test new instructions.
	* testsuite/gas/aarch64/illegal-sve2.d: Test new instructions.
	* testsuite/gas/aarch64/illegal-sve2.l: Test new instructions.
	* testsuite/gas/aarch64/illegal-sve2.s: Test new instructions.
	* testsuite/gas/aarch64/sve1-extended-sve2.s: New test.
	* testsuite/gas/aarch64/sve2.d: Test new instructions.
	* testsuite/gas/aarch64/sve2.s: Test new instructions.
Joseph Myers May 2, 2019, 3:25 p.m. | #2
On Wed, 1 May 2019, Matthew Malcomson wrote:

> This series of patches adds support for the "Future Architecture Technologies"

> Scalable Vector Extension V2 (SVE2) announced at Linaro Connect.

> https://connect.linaro.org/resources/bkk19/new-technologies-in-the-arm-architecture/


I get a 404 for that URL.

-- 
Joseph S. Myers
joseph@codesourcery.com
Matthew Malcomson May 2, 2019, 3:34 p.m. | #3
On 02/05/19 16:25, Joseph Myers wrote:
> On Wed, 1 May 2019, Matthew Malcomson wrote:

> 

>> This series of patches adds support for the "Future Architecture Technologies"

>> Scalable Vector Extension V2 (SVE2) announced at Linaro Connect.

>> https://connect.linaro.org/resources/bkk19/new-technologies-in-the-arm-architecture/

> 

> I get a 404 for that URL.

> 


Apologies, I guess the page must have moved since I copied it down.

I can now find the page at this url
https://connect.linaro.org/resources/bkk19/bkk19-202/
Nick Clifton May 3, 2019, 11:21 a.m. | #4
Hi Matthew,

> This series of patches adds support for the "Future Architecture Technologies"

> Scalable Vector Extension V2 (SVE2) announced at Linaro Connect.

> https://connect.linaro.org/resources/bkk19/new-technologies-in-the-arm-architecture/


Sorry to be a pain, but would you mind resending these patches ?

There are two problems:

   1. They do not apply cleanly to the current mainline sources
      now that the TME patches have gone in.

   2. The patch format in your emails is causing problems for my
      email reader (Thunderbird).  I am not sure what format you 
      used, but the patches are showing up as text at the end of
      each email, rather than as attachments.  But if I save the
      email to a file and then try to examine the patch there, it
      is encoded with some kind of MIME encoding.

I do not mind if you combine all of the patches into just one email,
if that makes it easier for you, but it really would help if they
could be updated to match the latest sources, and provided as an
attachment, rather than inline.

Cheers
  Nick
Matthew Malcomson May 3, 2019, 2:56 p.m. | #5
On 03/05/19 12:21, Nick Clifton wrote:
> Hi Matthew,

> 

>> This series of patches adds support for the "Future Architecture Technologies"

>> Scalable Vector Extension V2 (SVE2) announced at Linaro Connect.

>> https://connect.linaro.org/resources/bkk19/new-technologies-in-the-arm-architecture/

> 

> Sorry to be a pain, but would you mind resending these patches ?

> 

> There are two problems:

> 

>     1. They do not apply cleanly to the current mainline sources

>        now that the TME patches have gone in.

> 

>     2. The patch format in your emails is causing problems for my

>        email reader (Thunderbird).  I am not sure what format you

>        used, but the patches are showing up as text at the end of

>        each email, rather than as attachments.  But if I save the

>        email to a file and then try to examine the patch there, it

>        is encoded with some kind of MIME encoding.

> 

> I do not mind if you combine all of the patches into just one email,

> if that makes it easier for you, but it really would help if they

> could be updated to match the latest sources, and provided as an

> attachment, rather than inline.

> 

> Cheers

>    Nick

> 


Hi Nick,

Sure -- I can do that (I should have noticed the recent updates ;-]).

Attached is a tar file of the patch series from "git format-patch" and a 
zipped diff from the entire series.

Cheers,
Matthew
Nick Clifton May 8, 2019, 10:08 a.m. | #6
Hi Matthew,

> Attached is a tar file of the patch series from "git format-patch" and a 

> zipped diff from the entire series.


Thanks - that was exactly what I needed.

Patch series approved - please apply.

Cheers
  Nick
Christophe Lyon May 9, 2019, 1:30 p.m. | #7
On Wed, 8 May 2019 at 12:08, Nick Clifton <nickc@redhat.com> wrote:
>

> Hi Matthew,

>

> > Attached is a tar file of the patch series from "git format-patch" and a

> > zipped diff from the entire series.

>

> Thanks - that was exactly what I needed.

>

> Patch series approved - please apply.

>


Hi Matthew,

After your commit, I noticed a new failure on aarch64_be:
gas/aarch64/sve2

Christophe

> Cheers

>   Nick

>
Matthew Malcomson May 9, 2019, 2:04 p.m. | #8
On 09/05/19 14:30, Christophe Lyon wrote:
> On Wed, 8 May 2019 at 12:08, Nick Clifton <nickc@redhat.com> wrote:

>>

>> Hi Matthew,

>>

>>> Attached is a tar file of the patch series from "git format-patch" and a

>>> zipped diff from the entire series.

>>

>> Thanks - that was exactly what I needed.

>>

>> Patch series approved - please apply.

>>

> 

> Hi Matthew,

> 

> After your commit, I noticed a new failure on aarch64_be:

> gas/aarch64/sve2

> 

> Christophe

> 

>> Cheers

>>    Nick

>>

Thanks Christophe -- I'd left some of the output from objdump in that 
test so I was accidentally requiring little-endian.

Fixed as obvious with the below change (entire patch attached for 
reference).


diff --git a/gas/testsuite/gas/aarch64/sve2.d 
b/gas/testsuite/gas/aarch64/sve2.d
index d7c56c0..efa9b27 100644
--- a/gas/testsuite/gas/aarch64/sve2.d
+++ b/gas/testsuite/gas/aarch64/sve2.d
@@ -1,7 +1,7 @@
  #as: -march=armv8-a+sve2+sve2-aes+sve2-sm4+sve2-sha3+bitperm
  #objdump: -dr

-[^:]+:     file format elf64-littleaarch64
+[^:]+:     file format .*


  Disassembly of section \.text:
commit 8de09632ff6683a48b8acfb05d3b35b4ab4507fe
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Date:   Thu May 9 14:52:45 2019 +0100

    [gas][testsuite] Don't specify arch in testsuite output
    
    My testcase matched against a file format of elf64-littleaarch64 in the
    objdump output.  This was unnecessarily restrictive and causes testcase
    failures on aarch64_be.
    
    Here we remove that restriction.
    Committed as obvious.
    
    Testing done on aarch64_be-none-elf gas to see the failure goes away.
    
    gas/ChangeLog:
    
    2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>
    
    	* testsuite/gas/aarch64/sve2.d: Remove file format restriction.

diff --git a/gas/ChangeLog b/gas/ChangeLog
index fa81e97..5307d23 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
 2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>
 
+	* testsuite/gas/aarch64/sve2.d: Remove file format restriction.
+
+2019-05-09  Matthew Malcomson  <matthew.malcomson@arm.com>
+
 	* testsuite/gas/aarch64/illegal-sve2-aes.d: New test.
 	* testsuite/gas/aarch64/illegal-sve2-bitperm.d: New test.
 	* testsuite/gas/aarch64/illegal-sve2-sha3.d: Test new instructions.
diff --git a/gas/testsuite/gas/aarch64/sve2.d b/gas/testsuite/gas/aarch64/sve2.d
index d7c56c0..efa9b27 100644
--- a/gas/testsuite/gas/aarch64/sve2.d
+++ b/gas/testsuite/gas/aarch64/sve2.d
@@ -1,7 +1,7 @@
 #as: -march=armv8-a+sve2+sve2-aes+sve2-sm4+sve2-sha3+bitperm
 #objdump: -dr
 
-[^:]+:     file format elf64-littleaarch64
+[^:]+:     file format .*
 
 
 Disassembly of section \.text: