Power10 VSX PCV generate operations
authorAlan Modra <amodra@gmail.com>
Mon, 11 May 2020 00:13:15 +0000 (09:43 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 11 May 2020 11:38:37 +0000 (21:08 +0930)
opcodes/
* ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm,
xxgenpcvwm, xxgenpcvdm.
gas/
* testsuite/gas/ppc/genpcv.d,
* testsuite/gas/ppc/genpcv.s: New test.
* testsuite/gas/ppc/ppc.exp: Run it.

gas/ChangeLog
gas/testsuite/gas/ppc/genpcv.d [new file with mode: 0644]
gas/testsuite/gas/ppc/genpcv.s [new file with mode: 0644]
gas/testsuite/gas/ppc/ppc.exp
opcodes/ChangeLog
opcodes/ppc-opc.c

index c0a072a17f17ed40fd633c0c2bb25f3579be1bb8..04eede4a6fb26f662c636a9562256aa725be05f7 100644 (file)
@@ -1,3 +1,9 @@
+2020-05-11  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/gas/ppc/genpcv.d,
+       * testsuite/gas/ppc/genpcv.s: New test.
+       * testsuite/gas/ppc/ppc.exp: Run it.
+
 2020-05-11  Alan Modra  <amodra@gmail.com>
 
        * testsuite/gas/ppc/maskmanip.d,
diff --git a/gas/testsuite/gas/ppc/genpcv.d b/gas/testsuite/gas/ppc/genpcv.d
new file mode 100644 (file)
index 0000000..a1982e7
--- /dev/null
@@ -0,0 +1,14 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: PCV generate operations
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*:    (f2 03 7f 29|29 7f 03 f2)       xxgenpcvbm vs48,v15,3
+.*:    (f0 02 3f 2b|2b 3f 02 f0)       xxgenpcvhm vs32,v7,2
+.*:    (f2 01 1f 68|68 1f 01 f2)       xxgenpcvwm vs16,v3,1
+.*:    (f1 00 0f 6a|6a 0f 00 f1)       xxgenpcvdm vs8,v1,0
diff --git a/gas/testsuite/gas/ppc/genpcv.s b/gas/testsuite/gas/ppc/genpcv.s
new file mode 100644 (file)
index 0000000..caada18
--- /dev/null
@@ -0,0 +1,6 @@
+       .text
+_start:
+       xxgenpcvbm 48,15,3
+       xxgenpcvhm 32,7,2
+       xxgenpcvwm 16,3,1
+       xxgenpcvdm 8,1,0
index c250acfd3e3ce26357e773a4cc08f5057eb8eef7..6b4e11a94212fd2ebc21229b25a6fd8cc56ca00b 100644 (file)
@@ -139,3 +139,4 @@ run_dump_test "int128"
 run_dump_test "simd_perm"
 run_dump_test "outerprod"
 run_dump_test "maskmanip"
+run_dump_test "genpcv"
index 4336066d2e26d952e1452f50f86a308e91c8f0fc..9db4c82cf99cf7bf3314067119b1fa5bb3e0be9a 100644 (file)
@@ -1,3 +1,8 @@
+2020-05-11  Alan Modra  <amodra@gmail.com>
+
+       * ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm,
+       xxgenpcvwm, xxgenpcvdm.
+
 2020-05-11  Alan Modra  <amodra@gmail.com>
 
        * ppc-opc.c (MP, VXVAM_MASK): Define.
index 4e207b488f3cf810efe67c1c9cd7b0a2c60b2444..804d013e5b0ff53d2888f2f1ccb1f934d6f922ed 100644 (file)
@@ -8038,11 +8038,15 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"xvnmaddadp", XX3(60,225),    XX3_MASK,    PPCVSX,    PPCVLE,         {XT6, XA6, XB6}},
 {"xvcvdpuxds", XX2(60,456),    XX2_MASK,    PPCVSX,    PPCVLE,         {XT6, XB6}},
 {"xvcvspdp",   XX2(60,457),    XX2_MASK,    PPCVSX,    PPCVLE,         {XT6, XB6}},
+{"xxgenpcvbm", X(60,916),      XX1_MASK,    POWER10,   PPCVLE,         {XT6, VB, UIMM}},
+{"xxgenpcvhm", X(60,917),      XX1_MASK,    POWER10,   PPCVLE,         {XT6, VB, UIMM}},
 {"xsiexpdp",   X(60,918),      XX1_MASK,    PPCVSX3,   PPCVLE,         {XT6, RA, RB}},
 {"xvmindp",    XX3(60,232),    XX3_MASK,    PPCVSX,    PPCVLE,         {XT6, XA6, XB6}},
 {"xvnmaddmdp", XX3(60,233),    XX3_MASK,    PPCVSX,    PPCVLE,         {XT6, XA6, XB6}},
 {"xvcvdpsxds", XX2(60,472),    XX2_MASK,    PPCVSX,    PPCVLE,         {XT6, XB6}},
 {"xvabsdp",    XX2(60,473),    XX2_MASK,    PPCVSX,    PPCVLE,         {XT6, XB6}},
+{"xxgenpcvwm", X(60,948),      XX1_MASK,    POWER10,   PPCVLE,         {XT6, VB, UIMM}},
+{"xxgenpcvdm", X(60,949),      XX1_MASK,    POWER10,   PPCVLE,         {XT6, VB, UIMM}},
 {"xvxexpdp",   XX2VA(60,475,0),XX2_MASK,    PPCVSX3,   PPCVLE,         {XT6, XB6}},
 {"xvxsigdp",   XX2VA(60,475,1),XX2_MASK,    PPCVSX3,   PPCVLE,         {XT6, XB6}},
 {"xxbrh",      XX2VA(60,475,7),XX2_MASK,    PPCVSX3,   PPCVLE,         {XT6, XB6}},