From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id ECD6A384CBBE for ; Fri, 15 Dec 2023 02:24:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ECD6A384CBBE Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org ECD6A384CBBE Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.55.52.43 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702607049; cv=none; b=xycTdJ2DX9MYpDoHjwPE3uQVAAtSoDIZROR+5Xt5XDxQ0HameUHM8lETN8Sg4rmSI8a38WjFvbVuxNVjm3T9antSffaSkiQH6BtXLOJk4qnYv14BVpvROx5hJcehcX4lRqxPTPzWgg1AR6RNMFkAIbqvtnhNty6m7Iri+4h8wAs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702607049; c=relaxed/simple; bh=KEuSu3G7pfJ/4A6+UEK33HmpU+iyT7zkVdh7CGFgZ+g=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=OX/J/uj2weByApd9i1xIVmQ9nt37Eryb2hkFibLy5xQtKMP7Ip5SKRxXZcv1qkkFQwY7t7UYZaAHI9VMv9gFY7QyRvg2jH28+HitGebMuvbIyLPLfeyS8oFjHVXEz9GuNvyJKpk1xvB0dtZWwBKa1HbbRyTXCOcM5mcOn0LW02E= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702607046; x=1734143046; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=KEuSu3G7pfJ/4A6+UEK33HmpU+iyT7zkVdh7CGFgZ+g=; b=mHyNbfLPO7/99RASV+sLb8Uot6k3RoLcQg5maN1P5sL6lbDehUSojgrE H93IGcEABqqs/PAjZzaB/NvKzsxLTIWAtqAIeAoGRD3yQeqfku+BPVZyK j/8pCwN+nqAQXL3JlaPL3iWBOLs2Tr6Fw/nrqkWpa7myFg4/KQcQ+ZPRF e0XJwMeXnYVm6sP7ooGllLJd3KhcP+wfJExtNyw5+r0VtC915GsW+uIHF 5zB6ClQIXZyyhsS3t8hcWK1Z9hNcwPkX+9S5sAbXIRViovXifcMT2++b0 SOw+O9isUcmQk860pE/uwbG9SAgyQ4MvhF4cMldz8VX74HsGjW+0cqscy w==; X-IronPort-AV: E=McAfee;i="6600,9927,10924"; a="481407792" X-IronPort-AV: E=Sophos;i="6.04,277,1695711600"; d="scan'208";a="481407792" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2023 18:24:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10924"; a="947799899" X-IronPort-AV: E=Sophos;i="6.04,277,1695711600"; d="scan'208";a="947799899" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by orsmga005.jf.intel.com with ESMTP; 14 Dec 2023 18:24:00 -0800 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id 7D1E7100512F; Fri, 15 Dec 2023 10:23:59 +0800 (CST) From: Haochen Jiang To: binutils@sourceware.org Cc: jbeulich@suse.com, hjl.tools@gmail.com Subject: [PATCH] x86: Remove the restriction for size of the mask register in AVX10 Date: Fri, 15 Dec 2023 10:23:59 +0800 Message-Id: <20231215022359.2702206-1-haochen.jiang@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi all, Sorry for the late change near the 2.42 branch freeze but there is a revision in AVX10 documentation, which allows 64 bit mask register instructions in AVX10/256, the documentation comes following: Intel Advanced Vector Extensions 10 (Intel AVX10) Architecture Specification https://cdrdv2.intel.com/v1/dl/getContent/784267 The Converged Vector ISA: Intel Advanced Vector Extensions 10 Technical Paper https://cdrdv2.intel.com/v1/dl/getContent/784343 This patch aims to remove the mask register size restriction on all vector size in AVX10. Since mask registers size is not an issue, I also removed the testcases for them. But I have no objection to keep them. Thx, Haochen gas/ChangeLog: * testsuite/gas/i386/avx10-vsz.l: Remove testcases for mask registers since they are not needed. * testsuite/gas/i386/avx10-vsz.s: Ditto. opcodes/ChangeLog: * i386-opc.tbl: Remove kvsz. * i386-tbl.h: Regenerated. --- gas/testsuite/gas/i386/avx10-vsz.l | 231 ++++------------------------- gas/testsuite/gas/i386/avx10-vsz.s | 21 --- opcodes/i386-opc.tbl | 41 +++-- opcodes/i386-tbl.h | 60 ++++---- 4 files changed, 74 insertions(+), 279 deletions(-) diff --git a/gas/testsuite/gas/i386/avx10-vsz.l b/gas/testsuite/gas/i386/avx10-vsz.l index d10ff55ee9d..f44ca46db66 100644 --- a/gas/testsuite/gas/i386/avx10-vsz.l +++ b/gas/testsuite/gas/i386/avx10-vsz.l @@ -1,115 +1,34 @@ .*: Assembler messages: .*:7: Warning: default -.*:46: Error: ambiguous operand size for `vcvtpd2ph' -.*:47: Error: ambiguous operand size for `vcvtpd2ps' -.*:48: Error: ambiguous operand size for `vfpclassps' +.*:25: Error: ambiguous operand size for `vcvtpd2ph' +.*:26: Error: ambiguous operand size for `vcvtpd2ps' +.*:27: Error: ambiguous operand size for `vfpclassps' .*:7: Warning: \.avx10\.1/256 -.*:12: Error: vector size .* `kunpckdq' -.*:16: Error: vector size .* `kaddq' -.*:17: Error: vector size .* `kandq' -.*:18: Error: vector size .* `kandnq' -.*:19: Error: vector size .* `kmovq' -.*:20: Error: vector size .* `kmovq' -.*:21: Error: vector size .* `kmovq' -.*:22: Error: vector size .* `knotq' -.*:23: Error: vector size .* `korq' -.*:24: Error: vector size .* `kortestq' -.*:25: Error: vector size .* `kshiftlq' -.*:26: Error: vector size .* `kshiftrq' -.*:27: Error: vector size .* `ktestq' -.*:28: Error: vector size .* `kxorq' -.*:29: Error: vector size .* `kxnorq' -.*:32: Error: vector size .* `vcvtpd2phz' -.*:34: Error: unsupported broadcast for `vcvtpd2ph' -.*:37: Error: vector size .* for `vcvtpd2ps' -.*:43: Error: vector size .* `vfpclasspsz' -.*:46: Error: ambiguous operand size for `vcvtpd2ph' -.*:47: Error: ambiguous operand size for `vcvtpd2ps' -.*:48: Error: ambiguous operand size for `vfpclassps' +.*:11: Error: vector size .* `vcvtpd2phz' +.*:13: Error: unsupported broadcast for `vcvtpd2ph' +.*:16: Error: vector size .* for `vcvtpd2ps' +.*:22: Error: vector size .* `vfpclasspsz' +.*:25: Error: ambiguous operand size for `vcvtpd2ph' +.*:26: Error: ambiguous operand size for `vcvtpd2ps' +.*:27: Error: ambiguous operand size for `vfpclassps' .*:7: Warning: \.avx10\.1/128 -.*:10: Error: vector size .* `kmovd' -.*:11: Error: vector size .* `kmovd' -.*:12: Error: vector size .* `kunpckdq' -.*:13: Error: vector size .* `kunpckwd' -.*:16: Error: vector size .* `kaddd' -.*:17: Error: vector size .* `kandd' -.*:18: Error: vector size .* `kandnd' -.*:19: Error: vector size .* `kmovd' -.*:20: Error: vector size .* `kmovd' -.*:21: Error: vector size .* `kmovd' -.*:22: Error: vector size .* `knotd' -.*:23: Error: vector size .* `kord' -.*:24: Error: vector size .* `kortestd' -.*:25: Error: vector size .* `kshiftld' -.*:26: Error: vector size .* `kshiftrd' -.*:27: Error: vector size .* `ktestd' -.*:28: Error: vector size .* `kxord' -.*:29: Error: vector size .* `kxnord' -.*:16: Error: vector size .* `kaddq' -.*:17: Error: vector size .* `kandq' -.*:18: Error: vector size .* `kandnq' -.*:19: Error: vector size .* `kmovq' -.*:20: Error: vector size .* `kmovq' -.*:21: Error: vector size .* `kmovq' -.*:22: Error: vector size .* `knotq' -.*:23: Error: vector size .* `korq' -.*:24: Error: vector size .* `kortestq' -.*:25: Error: vector size .* `kshiftlq' -.*:26: Error: vector size .* `kshiftrq' -.*:27: Error: vector size .* `ktestq' -.*:28: Error: vector size .* `kxorq' -.*:29: Error: vector size .* `kxnorq' -.*:32: Error: vector size .* `vcvtpd2phz' -.*:33: Error: vector size .* `vcvtpd2phy' -.*:34: Error: unsupported broadcast for `vcvtpd2ph' -.*:35: Error: unsupported broadcast for `vcvtpd2ph' -.*:37: Error: .* -.*:38: Error: vector size .* `vcvtpd2psy' -.*:39: Error: vector size .* `vcvtpd2psy' -.*:40: Error: unsupported broadcast for `vcvtpd2ps' -.*:42: Error: vector size .* `vfpclasspsy' -.*:43: Error: vector size .* `vfpclasspsz' +.*:11: Error: vector size .* `vcvtpd2phz' +.*:12: Error: vector size .* `vcvtpd2phy' +.*:13: Error: unsupported broadcast for `vcvtpd2ph' +.*:14: Error: unsupported broadcast for `vcvtpd2ph' +.*:16: Error: .* +.*:17: Error: vector size .* `vcvtpd2psy' +.*:18: Error: vector size .* `vcvtpd2psy' +.*:19: Error: unsupported broadcast for `vcvtpd2ps' +.*:21: Error: vector size .* `vfpclasspsy' +.*:22: Error: vector size .* `vfpclasspsz' .*:7: Warning: \.avx10\.1 -.*:46: Error: ambiguous operand size for `vcvtpd2ph' -.*:47: Error: ambiguous operand size for `vcvtpd2ps' -.*:48: Error: ambiguous operand size for `vfpclassps' +.*:25: Error: ambiguous operand size for `vcvtpd2ph' +.*:26: Error: ambiguous operand size for `vcvtpd2ps' +.*:27: Error: ambiguous operand size for `vfpclassps' #... [ ]*[0-9]+[ ]+> \.arch generic32 [ ]*[0-9]+[ ]+> \.arch default -[ ]*[0-9]+[ ]+\?+ C5FB93D1[ ]+> kmovd %k1,%edx -[ ]*[0-9]+[ ]+\?+ C5FB92D1[ ]+> kmovd %ecx,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1EC4B D9[ ]+> kunpckdq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C5EC4BD9[ ]+> kunpckwd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+> * -[ ]*[0-9]+[ ]+> \.irp sz,d,q -[ ]*[0-9]+[ ]+\?+ C4E1ED4A D9[ ]+>> kaddd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED41 D9[ ]+>> kandd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED42 D9[ ]+>> kandnd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F990 D1[ ]+>> kmovd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F991 0A[ ]+>> kmovd %k1,\(%edx\) -[ ]*[0-9]+[ ]+\?+ C4E1F990 11[ ]+>> kmovd \(%ecx\),%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F944 D1[ ]+>> knotd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1ED45 D9[ ]+>> kord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F998 D1[ ]+>> kortestd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E37933 DA01[ ]+>> kshiftld \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E37931 DA01[ ]+>> kshiftrd \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F999 D1[ ]+>> ktestd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1ED47 D9[ ]+>> kxord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED46 D9[ ]+>> kxnord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC4A D9[ ]+>> kaddq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC41 D9[ ]+>> kandq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC42 D9[ ]+>> kandnq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F890 D1[ ]+>> kmovq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F891 0A[ ]+>> kmovq %k1,\(%edx\) -[ ]*[0-9]+[ ]+\?+ C4E1F890 11[ ]+>> kmovq \(%ecx\),%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F844 D1[ ]+>> knotq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1EC45 D9[ ]+>> korq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F898 D1[ ]+>> kortestq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E3F933 DA01[ ]+>> kshiftlq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E3F931 DA01[ ]+>> kshiftrq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F899 D1[ ]+>> ktestq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1EC47 D9[ ]+>> kxorq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC46 D9[ ]+>> kxnorq %k1,%k2,%k3 [ ]*[0-9]+[ ]+> * [ ]*[0-9]+[ ]+\?+ 62F5FD48 5A00[ ]+> vcvtpd2phz \(%eax\),%xmm0 [ ]*[0-9]+[ ]+\?+ 62F5FD28 5A00[ ]+> vcvtpd2phy \(%eax\),%xmm0 @@ -131,40 +50,6 @@ #... [ ]*[0-9]+[ ]+> \.arch generic32 [ ]*[0-9]+[ ]+> \.arch \.avx10\.1/256 -[ ]*[0-9]+[ ]+\?+ C5FB93D1[ ]+> kmovd %k1,%edx -[ ]*[0-9]+[ ]+\?+ C5FB92D1[ ]+> kmovd %ecx,%k2 -[ ]*[0-9]+[ ]+> kunpckdq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C5EC4BD9[ ]+> kunpckwd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+> * -[ ]*[0-9]+[ ]+> \.irp sz,d,q -[ ]*[0-9]+[ ]+\?+ C4E1ED4A D9[ ]+>> kaddd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED41 D9[ ]+>> kandd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED42 D9[ ]+>> kandnd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F990 D1[ ]+>> kmovd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F991 0A[ ]+>> kmovd %k1,\(%edx\) -[ ]*[0-9]+[ ]+\?+ C4E1F990 11[ ]+>> kmovd \(%ecx\),%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F944 D1[ ]+>> knotd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1ED45 D9[ ]+>> kord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F998 D1[ ]+>> kortestd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E37933 DA01[ ]+>> kshiftld \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E37931 DA01[ ]+>> kshiftrd \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F999 D1[ ]+>> ktestd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1ED47 D9[ ]+>> kxord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED46 D9[ ]+>> kxnord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kaddq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kandq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kandnq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kmovq %k1,%k2 -[ ]*[0-9]+[ ]+>> kmovq %k1,\(%edx\) -[ ]*[0-9]+[ ]+>> kmovq \(%ecx\),%k2 -[ ]*[0-9]+[ ]+>> knotq %k1,%k2 -[ ]*[0-9]+[ ]+>> korq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kortestq %k1,%k2 -[ ]*[0-9]+[ ]+>> kshiftlq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kshiftrq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+>> ktestq %k1,%k2 -[ ]*[0-9]+[ ]+>> kxorq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kxnorq %k1,%k2,%k3 [ ]*[0-9]+[ ]+> * [ ]*[0-9]+[ ]+> vcvtpd2phz \(%eax\),%xmm0 [ ]*[0-9]+[ ]+\?+ 62F5FD28 5A00[ ]+> vcvtpd2phy \(%eax\),%xmm0 @@ -186,40 +71,6 @@ #... [ ]*[0-9]+[ ]+> \.arch generic32 [ ]*[0-9]+[ ]+> \.arch \.avx10\.1/128 -[ ]*[0-9]+[ ]+> kmovd %k1,%edx -[ ]*[0-9]+[ ]+> kmovd %ecx,%k2 -[ ]*[0-9]+[ ]+> kunpckdq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+> kunpckwd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+> * -[ ]*[0-9]+[ ]+> \.irp sz,d,q -[ ]*[0-9]+[ ]+>> kaddd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kandd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kandnd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kmovd %k1,%k2 -[ ]*[0-9]+[ ]+>> kmovd %k1,\(%edx\) -[ ]*[0-9]+[ ]+>> kmovd \(%ecx\),%k2 -[ ]*[0-9]+[ ]+>> knotd %k1,%k2 -[ ]*[0-9]+[ ]+>> kord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kortestd %k1,%k2 -[ ]*[0-9]+[ ]+>> kshiftld \$1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kshiftrd \$1,%k2,%k3 -[ ]*[0-9]+[ ]+>> ktestd %k1,%k2 -[ ]*[0-9]+[ ]+>> kxord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kxnord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kaddq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kandq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kandnq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kmovq %k1,%k2 -[ ]*[0-9]+[ ]+>> kmovq %k1,\(%edx\) -[ ]*[0-9]+[ ]+>> kmovq \(%ecx\),%k2 -[ ]*[0-9]+[ ]+>> knotq %k1,%k2 -[ ]*[0-9]+[ ]+>> korq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kortestq %k1,%k2 -[ ]*[0-9]+[ ]+>> kshiftlq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kshiftrq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+>> ktestq %k1,%k2 -[ ]*[0-9]+[ ]+>> kxorq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+>> kxnorq %k1,%k2,%k3 [ ]*[0-9]+[ ]+> * [ ]*[0-9]+[ ]+> vcvtpd2phz \(%eax\),%xmm0 [ ]*[0-9]+[ ]+> vcvtpd2phy \(%eax\),%xmm0 @@ -239,40 +90,8 @@ [ ]*[0-9]+[ ]+\?+ C5F95A00[ ]+> vcvtpd2ps xmm0,\[eax\] [ ]*[0-9]+[ ]+\?+ 62F37D08 660000[ ]+> vfpclassps k0,\[eax\],0 #... -[ ]*[0-9]+[ ]+\?+ C5FB93D1[ ]+> kmovd %k1,%edx -[ ]*[0-9]+[ ]+\?+ C5FB92D1[ ]+> kmovd %ecx,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1EC4B D9[ ]+> kunpckdq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C5EC4BD9[ ]+> kunpckwd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+> * -[ ]*[0-9]+[ ]+> \.irp sz,d,q -[ ]*[0-9]+[ ]+\?+ C4E1ED4A D9[ ]+>> kaddd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED41 D9[ ]+>> kandd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED42 D9[ ]+>> kandnd %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F990 D1[ ]+>> kmovd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F991 0A[ ]+>> kmovd %k1,\(%edx\) -[ ]*[0-9]+[ ]+\?+ C4E1F990 11[ ]+>> kmovd \(%ecx\),%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F944 D1[ ]+>> knotd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1ED45 D9[ ]+>> kord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F998 D1[ ]+>> kortestd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E37933 DA01[ ]+>> kshiftld \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E37931 DA01[ ]+>> kshiftrd \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F999 D1[ ]+>> ktestd %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1ED47 D9[ ]+>> kxord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1ED46 D9[ ]+>> kxnord %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC4A D9[ ]+>> kaddq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC41 D9[ ]+>> kandq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC42 D9[ ]+>> kandnq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F890 D1[ ]+>> kmovq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F891 0A[ ]+>> kmovq %k1,\(%edx\) -[ ]*[0-9]+[ ]+\?+ C4E1F890 11[ ]+>> kmovq \(%ecx\),%k2 -[ ]*[0-9]+[ ]+\?+ C4E1F844 D1[ ]+>> knotq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1EC45 D9[ ]+>> korq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F898 D1[ ]+>> kortestq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E3F933 DA01[ ]+>> kshiftlq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E3F931 DA01[ ]+>> kshiftrq \$1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1F899 D1[ ]+>> ktestq %k1,%k2 -[ ]*[0-9]+[ ]+\?+ C4E1EC47 D9[ ]+>> kxorq %k1,%k2,%k3 -[ ]*[0-9]+[ ]+\?+ C4E1EC46 D9[ ]+>> kxnorq %k1,%k2,%k3 +[ ]*[0-9]+[ ]+> \.arch generic32 +[ ]*[0-9]+[ ]+> \.arch \.avx10\.1 [ ]*[0-9]+[ ]+> * [ ]*[0-9]+[ ]+\?+ 62F5FD48 5A00[ ]+> vcvtpd2phz \(%eax\),%xmm0 [ ]*[0-9]+[ ]+\?+ 62F5FD28 5A00[ ]+> vcvtpd2phy \(%eax\),%xmm0 diff --git a/gas/testsuite/gas/i386/avx10-vsz.s b/gas/testsuite/gas/i386/avx10-vsz.s index 0023253e760..47692e85f46 100644 --- a/gas/testsuite/gas/i386/avx10-vsz.s +++ b/gas/testsuite/gas/i386/avx10-vsz.s @@ -7,27 +7,6 @@ .warning "\isa" .arch generic32 .arch \isa - kmovd %k1, %edx - kmovd %ecx, %k2 - kunpckdq %k1, %k2, %k3 - kunpckwd %k1, %k2, %k3 - - .irp sz, d, q - kadd\sz %k1, %k2, %k3 - kand\sz %k1, %k2, %k3 - kandn\sz %k1, %k2, %k3 - kmov\sz %k1, %k2 - kmov\sz %k1, (%edx) - kmov\sz (%ecx), %k2 - knot\sz %k1, %k2 - kor\sz %k1, %k2, %k3 - kortest\sz %k1, %k2 - kshiftl\sz $1, %k2, %k3 - kshiftr\sz $1, %k2, %k3 - ktest\sz %k1, %k2 - kxor\sz %k1, %k2, %k3 - kxnor\sz %k1, %k2, %k3 - .endr vcvtpd2phz (%eax), %xmm0 vcvtpd2phy (%eax), %xmm0 diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index f89c4cb5bcd..a5f49bc0559 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -135,9 +135,6 @@ #define Disp8ShiftVL Disp8MemShift=DISP8_SHIFT_VL -#define Vsz256 Vsz=VSZ256 -#define Vsz512 Vsz=VSZ512 - // The EVEX purpose of StaticRounding appears only together with SAE. Re-use // the bit to mark commutative VEX encodings where swapping the source // operands may allow to switch from 3-byte to 2-byte VEX encoding. @@ -996,9 +993,9 @@ pause, 0xf390, i186, NoSuf, {} b:0:VexW0:Byte:AVX512DQ:66:AVX512VBMI, + w:1:VexW1:Word:AVX512F::AVX512BW> - + emms, 0xf77, MMX, NoSuf, {} // These really shouldn't allow for Reg64 (movq is the right mnemonic for @@ -2590,22 +2587,22 @@ vpmovzxdq, 0x6635, AVX512VL, Modrm|EVex=3|Masking|Space0F38|VexW=1|Disp8MemShift // AVX512BW instructions. -kadd, 0x4a, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1||NoSuf, { RegMask, RegMask, RegMask } -kand, 0x41, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1||NoSuf, { RegMask, RegMask, RegMask } -kandn, 0x42, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1||NoSuf|Optimize, { RegMask, RegMask, RegMask } -kmov, 0x90, AVX512BW, Modrm|Vex128|Space0F|VexW1||NoSuf, { RegMask||Unspecified|BaseIndex, RegMask } -kmov, 0x91, AVX512BW, Modrm|Vex128|Space0F|VexW1||NoSuf, { RegMask, |Unspecified|BaseIndex } -kmov, 0xf292, AVX512BW, D|Modrm|Vex128|Space0F|||NoSuf, { , RegMask } -knot, 0x44, AVX512BW, Modrm|Vex128|Space0F|VexW1||NoSuf, { RegMask, RegMask } -kor, 0x45, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1||NoSuf, { RegMask, RegMask, RegMask } -kortest, 0x98, AVX512BW, Modrm|Vex128|Space0F|VexW1||NoSuf, { RegMask, RegMask } -ktest, 0x99, AVX512BW, Modrm|Vex128|Space0F|VexW1||NoSuf, { RegMask, RegMask } -kxnor, 0x46, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1||NoSuf, { RegMask, RegMask, RegMask } -kxor, 0x47, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1||NoSuf|Optimize, { RegMask, RegMask, RegMask } -kunpckdq, 0x4B, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|Vsz512|NoSuf, { RegMask, RegMask, RegMask } -kunpckwd, 0x4B, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW0|Vsz256|NoSuf, { RegMask, RegMask, RegMask } -kshiftl, 0x6633, AVX512BW, Modrm|Vex128|Space0F3A|||NoSuf, { Imm8, RegMask, RegMask } -kshiftr, 0x6631, AVX512BW, Modrm|Vex128|Space0F3A|||NoSuf, { Imm8, RegMask, RegMask } +kadd, 0x4a, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf, { RegMask, RegMask, RegMask } +kand, 0x41, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf, { RegMask, RegMask, RegMask } +kandn, 0x42, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf|Optimize, { RegMask, RegMask, RegMask } +kmov, 0x90, AVX512BW, Modrm|Vex128|Space0F|VexW1|NoSuf, { RegMask||Unspecified|BaseIndex, RegMask } +kmov, 0x91, AVX512BW, Modrm|Vex128|Space0F|VexW1|NoSuf, { RegMask, |Unspecified|BaseIndex } +kmov, 0xf292, AVX512BW, D|Modrm|Vex128|Space0F||NoSuf, { , RegMask } +knot, 0x44, AVX512BW, Modrm|Vex128|Space0F|VexW1|NoSuf, { RegMask, RegMask } +kor, 0x45, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf, { RegMask, RegMask, RegMask } +kortest, 0x98, AVX512BW, Modrm|Vex128|Space0F|VexW1|NoSuf, { RegMask, RegMask } +ktest, 0x99, AVX512BW, Modrm|Vex128|Space0F|VexW1|NoSuf, { RegMask, RegMask } +kxnor, 0x46, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf, { RegMask, RegMask, RegMask } +kxor, 0x47, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf|Optimize, { RegMask, RegMask, RegMask } +kunpckdq, 0x4B, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW1|NoSuf, { RegMask, RegMask, RegMask } +kunpckwd, 0x4B, AVX512BW, Modrm|Vex256|Space0F|VexVVVV|VexW0|NoSuf, { RegMask, RegMask, RegMask } +kshiftl, 0x6633, AVX512BW, Modrm|Vex128|Space0F3A||NoSuf, { Imm8, RegMask, RegMask } +kshiftr, 0x6631, AVX512BW, Modrm|Vex128|Space0F3A||NoSuf, { Imm8, RegMask, RegMask } vdbpsadbw, 0x6642, AVX512BW, Modrm|Masking|Space0F3A|VexVVVV|VexW0|Disp8ShiftVL|CheckOperandSize|NoSuf, { Imm8|Imm8S, RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } -- 2.31.1