From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by sourceware.org (Postfix) with ESMTPS id EB21E384B000 for ; Wed, 24 Apr 2024 05:46:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EB21E384B000 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 EB21E384B000 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=198.175.65.10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713937564; cv=none; b=DskLMp+AC4Zny3XkQ0EcCgFKpG/gSMTbga6oIZ4g2i55U1R5wTkHepLWKBZFhIjNR/6ZYRwdVB4XnYXF0yWey4yYZpPlqPFA67b5nf1Exl8yBmKWszWp5CYc5YIVT/tRJdCKCa5a/buFTDk+xtcOyl9TJ0C6RZ2VQtRQkk1Wlvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713937564; c=relaxed/simple; bh=AXl7/ERQcbaOxnI5qUUxeSjFrO/8Q2u3mLZQ3XRnHDA=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=G9QNREbB9QOat8+4ep9/qLf9oK32w2ufotDVc9KXK9hN4rIXcpopE0hdHn49NmbbST3Bq2gX53rxD2kYVa0FaRSnfitXaDDm16rENYWO8Rg6cP7z81xlkJ6rN7WhGx+N5jbmwlilznBiKdLxnlDPjvvwfhYbQRJjGmpq1nSWYj8= 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=1713937562; x=1745473562; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=AXl7/ERQcbaOxnI5qUUxeSjFrO/8Q2u3mLZQ3XRnHDA=; b=lkSKojc3mWppr+NRLCqx5F2jG5oXHaQGRy2tp5Nzzg+PMdEd+O0bQXnW Zq8Jby/G9C56hso+LwW8L/cBo+QC33cf5DQMwexS8ysg0jhTvXDAPqsdj BTa97RnmsoVwC+igsbud/LdQNNM+XLGVnuKIbSe087nbhkQl8aVoN0KKF waG1CLSkHmfPz5xlqmOSw16Y+kP2re8JCBXDcIMh4gaLOTWCoIOG0lEt4 y1hPMCP+0CX44yHUSt9pJBhdQ0vNVxmv7M8qc0t8AGhomCk64o0JyDljk kHqv2QZefnA2XpVN4lqOeDWCxnYtod27otkoZJ5ZOY/EGYX98uC97cctg A==; X-CSE-ConnectionGUID: Z1BPbcP+SNWzSGrTNnMtZQ== X-CSE-MsgGUID: KRp6+EDyR/qU3UhBJGbO/g== X-IronPort-AV: E=McAfee;i="6600,9927,11053"; a="27005765" X-IronPort-AV: E=Sophos;i="6.07,225,1708416000"; d="scan'208";a="27005765" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2024 22:45:59 -0700 X-CSE-ConnectionGUID: 0TpBsKylTz+84NBNTZzY+g== X-CSE-MsgGUID: yhcfPkO2S9yPArMks3l4nA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,225,1708416000"; d="scan'208";a="29077525" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by fmviesa003.fm.intel.com with ESMTP; 23 Apr 2024 22:45:57 -0700 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id 77E011007C35; Wed, 24 Apr 2024 13:45:56 +0800 (CST) From: Haochen Jiang To: gcc-patches@gcc.gnu.org Cc: hongtao.liu@intel.com, ubizjak@gmail.com Subject: [PATCH] i386: Fix behavior for both using AVX10.1-256 in options and function attribute Date: Wed, 24 Apr 2024 13:45:56 +0800 Message-Id: <20240424054556.3265276-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=-11.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,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, When we are using -mavx10.1-256 in command line and avx10.1-256 in target attribute together, zmm should never be generated. But current GCC will generate zmm since it wrongly enables EVEX512 for non-explicitly set AVX512. This patch will fix that issue. Regtested on x86_64-pc-linux-gnu. Ok for trunk? gcc/ChangeLog: * config/i386/i386-options.cc (ix86_valid_target_attribute_tree): Check whether AVX512F is explicitly enabled. gcc/testsuite/ChangeLog: * gcc.target/i386/avx10_1-24.c: New test. --- gcc/config/i386/i386-options.cc | 1 + gcc/testsuite/gcc.target/i386/avx10_1-24.c | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/avx10_1-24.c diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc index 68a2e1c6910..ac48b5c61c4 100644 --- a/gcc/config/i386/i386-options.cc +++ b/gcc/config/i386/i386-options.cc @@ -1431,6 +1431,7 @@ ix86_valid_target_attribute_tree (tree fndecl, tree args, scenario. */ if ((def->x_ix86_isa_flags2 & OPTION_MASK_ISA2_AVX10_1_256) && (opts->x_ix86_isa_flags & OPTION_MASK_ISA_AVX512F) + && (opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_AVX512F) && !(def->x_ix86_isa_flags2_explicit & OPTION_MASK_ISA2_EVEX512) && !(opts->x_ix86_isa_flags2_explicit & OPTION_MASK_ISA2_EVEX512)) opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_EVEX512; diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-24.c b/gcc/testsuite/gcc.target/i386/avx10_1-24.c new file mode 100644 index 00000000000..2e93f041760 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx10_1-24.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=x86-64 -mavx10.1" } */ +/* { dg-final { scan-assembler-not "%zmm" } } */ + +typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__)); + +void __attribute__((target("avx10.1-256"))) callee256(__m512 *a, __m512 *b) { *a = *b; } -- 2.31.1