From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) by sourceware.org (Postfix) with ESMTP id AC7553858402 for ; Wed, 17 Nov 2021 21:33:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AC7553858402 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=kernel.crashing.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kernel.crashing.org Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id 1AHLWb78028346; Wed, 17 Nov 2021 15:32:37 -0600 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id 1AHLWaTW028342; Wed, 17 Nov 2021 15:32:36 -0600 X-Authentication-Warning: gate.crashing.org: segher set sender to segher@kernel.crashing.org using -f Date: Wed, 17 Nov 2021 15:32:36 -0600 From: Segher Boessenkool To: Bill Schmidt Cc: GCC Patches , David Edelsohn Subject: Re: [PATCH] rs6000: Builtins test changes for BFP scalar tests Message-ID: <20211117213236.GV614@gate.crashing.org> References: <585a2224-e076-9d26-921b-6db56f1606b9@linux.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <585a2224-e076-9d26-921b-6db56f1606b9@linux.ibm.com> User-Agent: Mutt/1.4.2.3i X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Nov 2021 21:33:39 -0000 On Wed, Nov 17, 2021 at 02:58:54PM -0600, Bill Schmidt wrote: > Hi! This patch is broken out of the previous patch for all the builtins test > suite adjustments. Here we have some slight changes in error messages due to > how the internals have changed between the old and new builtins methods. > > For scalar-extract-exp-2.c we change: > error: '__builtin_vec_scalar_extract_exp is not supported in this compiler configuration' > > to: > error: '__builtin_vsx_scalar_extract_exp' requires the '-mcpu=power9' option and either the '-m64' or '-mpowerpc64' option > note: builtin '__builtin_vec_scalar_extract_exp' requires builtin '__builtin_vsx_scalar_extract_exp' I don't like that at all. The user didn't write the _vsx thing, and it isn't documented either (neither is the _vec one, but that is a separate issue, specific to this builtin). > The new message provides more information. In both cases, it is less than > ideal that we don't refer to scalar_extract_exp, which is referenced in > the source line, but this is because scalar_extract_exp is #define'd to > __builtin_vec_scalar_extract_exp, so it's unavoidable. Certainly this is no > worse than before, and arguably better. It is a macro, enough said there The __builtin_ implementation should be documented (in the GCC manual, if not elsewhere). The warnings should talk about _vec, because the _vsx thing only exists as implementation detail, and we should never talk about those. We don't have errors about adddi3 either! > error: '__builtin_vsx_scalar_extract_sig' requires the '-mcpu=power9' option and either the '-m64' or '-mpowerpc64' option > note: builtin '__builtin_vec_scalar_extract_sig' requires builtin '__builtin_vsx_scalar_extract_sig' The rhs in the note does not *exist*, as far as the user is concerned. One builtin requiring another is all gobbledygook. > For scalar-test-neg-{2,3,5}.c, we actually change the test case. This is > because we deliberately removed some undocumented and pointless overloads, > where each overload mapped to a single builtin. These were: > __builtin_vec_scalar_test_neg_sp > __builtin_vec_scalar_test_neg_dp > __builtin_vec_scalar_test_neg_qp > which are redundant with the "real" overload: > __builtin_vec_scalar_test_neg > The latter maps to three builtins of the appropriate type. Yes. And the new ones are undocumented and useless just as well, they just have better names. Segher