diff --git a/llvm/include/llvm/IR/VPIntrinsics.def b/llvm/include/llvm/IR/VPIntrinsics.def --- a/llvm/include/llvm/IR/VPIntrinsics.def +++ b/llvm/include/llvm/IR/VPIntrinsics.def @@ -210,28 +210,34 @@ ///// Memory Operations { // llvm.vp.store(ptr,val,mask,vlen) BEGIN_REGISTER_VP_INTRINSIC(vp_store, 2, 3) -BEGIN_REGISTER_VP_SDNODE(VP_STORE, 0, vp_store, 3, 4) +// chain = VP_STORE chain,val,base,offset,mask,evl +BEGIN_REGISTER_VP_SDNODE(VP_STORE, 0, vp_store, 4, 5) HANDLE_VP_TO_OPC(Store) HANDLE_VP_TO_INTRIN(masked_store) HANDLE_VP_IS_MEMOP(vp_store, 1, 0) END_REGISTER_VP(vp_store, VP_STORE) // llvm.vp.scatter(ptr,val,mask,vlen) -BEGIN_REGISTER_VP(vp_scatter, 2, 3, VP_SCATTER, 0) +BEGIN_REGISTER_VP_INTRINSIC(vp_scatter, 2, 3) +// chain = VP_SCATTER chain,val,base,indices,scale,mask,evl +BEGIN_REGISTER_VP_SDNODE(VP_SCATTER, -1, vp_scatter, 5, 6) HANDLE_VP_TO_INTRIN(masked_scatter) HANDLE_VP_IS_MEMOP(vp_scatter, 1, 0) END_REGISTER_VP(vp_scatter, VP_SCATTER) // llvm.vp.load(ptr,mask,vlen) BEGIN_REGISTER_VP_INTRINSIC(vp_load, 1, 2) -BEGIN_REGISTER_VP_SDNODE(VP_LOAD, -1, vp_load, 2, 3) +// val,chain = VP_LOAD chain,base,offset,mask,evl +BEGIN_REGISTER_VP_SDNODE(VP_LOAD, -1, vp_load, 3, 4) HANDLE_VP_TO_OPC(Load) HANDLE_VP_TO_INTRIN(masked_load) HANDLE_VP_IS_MEMOP(vp_load, 0, None) END_REGISTER_VP(vp_load, VP_LOAD) // llvm.vp.gather(ptr,mask,vlen) -BEGIN_REGISTER_VP(vp_gather, 1, 2, VP_GATHER, -1) +BEGIN_REGISTER_VP_INTRINSIC(vp_gather, 1, 2) +// val,chain = VP_GATHER chain,base,indices,scale,mask,evl +BEGIN_REGISTER_VP_SDNODE(VP_GATHER, -1, vp_gather, 4, 5) HANDLE_VP_TO_INTRIN(masked_gather) HANDLE_VP_IS_MEMOP(vp_gather, 0, None) END_REGISTER_VP(vp_gather, VP_GATHER)