[llvm] [VP] Mark llvm.experimental.vp.splice as having no functional equivalent (PR #70647)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 30 04:14:53 PDT 2023


https://github.com/lukel97 created https://github.com/llvm/llvm-project/pull/70647

llvm.experimental.vp.splice has different semantics from
llvm.experimental.splice (since it takes uses the EVL arguments in a way other
than just masking the tail elements), so it shouldn't be expanded to the
unpredicated version.

Coincidentally there's no support for llvm.experimental.vp.splice in
ExpandVectorPredication, so it wasn't getting expanded, but we shouldn't mark
it as functionally equivalent anyway since there's other users of the property
now e.g. in VectorCombine.


>From 1607d6470f54a3ec899ceaa4197842936a682fa6 Mon Sep 17 00:00:00 2001
From: Luke Lau <luke at igalia.com>
Date: Mon, 30 Oct 2023 10:54:43 +0000
Subject: [PATCH] [VP] Mark llvm.experimental.vp.splice as having no functional
 equivalent

llvm.experimental.vp.splice has different semantics from
llvm.experimental.splice (since it takes uses the EVL arguments in a way other
than just masking the tail elements), so it shouldn't be expanded to the
unpredicated version.

Coincidentally there's no support for llvm.experimental.vp.splice in
ExpandVectorPredication, so it wasn't getting expanded, but we shouldn't mark
it as functionally equivalent anyway since there's other users of the property
now e.g. in VectorCombine.
---
 llvm/include/llvm/IR/VPIntrinsics.def | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/include/llvm/IR/VPIntrinsics.def b/llvm/include/llvm/IR/VPIntrinsics.def
index 55a68ff5768ddb0..0ca60bcfbb3d03f 100644
--- a/llvm/include/llvm/IR/VPIntrinsics.def
+++ b/llvm/include/llvm/IR/VPIntrinsics.def
@@ -699,7 +699,7 @@ VP_PROPERTY_NO_FUNCTIONAL
 END_REGISTER_VP(vp_merge, VP_MERGE)
 
 BEGIN_REGISTER_VP(experimental_vp_splice, 3, 5, EXPERIMENTAL_VP_SPLICE, -1)
-VP_PROPERTY_FUNCTIONAL_INTRINSIC(experimental_vector_splice)
+VP_PROPERTY_NO_FUNCTIONAL
 END_REGISTER_VP(experimental_vp_splice, EXPERIMENTAL_VP_SPLICE)
 
 ///// } Shuffles



More information about the llvm-commits mailing list