aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-05-11 09:32:56 +0930
committerAlan Modra <amodra@gmail.com>2020-05-11 21:08:37 +0930
commitf4791f1afad449b81804cb6b62ed238603592d1b (patch)
treeb1a2c5842d396d174c90dda4fb69d6e96139b2e8 /gas
parent3ff0a5ba6458db28b5f0bc28afc0678a247357c0 (diff)
downloadgdb-f4791f1afad449b81804cb6b62ed238603592d1b.zip
gdb-f4791f1afad449b81804cb6b62ed238603592d1b.tar.gz
gdb-f4791f1afad449b81804cb6b62ed238603592d1b.tar.bz2
Power10 vector integer multiply, divide, modulo insns
opcodes/ * ppc-opc.c (powerpc_opcodes): Add vdivuw, vdivud, vdivsw, vmulld, vdivsd, vmulhuw, vdiveuw, vmulhud, vdiveud, vmulhsw, vdivesw, vmulhsd, vdivesd, vmoduw, vmodud, vmodsw, vmodsd. gas/ * testsuite/gas/ppc/vec_mul.s, * testsuite/gas/ppc/vec_mul.d: New test. * testsuite/gas/ppc/ppc.exp: Run it.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
-rw-r--r--gas/testsuite/gas/ppc/vec_mul.d27
-rw-r--r--gas/testsuite/gas/ppc/vec_mul.s19
4 files changed, 53 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1e741ed..2c16df2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-11 Alan Modra <amodra@gmail.com>
+
+ * testsuite/gas/ppc/vec_mul.s,
+ * testsuite/gas/ppc/vec_mul.d: New test.
+ * testsuite/gas/ppc/ppc.exp: Run it.
+
2020-05-11 Peter Bergner <bergner@linux.ibm.com>
* testsuite/gas/ppc/byte_rev.d,
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index 2b7af4f..ea053fb 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -132,3 +132,4 @@ if { [supports_ppc64] } then {
run_dump_test "prefix-reloc"
}
run_dump_test "byte_rev"
+run_dump_test "vec_mul"
diff --git a/gas/testsuite/gas/ppc/vec_mul.d b/gas/testsuite/gas/ppc/vec_mul.d
new file mode 100644
index 0000000..bc799cf
--- /dev/null
+++ b/gas/testsuite/gas/ppc/vec_mul.d
@@ -0,0 +1,27 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: vector integer mul/div/mod
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*: (10 22 1b 89|89 1b 22 10) vmulhsw v1,v2,v3
+.*: (10 85 32 89|89 32 85 10) vmulhuw v4,v5,v6
+.*: (10 e8 4b c9|c9 4b e8 10) vmulhsd v7,v8,v9
+.*: (11 4b 62 c9|c9 62 4b 11) vmulhud v10,v11,v12
+.*: (11 ae 79 c9|c9 79 ae 11) vmulld v13,v14,v15
+.*: (12 11 91 8b|8b 91 11 12) vdivsw v16,v17,v18
+.*: (12 74 a8 8b|8b a8 74 12) vdivuw v19,v20,v21
+.*: (12 d7 c3 8b|8b c3 d7 12) vdivesw v22,v23,v24
+.*: (13 3a da 8b|8b da 3a 13) vdiveuw v25,v26,v27
+.*: (13 9d f1 cb|cb f1 9d 13) vdivsd v28,v29,v30
+.*: (13 e0 08 cb|cb 08 e0 13) vdivud v31,v0,v1
+.*: (10 43 23 cb|cb 23 43 10) vdivesd v2,v3,v4
+.*: (10 a6 3a cb|cb 3a a6 10) vdiveud v5,v6,v7
+.*: (11 09 57 8b|8b 57 09 11) vmodsw v8,v9,v10
+.*: (11 6c 6e 8b|8b 6e 6c 11) vmoduw v11,v12,v13
+.*: (11 cf 87 cb|cb 87 cf 11) vmodsd v14,v15,v16
+.*: (12 32 9e cb|cb 9e 32 12) vmodud v17,v18,v19
diff --git a/gas/testsuite/gas/ppc/vec_mul.s b/gas/testsuite/gas/ppc/vec_mul.s
new file mode 100644
index 0000000..3249191
--- /dev/null
+++ b/gas/testsuite/gas/ppc/vec_mul.s
@@ -0,0 +1,19 @@
+ .text
+_start:
+ vmulhsw 1,2,3
+ vmulhuw 4,5,6
+ vmulhsd 7,8,9
+ vmulhud 10,11,12
+ vmulld 13,14,15
+ vdivsw 16,17,18
+ vdivuw 19,20,21
+ vdivesw 22,23,24
+ vdiveuw 25,26,27
+ vdivsd 28,29,30
+ vdivud 31,0,1
+ vdivesd 2,3,4
+ vdiveud 5,6,7
+ vmodsw 8,9,10
+ vmoduw 11,12,13
+ vmodsd 14,15,16
+ vmodud 17,18,19