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



--- Comment #3 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> 2012-11-28 
02:23:33 UTC ---

fwprop in the failure case ends up replacing . 



In insn 50, replacing

 (sign_extend:V4SI (ashift:V4HI (subreg:V4HI (reg:V8HI 269 [ vect_var_.41 ]) 8)

            (const_int 3 [0x3])))



 with (const_vector:V4SI [

            (const_int 0 [0])

            (const_int 0 [0])

            (const_int 0 [0])

            (const_int 0 [0])

        ])





but that can't be right ..... especially if the value in reg 269 is essentially

out of a vld4. 



33 r269:V8HI=zero_extend(vec_select(r268:V16QI,parallel))

   34 r270:V8HI=zero_extend(vec_select(r268:V16QI,parallel))

   35 r1211:V16QI=const_vector

   36 r275:V16QI=r1211:V16QI&r1196:XI#32

   37 r276:V8HI=zero_extend(vec_select(r275:V16QI,parallel))

   38 r277:V8HI=zero_extend(vec_select(r275:V16QI,parallel))

   39 r1212:V4SI=sign_extend(r269:V8HI#0<<0x3)

   40 r1213:V4SI=zero_extend(vec_select(r252:V8HI,parallel))

   41 r1214:V4SI=r1213:V4SI>>const_vector

   42 r1215:V4SI=r1212:V4SI|r1214:V4SI

   43 r1216:V4SI=sign_extend(r276:V8HI#0<<0x8)

   44 r1217:V4SI=r1215:V4SI|r1216:V4SI

   45 r1218:V4SI=zero_extend(vec_select(r258:V8HI,parallel))

   46 r1219:V4SI=r1218:V4SI>>const_vector

   47 r1220:V4SI=r1217:V4SI|r1219:V4SI

   48 [r1198:SI]=unspec[r1220:V4SI] 164

   50 r1221:V4SI=sign_extend(r269:V8HI#8<<0x3)





Attached is a .i file and associated dumps. 



Ramana

Reply via email to