This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/53366] wrong code generation by tree vectorizer using AVX
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 16 May 2012 17:15:58 +0000
- Subject: [Bug tree-optimization/53366] wrong code generation by tree vectorizer using AVX
- Auto-submitted: auto-generated
- References: <bug-53366-4@http.gcc.gnu.org/bugzilla/>
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.