From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id B7B1D3858C66 for ; Tue, 20 Feb 2024 10:03:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B7B1D3858C66 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B7B1D3858C66 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708423432; cv=none; b=Fi6m62YK8uiOr7HaZA92+2YRScj0QYCt3E0AQyfntIMgJRuXB9PbZ4cKCCXvOZ8RZui9VsBxiiX12AWiZRBZIQ4xQVqjPPCtVhit3fV+8h0me61UYIG6Wn5a1goByqcHaz3cAGSARRdGiEddJwIGL0h3D7a2x/Nz09DQBDz7GQA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708423432; c=relaxed/simple; bh=ypSm7DYcag/uannK9l/7KX9WP3SJk/2liej+l9LLf9E=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=Tl/y7hsxeCwtPFf9YOUYubbUkz4T9biczk5PPPlcyQQWHDNLA0myrX/X/MajJxi4ofaoMYnBr/Qomm0FaLIZFfAqKjrWRU+DVKRGbQZl1J7G5puQengQE6q+5p/ZwDr7ryLkjI1LyvRNclDYaojnsyliU9wcGaaHb5EDMXz3eKw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 86002FEC; Tue, 20 Feb 2024 02:04:28 -0800 (PST) Received: from localhost (e121540-lin.manchester.arm.com [10.32.110.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 813533F762; Tue, 20 Feb 2024 02:03:48 -0800 (PST) From: Richard Sandiford To: Tamar Christina Mail-Followup-To: Tamar Christina ,"gcc-patches\@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov , richard.sandiford@arm.com Cc: "gcc-patches\@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov Subject: Re: [PATCH]AArch64: remove ls64 from being mandatory on armv8.7-a.. References: Date: Tue, 20 Feb 2024 10:03:47 +0000 In-Reply-To: (Tamar Christina's message of "Thu, 15 Feb 2024 10:56:53 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-20.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,KAM_LOTSOFHASH,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Tamar Christina writes: > Hi, this I a new version of the patch updating some additional tests > because some of the LTO tests required a newer binutils than my distro had. > > --- > > The Arm Architectural Reference Manual (Version J.a, section A2.9 on FEAT_LS64) > shows that ls64 is an optional extensions and should not be enabled by default > for Armv8.7-a. > > This drops it from the mandatory bits for the architecture and brings GCC inline > with LLVM and the achitecture. > > Note that we will not be changing binutils to preserve compatibility with older > released compilers. > > Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. > > Ok for master? and backport to GCC 13,12,11? > > Thanks, > Tamar > > gcc/ChangeLog: > > * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from > Armv8.7-a. > > gcc/testsuite/ChangeLog: > > * g++.target/aarch64/acle/ls64.C: Add +ls64. > * g++.target/aarch64/acle/ls64_lto.C: Likewise. > * gcc.target/aarch64/acle/ls64_lto.c: Likewise. > * gcc.target/aarch64/acle/pr110100.c: Likewise. > * gcc.target/aarch64/acle/pr110132.c: Likewise. > * gcc.target/aarch64/options_set_28.c: Drop check for nols64. > * gcc.target/aarch64/pragma_cpp_predefs_2.c: Correct header checks. OK, thanks. Richard > --- inline copy of patch --- > > diff --git a/gcc/config/aarch64/aarch64-arches.def b/gcc/config/aarch64/aarch64-arches.def > index b7115ff7c3d4a7ee7abbedcb091ef15a7efacc79..9bec30e9203bac01155281ef3474846c402bb29e 100644 > --- a/gcc/config/aarch64/aarch64-arches.def > +++ b/gcc/config/aarch64/aarch64-arches.def > @@ -37,7 +37,7 @@ AARCH64_ARCH("armv8.3-a", generic_armv8_a, V8_3A, 8, (V8_2A, PAUTH, R > AARCH64_ARCH("armv8.4-a", generic_armv8_a, V8_4A, 8, (V8_3A, F16FML, DOTPROD, FLAGM)) > AARCH64_ARCH("armv8.5-a", generic_armv8_a, V8_5A, 8, (V8_4A, SB, SSBS, PREDRES)) > AARCH64_ARCH("armv8.6-a", generic_armv8_a, V8_6A, 8, (V8_5A, I8MM, BF16)) > -AARCH64_ARCH("armv8.7-a", generic_armv8_a, V8_7A, 8, (V8_6A, LS64)) > +AARCH64_ARCH("armv8.7-a", generic_armv8_a, V8_7A, 8, (V8_6A)) > AARCH64_ARCH("armv8.8-a", generic_armv8_a, V8_8A, 8, (V8_7A, MOPS)) > AARCH64_ARCH("armv8.9-a", generic_armv8_a, V8_9A, 8, (V8_8A)) > AARCH64_ARCH("armv8-r", generic_armv8_a, V8R , 8, (V8_4A)) > diff --git a/gcc/testsuite/g++.target/aarch64/acle/ls64.C b/gcc/testsuite/g++.target/aarch64/acle/ls64.C > index d9002785b578741bde1202761f0881dc3d47e608..dcfe6f1af6711a7f3ec2562f6aabf56baecf417d 100644 > --- a/gcc/testsuite/g++.target/aarch64/acle/ls64.C > +++ b/gcc/testsuite/g++.target/aarch64/acle/ls64.C > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-additional-options "-march=armv8.7-a" } */ > +/* { dg-additional-options "-march=armv8.7-a+ls64" } */ > #include > int main() > { > diff --git a/gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C b/gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C > index 274a4771e1c1d13bcb1a7bdc77c2e499726f024c..0198fe2a1b78627b873bf22e3d8416dbdcc77078 100644 > --- a/gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C > +++ b/gcc/testsuite/g++.target/aarch64/acle/ls64_lto.C > @@ -1,5 +1,5 @@ > /* { dg-do link { target aarch64_asm_ls64_ok } } */ > -/* { dg-additional-options "-march=armv8.7-a -flto" } */ > +/* { dg-additional-options "-march=armv8.7-a+ls64 -flto" } */ > #include > int main() > { > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_lto.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_lto.c > index 8b4f24277717675badc39dd145d365f75f5ceb27..0e5ae0b052b50b08d35151f4bc113617c1569bd3 100644 > --- a/gcc/testsuite/gcc.target/aarch64/acle/ls64_lto.c > +++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_lto.c > @@ -1,5 +1,5 @@ > /* { dg-do link { target aarch64_asm_ls64_ok } } */ > -/* { dg-additional-options "-march=armv8.7-a -flto" } */ > +/* { dg-additional-options "-march=armv8.7-a+ls64 -flto" } */ > #include > int main(void) > { > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/pr110100.c b/gcc/testsuite/gcc.target/aarch64/acle/pr110100.c > index f56d5e619e8ac23cdf720574bd6ee08fbfd36423..62a82b97c56debad092cc8fd1ed48f0219109cd7 100644 > --- a/gcc/testsuite/gcc.target/aarch64/acle/pr110100.c > +++ b/gcc/testsuite/gcc.target/aarch64/acle/pr110100.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-march=armv8.7-a -O2" } */ > +/* { dg-options "-march=armv8.7-a+ls64 -O2" } */ > #include > void do_st64b(data512_t data) { > __arm_st64b((void*)0x10000000, data); > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/pr110132.c b/gcc/testsuite/gcc.target/aarch64/acle/pr110132.c > index fb88d633dd20772fd96e976a400fe52ae0bc3647..423d91b9a99f269d01d07428414ade7cc518c711 100644 > --- a/gcc/testsuite/gcc.target/aarch64/acle/pr110132.c > +++ b/gcc/testsuite/gcc.target/aarch64/acle/pr110132.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-additional-options "-march=armv8.7-a" } */ > +/* { dg-additional-options "-march=armv8.7-a+ls64" } */ > > /* Check that ls64 builtins can be invoked using a preprocesed testcase > without triggering bogus builtin warnings, see PR110132. > diff --git a/gcc/testsuite/gcc.target/aarch64/options_set_28.c b/gcc/testsuite/gcc.target/aarch64/options_set_28.c > index 9e63768581e9d429e9408863942051b1b04761ac..d5b15f8bc5831de56fe667179d83d9c853529aaf 100644 > --- a/gcc/testsuite/gcc.target/aarch64/options_set_28.c > +++ b/gcc/testsuite/gcc.target/aarch64/options_set_28.c > @@ -1,9 +1,9 @@ > /* { dg-do compile } */ > -/* { dg-additional-options "-march=armv9.3-a+nopredres+nols64+nomops" } */ > +/* { dg-additional-options "-march=armv9.3-a+nopredres+nomops" } */ > > int main () > { > return 0; > } > > -/* { dg-final { scan-assembler-times {\.arch armv9\.3\-a\+crc\+nopredres\+nols64\+nomops\n} 1 } } */ > +/* { dg-final { scan-assembler-times {\.arch armv9\.3\-a\+crc\+nopredres\+nomops\n} 1 } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c b/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c > index 2d76bfc23dfdcd78a74ec0e4845a3bd8d110b010..d8fc86d1557895f91ffe8be2f65d6581abe51568 100644 > --- a/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c > +++ b/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c > @@ -242,8 +242,8 @@ > > #pragma GCC push_options > #pragma GCC target ("arch=armv8.7-a") > -#ifndef __ARM_FEATURE_LS64 > -#error "__ARM_FEATURE_LS64 is not defined but should be!" > +#ifdef __ARM_FEATURE_LS64 > +#error "__ARM_FEATURE_LS64 is defined but should not be!" > #endif > #pragma GCC pop_options