public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/30016]  New: internal compiler error: in convert_move, at expr.c:362
@ 2006-11-29 15:48 dimock at csail dot mit dot edu
  2006-11-30 11:24 ` [Bug middle-end/30016] " pinskia at gcc dot gnu dot org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: dimock at csail dot mit dot edu @ 2006-11-29 15:48 UTC (permalink / raw)
  To: gcc-bugs

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

I find no description for "triplet", so guessing at its use, and see no method
of attaching .ii so attempting to fit all info in this form.

Problem seems to be from reinterpret_cast between vectors and unions of vectors
with arrays of scalars.
Occurred in machine-generated code, have not been able to substantially
simplify.

Error persists with -march=pentium4 -msse2 switches so is independent of
whether
vectors are generated or just simulated as array.

Identical error message occurs in gcc built from 4.1.1 sources on a PowerPC G4.

Error does not occur if I change to C-style casts and change extension to .c.

Unfortunately, semantics of C++ casting seem to change the C-style cast in
error.cpp to a static_cast, which then encounters a semantic error:
error2.cpp:144: error: no matching function for call to ‘__v4F::__v4F(float
__vector__&)’
error2.cpp:17: note: candidates are: __v4F::__v4F()
error2.cpp:17: note:                 __v4F::__v4F(const __v4F&)
Thus the attempt to generate a reinterpret_cast leading to discovery of bug.

 gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk
--disable-dssi --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
--with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)

gcc -O3 -o error.o error.cpp
error.cpp: In function ‘void work_Fused_Pre_iDC_Pos_iDC_158__2(int)’:
error.cpp:245: internal compiler error: in convert_move, at expr.c:362
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/ccqrXNUl.out file, please attach this to
your bugreport.

// /usr/libexec/gcc/i386-redhat-linux/4.1.1/cc1plus -quiet -D_GNU_SOURCE
error.cpp -quiet -dumpbase error.cpp -mtune=generic -auxbase error -O3 -o -
-frandom-seed=0
# 1 "error.cpp"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "error.cpp"

volatile int __print_sink__;
# 16 "error.cpp"
typedef float __v_4F __attribute__ ((vector_size (16)));
typedef union {__v_4F v; float a[4];} __v4F;

int __max_iteration;


int BUFFER_0_1[1023 + 1];
int HEAD_0_1 = 0;
int TAIL_0_1 = 0;
float BUFFER_1_2[1023 + 1];
int HEAD_1_2 = 0;
int TAIL_1_2 = 0;
float BUFFER_2_3[1023 + 1];
int HEAD_2_3 = 0;
int TAIL_2_3 = 0;
void init_AnonFilter_a0__261_44__1();
void work_AnonFilter_a0__261_44__1(int);
void init_Fused_Pre_iDC_Pos_iDC_158__2();
void work_Fused_Pre_iDC_Pos_iDC_158__2(int);
void FileWriter__301_78__work__4(int);

int main(int argc, char **argv) {
  int a;
  int n;
# 48 "error.cpp"
init_Fused_Pre_iDC_Pos_iDC_158__2();


  for (n = 0; n < (__max_iteration ); n++) {
HEAD_1_2 = 0;
TAIL_1_2 = 0;
    work_AnonFilter_a0__261_44__1(1024 );
HEAD_2_3 = 0;
TAIL_2_3 = 0;
    work_Fused_Pre_iDC_Pos_iDC_158__2(1 );
    FileWriter__301_78__work__4(1024 );
  }

  return 0;
}




inline void __push__0(int data) {
BUFFER_0_1[HEAD_0_1]=data;
HEAD_0_1++;
}







inline void __push__1(float data) {
BUFFER_1_2[HEAD_1_2]=data;
HEAD_1_2++;
}

float v = 0.0f;

void work_AnonFilter_a0__261_44__1(int ____n){
  for (
  ; (0 < ____n); (____n--)) {{
      __push__1(v++);
    }
  }
}







__v_4F coeff__268__309__2[16][16];
__v_4F coeff__285__329__2[16][16];

inline float __pop__2n(int n) {
float res=BUFFER_1_2[TAIL_1_2];
TAIL_1_2+=n;

return res;
}

inline float __peek__2(int offs) {
return BUFFER_1_2[TAIL_1_2+offs];
}



inline void __push__2(float data) {
BUFFER_2_3[HEAD_2_3]=data;
HEAD_2_3++;
}





void init_Fused_Pre_iDC_Pos_iDC_158__2(){



  float Cu__275__318 = 0.0f;
  int u__276__319 = 0;
  int x__277__320 = 0;
  float __tmp92 = 0.0f;

  (x__277__320 = 0) ;

  while ((x__277__320 < 16)) {
    (u__276__319 = 0) ;

    while ((u__276__319 < 16)) {
      (Cu__275__318 = ((float)1.0)) ;

      if ((u__276__319 == 0)) {(Cu__275__318 = ((float)0.70710677)) ;
      } else {}
      (__tmp92 = ((((float)0.5) * Cu__275__318) * ((float)(
(((double)((((((float)(u__276__319)) * ((float)3.1415927)) * ((((float)2.0) *
((float)(x__277__320))) + ((float)1.0))) / ((float)32.0))))))))) ;
     
(((reinterpret_cast<__v4F>(((coeff__268__309__2)[(int)x__277__320])[(int)u__276__319]).a)[(int)0])
= __tmp92);
     
(((reinterpret_cast<__v4F>(((coeff__268__309__2)[(int)x__277__320])[(int)u__276__319]).a)[(int)1])
= __tmp92);
     
(((reinterpret_cast<__v4F>(((coeff__268__309__2)[(int)x__277__320])[(int)u__276__319]).a)[(int)2])
= __tmp92);
     
(((reinterpret_cast<__v4F>(((coeff__268__309__2)[(int)x__277__320])[(int)u__276__319]).a)[(int)3])
= __tmp92);
      (u__276__319++);
    }
    (x__277__320++);
  }





  float Cu__292__338 = 0.0f;
  int u__293__339 = 0;
  int x__294__340 = 0;
  float __tmp93 = 0.0f;

  (x__294__340 = 0) ;

  while ((x__294__340 < 16)) {
    (u__293__339 = 0) ;

    while ((u__293__339 < 16)) {
      (Cu__292__338 = ((float)1.0)) ;

      if ((u__293__339 == 0)) {(Cu__292__338 = ((float)0.70710677)) ;
      } else {}
      (__tmp93 = ((((float)0.5) * Cu__292__338) * ((float)(
(((double)((((((float)(u__293__339)) * ((float)3.1415927)) * ((((float)2.0) *
((float)(x__294__340))) + ((float)1.0))) / ((float)32.0))))))))) ;
     
(((reinterpret_cast<__v4F>(((coeff__285__329__2)[(int)x__294__340])[(int)u__293__339]).a)[(int)0])
= __tmp93);
     
(((reinterpret_cast<__v4F>(((coeff__285__329__2)[(int)x__294__340])[(int)u__293__339]).a)[(int)1])
= __tmp93);
     
(((reinterpret_cast<__v4F>(((coeff__285__329__2)[(int)x__294__340])[(int)u__293__339]).a)[(int)2])
= __tmp93);
     
(((reinterpret_cast<__v4F>(((coeff__285__329__2)[(int)x__294__340])[(int)u__293__339]).a)[(int)3])
= __tmp93);
      (u__293__339++);
    }
    (x__294__340++);
  }

}





float __POKEBUFFER____2[768] = {0};
int __POKEBUFFERHEAD____2 = 0;


void work_Fused_Pre_iDC_Pos_iDC_158__2(int ____n){
  for (
  ; (0 < ____n); (____n--)) {{
      static const __v_4F __tmp94 = {((float)0.0), ((float)0.0), ((float)0.0),
((float)0.0)};
      __v_4F ___POP_BUFFER_1_1[256];
      int ___POP_INDEX_1_1 = 0;
      int ___PUSH_INDEX_1_1 = 0;
      int ___COUNTER_WORK_1_1 = 0;
      __v_4F ___POP_BUFFER_2_1[256];
      int ___PUSH_INDEX_1_2 = 0;
      __v_4F ___POP_BUFFER_3_1[256];
      int ___POP_INDEX_1_3 = 0;
      int ___PUSH_INDEX_1_3 = 0;
      int ___COUNTER_WORK_1_3 = 0;
      int _k__264__304 = 0;
      int iTimesSumOfWeights_Plus_PartialSum_k__265__305 = 0;
      int _i__266__306 = 0;
      __v_4F __tmp74__307;
      __v_4F tempsum__271__312;
      int u__272__313 = 0;
      int x__273__314 = 0;
      __v_4F __tmp76__315;
      __v_4F __tmp77__316;
      __v_4F __tmp78__317;
      int _k__281__324 = 0;
      int partialSum_i__282__325 = 0;
      int _i__283__326 = 0;
      __v_4F __tmp80__327;
      __v_4F tempsum__288__332;
      int u__289__333 = 0;
      int x__290__334 = 0;
      __v_4F __tmp82__335;
      __v_4F __tmp83__336;
      __v_4F __tmp84__337;
      int streamItVar81 = 0;

      ((__POKEBUFFERHEAD____2) = 0) ;
      (___POP_INDEX_1_1 = -1) ;
      (___PUSH_INDEX_1_1 = -1) ;
      (___PUSH_INDEX_1_2 = -1) ;
      (___POP_INDEX_1_3 = -1) ;
      (___PUSH_INDEX_1_3 = -1) ;




      for ((_k__264__304 = 0) ; (_k__264__304 < 16); (_k__264__304++)) {{
          (iTimesSumOfWeights_Plus_PartialSum_k__265__305 = _k__264__304) ;
          for ((_i__266__306 = 0) ; (_i__266__306 < 16); (_i__266__306++)) {{
              (((reinterpret_cast<__v4F>(__tmp74__307).a)[(int)0]) =
__peek__2(((iTimesSumOfWeights_Plus_PartialSum_k__265__305 + 0) + 0)));
              (((reinterpret_cast<__v4F>(__tmp74__307).a)[(int)1]) =
__peek__2(((iTimesSumOfWeights_Plus_PartialSum_k__265__305 + 0) + 256)));
              (((reinterpret_cast<__v4F>(__tmp74__307).a)[(int)2]) =
__peek__2(((iTimesSumOfWeights_Plus_PartialSum_k__265__305 + 0) + 512)));
              (((reinterpret_cast<__v4F>(__tmp74__307).a)[(int)3]) =
__peek__2(((iTimesSumOfWeights_Plus_PartialSum_k__265__305 + 0) + 768)));
              (((___POP_BUFFER_1_1[(int)(++___PUSH_INDEX_1_1)])) =
(__tmp74__307));
              (iTimesSumOfWeights_Plus_PartialSum_k__265__305 =
(iTimesSumOfWeights_Plus_PartialSum_k__265__305 + 16)) ;
            }
          }
        }
      }
      __pop__2n(256);






      for ((___COUNTER_WORK_1_1 = 0) ; (___COUNTER_WORK_1_1 < 16);
(___COUNTER_WORK_1_1++)) {{
          (x__273__314 = 0) ;

          while ((x__273__314 < 16)) {
            ((tempsum__271__312) = __tmp94);
            (u__272__313 = 0) ;

            while ((u__272__313 < 16)) {
              ((__tmp78__317) = ((___POP_BUFFER_1_1[(int)((1 +
___POP_INDEX_1_1) + u__272__313)])));
              ((__tmp77__316) =
(((((coeff__268__309__2)[(int)x__273__314])[(int)u__272__313])) *
(__tmp78__317)));
              ((__tmp76__315) = ((tempsum__271__312) + (__tmp77__316)));
              ((tempsum__271__312) = (__tmp76__315));
              (u__272__313++);
            }
            (((___POP_BUFFER_2_1[(int)(++___PUSH_INDEX_1_2)])) =
(tempsum__271__312));
            (x__273__314++);
          }
          (___POP_INDEX_1_1 = (___POP_INDEX_1_1 + 16)) ;
        }
      }






      for ((_k__281__324 = 0) ; (_k__281__324 < 16); (_k__281__324++)) {{
          (partialSum_i__282__325 = 0) ;
          for ((_i__283__326 = 0) ; (_i__283__326 < 16); (_i__283__326++)) {{
              ((__tmp80__327) = ((___POP_BUFFER_2_1[(int)(0 + (_k__281__324 +
(partialSum_i__282__325 + 0)))])));
              (((___POP_BUFFER_3_1[(int)(++___PUSH_INDEX_1_3)])) =
(__tmp80__327));
              (partialSum_i__282__325 = (partialSum_i__282__325 + 16)) ;
            }
          }
        }
      }






      for ((___COUNTER_WORK_1_3 = 0) ; (___COUNTER_WORK_1_3 < 16);
(___COUNTER_WORK_1_3++)) {{
          (x__290__334 = 0) ;

          while ((x__290__334 < 16)) {
            ((tempsum__288__332) = __tmp94);
            (u__289__333 = 0) ;

            while ((u__289__333 < 16)) {
              ((__tmp84__337) = ((___POP_BUFFER_3_1[(int)((1 +
___POP_INDEX_1_3) + u__289__333)])));
              ((__tmp83__336) =
(((((coeff__285__329__2)[(int)x__290__334])[(int)u__289__333])) *
(__tmp84__337)));
              ((__tmp82__335) = ((tempsum__288__332) + (__tmp83__336)));
              ((tempsum__288__332) = (__tmp82__335));
              (u__289__333++);
            }
           
__push__2(((reinterpret_cast<__v4F>(tempsum__288__332).a)[(int)0]));
            (((__POKEBUFFER____2)[(int)((__POKEBUFFERHEAD____2) + 0)]) =
((reinterpret_cast<__v4F>(tempsum__288__332).a)[(int)1]));
            (((__POKEBUFFER____2)[(int)((__POKEBUFFERHEAD____2) + 256)]) =
((reinterpret_cast<__v4F>(tempsum__288__332).a)[(int)2]));
            (((__POKEBUFFER____2)[(int)((__POKEBUFFERHEAD____2) + 512)]) =
((reinterpret_cast<__v4F>(tempsum__288__332).a)[(int)3]));
            ((__POKEBUFFERHEAD____2)++);
            (x__290__334++);
          }
          (___POP_INDEX_1_3 = (___POP_INDEX_1_3 + 16)) ;
        }
      }


      ((__POKEBUFFERHEAD____2) = 0) ;
      for ((streamItVar81 = 0) ; (streamItVar81 < 768); (streamItVar81++)) {{
          __push__2(((__POKEBUFFER____2)[(int)(__POKEBUFFERHEAD____2)]));
          ((__POKEBUFFERHEAD____2)++);
        }
      }
      __pop__2n(768);
    }
  }
}


inline float __pop__3() {
float res=BUFFER_2_3[TAIL_2_3];
TAIL_2_3++;
return res;
}






int output_count = 0;

void FileWriter__301_78__work__4(int ____n) {


  __print_sink__ = (int)__pop__3();




}


-- 
           Summary: internal compiler error: in convert_move, at expr.c:362
           Product: gcc
           Version: 4.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dimock at csail dot mit dot edu
 GCC build triplet: i386-redhat-linux
  GCC host triplet: i386-redhat-linux
GCC target triplet: i386-redhat-linux


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


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

end of thread, other threads:[~2007-04-27  1:38 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-11-29 15:48 [Bug c++/30016] New: internal compiler error: in convert_move, at expr.c:362 dimock at csail dot mit dot edu
2006-11-30 11:24 ` [Bug middle-end/30016] " pinskia at gcc dot gnu dot org
2006-11-30 11:55 ` [Bug tree-optimization/30016] [4.0/4.1/4.2/4.3 Regression] " pinskia at gcc dot gnu dot org
2006-11-30 15:56 ` dimock at csail dot mit dot edu
2006-11-30 18:10 ` pinskia at gmail dot com
2006-12-26 22:11 ` pinskia at gcc dot gnu dot org
2006-12-26 22:13 ` [Bug c++/30016] " pinskia at gcc dot gnu dot org
2007-02-03 20:59 ` gdr at gcc dot gnu dot org
2007-02-03 21:00 ` pinskia at gcc dot gnu dot org
2007-02-05  5:27 ` mmitchel at gcc dot gnu dot org
2007-02-14  9:01 ` mmitchel at gcc dot gnu dot org
2007-04-22  0:28 ` pinskia at gcc dot gnu dot org
2007-04-27  1:31 ` pinskia at gcc dot gnu dot org
2007-04-27  1:37 ` pinskia at gcc dot gnu dot org
2007-04-27  1:38 ` pinskia at gcc dot gnu dot org
2007-04-27  1:38 ` pinskia at gcc dot gnu dot org

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).