[Bug tree-optimization/53366] wrong code generation by tree vectorizer using AVX
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed May 16 17:26:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53366
--- Comment #4 from Uros Bizjak <ubizjak at gmail dot com> 2012-05-16 17:15:58 UTC ---
foo (struct U * restrict p1, const complex double * restrict x)
{
vector(4) double vect_var_.41;
vector(4) double vect_var_.40;
vector(4) double vect_var_.39;
vector(4) double vect_var_.38;
vector(4) double vect_var_.37;
vector(4) double vect_var_.32;
vector(4) double vect_var_.31;
vector(4) double vect_var_.30;
vector(4) double * restrict vect_p.26;
vector(4) double vect_var_.25;
<bb 2>:
vect_var_.37_84 = MEM[(const complex double *)x_5(D)];
vect_var_.38_86 = MEM[(const complex double *)x_5(D) + 32B];
vect_var_.39_88 = MEM[(const complex double *)x_5(D) + 64B];
vect_var_.25_72 = MEM[(const complex double *)x_5(D) + 96B];
vect_var_.30_76 = MEM[(struct U *)p1_14(D)];
vect_p.26_77 = p1_14(D) + 32;
vect_var_.31_78 = MEM[(struct U *)p1_14(D) + 32B];
vect_p.26_79 = &MEM[(void *)p1_14(D) + 64B];
vect_var_.32_80 = MEM[(struct U *)p1_14(D) + 64B];
vect_var_.40_89 = vect_var_.30_76 + vect_var_.37_84;
vect_var_.40_90 = vect_var_.31_78 + vect_var_.38_86;
vect_var_.40_91 = vect_var_.32_80 + vect_var_.39_88;
vect_var_.41_92 = vect_var_.38_86 + vect_var_.40_89;
vect_var_.41_93 = vect_var_.39_88 + vect_var_.40_90;
vect_var_.41_94 = vect_var_.25_72 + vect_var_.40_91;
MEM[(struct U *)p1_14(D)] = vect_var_.41_92;
MEM[(struct U *)p1_14(D) + 32B] = vect_var_.41_93;
MEM[(struct U *)p1_14(D) + 64B] = vect_var_.41_94;
return;
}
It looks to me that x is handled in a totally wrong way.
More information about the Gcc-bugs
mailing list