------- Comment #2 from rguenth at gcc dot gnu dot org 2005-11-10 09:51 ------- Testcase:
void bar (float *pa, float *pb, float *pc) { int i; for (i = 0; i < 256; i++) { } } main1 (int n) { int i; float a[256] __attribute__ ((__aligned__(16))); float b[256] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57}; float c[256] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}; float *pa = a; float *pb = b; float *pc = c; for (i = 0; i < n; i++) { pa[i] = pb[i] * pc[i]; } bar (pa,pb,pc); } last rtl dump of main (43.ce3) shows: (insn 340 339 341 0 (parallel [ (set (reg:SI 109 vrsave) (unspec_volatile:SI [ (reg:SI 0 0) (reg:SI 109 vrsave) ] 30)) (clobber (reg:V4SI 77 0)) (clobber (reg:V4SI 78 1)) (clobber (reg:V4SI 90 13)) ]) -1 (nil) (expr_list:REG_DEAD (reg:SI 0 0) (expr_list:REG_UNUSED (reg:V4SI 90 13) (expr_list:REG_UNUSED (reg:V4SI 78 1) (expr_list:REG_UNUSED (reg:V4SI 77 0) (nil)))))) they appear after 40.flow2 for some reason. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24772