<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello all,<div><br></div><div>Currently, undef is used as a don't-care value for vector operations, which causes hard problems.</div><div>For example, a shufflevector sometimes cannot be optimized away (<a href="https://bugs.llvm.org/show_bug.cgi?id=44185" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=44185</a>). The reason is that undef is not undefined enough.</div><div><br></div><div>To avoid such problem, I'd like to suggest using poison constant for vector operations' placeholder instead.</div><div>I made a patch that updates InstCombine's SimplifyDemandedVectorElts here, with a detailed description: <a href="https://reviews.llvm.org/D93586">https://reviews.llvm.org/D93586</a></div><div><br></div><div>Thanks,</div><div>Juneyoung</div></div></div></div></div>