public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/32123]  New: gcc.target/i386/sse2-vec-6.c fails for -mtune=k8
@ 2007-05-28  7:48 ubizjak at gmail dot com
  2007-05-28  8:35 ` [Bug rtl-optimization/32123] " ubizjak at gmail dot com
  2007-06-01  6:42 ` ubizjak at gmail dot com
  0 siblings, 2 replies; 3+ messages in thread
From: ubizjak at gmail dot com @ 2007-05-28  7:48 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2490 bytes --]

This testcase fails for:

gcc -O2 -msse2 -mtune=k8 sse2-vec-6.c

Analyzing compilation unit
Performing interprocedural optimizations
 <visibility> <early_local_cleanups> <inline> <static-var> <pure-const>
<type-escape-var>Assembling functions:
 i386_cpuid_ecx i386_cpuid_edx i386_extended_cpuid_ecx i386_extended_cpuid_edx
sse2_test
sse2-vec-6.c: In function âsse2_testâ:
sse2-vec-6.c:69: internal compiler error: in expand_simple_binop, at
optabs.c:1214
Please submit a full bug report,

Backtrace:

#0  fancy_abort (file=0x8701de4 "../../gcc-svn/trunk/gcc/optabs.c", line=1214,
function=0x87022f2 "expand_simple_binop") at
../../gcc-svn/trunk/gcc/diagnostic.c:656
#1  0x082706e7 in expand_simple_binop (mode=V2SFmode, code=VEC_SELECT,
op0=0xb795a57c, op1=0xb792c938, target=0xb795c350, unsignedp=1,
methods=OPTAB_LIB_WIDEN) at ../../gcc-svn/trunk/gcc/optabs.c:1214
#2  0x081a5edb in force_operand (value=0xb795a5ac, target=0xb795c350) at
../../gcc-svn/trunk/gcc/expr.c:6084
#3  0x086144ab in move_invariant_reg (loop=0xb794ef74, invno=0) at
../../gcc-svn/trunk/gcc/loop-invariant.c:1178
#4  0x0861580d in move_loop_invariants () at
../../gcc-svn/trunk/gcc/loop-invariant.c:1240
#5  0x086137d5 in rtl_move_loop_invariants () at
../../gcc-svn/trunk/gcc/loop-init.c:239
#6  0x08276976 in execute_one_pass (pass=0x87c7280) at
../../gcc-svn/trunk/gcc/passes.c:1067

The problem is that we enter force_operand() with:

(gdb) p debug_rtx (value)
(vec_select:V2SF (subreg:V4SF (reg:V2DI 91 [ pretmp.201 ]) 0)
    (parallel [
            (const_int 0 [0x0])
            (const_int 1 [0x1])
        ]))

There is no optab for vec_select, and we crash later in assert in
expand_simple_optab() on uninitialized optab.

The failure is actually the same as in PR26449, however the solution [1] looks
rather suspicious to me, as force_operand() won't return NULL, but would crash
via expand_simple_optab() for RTXs without optab.

[1] http://gcc.gnu.org/ml/gcc-patches/2006-06/msg00313.html


-- 
           Summary: gcc.target/i386/sse2-vec-6.c fails for -mtune=k8
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ubizjak at gmail dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug rtl-optimization/32123] gcc.target/i386/sse2-vec-6.c fails for -mtune=k8
  2007-05-28  7:48 [Bug rtl-optimization/32123] New: gcc.target/i386/sse2-vec-6.c fails for -mtune=k8 ubizjak at gmail dot com
@ 2007-05-28  8:35 ` ubizjak at gmail dot com
  2007-06-01  6:42 ` ubizjak at gmail dot com
  1 sibling, 0 replies; 3+ messages in thread
From: ubizjak at gmail dot com @ 2007-05-28  8:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from ubizjak at gmail dot com  2007-05-28 08:35 -------
Standalone testcase, compile with -O2 -msse2 -mtune=k8:

--cut here--
typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16)));

void sse2_test (void)
{
  union
  {
    __m128i x;
  } val1, res[8], tmp;
  short ins[8] = { 8, 5, 9, 4, 2, 6, 1, 20 };
  int i;

  for (i = 0; i < 8; i++)
    {
      tmp.x = val1.x;
      if (memcmp (&tmp, &res[i], sizeof (tmp)))
        (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi) val1.x, ins[i], 0);
    }
}
--cut here--


-- 


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug rtl-optimization/32123] gcc.target/i386/sse2-vec-6.c fails for -mtune=k8
  2007-05-28  7:48 [Bug rtl-optimization/32123] New: gcc.target/i386/sse2-vec-6.c fails for -mtune=k8 ubizjak at gmail dot com
  2007-05-28  8:35 ` [Bug rtl-optimization/32123] " ubizjak at gmail dot com
@ 2007-06-01  6:42 ` ubizjak at gmail dot com
  1 sibling, 0 replies; 3+ messages in thread
From: ubizjak at gmail dot com @ 2007-06-01  6:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from ubizjak at gmail dot com  2007-06-01 06:42 -------


*** This bug has been marked as a duplicate of 26449 ***


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-06-01  6:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-28  7:48 [Bug rtl-optimization/32123] New: gcc.target/i386/sse2-vec-6.c fails for -mtune=k8 ubizjak at gmail dot com
2007-05-28  8:35 ` [Bug rtl-optimization/32123] " ubizjak at gmail dot com
2007-06-01  6:42 ` ubizjak at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).