From patchwork Wed Dec 6 08:06:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongyu Wang X-Patchwork-Id: 17601 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3954249vqy; Wed, 6 Dec 2023 00:09:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IHz9rhD6mO8aKwtH3MAufyMXDUwjD5mSFtU9kZKNChBolgclT4qYB4Vnh05rQSL8Trll3TS X-Received: by 2002:ad4:450d:0:b0:67a:a721:9ea4 with SMTP id k13-20020ad4450d000000b0067aa7219ea4mr504956qvu.85.1701850155779; Wed, 06 Dec 2023 00:09:15 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1701850155; cv=pass; d=google.com; s=arc-20160816; b=Uv5VrZluYkYo5/1/y7dBnMWG8KkZaZQwT5SJ8I0zOox3lnZU/7ZUWfr2PuvC0V6A3C sDN6dhstDVx6SxsC5m3AFp7uOVvwW1S/agSb7AUnUksSRbT5t09oLr0FdzFS9g/+2Yw1 wPe3xY4ecsouIIJVb91Q4okY0lxxtCKJbhXncGrUuUpGJUh72pUjLjnlxvZjc7MNWbq8 4e2/lwMlFvBEM/8ihdLLSmhtMvTq7QBJxFoOuX6Ri7K6RJfulblLgc/UiDGzFqyXFIrW yNRaWKosTeUwyotO8QN+nDwUOZBzk1oa13+63mDz5rWTi+2pcZ8tq9PqO7Uvj9ys/IFZ pTUw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=iOKY0yCMr7wb/llez4o725x6FQDUV8XALL6R0o6oC/A=; fh=n8eNxIWSYJwy/CU3QSXzDvE/zeEoomCGojuOcYEQEyQ=; b=QAnPp/ZcLd+XtnZ5gl3mUBycRd9tAyur0aG41YIa4pg+OOemFrnycVdKH0Qfg7HmXr 552WoyhrYbtXAi8hQeMZCtV8SrIU4dQsGk5LxfGjDnjHMYVxDNZAXYsH8zx4YR9FBvqh IgOcOrcpJ7iEaEPM8GO5rn4PFE3Z3x25GOi8F8PFALjj8JRHDpZMfFlZXwDuuHpFP+D3 R0KICt/n0ya08+F2n4+pbUoEog3fs/yu5/at9J30ex8B+u9nlm0jYo3sXwNHFn5fmZDr B/1j+IrF0Vl8zeIcztHoRiQdXffMzmzFkAbBM2xHg7UNVnuID5hPdD2GczVZ91Eu594F y1Lg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eSisy6Zt; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id t9-20020a0cf989000000b0067ac0eede90si6705653qvn.476.2023.12.06.00.09.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 00:09:15 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eSisy6Zt; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 707D13842589 for ; Wed, 6 Dec 2023 08:09:08 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by sourceware.org (Postfix) with ESMTPS id 7B4C2385840B for ; Wed, 6 Dec 2023 08:08:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7B4C2385840B Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7B4C2385840B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=198.175.65.13 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701850122; cv=none; b=A+K2iYEbFVjL12P+nzx7vBcjqXaWUH64Y/IJti4j0OHyxCoud1qVeOn+q+H0Qq4WruHjyQ7msi5fLDSMelTwbxDDRvpF96uL4HG7AW6EcvfXptHnX3DVBX4TxQK1u1TP/8/MIxvAJj/7s447loi1y8Czw88OuL66Pv8iTPj0hq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701850122; c=relaxed/simple; bh=boaVUrsnRsPCqz3Ht8PBa1urEpkbuuuDMfoLcLqnvGw=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=V8+Xcf8N5weFV9YNeizDU1NPdn5P6Kwv2c8TkXqc+rHVrjR5jFO8BsW27tW2VuWBLU673llMStwovaeMMk/19oFlgXrqBlM4oJx1lKceWTnVb/dx2JMp8+XEbW1Qm3U6PLk7ISgTetAAJOBquuR0nZkoxIB5podc+qs75GY36Fg= 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=1701850121; x=1733386121; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=boaVUrsnRsPCqz3Ht8PBa1urEpkbuuuDMfoLcLqnvGw=; b=eSisy6Zt4gOxlfK0Oeuf9pm/u7zVkO/Ka6aRgL1HVKUFtSD8Wceh5aIc 0szxOQf6YaCcBTnjwej2IymyIcvKm83YH8s/ywAtH/JSwvLNIs1yyl1ZX QZqQe7AHYHEvbDmBfZHJlWX1e89nc4+VJe0rdlIw/f7irJ1KY26Bmiekn Ap2kbocD4hJOkdrSLNeAQKKttq840bxYer13yZUU+fZ8qCl6kg0btkMUM 1yT64Ys4W4j/0ikN8K1eFRgMmb8SM1VvWq4Om8p8KfPGSaw4A84s5taYL HHPaioFmVkQJ5jmJQJNKSiMLhCLv/M+RQQN4sKzYjy5mP6PVFesJ4AT01 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10915"; a="1085450" X-IronPort-AV: E=Sophos;i="6.04,254,1695711600"; d="scan'208";a="1085450" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Dec 2023 00:08:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10915"; a="1102737734" X-IronPort-AV: E=Sophos;i="6.04,254,1695711600"; d="scan'208";a="1102737734" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by fmsmga005.fm.intel.com with ESMTP; 06 Dec 2023 00:08:37 -0800 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id 850B310056AF; Wed, 6 Dec 2023 16:08:36 +0800 (CST) From: Hongyu Wang To: gcc-patches@gcc.gnu.org Cc: ubizjak@gmail.com, hongtao.liu@intel.com Subject: [PATCH v3 00/16] Support Intel APX NDD Date: Wed, 6 Dec 2023 16:06:20 +0800 Message-Id: <20231206080636.178863-1-hongyu.wang@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, KAM_SHORT, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784519228900974595 X-GMAIL-MSGID: 1784519228900974595 Hi, Following up the discussion of V2 patches in https://gcc.gnu.org/pipermail/gcc-patches/2023-December/639368.html, this patch series add early clobber for all TImode NDD alternatives to avoid any potential overlapping between dest register and src register/memory. Also use get_attr_isa (insn) == ISA_APX_NDD instead of checking alternative at asm output stage. Bootstrapped & regtested on x86_64-pc-linux-gnu{-m32,} and sde. Ok for master? Hongyu Wang (7): [APX NDD] Disable seg_prefixed memory usage for NDD add [APX NDD] Support APX NDD for left shift insns [APX NDD] Support APX NDD for right shift insns [APX NDD] Support APX NDD for rotate insns [APX NDD] Support APX NDD for shld/shrd insns [APX NDD] Support APX NDD for cmove insns [APX NDD] Support TImode shift for NDD Kong Lingling (9): [APX NDD] Support Intel APX NDD for legacy add insn [APX NDD] Support APX NDD for optimization patterns of add [APX NDD] Support APX NDD for adc insns [APX NDD] Support APX NDD for sub insns [APX NDD] Support APX NDD for sbb insn [APX NDD] Support APX NDD for neg insn [APX NDD] Support APX NDD for not insn [APX NDD] Support APX NDD for and insn [APX NDD] Support APX NDD for or/xor insn gcc/config/i386/constraints.md | 5 + gcc/config/i386/i386-expand.cc | 164 +- gcc/config/i386/i386-options.cc | 2 + gcc/config/i386/i386-protos.h | 16 +- gcc/config/i386/i386.cc | 30 +- gcc/config/i386/i386.md | 2325 +++++++++++------ gcc/testsuite/gcc.target/i386/apx-ndd-adc.c | 15 + gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c | 16 + gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c | 6 + .../gcc.target/i386/apx-ndd-shld-shrd.c | 24 + .../gcc.target/i386/apx-ndd-ti-shift.c | 91 + gcc/testsuite/gcc.target/i386/apx-ndd.c | 202 ++ 12 files changed, 2141 insertions(+), 755 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-adc.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-shld-shrd.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-ti-shift.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd.c