aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/ppc/int128.d42
-rw-r--r--gas/testsuite/gas/ppc/int128.s34
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
4 files changed, 83 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 242d342..763e447 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2020-05-11 Alan Modra <amodra@gmail.com>
+ * testsuite/gas/ppc/int128.d,
+ * testsuite/gas/ppc/int128.s: New test.
+ * testsuite/gas/ppc/ppc.exp: Run it.
+
+2020-05-11 Alan Modra <amodra@gmail.com>
+
* testsuite/gas/ppc/vsx_32byte.d,
* testsuite/gas/ppc/vsx_32byte.s: New test.
* testsuite/gas/ppc/ppc.exp: Run it.
diff --git a/gas/testsuite/gas/ppc/int128.d b/gas/testsuite/gas/ppc/int128.d
new file mode 100644
index 0000000..c9f14d3
--- /dev/null
+++ b/gas/testsuite/gas/ppc/int128.d
@@ -0,0 +1,42 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: 128-bit binary integer ops
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*: (10 22 1a c8|c8 1a 22 10) vmuleud v1,v2,v3
+.*: (10 85 30 c8|c8 30 85 10) vmuloud v4,v5,v6
+.*: (10 e8 4b c8|c8 4b e8 10) vmulesd v7,v8,v9
+.*: (11 4b 61 c8|c8 61 4b 11) vmulosd v10,v11,v12
+.*: (11 ae 7c 17|17 7c ae 11) vmsumcud v13,v14,v15,v16
+.*: (12 32 99 0b|0b 99 32 12) vdivsq v17,v18,v19
+.*: (12 95 a8 0b|0b a8 95 12) vdivuq v20,v21,v21
+.*: (12 d7 c3 0b|0b c3 d7 12) vdivesq v22,v23,v24
+.*: (13 3a da 0b|0b da 3a 13) vdiveuq v25,v26,v27
+.*: (13 9d f7 0b|0b f7 9d 13) vmodsq v28,v29,v30
+.*: (13 e0 0e 0b|0b 0e e0 13) vmoduq v31,v0,v1
+.*: (10 5b 1e 02|02 1e 5b 10) vextsd2q v2,v3
+.*: (10 04 29 01|01 29 04 10) vcmpuq v4,v5
+.*: (10 86 39 41|41 39 86 10) vcmpsq cr1,v6,v7
+.*: (11 09 51 c7|c7 51 09 11) vcmpequq v8,v9,v10
+.*: (11 6c 6d c7|c7 6d 6c 11) vcmpequq. v11,v12,v13
+.*: (11 cf 83 87|87 83 cf 11) vcmpgtsq v14,v15,v16
+.*: (12 32 9f 87|87 9f 32 12) vcmpgtsq. v17,v18,v19
+.*: (12 95 b2 87|87 b2 95 12) vcmpgtuq v20,v21,v22
+.*: (12 f8 ce 87|87 ce f8 12) vcmpgtuq. v23,v24,v25
+.*: (13 5b e0 05|05 e0 5b 13) vrlq v26,v27,v28
+.*: (13 be f9 45|45 f9 be 13) vrlqnm v29,v30,v31
+.*: (10 01 10 45|45 10 01 10) vrlqmi v0,v1,v2
+.*: (10 64 29 05|05 29 64 10) vslq v3,v4,v5
+.*: (10 c7 42 05|05 42 c7 10) vsrq v6,v7,v8
+.*: (11 2a 5b 05|05 5b 2a 11) vsraq v9,v10,v11
+.*: (fd 80 6e 88|88 6e 80 fd) xscvqpuqz v12,v13
+.*: (fd c8 7e 88|88 7e c8 fd) xscvqpsqz v14,v15
+.*: (fe 03 8e 88|88 8e 03 fe) xscvuqqp v16,v17
+.*: (fe 4b 9e 88|88 9e 4b fe) xscvsqqp v18,v19
+.*: (fe 80 af c4|c4 af 80 fe) dcffixqq f20,v21
+.*: (fe e1 b7 c4|c4 b7 e1 fe) dctfixqq v23,f22
diff --git a/gas/testsuite/gas/ppc/int128.s b/gas/testsuite/gas/ppc/int128.s
new file mode 100644
index 0000000..4dce648
--- /dev/null
+++ b/gas/testsuite/gas/ppc/int128.s
@@ -0,0 +1,34 @@
+ .text
+_start:
+ vmuleud 1,2,3
+ vmuloud 4,5,6
+ vmulesd 7,8,9
+ vmulosd 10,11,12
+ vmsumcud 13,14,15,16
+ vdivsq 17,18,19
+ vdivuq 20,21,21
+ vdivesq 22,23,24
+ vdiveuq 25,26,27
+ vmodsq 28,29,30
+ vmoduq 31,0,1
+ vextsd2q 2,3
+ vcmpuq 4,5
+ vcmpsq 1,6,7
+ vcmpequq 8,9,10
+ vcmpequq. 11,12,13
+ vcmpgtsq 14,15,16
+ vcmpgtsq. 17,18,19
+ vcmpgtuq 20,21,22
+ vcmpgtuq. 23,24,25
+ vrlq 26,27,28
+ vrlqnm 29,30,31
+ vrlqmi 0,1,2
+ vslq 3,4,5
+ vsrq 6,7,8
+ vsraq 9,10,11
+ xscvqpuqz 12,13
+ xscvqpsqz 14,15
+ xscvuqqp 16,17
+ xscvsqqp 18,19
+ dcffixqq 20,21
+ dctfixqq 23,22
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index aad7b02..6732b90 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -134,3 +134,4 @@ if { [supports_ppc64] } then {
run_dump_test "byte_rev"
run_dump_test "vec_mul"
run_dump_test "vsx_32byte"
+run_dump_test "int128"