Issue 173036
Summary [VectorCombine] foldShuffleOfSelects - support multiple uses of shuffled binop
Labels good first issue, missed-optimization, llvm::vectorcombine
Assignees
Reporter RKSimon
    The "(shuffle(select(c1,t1,f1)), (select(c2,t2,f2)), m)" -> "(select (shuffle c1,c2,m), (shuffle t1,t2,m), (shuffle f1,f2,m))" fold is currently limited by a mOneUse check:

https://github.com/llvm/llvm-project/blob/ba55ef32ef9214804b421090767a27f14abd9439/llvm/lib/Transforms/Vectorize/VectorCombine.cpp#L2547-L2554

We should try to remove the m_OneUse limits and adjust the NewCost accordingly - similar to what happens in foldShuffleOfCastops

A large portion of this task will be creating test coverage.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to