From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by sourceware.org (Postfix) with ESMTPS id 9C5403858D1E for ; Tue, 21 May 2024 06:16:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9C5403858D1E 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 9C5403858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=198.175.65.11 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716272183; cv=none; b=Q8XA+8r9I44IQ64v/VwlU8/A2YrnPZzfROwDwYf3XZIAO5YgejhJ68lSg02Vtsjneg8V1MqdJFxYAh5+V7F8gz2WqPesUD9ud6lIOFYwvpQum8ktU5rQg2PWeB/nUBPioQu23kHi18jps3X4O5L9o7eoxJSZIaT2dH92rgdNMsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716272183; c=relaxed/simple; bh=uClwBnk+4mTsWAAKdZ0qqQb38vE6X3mGB8hTvrAcc7o=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=gJY7BsL3nTFfUOv6NzDGlABE4Tmk3xupOpgeJbqtMjj68N2jjgWmaQ7yPhFsAOGYvRcQaivWaoh/GDQXYqpop8tVWeqKZMpr/D1RwiPABRzhC+YSj0L1xdm23zXuYG+MnxZU81kmtSHZ61L4mFVSmnun43wpYHUpsJil97NdOqc= 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=1716272182; x=1747808182; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=uClwBnk+4mTsWAAKdZ0qqQb38vE6X3mGB8hTvrAcc7o=; b=HybGlv6SeN+NzwJP4HZ9b5lXTa81OBJuIdMzNHHPPQqxr+hOCBIi6TTj JYvkF9B3RATp3l0rPsrnSC3rK7Ap98QF3FejCtaXFVCe63JVGQvME1z3Y avDZbLlBr+BJaVmkSi2n42MBZwbDVsBvukF+5m8Ur9QH568dqQiLHBnlr OulyBi4C9Szr6SHAN/17cF+FNhd/YallhomEiSNdun9zl1N3Ob7wLaB9z zuKgyj43Qi8GD1TVu8ByljJVpjjhEdJNnpTSrWKKKwNvZztZeHkDkjr2O UOx5HXoh4l1byqwy8GR7+X69MH6Ea2V/ENBmr+IwYCXL8xwj9TA0TmKhZ Q==; X-CSE-ConnectionGUID: Z7EKXFbFRyy0kx42mwNAKQ== X-CSE-MsgGUID: 7lgPzwZIRFaeox0FpgKPZg== X-IronPort-AV: E=McAfee;i="6600,9927,11078"; a="23017131" X-IronPort-AV: E=Sophos;i="6.08,176,1712646000"; d="scan'208";a="23017131" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2024 23:16:21 -0700 X-CSE-ConnectionGUID: 3oORTbMnQXC6cQoVIBa4DQ== X-CSE-MsgGUID: krLOP6WsS8GqgHkpKxCssQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,176,1712646000"; d="scan'208";a="32670257" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by orviesa010.jf.intel.com with ESMTP; 20 May 2024 23:16:18 -0700 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id D77C8100737C; Tue, 21 May 2024 14:16:17 +0800 (CST) From: Haochen Jiang To: gcc-patches@gcc.gnu.org Cc: hongtao.liu@intel.com, ubizjak@gmail.com Subject: [PATCH] i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW Date: Tue, 21 May 2024 14:16:17 +0800 Message-Id: <20240521061617.667442-1-haochen.jiang@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.6 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 List-Id: Hi all, Since vpermq is really slow, we should avoid using it when it is the only instruction could be used for ix86_expand_vecop_qihi2. Bootstrapped and regtested on x86_64-pc-linux-gnu. Ok for trunk? Thx, Haochen gcc/ChangeLog: PR target/115069 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Do not enable the optimization when AVX512BW is not enabled. --- gcc/config/i386/i386-expand.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index a6132911e6a..f24c800bb4f 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -24323,6 +24323,11 @@ ix86_expand_vecop_qihi2 (enum rtx_code code, rtx dest, rtx op1, rtx op2) bool op2vec = GET_MODE_CLASS (GET_MODE (op2)) == MODE_VECTOR_INT; bool uns_p = code != ASHIFTRT; + /* vpermq is slow and we should not fall into the optimization when + it is the only instruction to be selected. */ + if (!TARGET_AVX512BW) + return false; + if ((qimode == V16QImode && !TARGET_AVX2) || (qimode == V32QImode && (!TARGET_AVX512BW || !TARGET_EVEX512)) /* There are no V64HImode instructions. */ -- 2.31.1