Lines Matching refs:Intrinsic
3214 /// visitTargetIntrinsic - Lower a call of a target intrinsic to an INTRINSIC
3217 unsigned Intrinsic) {
3223 if (HasChain) { // If this intrinsic has side-effects, chainify it.
3234 bool IsTgtIntrinsic = TLI.getTgtMemIntrinsic(Info, I, Intrinsic);
3236 // Add the intrinsic ID as an integer operand if it's not a target intrinsic.
3239 Ops.push_back(DAG.getConstant(Intrinsic, TLI.getPointerTy()));
3245 "Intrinsic uses a non-legal type?");
3254 "Intrinsic uses a non-legal type?");
3266 // This is target intrinsic that touches memory
3370 /// visitExp - Lower an exp intrinsic. Handles the special sequences for
3496 /// visitLog - Lower a log intrinsic. Handles the special sequences for
3606 /// visitLog2 - Lower a log2 intrinsic. Handles the special sequences for
3715 /// visitLog10 - Lower a log10 intrinsic. Handles the special sequences for
3817 /// visitExp2 - Lower an exp2 intrinsic. Handles the special sequences for
3931 /// visitPow - Lower a pow intrinsic. Handles the special sequences for
4066 /// ExpandPowI - Expand a llvm.powi intrinsic.
4215 /// visitIntrinsicCall - Lower the call to the specified intrinsic function. If
4219 SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
4223 switch (Intrinsic) {
4225 // By default, turn this into a target intrinsic node.
4226 visitTargetIntrinsic(I, Intrinsic);
4228 case Intrinsic::vastart: visitVAStart(I); return 0;
4229 case Intrinsic::vaend: visitVAEnd(I); return 0;
4230 case Intrinsic::vacopy: visitVACopy(I); return 0;
4231 case Intrinsic::returnaddress:
4235 case Intrinsic::frameaddress:
4239 case Intrinsic::setjmp:
4241 case Intrinsic::longjmp:
4243 case Intrinsic::memcpy: {
4261 case Intrinsic::memset: {
4276 case Intrinsic::memmove: {
4294 case Intrinsic::dbg_declare: {
4371 case Intrinsic::dbg_value: {
4434 case Intrinsic::eh_exception: {
4447 case Intrinsic::eh_selector: {
4472 case Intrinsic::eh_typeid_for: {
4481 case Intrinsic::eh_return_i32:
4482 case Intrinsic::eh_return_i64:
4490 case Intrinsic::eh_unwind_init:
4493 case Intrinsic::eh_dwarf_cfa: {
4508 case Intrinsic::eh_sjlj_callsite: {
4517 case Intrinsic::eh_sjlj_setjmp: {
4522 case Intrinsic::eh_sjlj_longjmp: {
4527 case Intrinsic::eh_sjlj_dispatch_setup: {
4533 case Intrinsic::x86_mmx_pslli_w:
4534 case Intrinsic::x86_mmx_pslli_d:
4535 case Intrinsic::x86_mmx_pslli_q:
4536 case Intrinsic::x86_mmx_psrli_w:
4537 case Intrinsic::x86_mmx_psrli_d:
4538 case Intrinsic::x86_mmx_psrli_q:
4539 case Intrinsic::x86_mmx_psrai_w:
4540 case Intrinsic::x86_mmx_psrai_d: {
4543 visitTargetIntrinsic(I, Intrinsic);
4548 switch (Intrinsic) {
4549 case Intrinsic::x86_mmx_pslli_w:
4550 NewIntrinsic = Intrinsic::x86_mmx_psll_w;
4552 case Intrinsic::x86_mmx_pslli_d:
4553 NewIntrinsic = Intrinsic::x86_mmx_psll_d;
4555 case Intrinsic::x86_mmx_pslli_q:
4556 NewIntrinsic = Intrinsic::x86_mmx_psll_q;
4558 case Intrinsic::x86_mmx_psrli_w:
4559 NewIntrinsic = Intrinsic::x86_mmx_psrl_w;
4561 case Intrinsic::x86_mmx_psrli_d:
4562 NewIntrinsic = Intrinsic::x86_mmx_psrl_d;
4564 case Intrinsic::x86_mmx_psrli_q:
4565 NewIntrinsic = Intrinsic::x86_mmx_psrl_q;
4567 case Intrinsic::x86_mmx_psrai_w:
4568 NewIntrinsic = Intrinsic::x86_mmx_psra_w;
4570 case Intrinsic::x86_mmx_psrai_d:
4571 NewIntrinsic = Intrinsic::x86_mmx_psra_d;
4573 default: llvm_unreachable("Impossible intrinsic"); // Can't reach here.
4593 case Intrinsic::convertff:
4594 case Intrinsic::convertfsi:
4595 case Intrinsic::convertfui:
4596 case Intrinsic::convertsif:
4597 case Intrinsic::convertuif:
4598 case Intrinsic::convertss:
4599 case Intrinsic::convertsu:
4600 case Intrinsic::convertus:
4601 case Intrinsic::convertuu: {
4603 switch (Intrinsic) {
4604 case Intrinsic::convertff: Code = ISD::CVT_FF; break;
4605 case Intrinsic::convertfsi: Code = ISD::CVT_FS; break;
4606 case Intrinsic::convertfui: Code = ISD::CVT_FU; break;
4607 case Intrinsic::convertsif: Code = ISD::CVT_SF; break;
4608 case Intrinsic::convertuif: Code = ISD::CVT_UF; break;
4609 case Intrinsic::convertss: Code = ISD::CVT_SS; break;
4610 case Intrinsic::convertsu: Code = ISD::CVT_SU; break;
4611 case Intrinsic::convertus: Code = ISD::CVT_US; break;
4612 case Intrinsic::convertuu: Code = ISD::CVT_UU; break;
4625 case Intrinsic::sqrt:
4630 case Intrinsic::powi:
4634 case Intrinsic::sin:
4639 case Intrinsic::cos:
4644 case Intrinsic::log:
4647 case Intrinsic::log2:
4650 case Intrinsic::log10:
4653 case Intrinsic::exp:
4656 case Intrinsic::exp2:
4659 case Intrinsic::pow:
4662 case Intrinsic::fma:
4669 case Intrinsic::convert_to_fp16:
4673 case Intrinsic::convert_from_fp16:
4677 case Intrinsic::pcmarker: {
4682 case Intrinsic::readcyclecounter: {
4691 case Intrinsic::bswap:
4696 case Intrinsic::cttz: {
4702 case Intrinsic::ctlz: {
4708 case Intrinsic::ctpop: {
4714 case Intrinsic::stacksave: {
4722 case Intrinsic::stackrestore: {
4727 case Intrinsic::stackprotector: {
4749 case Intrinsic::objectsize: {
4766 case Intrinsic::var_annotation:
4770 case Intrinsic::init_trampoline: {
4789 case Intrinsic::gcroot:
4798 case Intrinsic::gcread:
4799 case Intrinsic::gcwrite:
4802 case Intrinsic::flt_rounds:
4806 case Intrinsic::expect: {
4812 case Intrinsic::trap: {
4828 case Intrinsic::uadd_with_overflow:
4830 case Intrinsic::sadd_with_overflow:
4832 case Intrinsic::usub_with_overflow:
4834 case Intrinsic::ssub_with_overflow:
4836 case Intrinsic::umul_with_overflow:
4838 case Intrinsic::smul_with_overflow:
4841 case Intrinsic::prefetch: {
4860 case Intrinsic::memory_barrier: {
4869 case Intrinsic::atomic_cmp_swap: {
4883 case Intrinsic::atomic_load_add:
4885 case Intrinsic::atomic_load_sub:
4887 case Intrinsic::atomic_load_or:
4889 case Intrinsic::atomic_load_xor:
4891 case Intrinsic::atomic_load_and:
4893 case Intrinsic::atomic_load_nand:
4895 case Intrinsic::atomic_load_max:
4897 case Intrinsic::atomic_load_min:
4899 case Intrinsic::atomic_load_umin:
4901 case Intrinsic::atomic_load_umax:
4903 case Intrinsic::atomic_swap:
4906 case Intrinsic::invariant_start:
4907 case Intrinsic::lifetime_start:
4911 case Intrinsic::invariant_end:
4912 case Intrinsic::lifetime_end: