aarch64: gas: Allow movprfx with fmmla and bfscale [PR gas/33562]

These instructions were previously incorrectly marked as not accepting
movprfx.  Fix this and add tests.

	PR gas/33562

opcodes:
	* aarch64-tbl.h: Update widening fmmmla and bfscale instructions.
gas:
	* testsuite/gas/aarch64/f8f16mm_sve2-bad.l: Update test with movprfx.
	* testsuite/gas/aarch64/f8f16mm_sve2.d: Ditto.
	* testsuite/gas/aarch64/f8f16mm_sve2.s: Ditto.
	* testsuite/gas/aarch64/f8f32mm_sve2-bad.l: Ditto.
	* testsuite/gas/aarch64/f8f32mm_sve2.d: Ditto.
	* testsuite/gas/aarch64/f8f32mm_sve2.s: Ditto.
	* testsuite/gas/aarch64/sve-f16f32mm-bad.l: Ditto.
	* testsuite/gas/aarch64/sve-f16f32mm.d: Ditto.
	* testsuite/gas/aarch64/sve-f16f32mm.s: Ditto.
	* testsuite/gas/aarch64/sve-bfscale-sve2.s: Ditto.
	* testsuite/gas/aarch64/sve-bfscale-sve2.d: Ditto.

Approved-By: Alice Carlotti <alice.carlotti@arm.com>
This commit is contained in:
Alfie Richards
2025-10-23 09:45:22 +00:00
committed by Alice Carlotti
parent 2006dea18d
commit facb933805
12 changed files with 235 additions and 13 deletions

View File

@@ -7,3 +7,19 @@
.*: Error: selected processor does not support `fmmla z31.h,z0.b,z31.b'
.*: Error: selected processor does not support `fmmla z31.h,z31.b,z0.b'
.*: Error: selected processor does not support `fmmla z31.h,z31.b,z31.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.h,z1.b,z1.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.h,z1.b,z31.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.h,z31.b,z1.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.h,z31.b,z31.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.h,z0.b,z0.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.h,z0.b,z30.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.h,z30.b,z0.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.h,z30.b,z30.b'

View File

@@ -16,3 +16,21 @@ Disassembly of section .*:
.*: 647fe01f fmmla z31.h, z0.b, z31.b
.*: 6460e3ff fmmla z31.h, z31.b, z0.b
.*: 647fe3ff fmmla z31.h, z31.b, z31.b
.* <b>:
.*: 0420bde0 movprfx z0, z15
.*: 6461e020 fmmla z0.h, z1.b, z1.b
.*: 0420bde0 movprfx z0, z15
.*: 647fe020 fmmla z0.h, z1.b, z31.b
.*: 0420bde0 movprfx z0, z15
.*: 6461e3e0 fmmla z0.h, z31.b, z1.b
.*: 0420bde0 movprfx z0, z15
.*: 647fe3e0 fmmla z0.h, z31.b, z31.b
.*: 0420bdff movprfx z31, z15
.*: 6460e01f fmmla z31.h, z0.b, z0.b
.*: 0420bdff movprfx z31, z15
.*: 647ee01f fmmla z31.h, z0.b, z30.b
.*: 0420bdff movprfx z31, z15
.*: 6460e3df fmmla z31.h, z30.b, z0.b
.*: 0420bdff movprfx z31, z15
.*: 647ee3df fmmla z31.h, z30.b, z30.b

View File

@@ -7,3 +7,21 @@ a:
fmmla z31.h, z0.b, z31.b
fmmla z31.h, z31.b, z0.b
fmmla z31.h, z31.b, z31.b
b:
movprfx z0, z15
fmmla z0.h, z1.b, z1.b
movprfx z0, z15
fmmla z0.h, z1.b, z31.b
movprfx z0, z15
fmmla z0.h, z31.b, z1.b
movprfx z0, z15
fmmla z0.h, z31.b, z31.b
movprfx z31, z15
fmmla z31.h, z0.b, z0.b
movprfx z31, z15
fmmla z31.h, z0.b, z30.b
movprfx z31, z15
fmmla z31.h, z30.b, z0.b
movprfx z31, z15
fmmla z31.h, z30.b, z30.b

View File

@@ -7,3 +7,19 @@
.*: Error: selected processor does not support `fmmla z31.s,z0.b,z31.b'
.*: Error: selected processor does not support `fmmla z31.s,z31.b,z0.b'
.*: Error: selected processor does not support `fmmla z31.s,z31.b,z31.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z1.b,z1.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z1.b,z31.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z31.b,z1.b'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z31.b,z31.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z0.b,z0.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z0.b,z30.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z30.b,z0.b'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z30.b,z30.b'

View File

@@ -16,3 +16,21 @@ Disassembly of section .*:
.*: 643fe01f fmmla z31.s, z0.b, z31.b
.*: 6420e3ff fmmla z31.s, z31.b, z0.b
.*: 643fe3ff fmmla z31.s, z31.b, z31.b
.* <b>:
.*: 0420bde0 movprfx z0, z15
.*: 6421e020 fmmla z0.s, z1.b, z1.b
.*: 0420bde0 movprfx z0, z15
.*: 643fe020 fmmla z0.s, z1.b, z31.b
.*: 0420bde0 movprfx z0, z15
.*: 6421e3e0 fmmla z0.s, z31.b, z1.b
.*: 0420bde0 movprfx z0, z15
.*: 643fe3e0 fmmla z0.s, z31.b, z31.b
.*: 0420bdff movprfx z31, z15
.*: 6420e01f fmmla z31.s, z0.b, z0.b
.*: 0420bdff movprfx z31, z15
.*: 643ee01f fmmla z31.s, z0.b, z30.b
.*: 0420bdff movprfx z31, z15
.*: 6420e3df fmmla z31.s, z30.b, z0.b
.*: 0420bdff movprfx z31, z15
.*: 643ee3df fmmla z31.s, z30.b, z30.b

View File

@@ -7,3 +7,21 @@ a:
fmmla z31.s, z0.b, z31.b
fmmla z31.s, z31.b, z0.b
fmmla z31.s, z31.b, z31.b
b:
movprfx z0, z15
fmmla z0.s, z1.b, z1.b
movprfx z0, z15
fmmla z0.s, z1.b, z31.b
movprfx z0, z15
fmmla z0.s, z31.b, z1.b
movprfx z0, z15
fmmla z0.s, z31.b, z31.b
movprfx z31, z15
fmmla z31.s, z0.b, z0.b
movprfx z31, z15
fmmla z31.s, z0.b, z30.b
movprfx z31, z15
fmmla z31.s, z30.b, z0.b
movprfx z31, z15
fmmla z31.s, z30.b, z30.b

View File

@@ -16,3 +16,35 @@ Disassembly of section .*:
.*: 650983ff bfscale z31.h, p0/m, z31.h, z31.h
.*: 65099c1f bfscale z31.h, p7/m, z31.h, z0.h
.*: 65099fff bfscale z31.h, p7/m, z31.h, z31.h
.*: 0420bde0 movprfx z0, z15
.*: 65098020 bfscale z0.h, p0/m, z0.h, z1.h
.*: 0420bde0 movprfx z0, z15
.*: 650983e0 bfscale z0.h, p0/m, z0.h, z31.h
.*: 0420bde0 movprfx z0, z15
.*: 65099c20 bfscale z0.h, p7/m, z0.h, z1.h
.*: 0420bde0 movprfx z0, z15
.*: 65099fe0 bfscale z0.h, p7/m, z0.h, z31.h
.*: 0420bdff movprfx z31, z15
.*: 6509801f bfscale z31.h, p0/m, z31.h, z0.h
.*: 0420bdff movprfx z31, z15
.*: 650983df bfscale z31.h, p0/m, z31.h, z30.h
.*: 0420bdff movprfx z31, z15
.*: 65099c1f bfscale z31.h, p7/m, z31.h, z0.h
.*: 0420bdff movprfx z31, z15
.*: 65099fdf bfscale z31.h, p7/m, z31.h, z30.h
.*: 045021e0 movprfx z0.h, p0/z, z15.h
.*: 65098020 bfscale z0.h, p0/m, z0.h, z1.h
.*: 045121e0 movprfx z0.h, p0/m, z15.h
.*: 650983e0 bfscale z0.h, p0/m, z0.h, z31.h
.*: 04503de0 movprfx z0.h, p7/z, z15.h
.*: 65099c20 bfscale z0.h, p7/m, z0.h, z1.h
.*: 04513de0 movprfx z0.h, p7/m, z15.h
.*: 65099fe0 bfscale z0.h, p7/m, z0.h, z31.h
.*: 045021ff movprfx z31.h, p0/z, z15.h
.*: 6509801f bfscale z31.h, p0/m, z31.h, z0.h
.*: 045121ff movprfx z31.h, p0/m, z15.h
.*: 650983df bfscale z31.h, p0/m, z31.h, z30.h
.*: 04503dff movprfx z31.h, p7/z, z15.h
.*: 65099c1f bfscale z31.h, p7/m, z31.h, z0.h
.*: 04513dff movprfx z31.h, p7/m, z15.h
.*: 65099fdf bfscale z31.h, p7/m, z31.h, z30.h

View File

@@ -7,3 +7,37 @@ bfscale:
bfscale z31.h, p0/m, z31.h, z31.h
bfscale z31.h, p7/m, z31.h, z0.h
bfscale z31.h, p7/m, z31.h, z31.h
movprfx z0, z15
bfscale z0.h, p0/m, z0.h, z1.h
movprfx z0, z15
bfscale z0.h, p0/m, z0.h, z31.h
movprfx z0, z15
bfscale z0.h, p7/m, z0.h, z1.h
movprfx z0, z15
bfscale z0.h, p7/m, z0.h, z31.h
movprfx z31, z15
bfscale z31.h, p0/m, z31.h, z0.h
movprfx z31, z15
bfscale z31.h, p0/m, z31.h, z30.h
movprfx z31, z15
bfscale z31.h, p7/m, z31.h, z0.h
movprfx z31, z15
bfscale z31.h, p7/m, z31.h, z30.h
movprfx z0.h, p0/z, z15.h
bfscale z0.h, p0/m, z0.h, z1.h
movprfx z0.h, p0/m, z15.h
bfscale z0.h, p0/m, z0.h, z31.h
movprfx z0.h, p7/z, z15.h
bfscale z0.h, p7/m, z0.h, z1.h
movprfx z0.h, p7/m, z15.h
bfscale z0.h, p7/m, z0.h, z31.h
movprfx z31.h, p0/z, z15.h
bfscale z31.h, p0/m, z31.h, z0.h
movprfx z31.h, p0/m, z15.h
bfscale z31.h, p0/m, z31.h, z30.h
movprfx z31.h, p7/z, z15.h
bfscale z31.h, p7/m, z31.h, z0.h
movprfx z31.h, p7/m, z15.h
bfscale z31.h, p7/m, z31.h, z30.h

View File

@@ -7,3 +7,19 @@
.*: Error: selected processor does not support `fmmla z31.s,z0.h,z31.h'
.*: Error: selected processor does not support `fmmla z31.s,z31.h,z0.h'
.*: Error: selected processor does not support `fmmla z31.s,z31.h,z31.h'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z1.h,z1.h'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z1.h,z31.h'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z31.h,z1.h'
.*: Error: selected processor does not support `movprfx z0,z15'
.*: Error: selected processor does not support `fmmla z0.s,z31.h,z31.h'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z0.h,z0.h'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z0.h,z30.h'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z30.h,z0.h'
.*: Error: selected processor does not support `movprfx z31,z15'
.*: Error: selected processor does not support `fmmla z31.s,z30.h,z30.h'

View File

@@ -16,3 +16,21 @@ Disassembly of section .*:
.*: 643fe41f fmmla z31.s, z0.h, z31.h
.*: 6420e7ff fmmla z31.s, z31.h, z0.h
.*: 643fe7ff fmmla z31.s, z31.h, z31.h
.* <b>:
.*: 0420bde0 movprfx z0, z15
.*: 6421e420 fmmla z0.s, z1.h, z1.h
.*: 0420bde0 movprfx z0, z15
.*: 643fe420 fmmla z0.s, z1.h, z31.h
.*: 0420bde0 movprfx z0, z15
.*: 6421e7e0 fmmla z0.s, z31.h, z1.h
.*: 0420bde0 movprfx z0, z15
.*: 643fe7e0 fmmla z0.s, z31.h, z31.h
.*: 0420bdff movprfx z31, z15
.*: 6420e41f fmmla z31.s, z0.h, z0.h
.*: 0420bdff movprfx z31, z15
.*: 643ee41f fmmla z31.s, z0.h, z30.h
.*: 0420bdff movprfx z31, z15
.*: 6420e7df fmmla z31.s, z30.h, z0.h
.*: 0420bdff movprfx z31, z15
.*: 643ee7df fmmla z31.s, z30.h, z30.h

View File

@@ -7,3 +7,21 @@ a:
fmmla z31.s, z0.h, z31.h
fmmla z31.s, z31.h, z0.h
fmmla z31.s, z31.h, z31.h
b:
movprfx z0, z15
fmmla z0.s, z1.h, z1.h
movprfx z0, z15
fmmla z0.s, z1.h, z31.h
movprfx z0, z15
fmmla z0.s, z31.h, z1.h
movprfx z0, z15
fmmla z0.s, z31.h, z31.h
movprfx z31, z15
fmmla z31.s, z0.h, z0.h
movprfx z31, z15
fmmla z31.s, z0.h, z30.h
movprfx z31, z15
fmmla z31.s, z30.h, z0.h
movprfx z31, z15
fmmla z31.s, z30.h, z30.h