reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
358 assert(needsPromotionToI32(I.getType()) && 361 IRBuilder<> Builder(&I); 362 Builder.SetCurrentDebugLocation(I.getDebugLoc()); 364 Type *I32Ty = getI32Ty(Builder, I.getType()); 370 if (isSigned(I)) { 371 ExtOp1 = Builder.CreateSExt(I.getOperand(1), I32Ty); 372 ExtOp2 = Builder.CreateSExt(I.getOperand(2), I32Ty); 374 ExtOp1 = Builder.CreateZExt(I.getOperand(1), I32Ty); 375 ExtOp2 = Builder.CreateZExt(I.getOperand(2), I32Ty); 377 ExtRes = Builder.CreateSelect(I.getOperand(0), ExtOp1, ExtOp2); 378 TruncRes = Builder.CreateTrunc(ExtRes, I.getType()); 380 I.replaceAllUsesWith(TruncRes); 381 I.eraseFromParent();