------- Comment #7 from rguenth at gcc dot gnu dot org 2010-04-17 11:11 ------- We now have basic-block vectorization but it still works on memory accesses (visible on the gimple level) only. So it doesn't handle
add1 (ss1 a, ss1 b) { float D.3164; float D.3163; float b$imag; float b$real; float a$imag; float a$real; ss1 D.3154; <bb 2>: a$real_4 = REALPART_EXPR <a_1(D)>; a$imag_5 = IMAGPART_EXPR <a_1(D)>; b$real_6 = REALPART_EXPR <b_2(D)>; b$imag_7 = IMAGPART_EXPR <b_2(D)>; D.3163_8 = a$real_4 + b$real_6; D.3164_9 = a$imag_5 + b$imag_7; D.3154_3 = COMPLEX_EXPR <D.3163_8, D.3164_9>; return D.3154_3; } though maybe it could be teached to see REAL/IMAG_PART exprs as loads and COMPLEX_EXPR as store. Ira? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |irar at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31485