https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69010
Bug ID: 69010 Summary: Boolean vector constant with a scalar mode is expanded incorrectly Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ienkovich at gcc dot gnu.org Target Milestone: --- Created attachment 37102 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37102&action=edit Reproducer Attached testcase fails when is vectorized for AVX-512: >gcc test.c -O2 -ftree-vectorize -march=skylake-avx512 >sde -- ./a.out libc: Fatal signal 6 (SIGABRT), code -6 in tid 13272 Aborted (core dumped) Looking into expand dump we can see vector constant is translated incorrectly: ;; vect__14.9_99 = MASK_LOAD (b_12(D), 4B, { -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); (insn 45 44 46 (set (reg:HI 139) (const_int 255 [0xff])) test.c:10 -1 (nil)) (insn 46 45 0 (set (reg:V16SI 120 [ vect__14.9 ]) (vec_merge:V16SI (mem:V16SI (reg/v/f:DI 125 [ b ]) [1 MEM[(int *)b_12(D)]+0 S64 A8]) (reg:V16SI 120 [ vect__14.9 ]) (reg:HI 139))) test.c:10 -1 (nil))