https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106704
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target|X86_64 |x86_64-*-* Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- The issue is that vector(8) int _5; _6 = _5 < { 0, 0, 0, 0, 0, 0, 0, 0 }; isn't supported with just AVX. It's probably a bug in vector lowering, (define_expand "vcond<V_256:mode><VF_256:mode>" [(set (match_operand:V_256 0 "register_operand") (if_then_else:V_256 (match_operator 3 "" [(match_operand:VF_256 4 "nonimmediate_operand") (match_operand:VF_256 5 "nonimmediate_operand")]) (match_operand:V_256 1 "general_operand") (match_operand:V_256 2 "general_operand")))] "TARGET_AVX && (GET_MODE_NUNITS (<V_256:MODE>mode) == GET_MODE_NUNITS (<VF_256:MODE>mode))" should have been used here. I will have a look.