------- Comment #5 from ubizjak at gmail dot com 2010-07-11 11:59 ------- Expand expands with uninitialized register r68:
41 [r54:SI-0x20]=r73:V4SF 42 [r54:SI-0x10]=r72:V4SF > 43 [r56:SI+0x3c]=float_extend(r68:SF) 44 [r56:SI+0x34]=float_extend([r54:SI-0x8]) 45 [r56:SI+0x2c]=float_extend([r54:SI-0xc]) 46 [r56:SI+0x24]=float_extend([r54:SI-0x10]) 47 [r56:SI+0x1c]=float_extend([r54:SI-0x14]) 48 [r56:SI+0x14]=float_extend([r54:SI-0x18]) 49 [r56:SI+0xc]=float_extend([r54:SI-0x1c]) 50 [r56:SI+0x4]=float_extend([r54:SI-0x20]) 51 [r56:SI]=`*.LC12' 52 call <...> .optimized tree dump looks suspicious, load from uninitialized var: SR.14_103 = __builtin_ia32_loadups (&data[6]); SR.13_104 = __builtin_ia32_loadups (&data[2]); a._v1.D.1895.v = SR.13_104; a._v2.D.1895.v = SR.14_103; a$_v2$D1895$e$0_98 = a._v2.D.1895.e[0]; a$_v2$D1895$e$1_110 = a._v2.D.1895.e[1]; a$_v2$D1895$e$2_105 = a._v2.D.1895.e[2]; v1$D1895$e$0_99 = a._v1.D.1895.e[0]; v1$D1895$e$1_40 = a._v1.D.1895.e[1]; v1$D1895$e$2_95 = a._v1.D.1895.e[2]; v1$D1895$e$3_79 = a._v1.D.1895.e[3]; D.2043_5 = (double) a$_v2$D1895$e$3_82(D); <--- here D.2045_7 = (double) a$_v2$D1895$e$2_105; D.2047_9 = (double) a$_v2$D1895$e$1_110; D.2049_11 = (double) a$_v2$D1895$e$0_98; D.2051_13 = (double) v1$D1895$e$3_79; D.2053_15 = (double) v1$D1895$e$2_95; D.2055_17 = (double) v1$D1895$e$1_40; D.2057_19 = (double) v1$D1895$e$0_99; Needs tree expert. CC'd. -- ubizjak at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44900