diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td index 0d9ed46c9cbe1..dc2f8e3b0420a 100644 --- a/llvm/include/llvm/IR/Intrinsics.td +++ b/llvm/include/llvm/IR/Intrinsics.td @@ -1437,14 +1437,14 @@ def int_vp_gather: DefaultAttrsIntrinsic<[ llvm_anyvector_ty], [ LLVMVectorOfAnyPointersToElt<0>, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, llvm_i32_ty], - [ IntrReadMem, IntrNoSync, IntrWillReturn, IntrArgMemOnly ]>; + [ IntrReadMem, IntrNoSync, IntrWillReturn]>; def int_vp_scatter: DefaultAttrsIntrinsic<[], [ llvm_anyvector_ty, LLVMVectorOfAnyPointersToElt<0>, LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>, llvm_i32_ty], - [ IntrArgMemOnly, IntrNoSync, IntrWillReturn ]>; // TODO allow IntrNoCapture for vectors of pointers + [ IntrNoSync, IntrWillReturn ]>; // TODO allow IntrNoCapture for vectors of pointers // Experimental strided memory accesses def int_experimental_vp_strided_store : DefaultAttrsIntrinsic<[], diff --git a/llvm/test/Transforms/GVN/vp_gather_scatter.ll b/llvm/test/Transforms/GVN/vp_gather_scatter.ll index d19ef7c5e1bdc..b6f78a63f8b67 100644 --- a/llvm/test/Transforms/GVN/vp_gather_scatter.ll +++ b/llvm/test/Transforms/GVN/vp_gather_scatter.ll @@ -1,13 +1,14 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -gvn -S < %s | FileCheck %s -; FIXME: We shouldn't delete the second vp.gather. +; Make sure we don't delete the second vp.gather. define @foo( %p, %x, %mask, i32 %vl) { ; CHECK-LABEL: @foo( ; CHECK-NEXT: [[A:%.*]] = call @llvm.vp.gather.nxv8i32.nxv8p0( [[P:%.*]], [[MASK:%.*]], i32 [[VL:%.*]]) ; CHECK-NEXT: [[B:%.*]] = call @llvm.vp.add.nxv8i32( [[A]], [[X:%.*]], [[MASK]], i32 [[VL]]) ; CHECK-NEXT: call void @llvm.vp.scatter.nxv8i32.nxv8p0( [[B]], [[P]], [[MASK]], i32 [[VL]]) -; CHECK-NEXT: ret [[A]] +; CHECK-NEXT: [[C:%.*]] = call @llvm.vp.gather.nxv8i32.nxv8p0( [[P]], [[MASK]], i32 [[VL]]) +; CHECK-NEXT: ret [[C]] ; %a = call @llvm.vp.gather.nxv8i32.nxv8p0( %p, %mask, i32 %vl) %b = call @llvm.vp.add.nxv8i32( %a, %x, %mask, i32 %vl)