------- Comment #15 from rguenth at gcc dot gnu dot org 2009-05-27 11:01 ------- The issue is not the temporary array but the way how CSE works. In S2 there are simply no CSE opportunities - for example consider
t1 = a * b; t2 = t1 * c; t3 = a * c; t4 = t3 * b; The current CSE implementation cannot see the opportunity here. (*b_3(D))[79] = (*b_3(D))[1] * (*s_1(D))[2] * (*s_1(D))[5] * (*s_1(D))[8] * (*s_1(D))[10]; (*b_3(D))[80] = (*b_9(D))[0] * (*s_1(D))[2] * (*s_1(D))[5] * (*s_1(D))[8] * (*s_1(D))[11]; I will try to do something here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40168