This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix and improve avx2 broadcasts (PR target/63594)
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Uros Bizjak <ubizjak at gmail dot com>, Kirill Yukhin <kirill dot yukhin at gmail dot com>, gcc-patches at gcc dot gnu dot org, Eric Botcazou <ebotcazou at adacore dot com>
- Date: Fri, 24 Oct 2014 11:32:02 +0200
- Subject: Re: [PATCH] Fix and improve avx2 broadcasts (PR target/63594)
- Authentication-results: sourceware.org; auth=none
- References: <20141021161037 dot GA10376 at tucnak dot redhat dot com> <ydd38afndsx dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE> <20141023131305 dot GL10376 at tucnak dot redhat dot com> <yddppdincrj dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE>
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
> Jakub Jelinek <jakub@redhat.com> writes:
>
>> On Thu, Oct 23, 2014 at 02:58:06PM +0200, Rainer Orth wrote:
>>> Unfortunately, I see some problems with those tests on Solaris:
>>>
>>> * On Solaris/x86, I get
>>>
>>> FAIL: gcc.dg/pr63594-2.c execution test
>>>
>>> for 32-bit. Any particular reason to restrict -mno-mmx to Linux/x86?
>>> Manually building the testcase with -mno-mmx on Solaris/x86 seems to
>>> cure the failure.
>>
>> No reason, probably finger memory without lots of thinking.
>> The reason for -mno-mmx is that the functions use floating point vectors
>> and scalar floating point arithmetics in the same function.
>> Feel free to change both pr63594-{1,2}.c with s/linux//g .
>
> Ok, will do and commit after Linux and Solaris testing.
Here's what I've checked in after i686-unknown-linux-gnu,
x86_64-unknown-linux-gnu, and i386-pc-solaris2.11 testing:
2014-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.dg/pr63594-1.c: Apply -mno-mmx to all i?86-*-* and x86_64-*-*
targets.
* gcc.dg/pr63594-2.c: Likewise.
diff --git a/gcc/testsuite/gcc.dg/pr63594-1.c b/gcc/testsuite/gcc.dg/pr63594-1.c
--- a/gcc/testsuite/gcc.dg/pr63594-1.c
+++ b/gcc/testsuite/gcc.dg/pr63594-1.c
@@ -1,7 +1,7 @@
/* PR target/63594 */
/* { dg-do compile } */
/* { dg-options "-O2 -Wno-psabi" } */
-/* { dg-additional-options "-mno-mmx" { target i?86-*-linux* x86_64-*-linux* } } */
+/* { dg-additional-options "-mno-mmx" { target i?86-*-* x86_64-*-* } } */
#define C1 c
#define C2 C1, C1
diff --git a/gcc/testsuite/gcc.dg/pr63594-2.c b/gcc/testsuite/gcc.dg/pr63594-2.c
--- a/gcc/testsuite/gcc.dg/pr63594-2.c
+++ b/gcc/testsuite/gcc.dg/pr63594-2.c
@@ -1,7 +1,7 @@
/* PR target/63594 */
/* { dg-do run } */
/* { dg-options "-O2 -Wno-psabi" } */
-/* { dg-additional-options "-mno-mmx" { target i?86-*-linux* x86_64-*-linux* } } */
+/* { dg-additional-options "-mno-mmx" { target i?86-*-* x86_64-*-* } } */
#define C1 c
#define C2 C1, C1
>>> * On 64-bit Solaris/SPARC, I get
>>>
>>> FAIL: gcc.dg/pr63594-1.c (internal compiler error)
>>> FAIL: gcc.dg/pr63594-1.c (test for excess errors)
>>>
>>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/pr63594-1.c: In function
>>> 'test1float1':
>>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/pr63594-1.c:19:1:
>>> internal compiler error: Bus Error
>>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/pr63594-1.c:57:1: note:
>>> in expansion of macro 'T'
>>> 0x751c03 crash_signal
>>> /vol/gcc/src/hg/trunk/local/gcc/toplev.c:349
>>> 0x44ffb4 gen_group_rtx(rtx_def*)
>>> /vol/gcc/src/hg/trunk/local/gcc/expr.c:1624
>>> 0x4f8167 expand_function_start(tree_node*)
>>> /vol/gcc/src/hg/trunk/local/gcc/function.c:4803
>>> 0x36278f execute
>>> /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:5709
>>
>> Works fine on x86_64, and doesn't seem to be related to the fix in any way,
>> it seems the ICE is related to returning or passing the vectors, so
>> supposedly some latent Solaris/SPARC issue?
>
> Ok, I'll file a PR and Cc Eric.
This seems to be the same issue as PR target/61535.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University