https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118832
--- Comment #7 from Li Pan <pan2.li at intel dot com> --- Thanks Jeff and Robin, that makes much sense to me. However, I got a little confused about the vec_duplicate with define_insn_and_split. As I learned, define_insn_and_split equals define_insn + define_split + define_expand, but for vec_duplicate, we may not split anything here. So I bet there is some other reason to take define_insn_and_split here?