From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43742 invoked by alias); 12 Feb 2018 16:20:29 -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 43731 invoked by uid 89); 12 Feb 2018 16:20:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy= 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; Mon, 12 Feb 2018 16:20:26 +0000 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w1CGJUML092145 for ; Mon, 12 Feb 2018 11:20:24 -0500 Received: from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153]) by mx0a-001b2d01.pphosted.com with ESMTP id 2g3d49bnn7-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 12 Feb 2018 11:20:24 -0500 Received: from localhost by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 12 Feb 2018 09:20:21 -0700 Received: from b03cxnp07028.gho.boulder.ibm.com (9.17.130.15) by e35.co.us.ibm.com (192.168.1.135) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 12 Feb 2018 09:20:18 -0700 Received: from b03ledav001.gho.boulder.ibm.com (b03ledav001.gho.boulder.ibm.com [9.17.130.232]) by b03cxnp07028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w1CGKHVt13828464; Mon, 12 Feb 2018 09:20:17 -0700 Received: from b03ledav001.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C47A26E048; Mon, 12 Feb 2018 09:20:17 -0700 (MST) Received: from oc3304648336.ibm.com (unknown [9.70.82.121]) by b03ledav001.gho.boulder.ibm.com (Postfix) with ESMTP id 39E836E038; Mon, 12 Feb 2018 09:20:17 -0700 (MST) Subject: Re: [PATCH rs6000] Fix for builtins-4-runnable.c testcase FAIL on power7/BE 32-bit From: Carl Love To: Segher Boessenkool , gcc-patches@gcc.gnu.org, David Edelsohn Cc: Bill Schmidt , cel@us.ibm.com Date: Mon, 12 Feb 2018 16:20:00 -0000 In-Reply-To: <20180212151752.GI21977@gate.crashing.org> References: <1518193377.7508.2.camel@us.ibm.com> <1518214146.7508.7.camel@us.ibm.com> <20180212151752.GI21977@gate.crashing.org> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 18021216-0012-0000-0000-000015BBA617 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008523; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000252; SDB=6.00988706; UDB=6.00501970; IPR=6.00768060; BA=6.00005825; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00019513; XFM=3.00000015; UTC=2018-02-12 16:20:19 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18021216-0013-0000-0000-0000517438FB Message-Id: <1518452416.7508.11.camel@us.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-02-12_07:,, 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=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1802120208 X-IsSubscribed: yes X-SW-Source: 2018-02/txt/msg00653.txt.bz2 On Mon, 2018-02-12 at 09:17 -0600, Segher Boessenkool wrote: > Hi Carl, > > On Fri, Feb 09, 2018 at 02:09:06PM -0800, Carl Love wrote: > > As pointed out, the dg arguments in new test file was missing the > > {target 128}.  I updated the arguments to be  > > > >     { dg-do run { target { int128 && powerpc64*-*-* } } } > > > > Without the powerpc64*-*-* the test was still tried to compiled the > > test case in 32-bit mode on BE and failed. > > If the dg-do target clause fails, you still get the default dg-do > value, > which is "compile" for most testcases. > > You want to use  dg-require-effective-target int128  if the testcase > cannot compile without int128.  Could you try that? > > Btw, your patch is completely whitespace-damaged which makes it very > hard > to read (and impossible to apply).  Please fix your setup :-) > > > Segher > Segher: No problem, I hadn't committed the patch yet. Nothing seemed to be going right for me last Friday so I figured it best to wait for a better day to do the commit. I updated the patch as requested. The dg commands are now: /* { dg-do run } */ /* { dg-require-effective-target int128 } */ /* { dg-require-effective-target vsx_hw } */ /* { dg-options "-maltivec -mvsx" } */ #include When run with the command: make -k check-gcc RUNTESTFLAGS="--target_board=unix'{-m32,-m64}' powerpc.exp=builtins-4-int128-runnable.c" The results are the same: # of unsupported tests 6 Running target unix/-m64 Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target. Using /usr/share/dejagnu/config/unix.exp as generic interface file for target. Using /home/carll/GCC/gcc-builtin4/gcc/testsuite/config/default.exp as tool-and-target-specific interface file. Running /home/carll/GCC/gcc-builtin4/gcc/testsuite/gcc.target/powerpc/powerpc.exp ... === gcc Summary for unix/-m64 === # of expected passes 12 === gcc Summary === # of expected passes 12 # of unsupported tests 6 /home/carll/GCC/build/gcc-builtin4/gcc/xgcc version 8.0.1 20180209 (experimental) (GCC) It does sound like this is more reliable in terms of the test harness. Below is the patch. Sorry, I forgot to set the patch to "preformatted" last time, as I said, I wasn't having a good day Friday. :-) Let me know if it all looks good this time. Thanks. Carl ------------------------------------------------------------------------------------- gcc/testsuite/ChangeLog: 2018-02-12 Carl Love * gcc.target/powerpc/builtins-4-runnable.c (main): Move int128 and uint128 tests to new testfile. * gcc.target/powerpc/builtins-4-int128-runnable.c: New testfile for int128 and uint128 tests. * gcc.target/powerpc/powerpc.exp: Add builtins-4-int128-runnable.c to list of torture tests. --- .../powerpc/builtins-4-int128-runnable.c | 109 +++++++++++++++++++++ .../gcc.target/powerpc/builtins-4-runnable.c | 84 ---------------- gcc/testsuite/gcc.target/powerpc/powerpc.exp | 1 + 3 files changed, 110 insertions(+), 84 deletions(-) create mode 100644 gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c new file mode 100644 index 0000000..162e267 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/builtins-4-int128-runnable.c @@ -0,0 +1,109 @@ +/* { dg-do run } */ +/* { dg-require-effective-target int128 } */ +/* { dg-require-effective-target vsx_hw } */ +/* { dg-options "-maltivec -mvsx" } */ + +#include +#include // vector + +#ifdef DEBUG +#include +#endif + +void abort (void); + +int main() { + int i; + __uint128_t data_u128[100]; + __int128_t data_128[100]; + + vector __int128_t vec_128_expected1, vec_128_result1; + vector __uint128_t vec_u128_expected1, vec_u128_result1; + signed long long zero = (signed long long) 0; + + for (i = 0; i < 100; i++) + { + data_128[i] = i + 12800000; + data_u128[i] = i + 12800001; + } + + /* vec_xl() tests */ + + vec_128_expected1 = (vector __int128_t){12800000}; + vec_128_result1 = vec_xl (zero, data_128); + + if (vec_128_expected1[0] != vec_128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl(), vec_128_result1[0] = %lld %llu; ", + vec_128_result1[0] >> 64, + vec_128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); + printf("vec_128_expected1[0] = %lld %llu\n", + vec_128_expected1[0] >> 64, + vec_128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } + + vec_u128_result1 = vec_xl (zero, data_u128); + vec_u128_expected1 = (vector __uint128_t){12800001}; + if (vec_u128_expected1[0] != vec_u128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl(), vec_u128_result1[0] = %lld; ", + vec_u128_result1[0] >> 64, + vec_u128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); + printf("vec_u128_expected1[0] = %lld\n", + vec_u128_expected1[0] >> 64, + vec_u128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } + + /* vec_xl_be() tests */ + + vec_128_result1 = vec_xl_be (zero, data_128); +#ifdef __BIG_ENDIAN__ + vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; +#else + vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; +#endif + + if (vec_128_expected1[0] != vec_128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl_be(), vec_128_result1[0] = %llu %llu;", + vec_128_result1[0] >> 64, + vec_128_result1[0] & 0xFFFFFFFFFFFFFFFF); + printf(" vec_128_expected1[0] = %llu %llu\n", + vec_128_expected1[0] >> 64, + vec_128_expected1[0] & 0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } + +#ifdef __BIG_ENDIAN__ + vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; +#else + vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; +#endif + + vec_u128_result1 = vec_xl_be (zero, data_u128); + + if (vec_u128_expected1[0] != vec_u128_result1[0]) + { +#ifdef DEBUG + printf("Error: vec_xl_be(), vec_u128_result1[0] = %llu %llu;", + vec_u128_result1[0] >> 64, + vec_u128_result1[0] & 0xFFFFFFFFFFFFFFFF); + printf(" vec_u128_expected1[0] = %llu %llu\n", + vec_u128_expected1[0] >> 64, + vec_u128_expected1[0] & 0xFFFFFFFFFFFFFFFF); +#else + abort (); +#endif + } +} diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c b/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c index de9b916..35884b5 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-4-runnable.c @@ -27,9 +27,6 @@ int main() { float data_f[100]; double data_d[100]; - __uint128_t data_u128[100]; - __int128_t data_128[100]; - signed long long disp; vector signed char vec_c_expected1, vec_c_expected2, vec_c_result1, vec_c_result2; @@ -47,8 +44,6 @@ int main() { vec_sll_result1, vec_sll_result2; vector unsigned long long vec_ull_expected1, vec_ull_expected2, vec_ull_result1, vec_ull_result2; - vector __int128_t vec_128_expected1, vec_128_result1; - vector __uint128_t vec_u128_expected1, vec_u128_result1; vector float vec_f_expected1, vec_f_expected2, vec_f_result1, vec_f_result2; vector double vec_d_expected1, vec_d_expected2, vec_d_result1, vec_d_result2; char buf[20]; @@ -66,8 +61,6 @@ int main() { data_ull[i] = i+1001; data_f[i] = i+100000.0; data_d[i] = i+1000000.0; - data_128[i] = i + 12800000; - data_u128[i] = i + 12800001; } // vec_xl() tests @@ -319,39 +312,6 @@ int main() { #endif } - vec_128_expected1 = (vector __int128_t){12800000}; - vec_128_result1 = vec_xl (zero, data_128); - - if (vec_128_expected1[0] != vec_128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl(), vec_128_result1[0] = %lld %llu; ", - vec_128_result1[0] >> 64, - vec_128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); - printf("vec_128_expected1[0] = %lld %llu\n", - vec_128_expected1[0] >> 64, - vec_128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } - - vec_u128_result1 = vec_xl (zero, data_u128); - vec_u128_expected1 = (vector __uint128_t){12800001}; - if (vec_u128_expected1[0] != vec_u128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl(), vec_u128_result1[0] = %lld; ", - vec_u128_result1[0] >> 64, - vec_u128_result1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); - printf("vec_u128_expected1[0] = %lld\n", - vec_u128_expected1[0] >> 64, - vec_u128_expected1[0] & (__int128_t)0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } - // vec_xl_be() tests disp = 1; #ifdef __BIG_ENDIAN__ @@ -710,48 +670,4 @@ int main() { abort (); #endif } - - disp = 0; - vec_128_result1 = vec_xl_be (zero, data_128); -#ifdef __BIG_ENDIAN__ - vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; -#else - vec_128_expected1 = (vector __int128_t){ (__int128_t)12800000 }; -#endif - - if (vec_128_expected1[0] != vec_128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl_be(), vec_128_result1[0] = %llu %llu;", - vec_128_result1[0] >> 64, - vec_128_result1[0] & 0xFFFFFFFFFFFFFFFF); - printf(" vec_128_expected1[0] = %llu %llu\n", - vec_128_expected1[0] >> 64, - vec_128_expected1[0] & 0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } - -#ifdef __BIG_ENDIAN__ - vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; -#else - vec_u128_expected1 = (vector __uint128_t){ (__uint128_t)12800001 }; -#endif - - vec_u128_result1 = vec_xl_be (zero, data_u128); - - if (vec_u128_expected1[0] != vec_u128_result1[0]) - { -#ifdef DEBUG - printf("Error: vec_xl_be(), vec_u128_result1[0] = %llu %llu;", - vec_u128_result1[0] >> 64, - vec_u128_result1[0] & 0xFFFFFFFFFFFFFFFF); - printf(" vec_u128_expected1[0] = %llu %llu\n", - vec_u128_expected1[0] >> 64, - vec_u128_expected1[0] & 0xFFFFFFFFFFFFFFFF); -#else - abort (); -#endif - } } diff --git a/gcc/testsuite/gcc.target/powerpc/powerpc.exp b/gcc/testsuite/gcc.target/powerpc/powerpc.exp index 148acb1..fdb3e93 100644 --- a/gcc/testsuite/gcc.target/powerpc/powerpc.exp +++ b/gcc/testsuite/gcc.target/powerpc/powerpc.exp @@ -54,6 +54,7 @@ torture-init # Test load/store builtins at multiple optimizations set-torture-options [list -O0 -Os -O1 -O2 -O3] gcc-dg-runtest [list $srcdir/$subdir/builtins-4-runnable.c \ + $srcdir/$subdir/builtins-4-int128-runnable.c \ $srcdir/$subdir/builtins-6-runnable.c \ $srcdir/$subdir/builtins-5-p9-runnable.c \ $srcdir/$subdir/builtins-6-p9-runnable.c] "" $DEFAULT_CFLAGS -- 2.7.4