This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/10963] New: cc1 fails on generation of SIMD code on target MMX


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10963

           Summary: cc1 fails on generation of SIMD code on target MMX
           Product: gcc
           Version: 3.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: martely@wanadoo.fr
                CC: gcc-bugs@gcc.gnu.org

Here is foo.c:

[bidou@pit tmp]$ cat foo.c
#define vector64 __attribute__((vector_size(8)))
vector64 short a;
vector64 short b;
vector64 short c;


void foo ()
{

c = -a + b*b*(-1LL);
/* c is now {5, 3} */

 printf("result is %llx\n", (long long)c);
}


******************************************************************************
Here is foo.c preprocessed:

[bidou@pit tmp]$ gcc-3.3 -mmmx -E foo.c
# 1 "foo.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "foo.c"

__attribute__((vector_size(8))) short a;
__attribute__((vector_size(8))) short b;
__attribute__((vector_size(8))) short c;


void foo ()
{

c = -a + b*b*(-1LL);


 printf("result is %llx\n", (long long)c);
}

******************************************************************************
And here is the command line that failed and its result:

[bidou@pit tmp]$ gcc-3.3 -mmmx -v foo.c
Reading specs from /home/bidou/lib/gcc-lib/i686-pc-linux-gnu/3.3/specs
Configured with: ../gcc-3.3/configure --prefix=/home/bidou --enable-languages=c
--program-suffix=-3.3
Thread model: posix
gcc version 3.3
 /home/bidou/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1 -quiet -v -D__GNUC__=3
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 foo.c -quiet -dumpbase foo.c -mmmx
-auxbase foo -version -o /tmp/ccGuYsey.s
GNU C version 3.3 (i686-pc-linux-gnu)
        compiled by GNU C version 3.3.
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64213
ignoring nonexistent directory "/home/bidou/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /home/bidou/include
 /home/bidou/lib/gcc-lib/i686-pc-linux-gnu/3.3/include
 /usr/include
End of search list.
foo.c: In function `foo':
foo.c:14: internal compiler error: in output_constant_pool, at varasm.c:3492
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

*******************************************************************************
Host and target machine is an Athlon-XP PC running RedHat 8.0.

I tried the same with varying options for building GCC and for the compilation
of foo.c, and got exactly the same result.
The testsuite does not detect this (simd-5.c) because either no MMX code is
tried (no MMX enabling flag) or the -O3 is optimizing out calculation in contact
propagation with my standard CFLAGS.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]