@@ -111,6 +111,10 @@ static void transferDecorations(Value &NewVal, VPIntrinsic &VPI) {
111111// / OldVP gets erased.
112112static void replaceOperation (Value &NewOp, VPIntrinsic &OldOp) {
113113 transferDecorations (NewOp, OldOp);
114+
115+ if (isa<Instruction>(NewOp) && !NewOp.hasName () && OldOp.hasName ())
116+ NewOp.takeName (&OldOp);
117+
114118 OldOp.replaceAllUsesWith (&NewOp);
115119 OldOp.eraseFromParent ();
116120}
@@ -253,7 +257,7 @@ bool CachingVPExpander::expandPredicationInBinaryOperator(IRBuilder<> &Builder,
253257 }
254258 }
255259
256- Value *NewBinOp = Builder.CreateBinOp (OC, Op0, Op1, VPI. getName () );
260+ Value *NewBinOp = Builder.CreateBinOp (OC, Op0, Op1);
257261
258262 replaceOperation (*NewBinOp, VPI);
259263 return true ;
@@ -268,8 +272,8 @@ bool CachingVPExpander::expandPredicationToIntCall(IRBuilder<> &Builder,
268272 for (unsigned i = 0 ; i < VPI.getNumOperands () - 3 ; i++) {
269273 Argument.push_back (VPI.getOperand (i));
270274 }
271- Value *NewOp = Builder. CreateIntrinsic (FID. value (), {VPI. getType ()}, Argument,
272- /* FMFSource= */ nullptr , VPI.getName () );
275+ Value *NewOp =
276+ Builder. CreateIntrinsic (FID. value (), { VPI.getType ()}, Argument );
273277 replaceOperation (*NewOp, VPI);
274278 return true ;
275279}
@@ -288,9 +292,8 @@ bool CachingVPExpander::expandPredicationToFPCall(
288292 for (unsigned i = 0 ; i < VPI.getNumOperands () - 3 ; i++) {
289293 Argument.push_back (VPI.getOperand (i));
290294 }
291- Value *NewOp = Builder.CreateIntrinsic (
292- UnpredicatedIntrinsicID, {VPI.getType ()}, Argument,
293- /* FMFSource=*/ nullptr , VPI.getName ());
295+ Value *NewOp = Builder.CreateIntrinsic (UnpredicatedIntrinsicID,
296+ {VPI.getType ()}, Argument);
294297 replaceOperation (*NewOp, VPI);
295298 return true ;
296299 }
@@ -305,10 +308,9 @@ bool CachingVPExpander::expandPredicationToFPCall(
305308 VPI.getModule (), UnpredicatedIntrinsicID, {VPI.getType ()});
306309 Value *NewOp;
307310 if (Intrinsic::isConstrainedFPIntrinsic (UnpredicatedIntrinsicID))
308- NewOp =
309- Builder.CreateConstrainedFPCall (Fn, {Op0, Op1, Op2}, VPI.getName ());
311+ NewOp = Builder.CreateConstrainedFPCall (Fn, {Op0, Op1, Op2});
310312 else
311- NewOp = Builder.CreateCall (Fn, {Op0, Op1, Op2}, VPI. getName () );
313+ NewOp = Builder.CreateCall (Fn, {Op0, Op1, Op2});
312314 replaceOperation (*NewOp, VPI);
313315 return true ;
314316 }
@@ -393,9 +395,8 @@ bool CachingVPExpander::expandPredicationToCastIntrinsic(IRBuilder<> &Builder,
393395 Intrinsic::ID VPID = VPI.getIntrinsicID ();
394396 unsigned CastOpcode = VPIntrinsic::getFunctionalOpcodeForVP (VPID).value ();
395397 assert (Instruction::isCast (CastOpcode));
396- Value *CastOp =
397- Builder.CreateCast (Instruction::CastOps (CastOpcode), VPI.getOperand (0 ),
398- VPI.getType (), VPI.getName ());
398+ Value *CastOp = Builder.CreateCast (Instruction::CastOps (CastOpcode),
399+ VPI.getOperand (0 ), VPI.getType ());
399400
400401 replaceOperation (*CastOp, VPI);
401402 return true ;
@@ -454,8 +455,8 @@ bool CachingVPExpander::expandPredicationInMemoryIntrinsic(IRBuilder<> &Builder,
454455 auto *ElementType = cast<VectorType>(VPI.getType ())->getElementType ();
455456 NewMemoryInst = Builder.CreateMaskedGather (
456457 VPI.getType (), PtrParam,
457- AlignOpt.value_or (DL.getPrefTypeAlign (ElementType)), MaskParam, nullptr ,
458- VPI. getName () );
458+ AlignOpt.value_or (DL.getPrefTypeAlign (ElementType)), MaskParam,
459+ nullptr );
459460 break ;
460461 }
461462 }
@@ -577,15 +578,15 @@ bool CachingVPExpander::expandPredication(VPIntrinsic &VPI) {
577578 default :
578579 break ;
579580 case Intrinsic::vp_fneg: {
580- Value *NewNegOp = Builder.CreateFNeg (VPI.getOperand (0 ), VPI. getName () );
581+ Value *NewNegOp = Builder.CreateFNeg (VPI.getOperand (0 ));
581582 replaceOperation (*NewNegOp, VPI);
582583 return NewNegOp;
583584 }
584585 case Intrinsic::vp_select:
585586 case Intrinsic::vp_merge: {
586587 assert (maySpeculateLanes (VPI) || VPI.canIgnoreVectorLengthParam ());
587588 Value *NewSelectOp = Builder.CreateSelect (
588- VPI.getOperand (0 ), VPI.getOperand (1 ), VPI.getOperand (2 ), VPI. getName () );
589+ VPI.getOperand (0 ), VPI.getOperand (1 ), VPI.getOperand (2 ));
589590 replaceOperation (*NewSelectOp, VPI);
590591 return NewSelectOp;
591592 }
0 commit comments