From patchwork Tue Feb 20 17:58:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Love X-Patchwork-Id: 203736 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:693c:2685:b0:108:e6aa:91d0 with SMTP id mn5csp574580dyc; Tue, 20 Feb 2024 10:04:54 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXtL8Wr2YdqsCpzNSnbNMjeQSnDWM6nRsMH2m7LhtaXp9XPEmsmHiwn88ACcrLWPI5iXYoj7b6ibQFbjrHlaDzImFJeJQ== X-Google-Smtp-Source: AGHT+IGhKpcQQvr3SK4MXwZ8xcNVPNSRrxDU7HjzkoTKk3X7j+f26bCW5dffVnX8lB7Az8btA0ZM X-Received: by 2002:a05:620a:21c3:b0:787:7cc6:4416 with SMTP id h3-20020a05620a21c300b007877cc64416mr1677652qka.75.1708452293924; Tue, 20 Feb 2024 10:04:53 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708452293; cv=pass; d=google.com; s=arc-20160816; b=sBbUipoOmAYfP/psz7T2X93sepWlePJwPbquqbkFO80GkE5f9UfbmxWp5DrqPhySC+ A9Rmt0dv2+6owpQUP+f9Kw24iYw8eyroNRsJHCvelXFHIMcK+8wbJ48c3+CJDZ2uEPaV u7QASa8BMQH07k24Kl0gBAN9+5T9LRX0JYhCp0QLywsBbiUMPus6QEQSjRjhF7SMk40f miCWO7O4bAMD8ZA9jCTGWu+0Ephtt09XP9DbAt0xWXWHtzK6i1Q/OjJBHM/plc0Xyg8g ytOb9fPnQEt3KPrFvGTJfztcA3rglC00iuptiY0hRvivkiMdKN6f2Z8X02Ocq6r5jUqu 24jQ== 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 :in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:dkim-signature:arc-filter:dmarc-filter :delivered-to; bh=ukKTE7T5FGx4aV3kqS09fZZJr+T5tFONALzvsWgP5T0=; fh=U4Oxu8wVnBRVc+7Z2YdxYnccRaEmehXwfih2gvmyKwI=; b=vJStW7Ln6EdfVjYCJGm8E8SU2u6YwxVu4uQaulhSPbo5i7sg1jy3YH36eptQoyQDER v5uPZ+Sa0920c5s2XItvlN6wuVkBqoS6MSWPrhUQjHpqZg9lGk8aZVVh4C1Q2n7iapHp EdBWCZ4QNNRZC0PC+KPo2s0+IJxbAnb7Xs0QNglbkr0nRqkKE15drc+MSAMN608ieG3s QwgIaXO1MNALAiLLRKncBD4Ka1r4+lvkpLCyPsU73Lf2TAOKFyz5GQT8PHnU/FQiV3+M eHxW5i7W8Emm/qdKa5n0HP8zwgAsTFND3zlzfulX022QxosPYgMHN76W7ko8OBej0f7g 9RWA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=qV91GvQ0; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id s13-20020a05620a030d00b007871e94b64dsi9213442qkm.530.2024.02.20.10.04.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Feb 2024 10:04:53 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=qV91GvQ0; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E84AD3858C35 for ; Tue, 20 Feb 2024 18:04:51 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 0E2D9385C413 for ; Tue, 20 Feb 2024 18:01:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0E2D9385C413 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0E2D9385C413 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708452074; cv=none; b=Uksp0XJcfqK9MurfO/ScY5320Wp/nd/WFl/WpONuHARA0JZ+85h37/RqK5DfAlI/2uQ4cxpZ1YxBSQsqq4g+mTpPokTIln1osf3nXSKI11D8ng3YUAwDRRJUbWvjiMxkxsDPgta+L74bZlT26pUSZ90bMRk0p0BHKRrPVapxrX8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708452074; c=relaxed/simple; bh=vxREoUFzc7eKNZcm8iNrONc24WLf4rgjxIXdVzfBkv0=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=dAXTKpfXMJxN+Rm4DGJ87QHrpz7UfnGW4pX3TrpNko/H8+qeyvnzih6RYhvqU4dbLGP9FKTvWy1ouOm1GpXD9gnN7Y+f/YOifav8f3Q8cYFagczFFbS59SQaE5J4KfxCK5ZIzOEpeobLcqG/VVlH8uUcFaFe/6qfIRTBe+TIgTo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41KHDo2p000686; Tue, 20 Feb 2024 18:01:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=ukKTE7T5FGx4aV3kqS09fZZJr+T5tFONALzvsWgP5T0=; b=qV91GvQ0PU+0IZSpsz5QpQ5T2nYT2DSxfAFN9JXbl2hrmYyAO4RnLsA8fH94aWTG03Ui tRwJufxRENwi+6qVoZ8mLVJBMyFF0fismKwl8+chq5BQE3N3Px08pk69OqYZD3BHGemN VIIE+t4J/B4yWbYEVBsEmwPMg0VnVm3W+Vd+gAqo+hb5hM7Frgm2Bnatx0RnbjemsPgf SmAVUOd0qjXgtBbOivROVHZRuqVRGawnpQMkeaEqdiOUPJLSeAlzyszmxV80uJmlEbfG AbL3wcM8DilVAPWYadpz4euBD2XjTyt7s5WR8m2mHTca0ApbiNCjwJlaCjcZMxYsE7Ph pg== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wd0a012k3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 20 Feb 2024 18:01:08 +0000 Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 41KG4vCp014347; Tue, 20 Feb 2024 17:58:13 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 3wb9u2h8k0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 20 Feb 2024 17:58:13 +0000 Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 41KHwAdB7078548 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 20 Feb 2024 17:58:13 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9E8A058056; Tue, 20 Feb 2024 17:58:10 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E514358054; Tue, 20 Feb 2024 17:58:09 +0000 (GMT) Received: from [9.67.96.239] (unknown [9.67.96.239]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 20 Feb 2024 17:58:09 +0000 (GMT) Message-ID: Date: Tue, 20 Feb 2024 09:58:09 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: PATCH 11/11] rs6000, make test vec-cmpne.c a runnable test Content-Language: en-US To: gcc-patches@gcc.gnu.org, "bergner@linux.ibm.com" , Segher Boessenkool , "Kewen.Lin" References: <41290fb1-e2e8-4779-b76f-2208c2dadedd@linux.ibm.com> From: Carl Love In-Reply-To: <41290fb1-e2e8-4779-b76f-2208c2dadedd@linux.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: HeMLePescsQMc1MLbA4Xb9mgre4VwQVf X-Proofpoint-GUID: HeMLePescsQMc1MLbA4Xb9mgre4VwQVf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-20_06,2024-02-20_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 mlxscore=0 bulkscore=0 suspectscore=0 mlxlogscore=757 spamscore=0 clxscore=1015 adultscore=0 priorityscore=1501 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402200129 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, 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 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: 1791442072266608372 X-GMAIL-MSGID: 1791442072266608372 GCC maintainers: The patch changes the vec-cmpne.c from a compile only test to a runnable test. The macros to create the functions needed to test the built-ins and verify the restults are all there in the include file. The .c file just needed to have the macro definitions inserted and change the header from compile to run. The test can now do functional verification of the results in addition to verifying the expected instructions are generated. The patch has been tested on Power 10 with no regressions. Please let me know if this patch is acceptable for mainline. Thanks. Carl ------------------------------------------------------------ rs6000, make test vec-cmpne.c a runnable test The macros in vec-cmpne.h define test functions. They also setup test value functions, verification functions and execute test functions. The test is setup as a compile only test so none of the verification and execute functions are being used. The patch adds the macro definitions to create the intialization, verfiy and execute functions to a main program so not only can the test verify the correct instructions are generated but also run the tests and verify the results. The test is then changed from a compile to a run test. gcc/testsuite/ChangeLog: * gcc.target/powerpc/vec-cmple.c (main): Add main function with macro calls to define the test functions, create the verify functions and execute functions. Update scan-assembler-times (vcmpequ): Updated count to include instructions used to generate expected test results. * gcc.target/powerpc/vec-cmple.h (vector_tests_##NAME): Remove line continuation after closing bracket. Remove extra blank line. --- gcc/testsuite/gcc.target/powerpc/vec-cmpne.c | 41 +++++++++++++++----- gcc/testsuite/gcc.target/powerpc/vec-cmpne.h | 3 +- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/vec-cmpne.c b/gcc/testsuite/gcc.target/powerpc/vec-cmpne.c index b57e0ac8638..2c369976a44 100644 --- a/gcc/testsuite/gcc.target/powerpc/vec-cmpne.c +++ b/gcc/testsuite/gcc.target/powerpc/vec-cmpne.c @@ -1,20 +1,41 @@ -/* { dg-do compile } */ +/* { dg-do run } */ /* { dg-require-effective-target powerpc_altivec_ok } */ -/* { dg-options "-maltivec -O2" } */ +/* { dg-options "-maltivec -O2 -save-temps" } */ /* Test that the vec_cmpne builtin generates the expected Altivec instructions. */ #include "vec-cmpne.h" -define_test_functions (int, signed int, signed int, si); -define_test_functions (int, unsigned int, unsigned int, ui); -define_test_functions (short, signed short, signed short, ss); -define_test_functions (short, unsigned short, unsigned short, us); -define_test_functions (char, signed char, signed char, sc); -define_test_functions (char, unsigned char, unsigned char, uc); -define_test_functions (int, signed int, float, ff); +int main () +{ + define_test_functions (int, signed int, signed int, si); + define_test_functions (int, unsigned int, unsigned int, ui); + define_test_functions (short, signed short, signed short, ss); + define_test_functions (short, unsigned short, unsigned short, us); + define_test_functions (char, signed char, signed char, sc); + define_test_functions (char, unsigned char, unsigned char, uc); + define_test_functions (int, signed int, float, ff); + + define_init_verify_functions (int, signed int, signed int, si); + define_init_verify_functions (int, unsigned int, unsigned int, ui); + define_init_verify_functions (short, signed short, signed short, ss); + define_init_verify_functions (short, unsigned short, unsigned short, us); + define_init_verify_functions (char, signed char, signed char, sc); + define_init_verify_functions (char, unsigned char, unsigned char, uc); + define_init_verify_functions (int, signed int, float, ff); + + execute_test_functions (int, signed int, signed int, si); + execute_test_functions (int, unsigned int, unsigned int, ui); + execute_test_functions (short, signed short, signed short, ss); + execute_test_functions (short, unsigned short, unsigned short, us); + execute_test_functions (char, signed char, signed char, sc); + execute_test_functions (char, unsigned char, unsigned char, uc); + execute_test_functions (int, signed int, float, ff); + + return 0; +} /* { dg-final { scan-assembler-times {\mvcmpequb\M} 2 } } */ /* { dg-final { scan-assembler-times {\mvcmpequh\M} 2 } } */ -/* { dg-final { scan-assembler-times {\mvcmpequw\M} 2 } } */ +/* { dg-final { scan-assembler-times {\mvcmpequw\M} 32 } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/vec-cmpne.h b/gcc/testsuite/gcc.target/powerpc/vec-cmpne.h index a304de01d86..374cca360b3 100644 --- a/gcc/testsuite/gcc.target/powerpc/vec-cmpne.h +++ b/gcc/testsuite/gcc.target/powerpc/vec-cmpne.h @@ -33,7 +33,7 @@ __attribute__((noinline)) void vector_tests_##NAME () \ tmp_##NAME = vec_cmpne (v1_##NAME, v2_##NAME); \ vec_vsx_st (tmp_##NAME, 0, &result_ne_##NAME[i]); \ } \ -} \ +} #define define_init_verify_functions(VBTYPE, RTYPE, STYPE, NAME) \ __attribute__((noinline)) void init_##NAME () \ @@ -80,7 +80,6 @@ __attribute__((noinline)) void verify_results_##NAME () \ } \ } - #define execute_test_functions(VBTYPE, RTYPE, STYPE, NAME) \ { \ init_##NAME (); \