From patchwork Wed Oct 9 02:51:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jiang, Haochen" X-Patchwork-Id: 98572 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8C709385020D for ; Wed, 9 Oct 2024 02:52:54 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) by sourceware.org (Postfix) with ESMTPS id C2921385DDE3 for ; Wed, 9 Oct 2024 02:51:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C2921385DDE3 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 C2921385DDE3 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.18 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1728442326; cv=none; b=Nr4N/HsoRxLPWx4lGOwGkrChhDQU+2DUMpbJbPAdkufoEPHG+DxiA2+Gd+VVRFLdQirVS06snWiTXSePHYDYrj0RF6HOhZg7ZW8KTC2/2CJBWmbkQVY+qT2aTCDMcTJtUsdDYGrPe03nltCUyIi+5V7OKWbNXrj9cbq6pz3sB+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1728442326; c=relaxed/simple; bh=4M4xSfD1nvPg0bgUENWxUlAD9kvoCkeH2oo6X6452TQ=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=SzrMn4P5NOfixIfftoPPCwwNWnMvy/eW1hlff176g5U0Tem3U4tdKwQBUVkokhed6v2bd7wuATVzZgXdnXn3VDq5UJTNDi+9L6Mc7ORtlg8P7+cjL9d824CYnam/qJ6lr+f5rbVeLLHjTTiApUutql3JZAHv38Tgl9x0zzd4W+g= 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=1728442319; x=1759978319; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=4M4xSfD1nvPg0bgUENWxUlAD9kvoCkeH2oo6X6452TQ=; b=ZGkt+VqoHMnCymBtFgcE9eKmMWZwu50g7WPpVbzVuZGOCiAHp1Ypmex3 nQNXijpIr1HCgPQnQ5W/sWd2dUFaILmGUQRCYkBQ7gDegW166o1kpnS6/ Z75r5330SFMa2V8HfC5FoFwX4Htz6znvnMmgWRHQ9VvWO2+NGpzSr8fL7 hfmxLwBL1wqp+UGOTEtompEB5nA6HhvWRBqtBSFv3EJg5Vyt0sZlSMhyw Zq7mHJnwWBepXJ1qsaZcDpNGQyCaZ3gHTfMoq7rhwVWZfkXqqgAZmUuz6 A/sheqEHXnF2YseOSxvprtY7Pks9LdzsZQwDHBkSIz+0Bys4UTogytS6l A==; X-CSE-ConnectionGUID: o5BGVyCRSvyuGowt7xRNpQ== X-CSE-MsgGUID: ZCbhAN3JS8iCh/qj1E10BA== X-IronPort-AV: E=McAfee;i="6700,10204,11219"; a="27167090" X-IronPort-AV: E=Sophos;i="6.11,188,1725346800"; d="scan'208";a="27167090" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Oct 2024 19:51:57 -0700 X-CSE-ConnectionGUID: 3ME2prRkQKqONXmv1PzhcQ== X-CSE-MsgGUID: 6R/kAT5eSXarDdbPR+zxOw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,188,1725346800"; d="scan'208";a="76329361" Received: from shliclel4217.sh.intel.com ([10.239.240.127]) by orviesa006.jf.intel.com with ESMTP; 08 Oct 2024 19:51:55 -0700 From: Haochen Jiang To: binutils@sourceware.org Cc: hjl.tools@gmail.com, jbeulich@suse.com, Liwei Xu , Kong Lingling Subject: [PATCH] Support Intel AVX10.2 convert instructions Date: Wed, 9 Oct 2024 10:51:54 +0800 Message-Id: <20241009025154.1940861-1-haochen.jiang@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org From: Liwei Xu Hi all, As mentioned in the previous thread: https://sourceware.org/pipermail/binutils/2024-August/136542.html This patch will focus on AVX10.2 convert instructions, which is mainly Chapter 9 of AVX10.2 SPEC. Reference: Intel Advanced Vector Extensions 10.2 Architecture Specification https://cdrdv2.intel.com/v1/dl/getContent/828965 All of the instructions in this patch are new instruction forms. Patch descrption and changes are embedded below. Tested on x86-64-pc-linux-gnu. Ok for trunk? Thx, Haochen --- In this patch, we will support AVX10.2 convert instructions. All of them are new instruction forms. Among all the instructions, vcvtbiasph2[b,h]f8[,s] needs extra care. Since Operand 2 could indicate memory size, we do not need suffix under ATTmode. However, CheckOperandSize could not be used since the dst operand size are the same for EVex128/256. Therefore, the templates could not be merged. gas/ * testsuite/gas/i386/i386.exp: Add AVX10.2 tests. * testsuite/gas/i386/x86-64.exp: Ditto. * testsuite/gas/i386/avx10_2-256-2-intel.d: New. * testsuite/gas/i386/avx10_2-256-2.d: Ditto. * testsuite/gas/i386/avx10_2-256-2.s: Ditto. * testsuite/gas/i386/avx10_2-512-2-intel.d: Ditto. * testsuite/gas/i386/avx10_2-512-2.d: Ditto. * testsuite/gas/i386/avx10_2-512-2.s: Ditto. * testsuite/gas/i386/x86-64-avx10_2-256-2-intel.d: Ditto. * testsuite/gas/i386/x86-64-avx10_2-256-2.d: Ditto. * testsuite/gas/i386/x86-64-avx10_2-256-2.s: Ditto. * testsuite/gas/i386/x86-64-avx10_2-512-2-intel.d: Ditto. * testsuite/gas/i386/x86-64-avx10_2-512-2.d: Ditto. * testsuite/gas/i386/x86-64-avx10_2-512-2.s: Ditto. opcodes/ * i386-dis-evex-prefix.h: Add PREFIX_EVEX_0F3874, PREFIX_EVEX_MAP5_18, PREFIX_EVEX_MAP5_1B, PREFIX_EVEX_MAP5_1E and PREFIX_EVEX_MAP5_74. * i386-dis-evex.h: Add table pass for AVX10.2 instructions. * i386-dis.c (MOD_EVEX_0F38B1): New. (PREFIX_EVEX_0F3874): Ditto. (PREFIX_EVEX_MAP5_18): Ditto. (PREFIX_EVEX_MAP5_1B): Ditto. (PREFIX_EVEX_MAP5_1E): Ditto. (PREFIX_EVEX_MAP5_74): Ditto. * i386-opc.tbl: Add AVX10.2 instructions. * i386-mnem.h: Regenerated. * i386-tbl.h: Ditto. Co-authored-by: Kong Lingling Co-authored-by: Haochen Jiang --- gas/testsuite/gas/i386/avx10_2-256-2-intel.d | 148 + gas/testsuite/gas/i386/avx10_2-256-2.d | 146 + gas/testsuite/gas/i386/avx10_2-256-2.s | 117 + gas/testsuite/gas/i386/avx10_2-512-2-intel.d | 82 + gas/testsuite/gas/i386/avx10_2-512-2.d | 80 + gas/testsuite/gas/i386/avx10_2-512-2.s | 69 + gas/testsuite/gas/i386/i386.exp | 4 + .../gas/i386/x86-64-avx10_2-256-2-intel.d | 148 + gas/testsuite/gas/i386/x86-64-avx10_2-256-2.d | 146 + gas/testsuite/gas/i386/x86-64-avx10_2-256-2.s | 117 + .../gas/i386/x86-64-avx10_2-512-2-intel.d | 82 + gas/testsuite/gas/i386/x86-64-avx10_2-512-2.d | 80 + gas/testsuite/gas/i386/x86-64-avx10_2-512-2.s | 69 + gas/testsuite/gas/i386/x86-64.exp | 4 + opcodes/i386-dis-evex-prefix.h | 35 + opcodes/i386-dis-evex.h | 12 +- opcodes/i386-dis.c | 5 + opcodes/i386-mnem.h | 4000 +++++++++-------- opcodes/i386-opc.tbl | 28 + opcodes/i386-tbl.h | 461 +- 20 files changed, 3837 insertions(+), 1996 deletions(-) create mode 100644 gas/testsuite/gas/i386/avx10_2-256-2-intel.d create mode 100644 gas/testsuite/gas/i386/avx10_2-256-2.d create mode 100644 gas/testsuite/gas/i386/avx10_2-256-2.s create mode 100644 gas/testsuite/gas/i386/avx10_2-512-2-intel.d create mode 100644 gas/testsuite/gas/i386/avx10_2-512-2.d create mode 100644 gas/testsuite/gas/i386/avx10_2-512-2.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx10_2-256-2-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx10_2-256-2.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx10_2-256-2.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx10_2-512-2-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx10_2-512-2.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx10_2-512-2.s diff --git a/gas/testsuite/gas/i386/avx10_2-256-2-intel.d b/gas/testsuite/gas/i386/avx10_2-256-2-intel.d new file mode 100644 index 00000000000..66838cf42b0 --- /dev/null +++ b/gas/testsuite/gas/i386/avx10_2-256-2-intel.d @@ -0,0 +1,148 @@ +#objdump: -dw -Mintel +#name: i386 AVX10.2/256 convert insns (Intel disassembly) +#source: avx10_2-256-2.s + +.*: +file format .* + +Disassembly of section \.text: + +#... +[a-f0-9]+ <_intel>: +\s*[a-f0-9]+:\s*62 f2 55 08 67 f4\s+vcvt2ps2phx xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f2 55 28 67 f4\s+vcvt2ps2phx ymm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f2 51 18 67 f4\s+vcvt2ps2phx ymm6,ymm5,ymm4\{rn-sae\} +\s*[a-f0-9]+:\s*62 f2 55 0f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 55 18 67 31\s+vcvt2ps2phx xmm6,xmm5,DWORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 55 08 67 71 7f\s+vcvt2ps2phx xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f2 55 1f 67 72 80\s+vcvt2ps2phx xmm6\{k7\},xmm5,DWORD BCST \[edx-0x200\] +\s*[a-f0-9]+:\s*62 f2 55 2f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx ymm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 55 38 67 31\s+vcvt2ps2phx ymm6,ymm5,DWORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 55 28 67 71 7f\s+vcvt2ps2phx ymm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f2 55 3f 67 72 80\s+vcvt2ps2phx ymm6\{k7\},ymm5,DWORD BCST \[edx-0x200\] +\s*[a-f0-9]+:\s*62 f2 54 08 74 f4\s+vcvtbiasph2bf8 xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f2 54 28 74 f4\s+vcvtbiasph2bf8 xmm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f2 54 0f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8 xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 54 18 74 31\s+vcvtbiasph2bf8 xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 54 08 74 71 7f\s+vcvtbiasph2bf8 xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f2 54 9f 74 72 80\s+vcvtbiasph2bf8 xmm6\{k7\}\{z\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f2 54 2f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8 xmm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 54 38 74 31\s+vcvtbiasph2bf8 xmm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 54 28 74 71 7f\s+vcvtbiasph2bf8 xmm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f2 54 bf 74 72 80\s+vcvtbiasph2bf8 xmm6\{k7\}\{z\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f2 57 08 74 f4\s+vcvtne2ph2bf8 xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f2 57 28 74 f4\s+vcvtne2ph2bf8 ymm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f2 57 0f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8 xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 57 18 74 31\s+vcvtne2ph2bf8 xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 57 08 74 71 7f\s+vcvtne2ph2bf8 xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f2 57 1f 74 72 80\s+vcvtne2ph2bf8 xmm6\{k7\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f2 57 2f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8 ymm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 57 38 74 31\s+vcvtne2ph2bf8 ymm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 57 28 74 71 7f\s+vcvtne2ph2bf8 ymm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f2 57 3f 74 72 80\s+vcvtne2ph2bf8 ymm6\{k7\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f2 7e 08 74 f5\s+vcvtneph2bf8 xmm6,xmm5 +\s*[a-f0-9]+:\s*62 f2 7e 28 74 f5\s+vcvtneph2bf8 xmm6,ymm5 +\s*[a-f0-9]+:\s*62 f2 7e 0f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8 xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 7e 18 74 31\s+vcvtneph2bf8 xmm6,WORD BCST \[ecx\]\{1to8\} +\s*[a-f0-9]+:\s*62 f2 7e 08 74 71 7f\s+vcvtneph2bf8 xmm6,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f2 7e 9f 74 72 80\s+vcvtneph2bf8 xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 f2 7e 38 74 31\s+vcvtneph2bf8 xmm6,WORD BCST \[ecx\]\{1to16\} +\s*[a-f0-9]+:\s*62 f2 7e 28 74 71 7f\s+vcvtneph2bf8 xmm6,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f2 7e bf 74 72 80\s+vcvtneph2bf8 xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 54 08 74 f4\s+vcvtbiasph2bf8s xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f5 54 28 74 f4\s+vcvtbiasph2bf8s xmm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f5 54 0f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8s xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 18 74 31\s+vcvtbiasph2bf8s xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 08 74 71 7f\s+vcvtbiasph2bf8s xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 54 9f 74 72 80\s+vcvtbiasph2bf8s xmm6\{k7\}\{z\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 54 2f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8s xmm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 38 74 31\s+vcvtbiasph2bf8s xmm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 28 74 71 7f\s+vcvtbiasph2bf8s xmm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 54 bf 74 72 80\s+vcvtbiasph2bf8s xmm6\{k7\}\{z\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 08 74 f4\s+vcvtne2ph2bf8s xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f5 57 28 74 f4\s+vcvtne2ph2bf8s ymm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f5 57 0f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8s xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 18 74 31\s+vcvtne2ph2bf8s xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 08 74 71 7f\s+vcvtne2ph2bf8s xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 57 1f 74 72 80\s+vcvtne2ph2bf8s xmm6\{k7\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 2f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8s ymm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 38 74 31\s+vcvtne2ph2bf8s ymm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 28 74 71 7f\s+vcvtne2ph2bf8s ymm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 57 3f 74 72 80\s+vcvtne2ph2bf8s ymm6\{k7\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7e 08 74 f5\s+vcvtneph2bf8s xmm6,xmm5 +\s*[a-f0-9]+:\s*62 f5 7e 28 74 f5\s+vcvtneph2bf8s xmm6,ymm5 +\s*[a-f0-9]+:\s*62 f5 7e 0f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8s xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7e 18 74 31\s+vcvtneph2bf8s xmm6,WORD BCST \[ecx\]\{1to8\} +\s*[a-f0-9]+:\s*62 f5 7e 08 74 71 7f\s+vcvtneph2bf8s xmm6,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 7e 9f 74 72 80\s+vcvtneph2bf8s xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 f5 7e 38 74 31\s+vcvtneph2bf8s xmm6,WORD BCST \[ecx\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 7e 28 74 71 7f\s+vcvtneph2bf8s xmm6,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 7e bf 74 72 80\s+vcvtneph2bf8s xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 54 08 18 f4\s+vcvtbiasph2hf8 xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f5 54 28 18 f4\s+vcvtbiasph2hf8 xmm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f5 54 0f 18 b4 f4 00 00 00 10\s+vcvtbiasph2hf8 xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 18 18 31\s+vcvtbiasph2hf8 xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 08 18 71 7f\s+vcvtbiasph2hf8 xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 54 9f 18 72 80\s+vcvtbiasph2hf8 xmm6\{k7\}\{z\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 54 2f 18 b4 f4 00 00 00 10\s+vcvtbiasph2hf8 xmm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 38 18 31\s+vcvtbiasph2hf8 xmm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 28 18 71 7f\s+vcvtbiasph2hf8 xmm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 54 bf 18 72 80\s+vcvtbiasph2hf8 xmm6\{k7\}\{z\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 08 18 f4\s+vcvtne2ph2hf8 xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f5 57 28 18 f4\s+vcvtne2ph2hf8 ymm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f5 57 0f 18 b4 f4 00 00 00 10\s+vcvtne2ph2hf8 xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 18 18 31\s+vcvtne2ph2hf8 xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 08 18 71 7f\s+vcvtne2ph2hf8 xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 57 1f 18 72 80\s+vcvtne2ph2hf8 xmm6\{k7\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 2f 18 b4 f4 00 00 00 10\s+vcvtne2ph2hf8 ymm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 38 18 31\s+vcvtne2ph2hf8 ymm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 28 18 71 7f\s+vcvtne2ph2hf8 ymm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 57 3f 18 72 80\s+vcvtne2ph2hf8 ymm6\{k7\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7e 08 18 f5\s+vcvtneph2hf8 xmm6,xmm5 +\s*[a-f0-9]+:\s*62 f5 7e 28 18 f5\s+vcvtneph2hf8 xmm6,ymm5 +\s*[a-f0-9]+:\s*62 f5 7e 0f 18 b4 f4 00 00 00 10\s+vcvtneph2hf8 xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7e 18 18 31\s+vcvtneph2hf8 xmm6,WORD BCST \[ecx\]\{1to8\} +\s*[a-f0-9]+:\s*62 f5 7e 08 18 71 7f\s+vcvtneph2hf8 xmm6,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 7e 9f 18 72 80\s+vcvtneph2hf8 xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 f5 7e 38 18 31\s+vcvtneph2hf8 xmm6,WORD BCST \[ecx\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 7e 28 18 71 7f\s+vcvtneph2hf8 xmm6,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 7e bf 18 72 80\s+vcvtneph2hf8 xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 54 08 1b f4\s+vcvtbiasph2hf8s xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f5 54 28 1b f4\s+vcvtbiasph2hf8s xmm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f5 54 0f 1b b4 f4 00 00 00 10\s+vcvtbiasph2hf8s xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 18 1b 31\s+vcvtbiasph2hf8s xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 08 1b 71 7f\s+vcvtbiasph2hf8s xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 54 9f 1b 72 80\s+vcvtbiasph2hf8s xmm6\{k7\}\{z\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 54 2f 1b b4 f4 00 00 00 10\s+vcvtbiasph2hf8s xmm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 38 1b 31\s+vcvtbiasph2hf8s xmm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 28 1b 71 7f\s+vcvtbiasph2hf8s xmm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 54 bf 1b 72 80\s+vcvtbiasph2hf8s xmm6\{k7\}\{z\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 08 1b f4\s+vcvtne2ph2hf8s xmm6,xmm5,xmm4 +\s*[a-f0-9]+:\s*62 f5 57 28 1b f4\s+vcvtne2ph2hf8s ymm6,ymm5,ymm4 +\s*[a-f0-9]+:\s*62 f5 57 0f 1b b4 f4 00 00 00 10\s+vcvtne2ph2hf8s xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 18 1b 31\s+vcvtne2ph2hf8s xmm6,xmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 08 1b 71 7f\s+vcvtne2ph2hf8s xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 57 1f 1b 72 80\s+vcvtne2ph2hf8s xmm6\{k7\},xmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 2f 1b b4 f4 00 00 00 10\s+vcvtne2ph2hf8s ymm6\{k7\},ymm5,YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 38 1b 31\s+vcvtne2ph2hf8s ymm6,ymm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 28 1b 71 7f\s+vcvtne2ph2hf8s ymm6,ymm5,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 57 3f 1b 72 80\s+vcvtne2ph2hf8s ymm6\{k7\},ymm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7e 08 1b f5\s+vcvtneph2hf8s xmm6,xmm5 +\s*[a-f0-9]+:\s*62 f5 7e 28 1b f5\s+vcvtneph2hf8s xmm6,ymm5 +\s*[a-f0-9]+:\s*62 f5 7e 0f 1b b4 f4 00 00 00 10\s+vcvtneph2hf8s xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7e 18 1b 31\s+vcvtneph2hf8s xmm6,WORD BCST \[ecx\]\{1to8\} +\s*[a-f0-9]+:\s*62 f5 7e 08 1b 71 7f\s+vcvtneph2hf8s xmm6,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 7e 9f 1b 72 80\s+vcvtneph2hf8s xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 f5 7e 38 1b 31\s+vcvtneph2hf8s xmm6,WORD BCST \[ecx\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 7e 28 1b 71 7f\s+vcvtneph2hf8s xmm6,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 7e bf 1b 72 80\s+vcvtneph2hf8s xmm6\{k7\}\{z\},WORD BCST \[edx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 f5 7f 08 1e f5\s+vcvthf82ph xmm6,xmm5 +\s*[a-f0-9]+:\s*62 f5 7f 28 1e f5\s+vcvthf82ph ymm6,xmm5 +\s*[a-f0-9]+:\s*62 f5 7f 0f 1e b4 f4 00 00 00 10\s+vcvthf82ph xmm6\{k7\},QWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7f 08 1e 31\s+vcvthf82ph xmm6,QWORD PTR \[ecx\] +\s*[a-f0-9]+:\s*62 f5 7f 08 1e 71 7f\s+vcvthf82ph xmm6,QWORD PTR \[ecx\+0x3f8\] +\s*[a-f0-9]+:\s*62 f5 7f 8f 1e 72 80\s+vcvthf82ph xmm6\{k7\}\{z\},QWORD PTR \[edx-0x400\] +\s*[a-f0-9]+:\s*62 f5 7f 2f 1e b4 f4 00 00 00 10\s+vcvthf82ph ymm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7f 28 1e 31\s+vcvthf82ph ymm6,XMMWORD PTR \[ecx\] +\s*[a-f0-9]+:\s*62 f5 7f 28 1e 71 7f\s+vcvthf82ph ymm6,XMMWORD PTR \[ecx\+0x7f0\] +\s*[a-f0-9]+:\s*62 f5 7f af 1e 72 80\s+vcvthf82ph ymm6\{k7\}\{z\},XMMWORD PTR \[edx-0x800\] +#pass diff --git a/gas/testsuite/gas/i386/avx10_2-256-2.d b/gas/testsuite/gas/i386/avx10_2-256-2.d new file mode 100644 index 00000000000..c36fe31f7f5 --- /dev/null +++ b/gas/testsuite/gas/i386/avx10_2-256-2.d @@ -0,0 +1,146 @@ +#objdump: -dw +#name: i386 AVX10.2/256 convert insns + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 f2 55 08 67 f4\s+vcvt2ps2phx\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 55 28 67 f4\s+vcvt2ps2phx\s+%ymm4,%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 51 18 67 f4\s+vcvt2ps2phx\s+\{rn-sae\},%ymm4,%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 55 0f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 55 18 67 31\s+vcvt2ps2phx\s+\(%ecx\)\{1to4\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 55 08 67 71 7f\s+vcvt2ps2phx\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 55 1f 67 72 80\s+vcvt2ps2phx\s+-0x200\(%edx\)\{1to4\},%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 55 2f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%esp,%esi,8\),%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 55 38 67 31\s+vcvt2ps2phx\s+\(%ecx\)\{1to8\},%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 55 28 67 71 7f\s+vcvt2ps2phx\s+0xfe0\(%ecx\),%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 55 3f 67 72 80\s+vcvt2ps2phx\s+-0x200\(%edx\)\{1to8\},%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 54 08 74 f4\s+vcvtbiasph2bf8\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 54 28 74 f4\s+vcvtbiasph2bf8\s+%ymm4,%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 54 0f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 54 18 74 31\s+vcvtbiasph2bf8\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 54 08 74 71 7f\s+vcvtbiasph2bf8\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 54 9f 74 72 80\s+vcvtbiasph2bf8\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f2 54 2f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8\s+0x10000000\(%esp,%esi,8\),%ymm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 54 38 74 31\s+vcvtbiasph2bf8\s+\(%ecx\)\{1to16\},%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 54 28 74 71 7f\s+vcvtbiasph2bf8\s+0xfe0\(%ecx\),%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 54 bf 74 72 80\s+vcvtbiasph2bf8\s+-0x100\(%edx\)\{1to16\},%ymm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f2 57 08 74 f4\s+vcvtne2ph2bf8\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 57 28 74 f4\s+vcvtne2ph2bf8\s+%ymm4,%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 57 0f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 57 18 74 31\s+vcvtne2ph2bf8\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 57 08 74 71 7f\s+vcvtne2ph2bf8\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 57 1f 74 72 80\s+vcvtne2ph2bf8\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 57 2f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8\s+0x10000000\(%esp,%esi,8\),%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 57 38 74 31\s+vcvtne2ph2bf8\s+\(%ecx\)\{1to16\},%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 57 28 74 71 7f\s+vcvtne2ph2bf8\s+0xfe0\(%ecx\),%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 57 3f 74 72 80\s+vcvtne2ph2bf8\s+-0x100\(%edx\)\{1to16\},%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 7e 08 74 f5\s+vcvtneph2bf8\s+%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 7e 28 74 f5\s+vcvtneph2bf8\s+%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f2 7e 0f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8x\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 7e 18 74 31\s+vcvtneph2bf8\s+\(%ecx\)\{1to8\},%xmm6 +\s*[a-f0-9]+:\s*62 f2 7e 08 74 71 7f\s+vcvtneph2bf8x\s+0x7f0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f2 7e 9f 74 72 80\s+vcvtneph2bf8\s+-0x100\(%edx\)\{1to8\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f2 7e 38 74 31\s+vcvtneph2bf8\s+\(%ecx\)\{1to16\},%xmm6 +\s*[a-f0-9]+:\s*62 f2 7e 28 74 71 7f\s+vcvtneph2bf8y\s+0xfe0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f2 7e bf 74 72 80\s+vcvtneph2bf8\s+-0x100\(%edx\)\{1to16\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 08 74 f4\s+vcvtbiasph2bf8s\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 28 74 f4\s+vcvtbiasph2bf8s\s+%ymm4,%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 0f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8s\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 18 74 31\s+vcvtbiasph2bf8s\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 08 74 71 7f\s+vcvtbiasph2bf8s\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 9f 74 72 80\s+vcvtbiasph2bf8s\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 2f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8s\s+0x10000000\(%esp,%esi,8\),%ymm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 38 74 31\s+vcvtbiasph2bf8s\s+\(%ecx\)\{1to16\},%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 28 74 71 7f\s+vcvtbiasph2bf8s\s+0xfe0\(%ecx\),%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 bf 74 72 80\s+vcvtbiasph2bf8s\s+-0x100\(%edx\)\{1to16\},%ymm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 57 08 74 f4\s+vcvtne2ph2bf8s\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 28 74 f4\s+vcvtne2ph2bf8s\s+%ymm4,%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 0f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8s\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 18 74 31\s+vcvtne2ph2bf8s\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 08 74 71 7f\s+vcvtne2ph2bf8s\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 1f 74 72 80\s+vcvtne2ph2bf8s\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 2f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8s\s+0x10000000\(%esp,%esi,8\),%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 38 74 31\s+vcvtne2ph2bf8s\s+\(%ecx\)\{1to16\},%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 28 74 71 7f\s+vcvtne2ph2bf8s\s+0xfe0\(%ecx\),%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 3f 74 72 80\s+vcvtne2ph2bf8s\s+-0x100\(%edx\)\{1to16\},%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 08 74 f5\s+vcvtneph2bf8s\s+%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 28 74 f5\s+vcvtneph2bf8s\s+%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 0f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8sx\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 18 74 31\s+vcvtneph2bf8s\s+\(%ecx\)\{1to8\},%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 08 74 71 7f\s+vcvtneph2bf8sx\s+0x7f0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 9f 74 72 80\s+vcvtneph2bf8s\s+-0x100\(%edx\)\{1to8\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 7e 38 74 31\s+vcvtneph2bf8s\s+\(%ecx\)\{1to16\},%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 28 74 71 7f\s+vcvtneph2bf8sy\s+0xfe0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e bf 74 72 80\s+vcvtneph2bf8s\s+-0x100\(%edx\)\{1to16\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 08 18 f4\s+vcvtbiasph2hf8\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 28 18 f4\s+vcvtbiasph2hf8\s+%ymm4,%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 0f 18 b4 f4 00 00 00 10\s+vcvtbiasph2hf8\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 18 18 31\s+vcvtbiasph2hf8\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 08 18 71 7f\s+vcvtbiasph2hf8\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 9f 18 72 80\s+vcvtbiasph2hf8\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 2f 18 b4 f4 00 00 00 10\s+vcvtbiasph2hf8\s+0x10000000\(%esp,%esi,8\),%ymm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 38 18 31\s+vcvtbiasph2hf8\s+\(%ecx\)\{1to16\},%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 28 18 71 7f\s+vcvtbiasph2hf8\s+0xfe0\(%ecx\),%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 bf 18 72 80\s+vcvtbiasph2hf8\s+-0x100\(%edx\)\{1to16\},%ymm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 57 08 18 f4\s+vcvtne2ph2hf8\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 28 18 f4\s+vcvtne2ph2hf8\s+%ymm4,%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 0f 18 b4 f4 00 00 00 10\s+vcvtne2ph2hf8\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 18 18 31\s+vcvtne2ph2hf8\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 08 18 71 7f\s+vcvtne2ph2hf8\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 1f 18 72 80\s+vcvtne2ph2hf8\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 2f 18 b4 f4 00 00 00 10\s+vcvtne2ph2hf8\s+0x10000000\(%esp,%esi,8\),%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 38 18 31\s+vcvtne2ph2hf8\s+\(%ecx\)\{1to16\},%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 28 18 71 7f\s+vcvtne2ph2hf8\s+0xfe0\(%ecx\),%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 3f 18 72 80\s+vcvtne2ph2hf8\s+-0x100\(%edx\)\{1to16\},%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 08 18 f5\s+vcvtneph2hf8\s+%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 28 18 f5\s+vcvtneph2hf8\s+%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 0f 18 b4 f4 00 00 00 10\s+vcvtneph2hf8x\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 18 18 31\s+vcvtneph2hf8\s+\(%ecx\)\{1to8\},%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 08 18 71 7f\s+vcvtneph2hf8x\s+0x7f0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 9f 18 72 80\s+vcvtneph2hf8\s+-0x100\(%edx\)\{1to8\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 7e 38 18 31\s+vcvtneph2hf8\s+\(%ecx\)\{1to16\},%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 28 18 71 7f\s+vcvtneph2hf8y\s+0xfe0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e bf 18 72 80\s+vcvtneph2hf8\s+-0x100\(%edx\)\{1to16\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 08 1b f4\s+vcvtbiasph2hf8s\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 28 1b f4\s+vcvtbiasph2hf8s\s+%ymm4,%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 0f 1b b4 f4 00 00 00 10\s+vcvtbiasph2hf8s\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 18 1b 31\s+vcvtbiasph2hf8s\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 08 1b 71 7f\s+vcvtbiasph2hf8s\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 9f 1b 72 80\s+vcvtbiasph2hf8s\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 2f 1b b4 f4 00 00 00 10\s+vcvtbiasph2hf8s\s+0x10000000\(%esp,%esi,8\),%ymm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 38 1b 31\s+vcvtbiasph2hf8s\s+\(%ecx\)\{1to16\},%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 28 1b 71 7f\s+vcvtbiasph2hf8s\s+0xfe0\(%ecx\),%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 54 bf 1b 72 80\s+vcvtbiasph2hf8s\s+-0x100\(%edx\)\{1to16\},%ymm5,%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 57 08 1b f4\s+vcvtne2ph2hf8s\s+%xmm4,%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 28 1b f4\s+vcvtne2ph2hf8s\s+%ymm4,%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 0f 1b b4 f4 00 00 00 10\s+vcvtne2ph2hf8s\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 18 1b 31\s+vcvtne2ph2hf8s\s+\(%ecx\)\{1to8\},%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 08 1b 71 7f\s+vcvtne2ph2hf8s\s+0x7f0\(%ecx\),%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 57 1f 1b 72 80\s+vcvtne2ph2hf8s\s+-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 2f 1b b4 f4 00 00 00 10\s+vcvtne2ph2hf8s\s+0x10000000\(%esp,%esi,8\),%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 38 1b 31\s+vcvtne2ph2hf8s\s+\(%ecx\)\{1to16\},%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 28 1b 71 7f\s+vcvtne2ph2hf8s\s+0xfe0\(%ecx\),%ymm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 57 3f 1b 72 80\s+vcvtne2ph2hf8s\s+-0x100\(%edx\)\{1to16\},%ymm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 08 1b f5\s+vcvtneph2hf8s\s+%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 28 1b f5\s+vcvtneph2hf8s\s+%ymm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 0f 1b b4 f4 00 00 00 10\s+vcvtneph2hf8sx\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 18 1b 31\s+vcvtneph2hf8s\s+\(%ecx\)\{1to8\},%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 08 1b 71 7f\s+vcvtneph2hf8sx\s+0x7f0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 9f 1b 72 80\s+vcvtneph2hf8s\s+-0x100\(%edx\)\{1to8\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 7e 38 1b 31\s+vcvtneph2hf8s\s+\(%ecx\)\{1to16\},%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e 28 1b 71 7f\s+vcvtneph2hf8sy\s+0xfe0\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7e bf 1b 72 80\s+vcvtneph2hf8s\s+-0x100\(%edx\)\{1to16\},%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 7f 08 1e f5\s+vcvthf82ph\s+%xmm5,%xmm6 +\s*[a-f0-9]+:\s*62 f5 7f 28 1e f5\s+vcvthf82ph\s+%xmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 7f 0f 1e b4 f4 00 00 00 10\s+vcvthf82ph\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7f 08 1e 31\s+vcvthf82ph\s+\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7f 08 1e 71 7f\s+vcvthf82ph\s+0x3f8\(%ecx\),%xmm6 +\s*[a-f0-9]+:\s*62 f5 7f 8f 1e 72 80\s+vcvthf82ph\s+-0x400\(%edx\),%xmm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 7f 2f 1e b4 f4 00 00 00 10\s+vcvthf82ph\s+0x10000000\(%esp,%esi,8\),%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7f 28 1e 31\s+vcvthf82ph\s+\(%ecx\),%ymm6 +\s*[a-f0-9]+:\s*62 f5 7f 28 1e 71 7f\s+vcvthf82ph\s+0x7f0\(%ecx\),%ymm6 +\s*[a-f0-9]+:\s*62 f5 7f af 1e 72 80\s+vcvthf82ph\s+-0x800\(%edx\),%ymm6\{%k7\}\{z\} +#pass diff --git a/gas/testsuite/gas/i386/avx10_2-256-2.s b/gas/testsuite/gas/i386/avx10_2-256-2.s new file mode 100644 index 00000000000..bad9d3d9dd4 --- /dev/null +++ b/gas/testsuite/gas/i386/avx10_2-256-2.s @@ -0,0 +1,117 @@ +# Check 32bit AVX10.2/256 instructions + + .arch generic32 + .arch .avx10.2/256 + .text +_start: + vcvt2ps2phx %xmm4, %xmm5, %xmm6 + vcvt2ps2phx %ymm4, %ymm5, %ymm6 + vcvt2ps2phx {rn-sae}, %ymm4, %ymm5, %ymm6 + vcvt2ps2phx 0x10000000(%esp, %esi, 8), %xmm5, %xmm6{%k7} + vcvt2ps2phx (%ecx){1to4}, %xmm5, %xmm6 + vcvt2ps2phx 2032(%ecx), %xmm5, %xmm6 + vcvt2ps2phx -512(%edx){1to4}, %xmm5, %xmm6{%k7} + vcvt2ps2phx 0x10000000(%esp, %esi, 8), %ymm5, %ymm6{%k7} + vcvt2ps2phx (%ecx){1to8}, %ymm5, %ymm6 + vcvt2ps2phx 4064(%ecx), %ymm5, %ymm6 + vcvt2ps2phx -512(%edx){1to8}, %ymm5, %ymm6{%k7} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m %xmm4, %xmm5, %xmm6 + vcvtbiasph2\m %ymm4, %ymm5, %xmm6 + vcvtbiasph2\m 0x10000000(%esp, %esi, 8), %xmm5, %xmm6{%k7} + vcvtbiasph2\m (%ecx){1to8}, %xmm5, %xmm6 + vcvtbiasph2\m 2032(%ecx), %xmm5, %xmm6 + vcvtbiasph2\m -256(%edx){1to8}, %xmm5, %xmm6{%k7}{z} + vcvtbiasph2\m 0x10000000(%esp, %esi, 8), %ymm5, %xmm6{%k7} + vcvtbiasph2\m (%ecx){1to16}, %ymm5, %xmm6 + vcvtbiasph2\m 4064(%ecx), %ymm5, %xmm6 + vcvtbiasph2\m -256(%edx){1to16}, %ymm5, %xmm6{%k7}{z} + vcvtne2ph2\m %xmm4, %xmm5, %xmm6 + vcvtne2ph2\m %ymm4, %ymm5, %ymm6 + vcvtne2ph2\m 0x10000000(%esp, %esi, 8), %xmm5, %xmm6{%k7} + vcvtne2ph2\m (%ecx){1to8}, %xmm5, %xmm6 + vcvtne2ph2\m 2032(%ecx), %xmm5, %xmm6 + vcvtne2ph2\m -256(%edx){1to8}, %xmm5, %xmm6{%k7} + vcvtne2ph2\m 0x10000000(%esp, %esi, 8), %ymm5, %ymm6{%k7} + vcvtne2ph2\m (%ecx){1to16}, %ymm5, %ymm6 + vcvtne2ph2\m 4064(%ecx), %ymm5, %ymm6 + vcvtne2ph2\m -256(%edx){1to16}, %ymm5, %ymm6{%k7} + vcvtneph2\m %xmm5, %xmm6 + vcvtneph2\m %ymm5, %xmm6 + vcvtneph2\m\()x 0x10000000(%esp, %esi, 8), %xmm6{%k7} + vcvtneph2\m (%ecx){1to8}, %xmm6 + vcvtneph2\m\()x 2032(%ecx), %xmm6 + vcvtneph2\m -256(%edx){1to8}, %xmm6{%k7}{z} + vcvtneph2\m (%ecx){1to16}, %xmm6 + vcvtneph2\m\()y 4064(%ecx), %xmm6 + vcvtneph2\m -256(%edx){1to16}, %xmm6{%k7}{z} + .endr + + vcvthf82ph %xmm5, %xmm6 + vcvthf82ph %xmm5, %ymm6 + vcvthf82ph 0x10000000(%esp, %esi, 8), %xmm6{%k7} + vcvthf82ph (%ecx), %xmm6 + vcvthf82ph 1016(%ecx), %xmm6 + vcvthf82ph -1024(%edx), %xmm6{%k7}{z} + vcvthf82ph 0x10000000(%esp, %esi, 8), %ymm6{%k7} + vcvthf82ph (%ecx), %ymm6 + vcvthf82ph 2032(%ecx), %ymm6 + vcvthf82ph -2048(%edx), %ymm6{%k7}{z} + +_intel: + .intel_syntax noprefix + vcvt2ps2phx xmm6, xmm5, xmm4 + vcvt2ps2phx ymm6, ymm5, ymm4 + vcvt2ps2phx ymm6, ymm5, ymm4, {rn-sae} + vcvt2ps2phx xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8+0x10000000] + vcvt2ps2phx xmm6, xmm5, DWORD PTR [ecx]{1to4} + vcvt2ps2phx xmm6, xmm5, XMMWORD PTR [ecx+2032] + vcvt2ps2phx xmm6{k7}, xmm5, DWORD PTR [edx-512]{1to4} + vcvt2ps2phx ymm6{k7}, ymm5, YMMWORD PTR [esp+esi*8+0x10000000] + vcvt2ps2phx ymm6, ymm5, DWORD PTR [ecx]{1to8} + vcvt2ps2phx ymm6, ymm5, YMMWORD PTR [ecx+4064] + vcvt2ps2phx ymm6{k7}, ymm5, DWORD PTR [edx-512]{1to8} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m xmm6, xmm5, xmm4 + vcvtbiasph2\m xmm6, ymm5, ymm4 + vcvtbiasph2\m xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8+0x10000000] + vcvtbiasph2\m xmm6, xmm5, WORD PTR [ecx]{1to8} + vcvtbiasph2\m xmm6, xmm5, XMMWORD PTR [ecx+2032] + vcvtbiasph2\m xmm6{k7}{z}, xmm5, WORD PTR [edx-256]{1to8} + vcvtbiasph2\m xmm6{k7}, ymm5, YMMWORD PTR [esp+esi*8+0x10000000] + vcvtbiasph2\m xmm6, ymm5, WORD PTR [ecx]{1to16} + vcvtbiasph2\m xmm6, ymm5, YMMWORD PTR [ecx+4064] + vcvtbiasph2\m xmm6{k7}{z}, ymm5, WORD PTR [edx-256]{1to16} + vcvtne2ph2\m xmm6, xmm5, xmm4 + vcvtne2ph2\m ymm6, ymm5, ymm4 + vcvtne2ph2\m xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8+0x10000000] + vcvtne2ph2\m xmm6, xmm5, WORD PTR [ecx]{1to8} + vcvtne2ph2\m xmm6, xmm5, XMMWORD PTR [ecx+2032] + vcvtne2ph2\m xmm6{k7}, xmm5, WORD PTR [edx-256]{1to8} + vcvtne2ph2\m ymm6{k7}, ymm5, YMMWORD PTR [esp+esi*8+0x10000000] + vcvtne2ph2\m ymm6, ymm5, WORD PTR [ecx]{1to16} + vcvtne2ph2\m ymm6, ymm5, YMMWORD PTR [ecx+4064] + vcvtne2ph2\m ymm6{k7}, ymm5, WORD PTR [edx-256]{1to16} + vcvtneph2\m xmm6, xmm5 + vcvtneph2\m xmm6, ymm5 + vcvtneph2\m xmm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000] + vcvtneph2\m xmm6, WORD PTR [ecx]{1to8} + vcvtneph2\m xmm6, XMMWORD PTR [ecx+2032] + vcvtneph2\m xmm6{k7}{z}, WORD PTR [edx-256]{1to8} + vcvtneph2\m xmm6, WORD PTR [ecx]{1to16} + vcvtneph2\m xmm6, YMMWORD PTR [ecx+4064] + vcvtneph2\m xmm6{k7}{z}, WORD PTR [edx-256]{1to16} + .endr + + vcvthf82ph xmm6, xmm5 + vcvthf82ph ymm6, xmm5 + vcvthf82ph xmm6{k7}, QWORD PTR [esp+esi*8+0x10000000] + vcvthf82ph xmm6, QWORD PTR [ecx] + vcvthf82ph xmm6, QWORD PTR [ecx+1016] + vcvthf82ph xmm6{k7}{z}, QWORD PTR [edx-1024] + vcvthf82ph ymm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000] + vcvthf82ph ymm6, XMMWORD PTR [ecx] + vcvthf82ph ymm6, XMMWORD PTR [ecx+2032] + vcvthf82ph ymm6{k7}{z}, XMMWORD PTR [edx-2048] diff --git a/gas/testsuite/gas/i386/avx10_2-512-2-intel.d b/gas/testsuite/gas/i386/avx10_2-512-2-intel.d new file mode 100644 index 00000000000..b3483035a10 --- /dev/null +++ b/gas/testsuite/gas/i386/avx10_2-512-2-intel.d @@ -0,0 +1,82 @@ +#objdump: -dw -Mintel +#name: i386 AVX10.2/512 convert insns (Intel disassembly) +#source: avx10_2-512-2.s + +.*: +file format .* + +Disassembly of section \.text: + +#... +[a-f0-9]+ <_intel>: +\s*[a-f0-9]+:\s*62 f2 55 48 67 f4\s+vcvt2ps2phx zmm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f2 55 18 67 f4\s+vcvt2ps2phx zmm6,zmm5,zmm4\{rn-sae\} +\s*[a-f0-9]+:\s*62 f2 55 4f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx zmm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 55 58 67 31\s+vcvt2ps2phx zmm6,zmm5,DWORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 55 48 67 71 7f\s+vcvt2ps2phx zmm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f2 55 5f 67 72 80\s+vcvt2ps2phx zmm6\{k7\},zmm5,DWORD BCST \[edx-0x200\] +\s*[a-f0-9]+:\s*62 f2 54 48 74 f4\s+vcvtbiasph2bf8 ymm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f2 54 4f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8 ymm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 54 58 74 31\s+vcvtbiasph2bf8 ymm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 54 48 74 71 7f\s+vcvtbiasph2bf8 ymm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f2 54 df 74 72 80\s+vcvtbiasph2bf8 ymm6\{k7\}\{z\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f2 57 48 74 f4\s+vcvtne2ph2bf8 zmm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f2 57 4f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8 zmm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 57 58 74 31\s+vcvtne2ph2bf8 zmm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 57 48 74 71 7f\s+vcvtne2ph2bf8 zmm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f2 57 5f 74 72 80\s+vcvtne2ph2bf8 zmm6\{k7\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f2 7e 48 74 f5\s+vcvtneph2bf8 ymm6,zmm5 +\s*[a-f0-9]+:\s*62 f2 7e 4f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8 ymm6\{k7\},ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f2 7e 58 74 31\s+vcvtneph2bf8 ymm6,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f2 7e 48 74 71 7f\s+vcvtneph2bf8 ymm6,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f2 7e df 74 72 80\s+vcvtneph2bf8 ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 54 48 74 f4\s+vcvtbiasph2bf8s ymm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f5 54 4f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8s ymm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 58 74 31\s+vcvtbiasph2bf8s ymm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 48 74 71 7f\s+vcvtbiasph2bf8s ymm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 54 df 74 72 80\s+vcvtbiasph2bf8s ymm6\{k7\}\{z\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 48 74 f4\s+vcvtne2ph2bf8s zmm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f5 57 4f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8s zmm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 58 74 31\s+vcvtne2ph2bf8s zmm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 48 74 71 7f\s+vcvtne2ph2bf8s zmm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 57 5f 74 72 80\s+vcvtne2ph2bf8s zmm6\{k7\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7e 48 74 f5\s+vcvtneph2bf8s ymm6,zmm5 +\s*[a-f0-9]+:\s*62 f5 7e 4f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8s ymm6\{k7\},ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7e 58 74 31\s+vcvtneph2bf8s ymm6,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 7e 48 74 71 7f\s+vcvtneph2bf8s ymm6,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 7e df 74 72 80\s+vcvtneph2bf8s ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 54 48 18 f4\s+vcvtbiasph2hf8 ymm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f5 54 4f 18 b4 f4 00 00 00 10\s+vcvtbiasph2hf8 ymm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 58 18 31\s+vcvtbiasph2hf8 ymm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 48 18 71 7f\s+vcvtbiasph2hf8 ymm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 54 df 18 72 80\s+vcvtbiasph2hf8 ymm6\{k7\}\{z\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 48 18 f4\s+vcvtne2ph2hf8 zmm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f5 57 4f 18 b4 f4 00 00 00 10\s+vcvtne2ph2hf8 zmm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 58 18 31\s+vcvtne2ph2hf8 zmm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 48 18 71 7f\s+vcvtne2ph2hf8 zmm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 57 5f 18 72 80\s+vcvtne2ph2hf8 zmm6\{k7\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7e 48 18 f5\s+vcvtneph2hf8 ymm6,zmm5 +\s*[a-f0-9]+:\s*62 f5 7e 4f 18 b4 f4 00 00 00 10\s+vcvtneph2hf8 ymm6\{k7\},ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7e 58 18 31\s+vcvtneph2hf8 ymm6,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 7e 48 18 71 7f\s+vcvtneph2hf8 ymm6,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 7e df 18 72 80\s+vcvtneph2hf8 ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 54 48 1b f4\s+vcvtbiasph2hf8s ymm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f5 54 4f 1b b4 f4 00 00 00 10\s+vcvtbiasph2hf8s ymm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 54 58 1b 31\s+vcvtbiasph2hf8s ymm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 54 48 1b 71 7f\s+vcvtbiasph2hf8s ymm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 54 df 1b 72 80\s+vcvtbiasph2hf8s ymm6\{k7\}\{z\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 57 48 1b f4\s+vcvtne2ph2hf8s zmm6,zmm5,zmm4 +\s*[a-f0-9]+:\s*62 f5 57 4f 1b b4 f4 00 00 00 10\s+vcvtne2ph2hf8s zmm6\{k7\},zmm5,ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 57 58 1b 31\s+vcvtne2ph2hf8s zmm6,zmm5,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 57 48 1b 71 7f\s+vcvtne2ph2hf8s zmm6,zmm5,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 57 5f 1b 72 80\s+vcvtne2ph2hf8s zmm6\{k7\},zmm5,WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7e 48 1b f5\s+vcvtneph2hf8s ymm6,zmm5 +\s*[a-f0-9]+:\s*62 f5 7e 4f 1b b4 f4 00 00 00 10\s+vcvtneph2hf8s ymm6\{k7\},ZMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7e 58 1b 31\s+vcvtneph2hf8s ymm6,WORD BCST \[ecx\] +\s*[a-f0-9]+:\s*62 f5 7e 48 1b 71 7f\s+vcvtneph2hf8s ymm6,ZMMWORD PTR \[ecx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 f5 7e df 1b 72 80\s+vcvtneph2hf8s ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\] +\s*[a-f0-9]+:\s*62 f5 7f 48 1e f5\s+vcvthf82ph zmm6,ymm5 +\s*[a-f0-9]+:\s*62 f5 7f 4f 1e b4 f4 00 00 00 10\s+vcvthf82ph zmm6\{k7\},YMMWORD PTR \[esp\+esi\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 f5 7f 48 1e 31\s+vcvthf82ph zmm6,YMMWORD PTR \[ecx\] +\s*[a-f0-9]+:\s*62 f5 7f 48 1e 71 7f\s+vcvthf82ph zmm6,YMMWORD PTR \[ecx\+0xfe0\] +\s*[a-f0-9]+:\s*62 f5 7f cf 1e 72 80\s+vcvthf82ph zmm6\{k7\}\{z\},YMMWORD PTR \[edx-0x1000\] +#pass diff --git a/gas/testsuite/gas/i386/avx10_2-512-2.d b/gas/testsuite/gas/i386/avx10_2-512-2.d new file mode 100644 index 00000000000..be5433ba789 --- /dev/null +++ b/gas/testsuite/gas/i386/avx10_2-512-2.d @@ -0,0 +1,80 @@ +#objdump: -dw +#name: i386 AVX10.2/512 convert insns + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 f2 55 48 67 f4\s+vcvt2ps2phx\s+%zmm4,%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 55 18 67 f4\s+vcvt2ps2phx\s+\{rn-sae\},%zmm4,%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 55 4f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%esp,%esi,8\),%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 55 58 67 31\s+vcvt2ps2phx\s+\(%ecx\)\{1to16\},%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 55 48 67 71 7f\s+vcvt2ps2phx\s+0x1fc0\(%ecx\),%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 55 5f 67 72 80\s+vcvt2ps2phx\s+-0x200\(%edx\)\{1to16\},%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 54 48 74 f4\s+vcvtbiasph2bf8\s+%zmm4,%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 54 4f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8\s+0x10000000\(%esp,%esi,8\),%zmm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 54 58 74 31\s+vcvtbiasph2bf8\s+\(%ecx\)\{1to32\},%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 54 48 74 71 7f\s+vcvtbiasph2bf8\s+0x1fc0\(%ecx\),%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 54 df 74 72 80\s+vcvtbiasph2bf8\s+-0x100\(%edx\)\{1to32\},%zmm5,%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f2 57 48 74 f4\s+vcvtne2ph2bf8\s+%zmm4,%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 57 4f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8\s+0x10000000\(%esp,%esi,8\),%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 57 58 74 31\s+vcvtne2ph2bf8\s+\(%ecx\)\{1to32\},%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 57 48 74 71 7f\s+vcvtne2ph2bf8\s+0x1fc0\(%ecx\),%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f2 57 5f 74 72 80\s+vcvtne2ph2bf8\s+-0x100\(%edx\)\{1to32\},%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 7e 48 74 f5\s+vcvtneph2bf8\s+%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f2 7e 4f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8\s+0x10000000\(%esp,%esi,8\),%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f2 7e 58 74 31\s+vcvtneph2bf8\s+\(%ecx\)\{1to32\},%ymm6 +\s*[a-f0-9]+:\s*62 f2 7e 48 74 71 7f\s+vcvtneph2bf8\s+0x1fc0\(%ecx\),%ymm6 +\s*[a-f0-9]+:\s*62 f2 7e df 74 72 80\s+vcvtneph2bf8\s+-0x100\(%edx\)\{1to32\},%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 48 74 f4\s+vcvtbiasph2bf8s\s+%zmm4,%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 4f 74 b4 f4 00 00 00 10\s+vcvtbiasph2bf8s\s+0x10000000\(%esp,%esi,8\),%zmm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 58 74 31\s+vcvtbiasph2bf8s\s+\(%ecx\)\{1to32\},%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 48 74 71 7f\s+vcvtbiasph2bf8s\s+0x1fc0\(%ecx\),%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 df 74 72 80\s+vcvtbiasph2bf8s\s+-0x100\(%edx\)\{1to32\},%zmm5,%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 57 48 74 f4\s+vcvtne2ph2bf8s\s+%zmm4,%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 4f 74 b4 f4 00 00 00 10\s+vcvtne2ph2bf8s\s+0x10000000\(%esp,%esi,8\),%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 58 74 31\s+vcvtne2ph2bf8s\s+\(%ecx\)\{1to32\},%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 48 74 71 7f\s+vcvtne2ph2bf8s\s+0x1fc0\(%ecx\),%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 5f 74 72 80\s+vcvtne2ph2bf8s\s+-0x100\(%edx\)\{1to32\},%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 48 74 f5\s+vcvtneph2bf8s\s+%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e 4f 74 b4 f4 00 00 00 10\s+vcvtneph2bf8s\s+0x10000000\(%esp,%esi,8\),%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 58 74 31\s+vcvtneph2bf8s\s+\(%ecx\)\{1to32\},%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e 48 74 71 7f\s+vcvtneph2bf8s\s+0x1fc0\(%ecx\),%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e df 74 72 80\s+vcvtneph2bf8s\s+-0x100\(%edx\)\{1to32\},%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 48 18 f4\s+vcvtbiasph2hf8\s+%zmm4,%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 4f 18 b4 f4 00 00 00 10\s+vcvtbiasph2hf8\s+0x10000000\(%esp,%esi,8\),%zmm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 58 18 31\s+vcvtbiasph2hf8\s+\(%ecx\)\{1to32\},%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 48 18 71 7f\s+vcvtbiasph2hf8\s+0x1fc0\(%ecx\),%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 df 18 72 80\s+vcvtbiasph2hf8\s+-0x100\(%edx\)\{1to32\},%zmm5,%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 57 48 18 f4\s+vcvtne2ph2hf8\s+%zmm4,%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 4f 18 b4 f4 00 00 00 10\s+vcvtne2ph2hf8\s+0x10000000\(%esp,%esi,8\),%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 58 18 31\s+vcvtne2ph2hf8\s+\(%ecx\)\{1to32\},%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 48 18 71 7f\s+vcvtne2ph2hf8\s+0x1fc0\(%ecx\),%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 5f 18 72 80\s+vcvtne2ph2hf8\s+-0x100\(%edx\)\{1to32\},%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 48 18 f5\s+vcvtneph2hf8\s+%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e 4f 18 b4 f4 00 00 00 10\s+vcvtneph2hf8\s+0x10000000\(%esp,%esi,8\),%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 58 18 31\s+vcvtneph2hf8\s+\(%ecx\)\{1to32\},%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e 48 18 71 7f\s+vcvtneph2hf8\s+0x1fc0\(%ecx\),%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e df 18 72 80\s+vcvtneph2hf8\s+-0x100\(%edx\)\{1to32\},%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 54 48 1b f4\s+vcvtbiasph2hf8s\s+%zmm4,%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 4f 1b b4 f4 00 00 00 10\s+vcvtbiasph2hf8s\s+0x10000000\(%esp,%esi,8\),%zmm5,%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 54 58 1b 31\s+vcvtbiasph2hf8s\s+\(%ecx\)\{1to32\},%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 48 1b 71 7f\s+vcvtbiasph2hf8s\s+0x1fc0\(%ecx\),%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 54 df 1b 72 80\s+vcvtbiasph2hf8s\s+-0x100\(%edx\)\{1to32\},%zmm5,%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 57 48 1b f4\s+vcvtne2ph2hf8s\s+%zmm4,%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 4f 1b b4 f4 00 00 00 10\s+vcvtne2ph2hf8s\s+0x10000000\(%esp,%esi,8\),%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 57 58 1b 31\s+vcvtne2ph2hf8s\s+\(%ecx\)\{1to32\},%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 48 1b 71 7f\s+vcvtne2ph2hf8s\s+0x1fc0\(%ecx\),%zmm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 57 5f 1b 72 80\s+vcvtne2ph2hf8s\s+-0x100\(%edx\)\{1to32\},%zmm5,%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 48 1b f5\s+vcvtneph2hf8s\s+%zmm5,%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e 4f 1b b4 f4 00 00 00 10\s+vcvtneph2hf8s\s+0x10000000\(%esp,%esi,8\),%ymm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7e 58 1b 31\s+vcvtneph2hf8s\s+\(%ecx\)\{1to32\},%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e 48 1b 71 7f\s+vcvtneph2hf8s\s+0x1fc0\(%ecx\),%ymm6 +\s*[a-f0-9]+:\s*62 f5 7e df 1b 72 80\s+vcvtneph2hf8s\s+-0x100\(%edx\)\{1to32\},%ymm6\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 f5 7f 48 1e f5\s+vcvthf82ph\s+%ymm5,%zmm6 +\s*[a-f0-9]+:\s*62 f5 7f 4f 1e b4 f4 00 00 00 10\s+vcvthf82ph\s+0x10000000\(%esp,%esi,8\),%zmm6\{%k7\} +\s*[a-f0-9]+:\s*62 f5 7f 48 1e 31\s+vcvthf82ph\s+\(%ecx\),%zmm6 +\s*[a-f0-9]+:\s*62 f5 7f 48 1e 71 7f\s+vcvthf82ph\s+0xfe0\(%ecx\),%zmm6 +\s*[a-f0-9]+:\s*62 f5 7f cf 1e 72 80\s+vcvthf82ph\s+-0x1000\(%edx\),%zmm6\{%k7\}\{z\} +#pass diff --git a/gas/testsuite/gas/i386/avx10_2-512-2.s b/gas/testsuite/gas/i386/avx10_2-512-2.s new file mode 100644 index 00000000000..ac5a143e2c5 --- /dev/null +++ b/gas/testsuite/gas/i386/avx10_2-512-2.s @@ -0,0 +1,69 @@ +# Check 32bit AVX10.2/512 instructions + + .arch generic32 + .arch .avx10.2/512 + .text +_start: + vcvt2ps2phx %zmm4, %zmm5, %zmm6 + vcvt2ps2phx {rn-sae}, %zmm4, %zmm5, %zmm6 + vcvt2ps2phx 0x10000000(%esp, %esi, 8), %zmm5, %zmm6{%k7} + vcvt2ps2phx (%ecx){1to16}, %zmm5, %zmm6 + vcvt2ps2phx 8128(%ecx), %zmm5, %zmm6 + vcvt2ps2phx -512(%edx){1to16}, %zmm5, %zmm6{%k7} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m %zmm4, %zmm5, %ymm6 + vcvtbiasph2\m 0x10000000(%esp, %esi, 8), %zmm5, %ymm6{%k7} + vcvtbiasph2\m (%ecx){1to32}, %zmm5, %ymm6 + vcvtbiasph2\m 8128(%ecx), %zmm5, %ymm6 + vcvtbiasph2\m -256(%edx){1to32}, %zmm5, %ymm6{%k7}{z} + vcvtne2ph2\m %zmm4, %zmm5, %zmm6 + vcvtne2ph2\m 0x10000000(%esp, %esi, 8), %zmm5, %zmm6{%k7} + vcvtne2ph2\m (%ecx){1to32}, %zmm5, %zmm6 + vcvtne2ph2\m 8128(%ecx), %zmm5, %zmm6 + vcvtne2ph2\m -256(%edx){1to32}, %zmm5, %zmm6{%k7} + vcvtneph2\m %zmm5, %ymm6 + vcvtneph2\m 0x10000000(%esp, %esi, 8), %ymm6{%k7} + vcvtneph2\m (%ecx){1to32}, %ymm6 + vcvtneph2\m 8128(%ecx), %ymm6 + vcvtneph2\m -256(%edx){1to32}, %ymm6{%k7}{z} + .endr + + vcvthf82ph %ymm5, %zmm6 + vcvthf82ph 0x10000000(%esp, %esi, 8), %zmm6{%k7} + vcvthf82ph (%ecx), %zmm6 + vcvthf82ph 4064(%ecx), %zmm6 + vcvthf82ph -4096(%edx), %zmm6{%k7}{z} + +_intel: + .intel_syntax noprefix + vcvt2ps2phx zmm6, zmm5, zmm4 + vcvt2ps2phx zmm6, zmm5, zmm4, {rn-sae} + vcvt2ps2phx zmm6{k7}, zmm5, ZMMWORD PTR [esp+esi*8+0x10000000] + vcvt2ps2phx zmm6, zmm5, DWORD PTR [ecx]{1to16} + vcvt2ps2phx zmm6, zmm5, ZMMWORD PTR [ecx+8128] + vcvt2ps2phx zmm6{k7}, zmm5, DWORD PTR [edx-512]{1to16} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m ymm6, zmm5, zmm4 + vcvtbiasph2\m ymm6{k7}, zmm5, ZMMWORD PTR [esp+esi*8+0x10000000] + vcvtbiasph2\m ymm6, zmm5, WORD PTR [ecx]{1to32} + vcvtbiasph2\m ymm6, zmm5, ZMMWORD PTR [ecx+8128] + vcvtbiasph2\m ymm6{k7}{z}, zmm5, WORD PTR [edx-256]{1to32} + vcvtne2ph2\m zmm6, zmm5, zmm4 + vcvtne2ph2\m zmm6{k7}, zmm5, ZMMWORD PTR [esp+esi*8+0x10000000] + vcvtne2ph2\m zmm6, zmm5, WORD PTR [ecx]{1to32} + vcvtne2ph2\m zmm6, zmm5, ZMMWORD PTR [ecx+8128] + vcvtne2ph2\m zmm6{k7}, zmm5, WORD PTR [edx-256]{1to32} + vcvtneph2\m ymm6, zmm5 + vcvtneph2\m ymm6{k7}, ZMMWORD PTR [esp+esi*8+0x10000000] + vcvtneph2\m ymm6, WORD PTR [ecx]{1to32} + vcvtneph2\m ymm6, ZMMWORD PTR [ecx+8128] + vcvtneph2\m ymm6{k7}{z}, WORD PTR [edx-256]{1to32} + .endr + + vcvthf82ph zmm6, ymm5 + vcvthf82ph zmm6{k7}, YMMWORD PTR [esp+esi*8+0x10000000] + vcvthf82ph zmm6, YMMWORD PTR [ecx] + vcvthf82ph zmm6, YMMWORD PTR [ecx+4064] + vcvthf82ph zmm6{k7}{z}, YMMWORD PTR [edx-4096] diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 699e2004bef..974827d885b 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -527,6 +527,10 @@ if [gas_32_check] then { run_dump_test "avx10_2-512-1-intel" run_dump_test "avx10_2-256-1" run_dump_test "avx10_2-256-1-intel" + run_dump_test "avx10_2-512-2" + run_dump_test "avx10_2-512-2-intel" + run_dump_test "avx10_2-256-2" + run_dump_test "avx10_2-256-2-intel" run_list_test "sg" run_dump_test "clzero" run_dump_test "invlpgb" diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-2-intel.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-2-intel.d new file mode 100644 index 00000000000..e3fc13fbe0b --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-2-intel.d @@ -0,0 +1,148 @@ +#objdump: -dw -Mintel +#name: x86_64 AVX10.2/256 convert insns (Intel disassembly) +#source: x86-64-avx10_2-256-2.s + +.*: +file format .* + +Disassembly of section \.text: + +#... +[a-f0-9]+ <_intel>: +\s*[a-f0-9]+:\s*62 02 15 00 67 f4\s+vcvt2ps2phx xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 02 15 20 67 f4\s+vcvt2ps2phx ymm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 02 11 10 67 f4\s+vcvt2ps2phx ymm30,ymm29,ymm28\{rn-sae\} +\s*[a-f0-9]+:\s*62 22 15 07 67 b4 f5 00 00 00 10\s+vcvt2ps2phx xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 15 10 67 31\s+vcvt2ps2phx xmm30,xmm29,DWORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 15 00 67 71 7f\s+vcvt2ps2phx xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 62 15 17 67 72 80\s+vcvt2ps2phx xmm30\{k7\},xmm29,DWORD BCST \[rdx-0x200\] +\s*[a-f0-9]+:\s*62 22 15 27 67 b4 f5 00 00 00 10\s+vcvt2ps2phx ymm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 15 30 67 31\s+vcvt2ps2phx ymm30,ymm29,DWORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 15 20 67 71 7f\s+vcvt2ps2phx ymm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 62 15 37 67 72 80\s+vcvt2ps2phx ymm30\{k7\},ymm29,DWORD BCST \[rdx-0x200\] +\s*[a-f0-9]+:\s*62 02 14 00 74 f4\s+vcvtbiasph2bf8 xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 02 14 20 74 f4\s+vcvtbiasph2bf8 xmm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 22 14 07 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8 xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 14 10 74 31\s+vcvtbiasph2bf8 xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 14 00 74 71 7f\s+vcvtbiasph2bf8 xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 62 14 97 74 72 80\s+vcvtbiasph2bf8 xmm30\{k7\}\{z\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 22 14 27 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8 xmm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 14 30 74 31\s+vcvtbiasph2bf8 xmm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 14 20 74 71 7f\s+vcvtbiasph2bf8 xmm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 62 14 b7 74 72 80\s+vcvtbiasph2bf8 xmm30\{k7\}\{z\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 02 17 00 74 f4\s+vcvtne2ph2bf8 xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 02 17 20 74 f4\s+vcvtne2ph2bf8 ymm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 22 17 07 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8 xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 17 10 74 31\s+vcvtne2ph2bf8 xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 17 00 74 71 7f\s+vcvtne2ph2bf8 xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 62 17 17 74 72 80\s+vcvtne2ph2bf8 xmm30\{k7\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 22 17 27 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8 ymm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 17 30 74 31\s+vcvtne2ph2bf8 ymm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 17 20 74 71 7f\s+vcvtne2ph2bf8 ymm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 62 17 37 74 72 80\s+vcvtne2ph2bf8 ymm30\{k7\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 02 7e 08 74 f5\s+vcvtneph2bf8 xmm30,xmm29 +\s*[a-f0-9]+:\s*62 02 7e 28 74 f5\s+vcvtneph2bf8 xmm30,ymm29 +\s*[a-f0-9]+:\s*62 22 7e 0f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8 xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 7e 18 74 31\s+vcvtneph2bf8 xmm30,WORD BCST \[r9\]\{1to8\} +\s*[a-f0-9]+:\s*62 62 7e 08 74 71 7f\s+vcvtneph2bf8 xmm30,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 62 7e 9f 74 72 80\s+vcvtneph2bf8 xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 42 7e 38 74 31\s+vcvtneph2bf8 xmm30,WORD BCST \[r9\]\{1to16\} +\s*[a-f0-9]+:\s*62 62 7e 28 74 71 7f\s+vcvtneph2bf8 xmm30,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 62 7e bf 74 72 80\s+vcvtneph2bf8 xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 05 14 00 74 f4\s+vcvtbiasph2bf8s xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 05 14 20 74 f4\s+vcvtbiasph2bf8s xmm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 25 14 07 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8s xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 10 74 31\s+vcvtbiasph2bf8s xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 00 74 71 7f\s+vcvtbiasph2bf8s xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 14 97 74 72 80\s+vcvtbiasph2bf8s xmm30\{k7\}\{z\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 25 14 27 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8s xmm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 30 74 31\s+vcvtbiasph2bf8s xmm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 20 74 71 7f\s+vcvtbiasph2bf8s xmm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 14 b7 74 72 80\s+vcvtbiasph2bf8s xmm30\{k7\}\{z\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 17 00 74 f4\s+vcvtne2ph2bf8s xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 05 17 20 74 f4\s+vcvtne2ph2bf8s ymm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 25 17 07 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8s xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 10 74 31\s+vcvtne2ph2bf8s xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 00 74 71 7f\s+vcvtne2ph2bf8s xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 17 17 74 72 80\s+vcvtne2ph2bf8s xmm30\{k7\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 25 17 27 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8s ymm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 30 74 31\s+vcvtne2ph2bf8s ymm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 20 74 71 7f\s+vcvtne2ph2bf8s ymm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 17 37 74 72 80\s+vcvtne2ph2bf8s ymm30\{k7\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7e 08 74 f5\s+vcvtneph2bf8s xmm30,xmm29 +\s*[a-f0-9]+:\s*62 05 7e 28 74 f5\s+vcvtneph2bf8s xmm30,ymm29 +\s*[a-f0-9]+:\s*62 25 7e 0f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8s xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7e 18 74 31\s+vcvtneph2bf8s xmm30,WORD BCST \[r9\]\{1to8\} +\s*[a-f0-9]+:\s*62 65 7e 08 74 71 7f\s+vcvtneph2bf8s xmm30,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 7e 9f 74 72 80\s+vcvtneph2bf8s xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 45 7e 38 74 31\s+vcvtneph2bf8s xmm30,WORD BCST \[r9\]\{1to16\} +\s*[a-f0-9]+:\s*62 65 7e 28 74 71 7f\s+vcvtneph2bf8s xmm30,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 7e bf 74 72 80\s+vcvtneph2bf8s xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 05 14 00 18 f4\s+vcvtbiasph2hf8 xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 05 14 20 18 f4\s+vcvtbiasph2hf8 xmm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 25 14 07 18 b4 f5 00 00 00 10\s+vcvtbiasph2hf8 xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 10 18 31\s+vcvtbiasph2hf8 xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 00 18 71 7f\s+vcvtbiasph2hf8 xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 14 97 18 72 80\s+vcvtbiasph2hf8 xmm30\{k7\}\{z\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 25 14 27 18 b4 f5 00 00 00 10\s+vcvtbiasph2hf8 xmm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 30 18 31\s+vcvtbiasph2hf8 xmm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 20 18 71 7f\s+vcvtbiasph2hf8 xmm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 14 b7 18 72 80\s+vcvtbiasph2hf8 xmm30\{k7\}\{z\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 17 00 18 f4\s+vcvtne2ph2hf8 xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 05 17 20 18 f4\s+vcvtne2ph2hf8 ymm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 25 17 07 18 b4 f5 00 00 00 10\s+vcvtne2ph2hf8 xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 10 18 31\s+vcvtne2ph2hf8 xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 00 18 71 7f\s+vcvtne2ph2hf8 xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 17 17 18 72 80\s+vcvtne2ph2hf8 xmm30\{k7\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 25 17 27 18 b4 f5 00 00 00 10\s+vcvtne2ph2hf8 ymm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 30 18 31\s+vcvtne2ph2hf8 ymm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 20 18 71 7f\s+vcvtne2ph2hf8 ymm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 17 37 18 72 80\s+vcvtne2ph2hf8 ymm30\{k7\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7e 08 18 f5\s+vcvtneph2hf8 xmm30,xmm29 +\s*[a-f0-9]+:\s*62 05 7e 28 18 f5\s+vcvtneph2hf8 xmm30,ymm29 +\s*[a-f0-9]+:\s*62 25 7e 0f 18 b4 f5 00 00 00 10\s+vcvtneph2hf8 xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7e 18 18 31\s+vcvtneph2hf8 xmm30,WORD BCST \[r9\]\{1to8\} +\s*[a-f0-9]+:\s*62 65 7e 08 18 71 7f\s+vcvtneph2hf8 xmm30,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 7e 9f 18 72 80\s+vcvtneph2hf8 xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 45 7e 38 18 31\s+vcvtneph2hf8 xmm30,WORD BCST \[r9\]\{1to16\} +\s*[a-f0-9]+:\s*62 65 7e 28 18 71 7f\s+vcvtneph2hf8 xmm30,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 7e bf 18 72 80\s+vcvtneph2hf8 xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 05 14 00 1b f4\s+vcvtbiasph2hf8s xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 05 14 20 1b f4\s+vcvtbiasph2hf8s xmm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 25 14 07 1b b4 f5 00 00 00 10\s+vcvtbiasph2hf8s xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 10 1b 31\s+vcvtbiasph2hf8s xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 00 1b 71 7f\s+vcvtbiasph2hf8s xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 14 97 1b 72 80\s+vcvtbiasph2hf8s xmm30\{k7\}\{z\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 25 14 27 1b b4 f5 00 00 00 10\s+vcvtbiasph2hf8s xmm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 30 1b 31\s+vcvtbiasph2hf8s xmm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 20 1b 71 7f\s+vcvtbiasph2hf8s xmm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 14 b7 1b 72 80\s+vcvtbiasph2hf8s xmm30\{k7\}\{z\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 17 00 1b f4\s+vcvtne2ph2hf8s xmm30,xmm29,xmm28 +\s*[a-f0-9]+:\s*62 05 17 20 1b f4\s+vcvtne2ph2hf8s ymm30,ymm29,ymm28 +\s*[a-f0-9]+:\s*62 25 17 07 1b b4 f5 00 00 00 10\s+vcvtne2ph2hf8s xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 10 1b 31\s+vcvtne2ph2hf8s xmm30,xmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 00 1b 71 7f\s+vcvtne2ph2hf8s xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 17 17 1b 72 80\s+vcvtne2ph2hf8s xmm30\{k7\},xmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 25 17 27 1b b4 f5 00 00 00 10\s+vcvtne2ph2hf8s ymm30\{k7\},ymm29,YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 30 1b 31\s+vcvtne2ph2hf8s ymm30,ymm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 20 1b 71 7f\s+vcvtne2ph2hf8s ymm30,ymm29,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 17 37 1b 72 80\s+vcvtne2ph2hf8s ymm30\{k7\},ymm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7e 08 1b f5\s+vcvtneph2hf8s xmm30,xmm29 +\s*[a-f0-9]+:\s*62 05 7e 28 1b f5\s+vcvtneph2hf8s xmm30,ymm29 +\s*[a-f0-9]+:\s*62 25 7e 0f 1b b4 f5 00 00 00 10\s+vcvtneph2hf8s xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7e 18 1b 31\s+vcvtneph2hf8s xmm30,WORD BCST \[r9\]\{1to8\} +\s*[a-f0-9]+:\s*62 65 7e 08 1b 71 7f\s+vcvtneph2hf8s xmm30,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 7e 9f 1b 72 80\s+vcvtneph2hf8s xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to8\} +\s*[a-f0-9]+:\s*62 45 7e 38 1b 31\s+vcvtneph2hf8s xmm30,WORD BCST \[r9\]\{1to16\} +\s*[a-f0-9]+:\s*62 65 7e 28 1b 71 7f\s+vcvtneph2hf8s xmm30,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 7e bf 1b 72 80\s+vcvtneph2hf8s xmm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]\{1to16\} +\s*[a-f0-9]+:\s*62 05 7f 08 1e f5\s+vcvthf82ph xmm30,xmm29 +\s*[a-f0-9]+:\s*62 05 7f 28 1e f5\s+vcvthf82ph ymm30,xmm29 +\s*[a-f0-9]+:\s*62 25 7f 0f 1e b4 f5 00 00 00 10\s+vcvthf82ph xmm30\{k7\},QWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7f 08 1e 31\s+vcvthf82ph xmm30,QWORD PTR \[r9\] +\s*[a-f0-9]+:\s*62 65 7f 08 1e 71 7f\s+vcvthf82ph xmm30,QWORD PTR \[rcx\+0x3f8\] +\s*[a-f0-9]+:\s*62 65 7f 8f 1e 72 80\s+vcvthf82ph xmm30\{k7\}\{z\},QWORD PTR \[rdx-0x400\] +\s*[a-f0-9]+:\s*62 25 7f 2f 1e b4 f5 00 00 00 10\s+vcvthf82ph ymm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7f 28 1e 31\s+vcvthf82ph ymm30,XMMWORD PTR \[r9\] +\s*[a-f0-9]+:\s*62 65 7f 28 1e 71 7f\s+vcvthf82ph ymm30,XMMWORD PTR \[rcx\+0x7f0\] +\s*[a-f0-9]+:\s*62 65 7f af 1e 72 80\s+vcvthf82ph ymm30\{k7\}\{z\},XMMWORD PTR \[rdx-0x800\] +#pass diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-2.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-2.d new file mode 100644 index 00000000000..c4aa561893b --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-2.d @@ -0,0 +1,146 @@ +#objdump: -dw +#name: x86_64 AVX10.2/256 convert insns + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 02 15 00 67 f4\s+vcvt2ps2phx\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 02 15 20 67 f4\s+vcvt2ps2phx\s+%ymm28,%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 02 11 10 67 f4\s+vcvt2ps2phx\s+\{rn-sae\},%ymm28,%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 22 15 07 67 b4 f5 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 15 10 67 31\s+vcvt2ps2phx\s+\(%r9\)\{1to4\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 15 00 67 71 7f\s+vcvt2ps2phx\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 15 17 67 72 80\s+vcvt2ps2phx\s+-0x200\(%rdx\)\{1to4\},%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 22 15 27 67 b4 f5 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%rbp,%r14,8\),%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 15 30 67 31\s+vcvt2ps2phx\s+\(%r9\)\{1to8\},%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 62 15 20 67 71 7f\s+vcvt2ps2phx\s+0xfe0\(%rcx\),%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 62 15 37 67 72 80\s+vcvt2ps2phx\s+-0x200\(%rdx\)\{1to8\},%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 02 14 00 74 f4\s+vcvtbiasph2bf8\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 02 14 20 74 f4\s+vcvtbiasph2bf8\s+%ymm28,%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 22 14 07 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 14 10 74 31\s+vcvtbiasph2bf8\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 14 00 74 71 7f\s+vcvtbiasph2bf8\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 14 97 74 72 80\s+vcvtbiasph2bf8\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 22 14 27 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8\s+0x10000000\(%rbp,%r14,8\),%ymm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 14 30 74 31\s+vcvtbiasph2bf8\s+\(%r9\)\{1to16\},%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 14 20 74 71 7f\s+vcvtbiasph2bf8\s+0xfe0\(%rcx\),%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 14 b7 74 72 80\s+vcvtbiasph2bf8\s+-0x100\(%rdx\)\{1to16\},%ymm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 02 17 00 74 f4\s+vcvtne2ph2bf8\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 02 17 20 74 f4\s+vcvtne2ph2bf8\s+%ymm28,%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 22 17 07 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 17 10 74 31\s+vcvtne2ph2bf8\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 17 00 74 71 7f\s+vcvtne2ph2bf8\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 62 17 17 74 72 80\s+vcvtne2ph2bf8\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 22 17 27 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8\s+0x10000000\(%rbp,%r14,8\),%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 17 30 74 31\s+vcvtne2ph2bf8\s+\(%r9\)\{1to16\},%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 62 17 20 74 71 7f\s+vcvtne2ph2bf8\s+0xfe0\(%rcx\),%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 62 17 37 74 72 80\s+vcvtne2ph2bf8\s+-0x100\(%rdx\)\{1to16\},%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 02 7e 08 74 f5\s+vcvtneph2bf8\s+%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 02 7e 28 74 f5\s+vcvtneph2bf8\s+%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 22 7e 0f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8x\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 7e 18 74 31\s+vcvtneph2bf8\s+\(%r9\)\{1to8\},%xmm30 +\s*[a-f0-9]+:\s*62 62 7e 08 74 71 7f\s+vcvtneph2bf8x\s+0x7f0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 62 7e 9f 74 72 80\s+vcvtneph2bf8\s+-0x100\(%rdx\)\{1to8\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 42 7e 38 74 31\s+vcvtneph2bf8\s+\(%r9\)\{1to16\},%xmm30 +\s*[a-f0-9]+:\s*62 62 7e 28 74 71 7f\s+vcvtneph2bf8y\s+0xfe0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 62 7e bf 74 72 80\s+vcvtneph2bf8\s+-0x100\(%rdx\)\{1to16\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 14 00 74 f4\s+vcvtbiasph2bf8s\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 14 20 74 f4\s+vcvtbiasph2bf8s\s+%ymm28,%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 25 14 07 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8s\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 10 74 31\s+vcvtbiasph2bf8s\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 00 74 71 7f\s+vcvtbiasph2bf8s\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 97 74 72 80\s+vcvtbiasph2bf8s\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 25 14 27 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8s\s+0x10000000\(%rbp,%r14,8\),%ymm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 30 74 31\s+vcvtbiasph2bf8s\s+\(%r9\)\{1to16\},%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 20 74 71 7f\s+vcvtbiasph2bf8s\s+0xfe0\(%rcx\),%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 b7 74 72 80\s+vcvtbiasph2bf8s\s+-0x100\(%rdx\)\{1to16\},%ymm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 17 00 74 f4\s+vcvtne2ph2bf8s\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 17 20 74 f4\s+vcvtne2ph2bf8s\s+%ymm28,%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 17 07 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8s\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 10 74 31\s+vcvtne2ph2bf8s\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 17 00 74 71 7f\s+vcvtne2ph2bf8s\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 17 17 74 72 80\s+vcvtne2ph2bf8s\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 25 17 27 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8s\s+0x10000000\(%rbp,%r14,8\),%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 30 74 31\s+vcvtne2ph2bf8s\s+\(%r9\)\{1to16\},%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 17 20 74 71 7f\s+vcvtne2ph2bf8s\s+0xfe0\(%rcx\),%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 17 37 74 72 80\s+vcvtne2ph2bf8s\s+-0x100\(%rdx\)\{1to16\},%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 05 7e 08 74 f5\s+vcvtneph2bf8s\s+%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 7e 28 74 f5\s+vcvtneph2bf8s\s+%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 25 7e 0f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8sx\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7e 18 74 31\s+vcvtneph2bf8s\s+\(%r9\)\{1to8\},%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 08 74 71 7f\s+vcvtneph2bf8sx\s+0x7f0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 9f 74 72 80\s+vcvtneph2bf8s\s+-0x100\(%rdx\)\{1to8\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 45 7e 38 74 31\s+vcvtneph2bf8s\s+\(%r9\)\{1to16\},%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 28 74 71 7f\s+vcvtneph2bf8sy\s+0xfe0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7e bf 74 72 80\s+vcvtneph2bf8s\s+-0x100\(%rdx\)\{1to16\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 14 00 18 f4\s+vcvtbiasph2hf8\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 14 20 18 f4\s+vcvtbiasph2hf8\s+%ymm28,%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 25 14 07 18 b4 f5 00 00 00 10\s+vcvtbiasph2hf8\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 10 18 31\s+vcvtbiasph2hf8\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 00 18 71 7f\s+vcvtbiasph2hf8\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 97 18 72 80\s+vcvtbiasph2hf8\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 25 14 27 18 b4 f5 00 00 00 10\s+vcvtbiasph2hf8\s+0x10000000\(%rbp,%r14,8\),%ymm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 30 18 31\s+vcvtbiasph2hf8\s+\(%r9\)\{1to16\},%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 20 18 71 7f\s+vcvtbiasph2hf8\s+0xfe0\(%rcx\),%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 b7 18 72 80\s+vcvtbiasph2hf8\s+-0x100\(%rdx\)\{1to16\},%ymm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 17 00 18 f4\s+vcvtne2ph2hf8\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 17 20 18 f4\s+vcvtne2ph2hf8\s+%ymm28,%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 17 07 18 b4 f5 00 00 00 10\s+vcvtne2ph2hf8\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 10 18 31\s+vcvtne2ph2hf8\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 17 00 18 71 7f\s+vcvtne2ph2hf8\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 17 17 18 72 80\s+vcvtne2ph2hf8\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 25 17 27 18 b4 f5 00 00 00 10\s+vcvtne2ph2hf8\s+0x10000000\(%rbp,%r14,8\),%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 30 18 31\s+vcvtne2ph2hf8\s+\(%r9\)\{1to16\},%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 17 20 18 71 7f\s+vcvtne2ph2hf8\s+0xfe0\(%rcx\),%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 17 37 18 72 80\s+vcvtne2ph2hf8\s+-0x100\(%rdx\)\{1to16\},%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 05 7e 08 18 f5\s+vcvtneph2hf8\s+%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 7e 28 18 f5\s+vcvtneph2hf8\s+%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 25 7e 0f 18 b4 f5 00 00 00 10\s+vcvtneph2hf8x\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7e 18 18 31\s+vcvtneph2hf8\s+\(%r9\)\{1to8\},%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 08 18 71 7f\s+vcvtneph2hf8x\s+0x7f0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 9f 18 72 80\s+vcvtneph2hf8\s+-0x100\(%rdx\)\{1to8\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 45 7e 38 18 31\s+vcvtneph2hf8\s+\(%r9\)\{1to16\},%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 28 18 71 7f\s+vcvtneph2hf8y\s+0xfe0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7e bf 18 72 80\s+vcvtneph2hf8\s+-0x100\(%rdx\)\{1to16\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 14 00 1b f4\s+vcvtbiasph2hf8s\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 14 20 1b f4\s+vcvtbiasph2hf8s\s+%ymm28,%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 25 14 07 1b b4 f5 00 00 00 10\s+vcvtbiasph2hf8s\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 10 1b 31\s+vcvtbiasph2hf8s\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 00 1b 71 7f\s+vcvtbiasph2hf8s\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 97 1b 72 80\s+vcvtbiasph2hf8s\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 25 14 27 1b b4 f5 00 00 00 10\s+vcvtbiasph2hf8s\s+0x10000000\(%rbp,%r14,8\),%ymm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 30 1b 31\s+vcvtbiasph2hf8s\s+\(%r9\)\{1to16\},%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 20 1b 71 7f\s+vcvtbiasph2hf8s\s+0xfe0\(%rcx\),%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 14 b7 1b 72 80\s+vcvtbiasph2hf8s\s+-0x100\(%rdx\)\{1to16\},%ymm29,%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 17 00 1b f4\s+vcvtne2ph2hf8s\s+%xmm28,%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 17 20 1b f4\s+vcvtne2ph2hf8s\s+%ymm28,%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 17 07 1b b4 f5 00 00 00 10\s+vcvtne2ph2hf8s\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 10 1b 31\s+vcvtne2ph2hf8s\s+\(%r9\)\{1to8\},%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 17 00 1b 71 7f\s+vcvtne2ph2hf8s\s+0x7f0\(%rcx\),%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 65 17 17 1b 72 80\s+vcvtne2ph2hf8s\s+-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 25 17 27 1b b4 f5 00 00 00 10\s+vcvtne2ph2hf8s\s+0x10000000\(%rbp,%r14,8\),%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 30 1b 31\s+vcvtne2ph2hf8s\s+\(%r9\)\{1to16\},%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 17 20 1b 71 7f\s+vcvtne2ph2hf8s\s+0xfe0\(%rcx\),%ymm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 17 37 1b 72 80\s+vcvtne2ph2hf8s\s+-0x100\(%rdx\)\{1to16\},%ymm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 05 7e 08 1b f5\s+vcvtneph2hf8s\s+%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 7e 28 1b f5\s+vcvtneph2hf8s\s+%ymm29,%xmm30 +\s*[a-f0-9]+:\s*62 25 7e 0f 1b b4 f5 00 00 00 10\s+vcvtneph2hf8sx\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7e 18 1b 31\s+vcvtneph2hf8s\s+\(%r9\)\{1to8\},%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 08 1b 71 7f\s+vcvtneph2hf8sx\s+0x7f0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 9f 1b 72 80\s+vcvtneph2hf8s\s+-0x100\(%rdx\)\{1to8\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 45 7e 38 1b 31\s+vcvtneph2hf8s\s+\(%r9\)\{1to16\},%xmm30 +\s*[a-f0-9]+:\s*62 65 7e 28 1b 71 7f\s+vcvtneph2hf8sy\s+0xfe0\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7e bf 1b 72 80\s+vcvtneph2hf8s\s+-0x100\(%rdx\)\{1to16\},%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 7f 08 1e f5\s+vcvthf82ph\s+%xmm29,%xmm30 +\s*[a-f0-9]+:\s*62 05 7f 28 1e f5\s+vcvthf82ph\s+%xmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 7f 0f 1e b4 f5 00 00 00 10\s+vcvthf82ph\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7f 08 1e 31\s+vcvthf82ph\s+\(%r9\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7f 08 1e 71 7f\s+vcvthf82ph\s+0x3f8\(%rcx\),%xmm30 +\s*[a-f0-9]+:\s*62 65 7f 8f 1e 72 80\s+vcvthf82ph\s+-0x400\(%rdx\),%xmm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 25 7f 2f 1e b4 f5 00 00 00 10\s+vcvthf82ph\s+0x10000000\(%rbp,%r14,8\),%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7f 28 1e 31\s+vcvthf82ph\s+\(%r9\),%ymm30 +\s*[a-f0-9]+:\s*62 65 7f 28 1e 71 7f\s+vcvthf82ph\s+0x7f0\(%rcx\),%ymm30 +\s*[a-f0-9]+:\s*62 65 7f af 1e 72 80\s+vcvthf82ph\s+-0x800\(%rdx\),%ymm30\{%k7\}\{z\} +#pass diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-2.s b/gas/testsuite/gas/i386/x86-64-avx10_2-256-2.s new file mode 100644 index 00000000000..0583c6064e6 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-2.s @@ -0,0 +1,117 @@ +# Check 64bit AVX10.2/256 instructions + + .arch generic64 + .arch .avx10.2/256 + .text +_start: + vcvt2ps2phx %xmm28, %xmm29, %xmm30 + vcvt2ps2phx %ymm28, %ymm29, %ymm30 + vcvt2ps2phx {rn-sae}, %ymm28, %ymm29, %ymm30 + vcvt2ps2phx 0x10000000(%rbp, %r14, 8), %xmm29, %xmm30{%k7} + vcvt2ps2phx (%r9){1to4}, %xmm29, %xmm30 + vcvt2ps2phx 2032(%rcx), %xmm29, %xmm30 + vcvt2ps2phx -512(%rdx){1to4}, %xmm29, %xmm30{%k7} + vcvt2ps2phx 0x10000000(%rbp, %r14, 8), %ymm29, %ymm30{%k7} + vcvt2ps2phx (%r9){1to8}, %ymm29, %ymm30 + vcvt2ps2phx 4064(%rcx), %ymm29, %ymm30 + vcvt2ps2phx -512(%rdx){1to8}, %ymm29, %ymm30{%k7} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m %xmm28, %xmm29, %xmm30 + vcvtbiasph2\m %ymm28, %ymm29, %xmm30 + vcvtbiasph2\m 0x10000000(%rbp, %r14, 8), %xmm29, %xmm30{%k7} + vcvtbiasph2\m (%r9){1to8}, %xmm29, %xmm30 + vcvtbiasph2\m 2032(%rcx), %xmm29, %xmm30 + vcvtbiasph2\m -256(%rdx){1to8}, %xmm29, %xmm30{%k7}{z} + vcvtbiasph2\m 0x10000000(%rbp, %r14, 8), %ymm29, %xmm30{%k7} + vcvtbiasph2\m (%r9){1to16}, %ymm29, %xmm30 + vcvtbiasph2\m 4064(%rcx), %ymm29, %xmm30 + vcvtbiasph2\m -256(%rdx){1to16}, %ymm29, %xmm30{%k7}{z} + vcvtne2ph2\m %xmm28, %xmm29, %xmm30 + vcvtne2ph2\m %ymm28, %ymm29, %ymm30 + vcvtne2ph2\m 0x10000000(%rbp, %r14, 8), %xmm29, %xmm30{%k7} + vcvtne2ph2\m (%r9){1to8}, %xmm29, %xmm30 + vcvtne2ph2\m 2032(%rcx), %xmm29, %xmm30 + vcvtne2ph2\m -256(%rdx){1to8}, %xmm29, %xmm30{%k7} + vcvtne2ph2\m 0x10000000(%rbp, %r14, 8), %ymm29, %ymm30{%k7} + vcvtne2ph2\m (%r9){1to16}, %ymm29, %ymm30 + vcvtne2ph2\m 4064(%rcx), %ymm29, %ymm30 + vcvtne2ph2\m -256(%rdx){1to16}, %ymm29, %ymm30{%k7} + vcvtneph2\m %xmm29, %xmm30 + vcvtneph2\m %ymm29, %xmm30 + vcvtneph2\m\()x 0x10000000(%rbp, %r14, 8), %xmm30{%k7} + vcvtneph2\m (%r9){1to8}, %xmm30 + vcvtneph2\m\()x 2032(%rcx), %xmm30 + vcvtneph2\m -256(%rdx){1to8}, %xmm30{%k7}{z} + vcvtneph2\m (%r9){1to16}, %xmm30 + vcvtneph2\m\()y 4064(%rcx), %xmm30 + vcvtneph2\m -256(%rdx){1to16}, %xmm30{%k7}{z} + .endr + + vcvthf82ph %xmm29, %xmm30 + vcvthf82ph %xmm29, %ymm30 + vcvthf82ph 0x10000000(%rbp, %r14, 8), %xmm30{%k7} + vcvthf82ph (%r9), %xmm30 + vcvthf82ph 1016(%rcx), %xmm30 + vcvthf82ph -1024(%rdx), %xmm30{%k7}{z} + vcvthf82ph 0x10000000(%rbp, %r14, 8), %ymm30{%k7} + vcvthf82ph (%r9), %ymm30 + vcvthf82ph 2032(%rcx), %ymm30 + vcvthf82ph -2048(%rdx), %ymm30{%k7}{z} + +_intel: + .intel_syntax noprefix + vcvt2ps2phx xmm30, xmm29, xmm28 + vcvt2ps2phx ymm30, ymm29, ymm28 + vcvt2ps2phx ymm30, ymm29, ymm28, {rn-sae} + vcvt2ps2phx xmm30{k7}, xmm29, XMMWORD PTR [rbp+r14*8+0x10000000] + vcvt2ps2phx xmm30, xmm29, DWORD PTR [r9]{1to4} + vcvt2ps2phx xmm30, xmm29, XMMWORD PTR [rcx+2032] + vcvt2ps2phx xmm30{k7}, xmm29, DWORD PTR [rdx-512]{1to4} + vcvt2ps2phx ymm30{k7}, ymm29, YMMWORD PTR [rbp+r14*8+0x10000000] + vcvt2ps2phx ymm30, ymm29, DWORD PTR [r9]{1to8} + vcvt2ps2phx ymm30, ymm29, YMMWORD PTR [rcx+4064] + vcvt2ps2phx ymm30{k7}, ymm29, DWORD PTR [rdx-512]{1to8} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m xmm30, xmm29, xmm28 + vcvtbiasph2\m xmm30, ymm29, ymm28 + vcvtbiasph2\m xmm30{k7}, xmm29, XMMWORD PTR [rbp+r14*8+0x10000000] + vcvtbiasph2\m xmm30, xmm29, WORD PTR [r9]{1to8} + vcvtbiasph2\m xmm30, xmm29, XMMWORD PTR [rcx+2032] + vcvtbiasph2\m xmm30{k7}{z}, xmm29, WORD PTR [rdx-256]{1to8} + vcvtbiasph2\m xmm30{k7}, ymm29, YMMWORD PTR [rbp+r14*8+0x10000000] + vcvtbiasph2\m xmm30, ymm29, WORD PTR [r9]{1to16} + vcvtbiasph2\m xmm30, ymm29, YMMWORD PTR [rcx+4064] + vcvtbiasph2\m xmm30{k7}{z}, ymm29, WORD PTR [rdx-256]{1to16} + vcvtne2ph2\m xmm30, xmm29, xmm28 + vcvtne2ph2\m ymm30, ymm29, ymm28 + vcvtne2ph2\m xmm30{k7}, xmm29, XMMWORD PTR [rbp+r14*8+0x10000000] + vcvtne2ph2\m xmm30, xmm29, WORD PTR [r9]{1to8} + vcvtne2ph2\m xmm30, xmm29, XMMWORD PTR [rcx+2032] + vcvtne2ph2\m xmm30{k7}, xmm29, WORD PTR [rdx-256]{1to8} + vcvtne2ph2\m ymm30{k7}, ymm29, YMMWORD PTR [rbp+r14*8+0x10000000] + vcvtne2ph2\m ymm30, ymm29, WORD PTR [r9]{1to16} + vcvtne2ph2\m ymm30, ymm29, YMMWORD PTR [rcx+4064] + vcvtne2ph2\m ymm30{k7}, ymm29, WORD PTR [rdx-256]{1to16} + vcvtneph2\m xmm30, xmm29 + vcvtneph2\m xmm30, ymm29 + vcvtneph2\m xmm30{k7}, XMMWORD PTR [rbp+r14*8+0x10000000] + vcvtneph2\m xmm30, WORD PTR [r9]{1to8} + vcvtneph2\m xmm30, XMMWORD PTR [rcx+2032] + vcvtneph2\m xmm30{k7}{z}, WORD PTR [rdx-256]{1to8} + vcvtneph2\m xmm30, WORD PTR [r9]{1to16} + vcvtneph2\m xmm30, YMMWORD PTR [rcx+4064] + vcvtneph2\m xmm30{k7}{z}, WORD PTR [rdx-256]{1to16} + .endr + + vcvthf82ph xmm30, xmm29 + vcvthf82ph ymm30, xmm29 + vcvthf82ph xmm30{k7}, QWORD PTR [rbp+r14*8+0x10000000] + vcvthf82ph xmm30, QWORD PTR [r9] + vcvthf82ph xmm30, QWORD PTR [rcx+1016] + vcvthf82ph xmm30{k7}{z}, QWORD PTR [rdx-1024] + vcvthf82ph ymm30{k7}, XMMWORD PTR [rbp+r14*8+0x10000000] + vcvthf82ph ymm30, XMMWORD PTR [r9] + vcvthf82ph ymm30, XMMWORD PTR [rcx+2032] + vcvthf82ph ymm30{k7}{z}, XMMWORD PTR [rdx-2048] diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-512-2-intel.d b/gas/testsuite/gas/i386/x86-64-avx10_2-512-2-intel.d new file mode 100644 index 00000000000..e42f08c9b3e --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-avx10_2-512-2-intel.d @@ -0,0 +1,82 @@ +#objdump: -dw -Mintel +#name: x86_64 AVX10.2/512 convert insns (Intel disassembly) +#source: x86-64-avx10_2-512-2.s + +.*: +file format .* + +Disassembly of section \.text: + +#... +[a-f0-9]+ <_intel>: +\s*[a-f0-9]+:\s*62 02 15 40 67 f4\s+vcvt2ps2phx zmm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 02 15 10 67 f4\s+vcvt2ps2phx zmm30,zmm29,zmm28\{rn-sae\} +\s*[a-f0-9]+:\s*62 22 15 47 67 b4 f5 00 00 00 10\s+vcvt2ps2phx zmm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 15 50 67 31\s+vcvt2ps2phx zmm30,zmm29,DWORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 15 40 67 71 7f\s+vcvt2ps2phx zmm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 62 15 57 67 72 80\s+vcvt2ps2phx zmm30\{k7\},zmm29,DWORD BCST \[rdx-0x200\] +\s*[a-f0-9]+:\s*62 02 14 40 74 f4\s+vcvtbiasph2bf8 ymm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 22 14 47 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8 ymm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 14 50 74 31\s+vcvtbiasph2bf8 ymm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 14 40 74 71 7f\s+vcvtbiasph2bf8 ymm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 62 14 d7 74 72 80\s+vcvtbiasph2bf8 ymm30\{k7\}\{z\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 02 17 40 74 f4\s+vcvtne2ph2bf8 zmm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 22 17 47 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8 zmm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 17 50 74 31\s+vcvtne2ph2bf8 zmm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 17 40 74 71 7f\s+vcvtne2ph2bf8 zmm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 62 17 57 74 72 80\s+vcvtne2ph2bf8 zmm30\{k7\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 02 7e 48 74 f5\s+vcvtneph2bf8 ymm30,zmm29 +\s*[a-f0-9]+:\s*62 22 7e 4f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8 ymm30\{k7\},ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 42 7e 58 74 31\s+vcvtneph2bf8 ymm30,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 62 7e 48 74 71 7f\s+vcvtneph2bf8 ymm30,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 62 7e df 74 72 80\s+vcvtneph2bf8 ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 14 40 74 f4\s+vcvtbiasph2bf8s ymm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 25 14 47 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8s ymm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 50 74 31\s+vcvtbiasph2bf8s ymm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 40 74 71 7f\s+vcvtbiasph2bf8s ymm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 14 d7 74 72 80\s+vcvtbiasph2bf8s ymm30\{k7\}\{z\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 17 40 74 f4\s+vcvtne2ph2bf8s zmm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 25 17 47 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8s zmm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 50 74 31\s+vcvtne2ph2bf8s zmm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 40 74 71 7f\s+vcvtne2ph2bf8s zmm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 17 57 74 72 80\s+vcvtne2ph2bf8s zmm30\{k7\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7e 48 74 f5\s+vcvtneph2bf8s ymm30,zmm29 +\s*[a-f0-9]+:\s*62 25 7e 4f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8s ymm30\{k7\},ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7e 58 74 31\s+vcvtneph2bf8s ymm30,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 7e 48 74 71 7f\s+vcvtneph2bf8s ymm30,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 7e df 74 72 80\s+vcvtneph2bf8s ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 14 40 18 f4\s+vcvtbiasph2hf8 ymm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 25 14 47 18 b4 f5 00 00 00 10\s+vcvtbiasph2hf8 ymm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 50 18 31\s+vcvtbiasph2hf8 ymm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 40 18 71 7f\s+vcvtbiasph2hf8 ymm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 14 d7 18 72 80\s+vcvtbiasph2hf8 ymm30\{k7\}\{z\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 17 40 18 f4\s+vcvtne2ph2hf8 zmm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 25 17 47 18 b4 f5 00 00 00 10\s+vcvtne2ph2hf8 zmm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 50 18 31\s+vcvtne2ph2hf8 zmm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 40 18 71 7f\s+vcvtne2ph2hf8 zmm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 17 57 18 72 80\s+vcvtne2ph2hf8 zmm30\{k7\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7e 48 18 f5\s+vcvtneph2hf8 ymm30,zmm29 +\s*[a-f0-9]+:\s*62 25 7e 4f 18 b4 f5 00 00 00 10\s+vcvtneph2hf8 ymm30\{k7\},ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7e 58 18 31\s+vcvtneph2hf8 ymm30,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 7e 48 18 71 7f\s+vcvtneph2hf8 ymm30,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 7e df 18 72 80\s+vcvtneph2hf8 ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 14 40 1b f4\s+vcvtbiasph2hf8s ymm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 25 14 47 1b b4 f5 00 00 00 10\s+vcvtbiasph2hf8s ymm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 14 50 1b 31\s+vcvtbiasph2hf8s ymm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 14 40 1b 71 7f\s+vcvtbiasph2hf8s ymm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 14 d7 1b 72 80\s+vcvtbiasph2hf8s ymm30\{k7\}\{z\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 17 40 1b f4\s+vcvtne2ph2hf8s zmm30,zmm29,zmm28 +\s*[a-f0-9]+:\s*62 25 17 47 1b b4 f5 00 00 00 10\s+vcvtne2ph2hf8s zmm30\{k7\},zmm29,ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 17 50 1b 31\s+vcvtne2ph2hf8s zmm30,zmm29,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 17 40 1b 71 7f\s+vcvtne2ph2hf8s zmm30,zmm29,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 17 57 1b 72 80\s+vcvtne2ph2hf8s zmm30\{k7\},zmm29,WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7e 48 1b f5\s+vcvtneph2hf8s ymm30,zmm29 +\s*[a-f0-9]+:\s*62 25 7e 4f 1b b4 f5 00 00 00 10\s+vcvtneph2hf8s ymm30\{k7\},ZMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7e 58 1b 31\s+vcvtneph2hf8s ymm30,WORD BCST \[r9\] +\s*[a-f0-9]+:\s*62 65 7e 48 1b 71 7f\s+vcvtneph2hf8s ymm30,ZMMWORD PTR \[rcx\+0x1fc0\] +\s*[a-f0-9]+:\s*62 65 7e df 1b 72 80\s+vcvtneph2hf8s ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\] +\s*[a-f0-9]+:\s*62 05 7f 48 1e f5\s+vcvthf82ph zmm30,ymm29 +\s*[a-f0-9]+:\s*62 25 7f 4f 1e b4 f5 00 00 00 10\s+vcvthf82ph zmm30\{k7\},YMMWORD PTR \[rbp\+r14\*8\+0x10000000\] +\s*[a-f0-9]+:\s*62 45 7f 48 1e 31\s+vcvthf82ph zmm30,YMMWORD PTR \[r9\] +\s*[a-f0-9]+:\s*62 65 7f 48 1e 71 7f\s+vcvthf82ph zmm30,YMMWORD PTR \[rcx\+0xfe0\] +\s*[a-f0-9]+:\s*62 65 7f cf 1e 72 80\s+vcvthf82ph zmm30\{k7\}\{z\},YMMWORD PTR \[rdx-0x1000\] +#pass diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-512-2.d b/gas/testsuite/gas/i386/x86-64-avx10_2-512-2.d new file mode 100644 index 00000000000..03e4489a771 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-avx10_2-512-2.d @@ -0,0 +1,80 @@ +#objdump: -dw +#name: x86_64 AVX10.2/512 convert insns + +.*: +file format .* + +Disassembly of section \.text: + +0+ <_start>: +\s*[a-f0-9]+:\s*62 02 15 40 67 f4\s+vcvt2ps2phx\s+%zmm28,%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 02 15 10 67 f4\s+vcvt2ps2phx\s+\{rn-sae\},%zmm28,%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 22 15 47 67 b4 f5 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%rbp,%r14,8\),%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 15 50 67 31\s+vcvt2ps2phx\s+\(%r9\)\{1to16\},%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 62 15 40 67 71 7f\s+vcvt2ps2phx\s+0x1fc0\(%rcx\),%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 62 15 57 67 72 80\s+vcvt2ps2phx\s+-0x200\(%rdx\)\{1to16\},%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 02 14 40 74 f4\s+vcvtbiasph2bf8\s+%zmm28,%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 22 14 47 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8\s+0x10000000\(%rbp,%r14,8\),%zmm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 14 50 74 31\s+vcvtbiasph2bf8\s+\(%r9\)\{1to32\},%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 62 14 40 74 71 7f\s+vcvtbiasph2bf8\s+0x1fc0\(%rcx\),%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 62 14 d7 74 72 80\s+vcvtbiasph2bf8\s+-0x100\(%rdx\)\{1to32\},%zmm29,%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 02 17 40 74 f4\s+vcvtne2ph2bf8\s+%zmm28,%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 22 17 47 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8\s+0x10000000\(%rbp,%r14,8\),%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 17 50 74 31\s+vcvtne2ph2bf8\s+\(%r9\)\{1to32\},%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 62 17 40 74 71 7f\s+vcvtne2ph2bf8\s+0x1fc0\(%rcx\),%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 62 17 57 74 72 80\s+vcvtne2ph2bf8\s+-0x100\(%rdx\)\{1to32\},%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 02 7e 48 74 f5\s+vcvtneph2bf8\s+%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 22 7e 4f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8\s+0x10000000\(%rbp,%r14,8\),%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 42 7e 58 74 31\s+vcvtneph2bf8\s+\(%r9\)\{1to32\},%ymm30 +\s*[a-f0-9]+:\s*62 62 7e 48 74 71 7f\s+vcvtneph2bf8\s+0x1fc0\(%rcx\),%ymm30 +\s*[a-f0-9]+:\s*62 62 7e df 74 72 80\s+vcvtneph2bf8\s+-0x100\(%rdx\)\{1to32\},%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 14 40 74 f4\s+vcvtbiasph2bf8s\s+%zmm28,%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 14 47 74 b4 f5 00 00 00 10\s+vcvtbiasph2bf8s\s+0x10000000\(%rbp,%r14,8\),%zmm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 50 74 31\s+vcvtbiasph2bf8s\s+\(%r9\)\{1to32\},%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 14 40 74 71 7f\s+vcvtbiasph2bf8s\s+0x1fc0\(%rcx\),%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 14 d7 74 72 80\s+vcvtbiasph2bf8s\s+-0x100\(%rdx\)\{1to32\},%zmm29,%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 17 40 74 f4\s+vcvtne2ph2bf8s\s+%zmm28,%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 25 17 47 74 b4 f5 00 00 00 10\s+vcvtne2ph2bf8s\s+0x10000000\(%rbp,%r14,8\),%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 50 74 31\s+vcvtne2ph2bf8s\s+\(%r9\)\{1to32\},%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 65 17 40 74 71 7f\s+vcvtne2ph2bf8s\s+0x1fc0\(%rcx\),%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 65 17 57 74 72 80\s+vcvtne2ph2bf8s\s+-0x100\(%rdx\)\{1to32\},%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 05 7e 48 74 f5\s+vcvtneph2bf8s\s+%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 7e 4f 74 b4 f5 00 00 00 10\s+vcvtneph2bf8s\s+0x10000000\(%rbp,%r14,8\),%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7e 58 74 31\s+vcvtneph2bf8s\s+\(%r9\)\{1to32\},%ymm30 +\s*[a-f0-9]+:\s*62 65 7e 48 74 71 7f\s+vcvtneph2bf8s\s+0x1fc0\(%rcx\),%ymm30 +\s*[a-f0-9]+:\s*62 65 7e df 74 72 80\s+vcvtneph2bf8s\s+-0x100\(%rdx\)\{1to32\},%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 14 40 18 f4\s+vcvtbiasph2hf8\s+%zmm28,%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 14 47 18 b4 f5 00 00 00 10\s+vcvtbiasph2hf8\s+0x10000000\(%rbp,%r14,8\),%zmm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 50 18 31\s+vcvtbiasph2hf8\s+\(%r9\)\{1to32\},%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 14 40 18 71 7f\s+vcvtbiasph2hf8\s+0x1fc0\(%rcx\),%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 14 d7 18 72 80\s+vcvtbiasph2hf8\s+-0x100\(%rdx\)\{1to32\},%zmm29,%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 17 40 18 f4\s+vcvtne2ph2hf8\s+%zmm28,%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 25 17 47 18 b4 f5 00 00 00 10\s+vcvtne2ph2hf8\s+0x10000000\(%rbp,%r14,8\),%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 50 18 31\s+vcvtne2ph2hf8\s+\(%r9\)\{1to32\},%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 65 17 40 18 71 7f\s+vcvtne2ph2hf8\s+0x1fc0\(%rcx\),%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 65 17 57 18 72 80\s+vcvtne2ph2hf8\s+-0x100\(%rdx\)\{1to32\},%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 05 7e 48 18 f5\s+vcvtneph2hf8\s+%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 7e 4f 18 b4 f5 00 00 00 10\s+vcvtneph2hf8\s+0x10000000\(%rbp,%r14,8\),%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7e 58 18 31\s+vcvtneph2hf8\s+\(%r9\)\{1to32\},%ymm30 +\s*[a-f0-9]+:\s*62 65 7e 48 18 71 7f\s+vcvtneph2hf8\s+0x1fc0\(%rcx\),%ymm30 +\s*[a-f0-9]+:\s*62 65 7e df 18 72 80\s+vcvtneph2hf8\s+-0x100\(%rdx\)\{1to32\},%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 14 40 1b f4\s+vcvtbiasph2hf8s\s+%zmm28,%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 14 47 1b b4 f5 00 00 00 10\s+vcvtbiasph2hf8s\s+0x10000000\(%rbp,%r14,8\),%zmm29,%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 14 50 1b 31\s+vcvtbiasph2hf8s\s+\(%r9\)\{1to32\},%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 14 40 1b 71 7f\s+vcvtbiasph2hf8s\s+0x1fc0\(%rcx\),%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 65 14 d7 1b 72 80\s+vcvtbiasph2hf8s\s+-0x100\(%rdx\)\{1to32\},%zmm29,%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 17 40 1b f4\s+vcvtne2ph2hf8s\s+%zmm28,%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 25 17 47 1b b4 f5 00 00 00 10\s+vcvtne2ph2hf8s\s+0x10000000\(%rbp,%r14,8\),%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 17 50 1b 31\s+vcvtne2ph2hf8s\s+\(%r9\)\{1to32\},%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 65 17 40 1b 71 7f\s+vcvtne2ph2hf8s\s+0x1fc0\(%rcx\),%zmm29,%zmm30 +\s*[a-f0-9]+:\s*62 65 17 57 1b 72 80\s+vcvtne2ph2hf8s\s+-0x100\(%rdx\)\{1to32\},%zmm29,%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 05 7e 48 1b f5\s+vcvtneph2hf8s\s+%zmm29,%ymm30 +\s*[a-f0-9]+:\s*62 25 7e 4f 1b b4 f5 00 00 00 10\s+vcvtneph2hf8s\s+0x10000000\(%rbp,%r14,8\),%ymm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7e 58 1b 31\s+vcvtneph2hf8s\s+\(%r9\)\{1to32\},%ymm30 +\s*[a-f0-9]+:\s*62 65 7e 48 1b 71 7f\s+vcvtneph2hf8s\s+0x1fc0\(%rcx\),%ymm30 +\s*[a-f0-9]+:\s*62 65 7e df 1b 72 80\s+vcvtneph2hf8s\s+-0x100\(%rdx\)\{1to32\},%ymm30\{%k7\}\{z\} +\s*[a-f0-9]+:\s*62 05 7f 48 1e f5\s+vcvthf82ph\s+%ymm29,%zmm30 +\s*[a-f0-9]+:\s*62 25 7f 4f 1e b4 f5 00 00 00 10\s+vcvthf82ph\s+0x10000000\(%rbp,%r14,8\),%zmm30\{%k7\} +\s*[a-f0-9]+:\s*62 45 7f 48 1e 31\s+vcvthf82ph\s+\(%r9\),%zmm30 +\s*[a-f0-9]+:\s*62 65 7f 48 1e 71 7f\s+vcvthf82ph\s+0xfe0\(%rcx\),%zmm30 +\s*[a-f0-9]+:\s*62 65 7f cf 1e 72 80\s+vcvthf82ph\s+-0x1000\(%rdx\),%zmm30\{%k7\}\{z\} +#pass diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-512-2.s b/gas/testsuite/gas/i386/x86-64-avx10_2-512-2.s new file mode 100644 index 00000000000..8a4c957767e --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-avx10_2-512-2.s @@ -0,0 +1,69 @@ +# Check 64bit AVX10.2/512 instructions + + .arch generic64 + .arch .avx10.2/512 + .text +_start: + vcvt2ps2phx %zmm28, %zmm29, %zmm30 + vcvt2ps2phx {rn-sae}, %zmm28, %zmm29, %zmm30 + vcvt2ps2phx 0x10000000(%rbp, %r14, 8), %zmm29, %zmm30{%k7} + vcvt2ps2phx (%r9){1to16}, %zmm29, %zmm30 + vcvt2ps2phx 8128(%rcx), %zmm29, %zmm30 + vcvt2ps2phx -512(%rdx){1to16}, %zmm29, %zmm30{%k7} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m %zmm28, %zmm29, %ymm30 + vcvtbiasph2\m 0x10000000(%rbp, %r14, 8), %zmm29, %ymm30{%k7} + vcvtbiasph2\m (%r9){1to32}, %zmm29, %ymm30 + vcvtbiasph2\m 8128(%rcx), %zmm29, %ymm30 + vcvtbiasph2\m -256(%rdx){1to32}, %zmm29, %ymm30{%k7}{z} + vcvtne2ph2\m %zmm28, %zmm29, %zmm30 + vcvtne2ph2\m 0x10000000(%rbp, %r14, 8), %zmm29, %zmm30{%k7} + vcvtne2ph2\m (%r9){1to32}, %zmm29, %zmm30 + vcvtne2ph2\m 8128(%rcx), %zmm29, %zmm30 + vcvtne2ph2\m -256(%rdx){1to32}, %zmm29, %zmm30{%k7} + vcvtneph2\m %zmm29, %ymm30 + vcvtneph2\m 0x10000000(%rbp, %r14, 8), %ymm30{%k7} + vcvtneph2\m (%r9){1to32}, %ymm30 + vcvtneph2\m 8128(%rcx), %ymm30 + vcvtneph2\m -256(%rdx){1to32}, %ymm30{%k7}{z} + .endr + + vcvthf82ph %ymm29, %zmm30 + vcvthf82ph 0x10000000(%rbp, %r14, 8), %zmm30{%k7} + vcvthf82ph (%r9), %zmm30 + vcvthf82ph 4064(%rcx), %zmm30 + vcvthf82ph -4096(%rdx), %zmm30{%k7}{z} + +_intel: + .intel_syntax noprefix + vcvt2ps2phx zmm30, zmm29, zmm28 + vcvt2ps2phx zmm30, zmm29, zmm28, {rn-sae} + vcvt2ps2phx zmm30{k7}, zmm29, ZMMWORD PTR [rbp+r14*8+0x10000000] + vcvt2ps2phx zmm30, zmm29, DWORD PTR [r9]{1to16} + vcvt2ps2phx zmm30, zmm29, ZMMWORD PTR [rcx+8128] + vcvt2ps2phx zmm30{k7}, zmm29, DWORD PTR [rdx-512]{1to16} + + .irp m, bf8, bf8s, hf8, hf8s + vcvtbiasph2\m ymm30, zmm29, zmm28 + vcvtbiasph2\m ymm30{k7}, zmm29, ZMMWORD PTR [rbp+r14*8+0x10000000] + vcvtbiasph2\m ymm30, zmm29, WORD PTR [r9]{1to32} + vcvtbiasph2\m ymm30, zmm29, ZMMWORD PTR [rcx+8128] + vcvtbiasph2\m ymm30{k7}{z}, zmm29, WORD PTR [rdx-256]{1to32} + vcvtne2ph2\m zmm30, zmm29, zmm28 + vcvtne2ph2\m zmm30{k7}, zmm29, ZMMWORD PTR [rbp+r14*8+0x10000000] + vcvtne2ph2\m zmm30, zmm29, WORD PTR [r9]{1to32} + vcvtne2ph2\m zmm30, zmm29, ZMMWORD PTR [rcx+8128] + vcvtne2ph2\m zmm30{k7}, zmm29, WORD PTR [rdx-256]{1to32} + vcvtneph2\m ymm30, zmm29 + vcvtneph2\m ymm30{k7}, ZMMWORD PTR [rbp+r14*8+0x10000000] + vcvtneph2\m ymm30, WORD PTR [r9]{1to32} + vcvtneph2\m ymm30, ZMMWORD PTR [rcx+8128] + vcvtneph2\m ymm30{k7}{z}, WORD PTR [rdx-256]{1to32} + .endr + + vcvthf82ph zmm30, ymm29 + vcvthf82ph zmm30{k7}, YMMWORD PTR [rbp+r14*8+0x10000000] + vcvthf82ph zmm30, YMMWORD PTR [r9] + vcvthf82ph zmm30, YMMWORD PTR [rcx+4064] + vcvthf82ph zmm30{k7}{z}, YMMWORD PTR [rdx-4096] diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp index 42a900d6317..ae75eefa7d6 100644 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -505,6 +505,10 @@ run_dump_test "x86-64-avx10_2-512-1" run_dump_test "x86-64-avx10_2-512-1-intel" run_dump_test "x86-64-avx10_2-256-1" run_dump_test "x86-64-avx10_2-256-1-intel" +run_dump_test "x86-64-avx10_2-512-2" +run_dump_test "x86-64-avx10_2-512-2-intel" +run_dump_test "x86-64-avx10_2-256-2" +run_dump_test "x86-64-avx10_2-256-2-intel" run_dump_test "x86-64-clzero" run_dump_test "x86-64-mwaitx-bdver4" run_list_test "x86-64-mwaitx-reg" diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h index 574a640e650..cffc3852065 100644 --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -257,6 +257,13 @@ { VEX_W_TABLE (EVEX_W_0F3872_P_2) }, { "vcvtne2p%XS2bf16", { XM, Vex, EXx}, 0 }, }, + /* PREFIX_EVEX_0F3874 */ + { + { "vcvtbiasp%XH2bf8", { XMxmmq, Vex, EXxh }, 0 }, + { "vcvtnep%XH2bf8%XY", { XMxmmq, EXxh }, 0 }, + { Bad_Opcode }, + { "vcvtne2p%XH2bf8", { XM, Vex, EXxh }, 0 }, + }, /* PREFIX_EVEX_0F389A */ { { Bad_Opcode }, @@ -384,12 +391,33 @@ { Bad_Opcode }, { "vmovs%XH", { EXwS, VexScalarR, XMScalar }, 0 }, }, + /* PREFIX_EVEX_MAP5_18 */ + { + { "vcvtbiasp%XH2hf8", { XMxmmq, Vex, EXxh }, 0 }, + { "vcvtnep%XH2hf8%XY", { XMxmmq, EXxh }, 0 }, + { Bad_Opcode }, + { "vcvtne2p%XH2hf8", { XM, Vex, EXxh }, 0 }, + }, + /* PREFIX_EVEX_MAP5_1B */ + { + { "vcvtbiasp%XH2hf8s", { XMxmmq, Vex, EXxh }, 0 }, + { "vcvtnep%XH2hf8s%XY", { XMxmmq, EXxh }, 0 }, + { Bad_Opcode }, + { "vcvtne2p%XH2hf8s", { XM, Vex, EXxh }, 0 }, + }, /* PREFIX_EVEX_MAP5_1D */ { { "vcvtss2s%XH", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, { Bad_Opcode }, { "vcvtps2p%XHx%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, }, + /* PREFIX_EVEX_MAP5_1E */ + { + { Bad_Opcode }, + { Bad_Opcode }, + { Bad_Opcode }, + { "vcvthf82p%XH", { XM, EXxmmq }, 0 }, + }, /* PREFIX_EVEX_MAP5_2A */ { { Bad_Opcode }, @@ -461,6 +489,13 @@ { "vmaxp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 }, { "vmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 }, }, + /* PREFIX_EVEX_MAP5_74 */ + { + { "vcvtbiasp%XH2bf8s", { XMxmmq, Vex, EXxh }, 0 }, + { "vcvtnep%XH2bf8s%XY", { XMxmmq, EXxh }, 0 }, + { Bad_Opcode }, + { "vcvtne2p%XH2bf8s", { XM, Vex, EXxh }, 0 }, + }, /* PREFIX_EVEX_MAP5_78 */ { { "vcvttp%XH2udq", { XM, EXxmmqh, EXxEVexS }, 0 }, diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index b5ca4a0aeaf..9e0546e66ca 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -408,7 +408,7 @@ static const struct dis386 evex_table[][256] = { { "vpblendm%DQ", { XM, Vex, EXx }, PREFIX_DATA }, { "vblendmp%XW", { XM, Vex, EXx }, PREFIX_DATA }, { "vpblendm%BW", { XM, Vex, EXx }, PREFIX_DATA }, - { Bad_Opcode }, + { "vcvt2p%XS2phx", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA }, /* 68 */ { PREFIX_TABLE (PREFIX_EVEX_0F3868) }, { Bad_Opcode }, @@ -423,7 +423,7 @@ static const struct dis386 evex_table[][256] = { { "vpshldv%DQ", { XM, Vex, EXx }, PREFIX_DATA }, { PREFIX_TABLE (PREFIX_EVEX_0F3872) }, { "vpshrdv%DQ", { XM, Vex, EXx }, PREFIX_DATA }, - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_EVEX_0F3874) }, { "vpermi2%BW", { XM, Vex, EXx }, PREFIX_DATA }, { "vpermi2%DQ", { XM, Vex, EXx }, PREFIX_DATA }, { "vpermi2p%XW", { XM, Vex, EXx }, PREFIX_DATA }, @@ -1193,13 +1193,13 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* 18 */ + { PREFIX_TABLE (PREFIX_EVEX_MAP5_18) }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_EVEX_MAP5_1B) }, { Bad_Opcode }, { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) }, - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_EVEX_MAP5_1E) }, { Bad_Opcode }, /* 20 */ { Bad_Opcode }, @@ -1296,7 +1296,7 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_EVEX_MAP5_74) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 3a4af4d61a3..9cf7edbbc0e 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1190,6 +1190,7 @@ enum PREFIX_EVEX_0F3853, PREFIX_EVEX_0F3868, PREFIX_EVEX_0F3872, + PREFIX_EVEX_0F3874, PREFIX_EVEX_0F389A, PREFIX_EVEX_0F389B, PREFIX_EVEX_0F38AA, @@ -1214,7 +1215,10 @@ enum PREFIX_EVEX_MAP5_10, PREFIX_EVEX_MAP5_11, + PREFIX_EVEX_MAP5_18, + PREFIX_EVEX_MAP5_1B, PREFIX_EVEX_MAP5_1D, + PREFIX_EVEX_MAP5_1E, PREFIX_EVEX_MAP5_2A, PREFIX_EVEX_MAP5_2C, PREFIX_EVEX_MAP5_2D, @@ -1229,6 +1233,7 @@ enum PREFIX_EVEX_MAP5_5D, PREFIX_EVEX_MAP5_5E, PREFIX_EVEX_MAP5_5F, + PREFIX_EVEX_MAP5_74, PREFIX_EVEX_MAP5_78, PREFIX_EVEX_MAP5_79, PREFIX_EVEX_MAP5_7A, diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 9a14a4d1819..00971472e0d 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -3433,4 +3433,32 @@ pop2p, 0x8f/0, APX_F, Modrm|VexW1|EVexMap4|DstVVVV|ImplicitStackOp|No_bSuf|No_wS vdpphps, 0x52, AVX10_2, Modrm|Space0F38|Src1VVVV|VexW0|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } vmpsadbw, 0xf342, AVX10_2, Modrm|Space0F3A|Src1VVVV|VexW0|Masking|Disp8ShiftVL|CheckOperandSize|NoSuf, { Imm8, RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } +vcvt2ps2phx, 0x6667, AVX10_2, Modrm|Space0F38|Masking|Src1VVVV|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } + +vcvtbiasph2bf8, 0x74, AVX10_2, Modrm|Space0F38|EVex128|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM, RegXMM } +vcvtbiasph2bf8, 0x74, AVX10_2, Modrm|Space0F38|EVex256|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=5|NoSuf, { RegYMM|Word|Unspecified|BaseIndex, RegYMM, RegXMM } +vcvtbiasph2bf8, 0x74, AVX10_2, Modrm|Space0F38|EVex512|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=6|NoSuf, { RegZMM|Word|Unspecified|BaseIndex, RegZMM, RegYMM } +vcvtbiasph2bf8s, 0x74, AVX10_2, Modrm|EVexMap5|EVex128|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM, RegXMM } +vcvtbiasph2bf8s, 0x74, AVX10_2, Modrm|EVexMap5|EVex256|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=5|NoSuf, { RegYMM|Word|Unspecified|BaseIndex, RegYMM, RegXMM } +vcvtbiasph2bf8s, 0x74, AVX10_2, Modrm|EVexMap5|EVex512|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=6|NoSuf, { RegZMM|Word|Unspecified|BaseIndex, RegZMM, RegYMM } +vcvtbiasph2hf8, 0x18, AVX10_2, Modrm|EVexMap5|EVex128|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM, RegXMM } +vcvtbiasph2hf8, 0x18, AVX10_2, Modrm|EVexMap5|EVex256|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=5|NoSuf, { RegYMM|Word|Unspecified|BaseIndex, RegYMM, RegXMM } +vcvtbiasph2hf8, 0x18, AVX10_2, Modrm|EVexMap5|EVex512|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=6|NoSuf, { RegZMM|Word|Unspecified|BaseIndex, RegZMM, RegYMM } +vcvtbiasph2hf8s, 0x1b, AVX10_2, Modrm|EVexMap5|EVex128|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM, RegXMM } +vcvtbiasph2hf8s, 0x1b, AVX10_2, Modrm|EVexMap5|EVex256|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=5|NoSuf, { RegYMM|Word|Unspecified|BaseIndex, RegYMM, RegXMM } +vcvtbiasph2hf8s, 0x1b, AVX10_2, Modrm|EVexMap5|EVex512|Masking|Src1VVVV|VexW0|Broadcast|Disp8MemShift=6|NoSuf, { RegZMM|Word|Unspecified|BaseIndex, RegZMM, RegYMM } + +vcvtne2ph2bf8, 0xf274, AVX10_2, Modrm|Space0F38|Masking|Src1VVVV|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } +vcvtne2ph2bf8s, 0xf274, AVX10_2, Modrm|EVexMap5|Masking|Src1VVVV|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } +vcvtne2ph2hf8, 0xf218, AVX10_2, Modrm|EVexMap5|Masking|Src1VVVV|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } +vcvtne2ph2hf8s, 0xf21b, AVX10_2, Modrm|EVexMap5|Masking|Src1VVVV|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } +vcvtneph2bf8, 0xf374, AVX10_2, Modrm|Space0F38||Masking|VexW0|Broadcast|NoSuf, { |Word, } +vcvtneph2bf8s, 0xf374, AVX10_2, Modrm|EVexMap5||Masking|VexW0|Broadcast|NoSuf, { |Word, } +vcvtneph2hf8, 0xf318, AVX10_2, Modrm|EVexMap5||Masking|VexW0|Broadcast|NoSuf, { |Word, } +vcvtneph2hf8s, 0xf31b, AVX10_2, Modrm|EVexMap5||Masking|VexW0|Broadcast|NoSuf, { |Word, } + +vcvthf82ph, 0xf21e, AVX10_2, Modrm|EVexMap5|EVex128|Disp8MemShift=3|Masking|VexW0|CheckOperandSize|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM } +vcvthf82ph, 0xf21e, AVX10_2, Modrm|EVexMap5|EVex256|Disp8MemShift=4|Masking|VexW0|CheckOperandSize|NoSuf, { RegXMM|Unspecified|BaseIndex, RegYMM } +vcvthf82ph, 0xf21e, AVX10_2, Modrm|EVexMap5|EVex512|Disp8MemShift=5|Masking|VexW0|CheckOperandSize|NoSuf, { RegYMM|Unspecified|BaseIndex, RegZMM } + // AVX10.2 instructions end.