Lines Matching refs:II
24 static bool readsThreadIndex(const IntrinsicInst *II) { in readsThreadIndex() argument
25 switch (II->getIntrinsicID()) { in readsThreadIndex()
34 static bool readsLaneId(const IntrinsicInst *II) { in readsLaneId() argument
35 return II->getIntrinsicID() == Intrinsic::nvvm_read_ptx_sreg_laneid; in readsLaneId()
39 static bool isNVVMAtomic(const IntrinsicInst *II) { in isNVVMAtomic() argument
40 switch (II->getIntrinsicID()) { in isNVVMAtomic()
95 if (const IntrinsicInst *II = dyn_cast<IntrinsicInst>(I)) { in isSourceOfDivergence() local
97 if (readsThreadIndex(II) || readsLaneId(II)) in isSourceOfDivergence()
101 if (isNVVMAtomic(II)) in isSourceOfDivergence()
115 static Instruction *simplifyNvvmIntrinsic(IntrinsicInst *II, InstCombiner &IC) { in simplifyNvvmIntrinsic() argument
171 const SimplifyAction Action = [II]() -> SimplifyAction { in simplifyNvvmIntrinsic()
172 switch (II->getIntrinsicID()) { in simplifyNvvmIntrinsic()
374 II->getFunction()->getFnAttribute(AttrName).getValueAsString(); in simplifyNvvmIntrinsic()
384 SmallVector<Value *, 4> Args(II->args()); in simplifyNvvmIntrinsic()
387 Type *Tys[] = {II->getArgOperand(0)->getType()}; in simplifyNvvmIntrinsic()
389 Intrinsic::getDeclaration(II->getModule(), *Action.IID, Tys), Args); in simplifyNvvmIntrinsic()
394 return BinaryOperator::Create(*Action.BinaryOp, II->getArgOperand(0), in simplifyNvvmIntrinsic()
395 II->getArgOperand(1), II->getName()); in simplifyNvvmIntrinsic()
399 return CastInst::Create(*Action.CastOp, II->getArgOperand(0), II->getType(), in simplifyNvvmIntrinsic()
400 II->getName()); in simplifyNvvmIntrinsic()
410 Instruction::FDiv, ConstantFP::get(II->getArgOperand(0)->getType(), 1), in simplifyNvvmIntrinsic()
411 II->getArgOperand(0), II->getName()); in simplifyNvvmIntrinsic()
417 NVPTXTTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const { in instCombineIntrinsic()
418 if (Instruction *I = simplifyNvvmIntrinsic(&II, IC)) { in instCombineIntrinsic()