From ec40e91c77ecf4ca853577aa7d68bdaf5aeedfd5 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 11 May 2020 09:44:25 +0930 Subject: Power10 bit manipulation operations opcodes/ * ppc-opc.c (UIM8, P_U8XX4_MASK): Define. (powerpc_opcodes): Add vgnb, vcfuged, vpextd, vpdepd, vclzdm, vctzdm, cntlzdm, pdepd, pextd, cfuged, cnttzdm. (prefix_opcodes): Add xxeval. gas/ * testsuite/gas/ppc/bitmanip.d, * testsuite/gas/ppc/bitmanip.s: New test. * testsuite/gas/ppc/ppc.exp: Run it. --- gas/ChangeLog | 6 ++++++ gas/testsuite/gas/ppc/bitmanip.d | 23 +++++++++++++++++++++++ gas/testsuite/gas/ppc/bitmanip.s | 14 ++++++++++++++ gas/testsuite/gas/ppc/ppc.exp | 1 + 4 files changed, 44 insertions(+) create mode 100644 gas/testsuite/gas/ppc/bitmanip.d create mode 100644 gas/testsuite/gas/ppc/bitmanip.s (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 04eede4..11a20f5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ 2020-05-11 Alan Modra + * testsuite/gas/ppc/bitmanip.d, + * testsuite/gas/ppc/bitmanip.s: New test. + * testsuite/gas/ppc/ppc.exp: Run it. + +2020-05-11 Alan Modra + * testsuite/gas/ppc/genpcv.d, * testsuite/gas/ppc/genpcv.s: New test. * testsuite/gas/ppc/ppc.exp: Run it. diff --git a/gas/testsuite/gas/ppc/bitmanip.d b/gas/testsuite/gas/ppc/bitmanip.d new file mode 100644 index 0000000..27f4a0c --- /dev/null +++ b/gas/testsuite/gas/ppc/bitmanip.d @@ -0,0 +1,23 @@ +#as: -mpower10 +#objdump: -dr -Mpower10 +#name: bit manipulation + +.* + + +Disassembly of section \.text: + +0+0 <_start>: +.*: (7f df e9 b8|b8 e9 df 7f) cfuged r31,r30,r29 +.*: (7f 7c d0 76|76 d0 7c 7f) cntlzdm r28,r27,r26 +.*: (7f 19 bc 76|76 bc 19 7f) cnttzdm r25,r24,r23 +.*: (7e b6 a1 38|38 a1 b6 7e) pdepd r22,r21,r20 +.*: (7e 53 89 78|78 89 53 7e) pextd r19,r18,r17 +.*: (12 0f 77 84|84 77 0f 12) vclzdm v16,v15,v14 +.*: (11 ac 5f c4|c4 5f ac 11) vctzdm v13,v12,v11 +.*: (11 49 45 cd|cd 45 49 11) vpdepd v10,v9,v8 +.*: (10 e6 2d 8d|8d 2d e6 10) vpextd v7,v6,v5 +.*: (10 83 15 4d|4d 15 83 10) vcfuged v4,v3,v2 +.*: (10 27 04 cc|cc 04 27 10) vgnb r1,v0,7 +.*: (05 00 00 3f|3f 00 00 05) xxeval vs63,vs31,vs62,vs30,63 +.*: (8b ff f7 93|93 f7 ff 8b) diff --git a/gas/testsuite/gas/ppc/bitmanip.s b/gas/testsuite/gas/ppc/bitmanip.s new file mode 100644 index 0000000..d4d5774 --- /dev/null +++ b/gas/testsuite/gas/ppc/bitmanip.s @@ -0,0 +1,14 @@ + .text +_start: + cfuged 31,30,29 + cntlzdm 28,27,26 + cnttzdm 25,24,23 + pdepd 22,21,20 + pextd 19,18,17 + vclzdm 16,15,14 + vctzdm 13,12,11 + vpdepd 10,9,8 + vpextd 7,6,5 + vcfuged 4,3,2 + vgnb 1,0,7 + xxeval 63,31,62,30,0x3f diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index 6b4e11a..0e53a4c 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -140,3 +140,4 @@ run_dump_test "simd_perm" run_dump_test "outerprod" run_dump_test "maskmanip" run_dump_test "genpcv" +run_dump_test "bitmanip" -- cgit v1.1