https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97891
--- Comment #6 from Hongtao.liu <crazylht at gmail dot com> --- cat test.c typedef struct { long a; long b; }TI; extern TI r; void foo () { r.a = 0; r.b = 0; } gcc -Ofast -march=cascadelake -S got foo: .LFB0: .cfi_startproc movq $0, r(%rip) movq $0, r+8(%rip) ret .cfi_endproc .LFE0: SLP failed to vectorize due to cost test1.c:10:7: note: === vect_slp_analyze_instance_alignment === test1.c:10:7: note: vect_compute_data_ref_alignment: test1.c:10:7: note: can't force alignment of ref: r.a test1.c:10:7: note: === vect_slp_analyze_instance_dependence === test1.c:10:7: note: === vect_slp_analyze_operations === test1.c:10:7: note: ==> examining statement: r.a = 0; test1.c:10:7: note: vect_is_simple_use: operand 0, type of def: constant test1.c:10:7: note: Vectorizing an unaligned access. test1.c:10:7: note: vect_model_store_cost: unaligned supported by hardware. test1.c:10:7: note: vect_model_store_cost: inside_cost = 16, prologue_cost = 0 . test1.c:10:7: note: === vect_bb_partition_graph === test1.c:10:7: note: ***** Analysis succeeded with vector mode V16QI test1.c:10:7: note: SLPing BB part 0x48bc3d0 0 1 times unaligned_store (misalign -1) costs 16 in body 0x48bc3d0 <unknown> 1 times vector_load costs 12 in prologue 0x48bbf50 0 1 times scalar_store costs 12 in body 0x48bbf50 0 1 times scalar_store costs 12 in body test1.c:10:7: note: Cost model analysis: Vector inside of basic block cost: 16 Vector prologue cost: 12 Vector epilogue cost: 0 Scalar cost of basic block: 24 Shouldn't cost of zero vector CTOR be different from normal ones? Since x86 could have pxor, similar for aarch64 (eor??).