From patchwork Thu Feb 15 21:56:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: will schmidt X-Patchwork-Id: 874153 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-473369-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="gIKF+Ud3"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zj98W5GPCz9t2f for ; Fri, 16 Feb 2018 08:56:26 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:from:reply-to:to:cc:content-type:date:mime-version :content-transfer-encoding:message-id; q=dns; s=default; b=mNUkx w/30NsQ1bFnf8YqBUsZAVszWcQaPQu8e/TSDLQftFFFEkY+aCststWJNKEDmnUHQ eQmr1xp7xt75EgoTa5Ij0Nm9PXdzEapFZGzXlsbgfqMpfeMXIqvVLoppFcW+A+PC VIQrtNLa2Lv+9qfqD8Sht8PXNOwLVCoBgcxi7w= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:from:reply-to:to:cc:content-type:date:mime-version :content-transfer-encoding:message-id; s=default; bh=mhKFENgsAMW VeF8NkOznyv0geF4=; b=gIKF+Ud36bEsgn2ly3bLmDiffdAJZuiMkYpE/xryDwN Z/a/05Ewum6N0Bw61kfF5OPyBy5NLHUwz3e5Ufkd185d03rGz8kYduOZdat55fVf Ozrfu5iy7P2TPWk09lm9f7cczbjeyQZB2s5bg53EOI0LkW++/IdFRFDZ3wHkknMQ = Received: (qmail 54116 invoked by alias); 15 Feb 2018 21:56:20 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 54096 invoked by uid 89); 15 Feb 2018 21:56:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0b-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.158.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 15 Feb 2018 21:56:17 +0000 Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w1FLseGa034990 for ; Thu, 15 Feb 2018 16:56:15 -0500 Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.150]) by mx0a-001b2d01.pphosted.com with ESMTP id 2g5e0jtypm-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 15 Feb 2018 16:56:15 -0500 Received: from localhost by e32.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 15 Feb 2018 14:56:14 -0700 Received: from b03cxnp07029.gho.boulder.ibm.com (9.17.130.16) by e32.co.us.ibm.com (192.168.1.132) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 15 Feb 2018 14:56:12 -0700 Received: from b03ledav006.gho.boulder.ibm.com (b03ledav006.gho.boulder.ibm.com [9.17.130.237]) by b03cxnp07029.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w1FLuCeR11403556; Thu, 15 Feb 2018 14:56:12 -0700 Received: from b03ledav006.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 03BA6C603E; Thu, 15 Feb 2018 14:56:12 -0700 (MST) Received: from [9.10.86.107] (unknown [9.10.86.107]) by b03ledav006.gho.boulder.ibm.com (Postfix) with ESMTP id AC95BC6037; Thu, 15 Feb 2018 14:56:11 -0700 (MST) Subject: [PATCH, rs6000] PR84371 Update builtins-3*.c tests for power9 codegen From: Will Schmidt Reply-To: will_schmidt@vnet.ibm.com To: GCC Patches Cc: Segher Boessenkool , David Edelsohn , Bill Schmidt Date: Thu, 15 Feb 2018 15:56:10 -0600 Mime-Version: 1.0 X-TM-AS-GCONF: 00 x-cbid: 18021521-0004-0000-0000-000013ACB422 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008539; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000253; SDB=6.00990257; UDB=6.00502892; IPR=6.00769605; MB=3.00019576; MTD=3.00000008; XFM=3.00000015; UTC=2018-02-15 21:56:13 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18021521-0005-0000-0000-0000861B9015 Message-Id: <1518731770.11602.348.camel@brimstone.rchland.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-02-15_10:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1802150263 X-IsSubscribed: yes Hi, This fixes the scan-assembler errors as seen on power9. While verifying that fix and ensuring coverage, cleaned up some nearby bits as well. builtins-3.c: Add/update options and skip-if stanzas, this test specifically targets vsx/power6. builtins-3-p9.c: Update stanzas to require -mcpu=power9 capability. For better coverage, added tests here (from builtins-3.c) that have different code-gen when targeting p9. builtins-3-p8.c: Update stanzas to require -mcpu=power8 capability. builtins-3-runnable.c: Update requires to indicate p8vector_hw is required for running the test. Fixed the do-not-override stanza typo so this test can run. builtins-3-vec_reve-runnable.c: Update stanzas to require vsx_hw capability to run. Removed the skip-if stanza (by direct inspection, this runs OK on P8,P9, and vsx_hw requirement prevents run attempts on earlier systems). Sniff-testing across systems looks good. Will kick off a regtest in clean environments shortly. OK for trunk? (and gcc-7 backport)? Thanks -Will [testsuite] 2018-02-15 Will Schmidt target/pr84371 * gcc.target/powerpc/builtins-3-p8.c: Update stanzas. * gcc.target/powerpc/builtins-3-p9.c: Update stanzas, Enhance test. * gcc.target/powerpc/builtins-3-runnable.c: Update stanzas. * gcc.target/powerpc/builtins-3-vec_reve_runnable.c: Same. * gcc.target/powerpc/builtins-3.c: Same. diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c index 83d538b..a586805 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c @@ -1,8 +1,9 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ -/* { dg-options "-mcpu=power8" } */ +/* { dg-options "-maltivec -mcpu=power8" } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ #include vector bool long long test_eq_long_long (vector bool long long x, vector bool long long y) diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c index 9dc53da..146f8b7 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c @@ -1,8 +1,9 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_p9vector_ok } */ /* { dg-options "-mcpu=power9 -O1" } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ #include vector bool char test_ne_char (vector bool char x, vector bool char y) @@ -45,28 +46,78 @@ test_vull_bperm_vull_vuc (vector unsigned long long x, vector unsigned char y) { return vec_bperm (x, y); } +vector signed char +test_nabs_char (vector signed char x) +{ + return vec_nabs (x); +} + +vector short +test_nabs_short (vector short x) +{ + return vec_nabs (x); +} + +vector int +test_nabs_int (vector int x) +{ + return vec_nabs (x); +} + + +vector signed char +test_neg_char (vector signed char x) +{ + return vec_neg (x); +} + +vector short +test_neg_short (vector short x) +{ + return vec_neg (x); +} + +vector int +test_neg_int (vector int x) +{ + return vec_neg (x); +} + /* Expected test results: test_ne_char 1 vcmpneb test_ne_short 1 vcmpneh test_ne_int 1 vcmpnew test_ne_long 1 vcmpequd, 1 xxlnor inst test_neg_long_long 1 vnegd test_vull_bperm_vull_vuc 1 vbpermd test_nabs_long_long (-O0) 1 xxspltib, 1 vsubudm, 1 vminsd test_nabs_long_long (-O1) 1 vnegd, vminsd + test_nabs_char (P9) 1 xxspltib, 1 vsububm, 1 vminsb + test_nabs_short (P9) 1 xxspltib, 1 vsubuhm, 1 vminsh + test_nabs_int (P9) 1 vnegw, 1 vminsw + test_neg_char (P9) 1 xxspltib, 1 vsububm + test_neg_short (P9) 1 xxspltib, 1 vsubuhm + test_neg_int (P9) 1 vnegw */ /* { dg-final { scan-assembler-times "vcmpneb" 1 } } */ /* { dg-final { scan-assembler-times "vcmpneh" 1 } } */ /* { dg-final { scan-assembler-times "vcmpnew" 1 } } */ /* { dg-final { scan-assembler-times "vcmpequd" 1 } } */ /* { dg-final { scan-assembler-times "xxlnor" 1 } } */ -/* { dg-final { scan-assembler-times "xxspltib" 0 } } */ +/* { dg-final { scan-assembler-times "xxspltib" 4 } } */ /* { dg-final { scan-assembler-times "vsubudm" 0 } } */ +/* { dg-final { scan-assembler-times "vsububm" 2 } } */ +/* { dg-final { scan-assembler-times "vsubuhm" 2 } } */ +/* { dg-final { scan-assembler-times "vsubuwm" 0 } } */ +/* { dg-final { scan-assembler-times "vminsb" 1 } } */ +/* { dg-final { scan-assembler-times "vminsh" 1 } } */ +/* { dg-final { scan-assembler-times "vminsw" 1 } } */ /* { dg-final { scan-assembler-times "vminsd" 1 } } */ /* { dg-final { scan-assembler-times "vnegd" 2 } } */ +/* { dg-final { scan-assembler-times "vnegw" 2 } } */ /* { dg-final { scan-assembler-times "vbpermd" 1 } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c index 1549817..43de454 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3-runnable.c @@ -1,9 +1,9 @@ -/* { dg-do run { target { powerpc*-*-linux* } } } */ +/* { dg-do run { target { p8vector_hw } } } */ /* { dg-require-effective-target vsx_hw } */ /* { dg-options "-O2 -mvsx -mcpu=power8" } */ -/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=power8" } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ #include // vector #ifdef DEBUG #include diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c index f7c3c3d..de378e0 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3-vec_reve-runnable.c @@ -1,7 +1,6 @@ -/* { dg-do run { target { powerpc*-*-linux* } } } */ -/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ +/* { dg-do run { target { vsx_hw } } } */ /* { dg-options "-O2 -mvsx -mcpu=power7" } */ #include // vector #ifdef DEBUG diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3.c b/gcc/testsuite/gcc.target/powerpc/builtins-3.c index 833116e..b8a6dcd 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3.c @@ -1,8 +1,9 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_vsx_ok } */ -/* { dg-options "-maltivec -mvsx" } */ +/* { dg-options "-O2 -mvsx -mcpu=power6" } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power6" } } */ #include vector bool char test_eq_char (vector bool char x, vector bool char y)