From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59253 invoked by alias); 21 Dec 2019 01:23:42 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 59245 invoked by uid 89); 21 Dec 2019 01:23:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.8 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:4809 X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0a-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.156.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 21 Dec 2019 01:23:40 +0000 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xBL1HiF4126339; Fri, 20 Dec 2019 20:23:38 -0500 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 2x0psejtsn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Dec 2019 20:23:37 -0500 Received: from m0098404.ppops.net (m0098404.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id xBL1IKiP129369; Fri, 20 Dec 2019 20:23:37 -0500 Received: from ppma01wdc.us.ibm.com (fd.55.37a9.ip4.static.sl-reverse.com [169.55.85.253]) by mx0a-001b2d01.pphosted.com with ESMTP id 2x0psejtrx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Dec 2019 20:23:37 -0500 Received: from pps.filterd (ppma01wdc.us.ibm.com [127.0.0.1]) by ppma01wdc.us.ibm.com (8.16.0.27/8.16.0.27) with SMTP id xBL1LnkI014239; Sat, 21 Dec 2019 01:23:41 GMT Received: from b01cxnp23034.gho.pok.ibm.com (b01cxnp23034.gho.pok.ibm.com [9.57.198.29]) by ppma01wdc.us.ibm.com with ESMTP id 2wvqc741ph-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 21 Dec 2019 01:23:41 +0000 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp23034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id xBL1NaDn53150096 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 21 Dec 2019 01:23:36 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ECA13AC062; Sat, 21 Dec 2019 01:23:35 +0000 (GMT) Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BEC16AC059; Sat, 21 Dec 2019 01:23:35 +0000 (GMT) Received: from ibm-toto.the-meissners.org (unknown [9.32.77.177]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTPS; Sat, 21 Dec 2019 01:23:35 +0000 (GMT) Date: Sat, 21 Dec 2019 01:25:00 -0000 From: Michael Meissner To: Michael Meissner , gcc-patches@gcc.gnu.org, Segher Boessenkool , David Edelsohn Subject: [PATCH] V11 patch #15 of 15, Add tests for -mcpu=future vec_extract from memory with a large offset Message-ID: <20191221012334.GA14437@ibm-toto.the-meissners.org> Mail-Followup-To: Michael Meissner , gcc-patches@gcc.gnu.org, Segher Boessenkool , David Edelsohn References: <20191220231507.GA18386@ibm-toto.the-meissners.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191220231507.GA18386@ibm-toto.the-meissners.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2019-12/txt/msg01506.txt.bz2 These are new tests. They verify if you are doing a vec_extract of a vector in memory and the vector's address contains a large offset and the element number is constant, it generates a prefixed load instruction when -mcpu=future. Once all of the other V11 patches are checked in, can I check this patch into the trunk? 2019-12-20 Michael Meissner * gcc.target/powerpc/vec-extract-large-si.c: New test for vec_extract from a vector unsigned int in memory with a large offset. * gcc.target/powerpc/vec-extract-large-di.c: New test for vec_extract from a vector long in memory with a large offset. * gcc.target/powerpc/vec-extract-large-sf.c: New test for vec_extract from a vector float in memory with a large offset. * gcc.target/powerpc/vec-extract-large-df.c: New test for vec_extract from a vector double in memory with a large offset. Index: gcc/testsuite/gcc.target/powerpc/vec-extract-large-df.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/vec-extract-large-df.c (revision 279691) +++ gcc/testsuite/gcc.target/powerpc/vec-extract-large-df.c (working copy) @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test if we generate prefixed loads for vec_extract of a vector double in + memory, and the memory address has a large offset. */ + +#include + +#ifndef TYPE +#define TYPE double +#endif + +#ifndef LARGE +#define LARGE 0x50000 +#endif + +TYPE +get0 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 0); /* PLFD. */ +} + +TYPE +get1 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 1); /* PLFD. */ +} + +/* { dg-final { scan-assembler-times {\mplfd\M} 2 } } */ Index: gcc/testsuite/gcc.target/powerpc/vec-extract-large-di.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/vec-extract-large-di.c (revision 279691) +++ gcc/testsuite/gcc.target/powerpc/vec-extract-large-di.c (working copy) @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test if we generate prefixed loads for vec_extract of a vector unsigned long + in memory, and the memory address has a large offset. */ + +#include + +#ifndef TYPE +#define TYPE unsigned long +#endif + +#ifndef LARGE +#define LARGE 0x50000 +#endif + +TYPE +get0 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 0); /* PLD. */ +} + +TYPE +get1 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 1); /* PLD. */ +} + +/* { dg-final { scan-assembler-times {\mpld\M} 2 } } */ Index: gcc/testsuite/gcc.target/powerpc/vec-extract-large-sf.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/vec-extract-large-sf.c (revision 279691) +++ gcc/testsuite/gcc.target/powerpc/vec-extract-large-sf.c (working copy) @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test if we generate prefixed loads for vec_extract of a vector float in + memory, and the memory address has a large offset. */ + +#include + +#ifndef TYPE +#define TYPE float +#endif + +#ifndef LARGE +#define LARGE 0x50000 +#endif + +TYPE +get0 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 0); /* PLFS. */ +} + +TYPE +get1 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 1); /* PLFS. */ +} + +/* { dg-final { scan-assembler-times {\mplfs\M} 2 } } */ Index: gcc/testsuite/gcc.target/powerpc/vec-extract-large-si.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/vec-extract-large-si.c (revision 279691) +++ gcc/testsuite/gcc.target/powerpc/vec-extract-large-si.c (working copy) @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target powerpc_prefixed_addr } */ +/* { dg-options "-O2 -mdejagnu-cpu=future" } */ + +/* Test if we generate prefixed loads for vec_extract of a vector unsigned int + in memory, and the memory address has a large offset. */ + +#include + +#ifndef TYPE +#define TYPE unsigned int +#endif + +#ifndef LARGE +#define LARGE 0x50000 +#endif + +TYPE +get0 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 0); /* PLWZ. */ +} + +TYPE +get1 (vector TYPE *p) +{ + return vec_extract (p[LARGE], 1); /* PLWZ. */ +} + +/* { dg-final { scan-assembler-times {\mplwz\M} 2 } } */ -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meissner@linux.ibm.com, phone: +1 (978) 899-4797