[llvm] [VPlan] Simplify select !c, x, y -> select c, y, x (PR #147268)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 8 00:55:50 PDT 2025
================
@@ -491,6 +485,15 @@ m_Select(const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) {
{Op0, Op1, Op2});
}
+template <typename Op0_t>
+inline match_combine_or<UnaryVPInstruction_match<Op0_t, VPInstruction::Not>,
+ AllBinaryRecipe_match<int_pred_ty<is_all_ones>, Op0_t,
+ Instruction::Xor, true>>
+m_Not(const Op0_t &Op0) {
----------------
lukel97 wrote:
> as it's clearer and doesn't require creating a constant.
Yeah I just ran into this, trying to create a constant in VPBuilder is quite tricky since it requires a) access to the VPlan b) inferring the type of the constant to be materialised
https://github.com/llvm/llvm-project/pull/147268
More information about the llvm-commits
mailing list