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
167 const SimplifyAction Action = [II]() -> SimplifyAction { in simplifyNvvmIntrinsic()
168 switch (II->getIntrinsicID()) { in simplifyNvvmIntrinsic()
319 StringRef Attr = II->getFunction() in simplifyNvvmIntrinsic()
331 SmallVector<Value *, 4> Args(II->arg_operands()); in simplifyNvvmIntrinsic()
334 Type *Tys[] = {II->getArgOperand(0)->getType()}; in simplifyNvvmIntrinsic()
336 Intrinsic::getDeclaration(II->getModule(), *Action.IID, Tys), Args); in simplifyNvvmIntrinsic()
341 return BinaryOperator::Create(*Action.BinaryOp, II->getArgOperand(0), in simplifyNvvmIntrinsic()
342 II->getArgOperand(1), II->getName()); in simplifyNvvmIntrinsic()
346 return CastInst::Create(*Action.CastOp, II->getArgOperand(0), II->getType(), in simplifyNvvmIntrinsic()
347 II->getName()); in simplifyNvvmIntrinsic()
357 Instruction::FDiv, ConstantFP::get(II->getArgOperand(0)->getType(), 1), in simplifyNvvmIntrinsic()
358 II->getArgOperand(0), II->getName()); in simplifyNvvmIntrinsic()
364 NVPTXTTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const { in instCombineIntrinsic()
365 if (Instruction *I = simplifyNvvmIntrinsic(&II, IC)) { in instCombineIntrinsic()