diff options
author | Alan Modra <amodra@gmail.com> | 2020-05-11 09:32:56 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-05-11 21:08:37 +0930 |
commit | f4791f1afad449b81804cb6b62ed238603592d1b (patch) | |
tree | b1a2c5842d396d174c90dda4fb69d6e96139b2e8 /gas/testsuite | |
parent | 3ff0a5ba6458db28b5f0bc28afc0678a247357c0 (diff) | |
download | gdb-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/testsuite')
-rw-r--r-- | gas/testsuite/gas/ppc/ppc.exp | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/ppc/vec_mul.d | 27 | ||||
-rw-r--r-- | gas/testsuite/gas/ppc/vec_mul.s | 19 |
3 files changed, 47 insertions, 0 deletions
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 |