From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9499 invoked by alias); 11 Dec 2014 10:16:53 -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 9480 invoked by uid 89); 11 Dec 2014 10:16:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: service87.mimecast.com Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 11 Dec 2014 10:16:51 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by service87.mimecast.com; Thu, 11 Dec 2014 10:16:48 +0000 Received: from E105887 ([10.1.255.212]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 11 Dec 2014 10:16:48 +0000 From: "David Sherwood" To: "'Christophe Lyon'" Cc: , "Marcus Shawcroft" , "Alan Hayward" , "'Tejas Belagod'" , "Richard Sandiford" References: <000701cfff29$ea4fbcf0$beef36d0$@arm.com> <000b01cfff4e$aa668090$ff3381b0$@arm.com> <000c01d00310$20bcab60$62360220$@arm.com> In-Reply-To: Subject: RE: New patch: [AArch64] [BE] [1/2] Make large opaque integer modes endianness-safe. Date: Thu, 11 Dec 2014 10:16:00 -0000 Message-ID: <000101d0152b$91105c90$b33115b0$@arm.com> MIME-Version: 1.0 X-MC-Unique: 114121110164815801 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2014-12/txt/msg00995.txt.bz2 Hi Christophe, Sorry to bother you again. After my clarification email below are you now happy for these patches to go in? Kind Regards, David Sherwood. > -----Original Message----- > From: David Sherwood [mailto:david.sherwood@arm.com] > Sent: 27 November 2014 14:53 > To: 'Christophe Lyon' > Cc: gcc-patches@gcc.gnu.org; Marcus Shawcroft; Alan Hayward; 'Tejas Belag= od'; Richard Sandiford > Subject: RE: New patch: [AArch64] [BE] [1/2] Make large opaque integer mo= des endianness-safe. >=20 > > On 18 November 2014 10:14, David Sherwood wrot= e: > > > Hi Christophe, > > > > > > Ah sorry. My mistake - it fixes this in bugzilla: > > > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D59810 > > > > I did look at that PR, but since it has no testcase attached, I was uns= ure. > > And I am still not :-) > > PR 59810 is "[AArch64] LDn/STn implementations are not ABI-conformant > > for bigendian." > > but the advsimd-intrinsics/vldX.c and vldX_lane.c now PASS with Alan's > > patches on aarch64_be, so I thought Alan's patches solve PR59810. > > > > What am I missing? >=20 > Hi Christophe, >=20 > I think probably this is our fault for making our lives way too difficult= and > artificially splitting all these patches up. :) >=20 > Alan's patch: >=20 > https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00952.html >=20 > fixes some issues on aarch64_be, but also causes regressions. For example, >=20 > =3D=3D=3D=3D > Tests that now fail, but worked before: >=20 > aarch64_be-elf-aem: gcc.dg/vect/slp-perm-8.c -flto -ffat-lto-objects exec= ution test > aarch64_be-elf-aem: gcc.dg/vect/slp-perm-8.c execution test > aarch64_be-elf-aem: gcc.dg/vect/vect-over-widen-1-big-array.c -flto -ffat= -lto-objects execution test > ... >=20 > Tests that now work, but didn't before: >=20 > aarch64_be-elf-aem: gcc.dg/vect/fast-math-vect-complex-3.c execution test > aarch64_be-elf-aem: gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c execution t= est > aarch64_be-elf-aem: gcc.dg/vect/no-scevccp-outer-10a.c execution test > ... > =3D=3D=3D=3D >=20 > His patch is only half of the story and must be applied at the same time = as the > "[AArch64] [BE] [1/2] Make large opaque integer modes endianness-safe." > patch. With both patches applied the result looks much healthier: >=20 > =3D=3D=3D=3D > # Comparing 1 common sum files > ## /bin/sh ./src/gcc/contrib/compare_tests /tmp/gxx-sum1.10051 /tmp/gxx-= sum2.10051 > Tests that now work, but didn't before: >=20 > aarch64_be-elf-aem: gcc.dg/torture/pr52028.c -O3 -fomit-frame-pointer = execution test > aarch64_be-elf-aem: gcc.dg/torture/pr52028.c -O3 -fomit-frame-pointer -= funroll-all-loops -finline- > functions execution test > aarch64_be-elf-aem: gcc.dg/torture/pr52028.c -O3 -fomit-frame-pointer -= funroll-loops execution test > ... > =3D=3D=3D=3D >=20 > with no new regressions. After applying both patches the aarch64_be gcc t= estsuite is > on a parity with the aarch64 testsuite. Furthermore, after applying both = of these patches: >=20 > "[AArch64] [BE] [1/2] Make large opaque integer modes endianness-safe" > "[AArch64] [BE] Fix vector load/stores to not use ld1/st1" >=20 > it then becomes safe for us to remove the CCMC macro, which is the cause = of > unnecessary spills to the stack for certain auto-vectorised code. So real= ly I > suppose when I posted my second patch >=20 > "[AArch64] [BE] [2/2] Make large opaque integer modes endianness-safe" >=20 > I should have really just called this >=20 > "[AArch64] [BE] Remove CCMC for aarch64" >=20 > in order to make it clear exactly what the purpose of these patches is. >=20 > Kind Regards, > David Sherwood.