Lines Matching refs:Intrinsic
176 /// \arg IntrinsicID The ID for the Intrinsic we wish to generate.
180 /// \returns The result (i.e. sum/product) returned by the intrinsic.
182 const llvm::Intrinsic::ID IntrinsicID,
224 Intrinsic::ID inst = (BuiltinID == Builtin::BI__builtin_va_end) ?
225 Intrinsic::vaend : Intrinsic::vastart;
236 return RValue::get(Builder.CreateCall2(CGM.getIntrinsic(Intrinsic::vacopy),
296 Value *F = CGM.getIntrinsic(Intrinsic::cttz, ArgType);
313 Value *F = CGM.getIntrinsic(Intrinsic::ctlz, ArgType);
330 Value *F = CGM.getIntrinsic(Intrinsic::cttz, ArgType);
351 Value *F = CGM.getIntrinsic(Intrinsic::ctpop, ArgType);
367 Value *F = CGM.getIntrinsic(Intrinsic::ctpop, ArgType);
380 Value *FnExpect = CGM.getIntrinsic(Intrinsic::expect, ArgType);
392 Value *F = CGM.getIntrinsic(Intrinsic::bswap, ArgType);
412 Value *F = CGM.getIntrinsic(Intrinsic::objectsize, ResType);
423 Value *F = CGM.getIntrinsic(Intrinsic::prefetch);
427 Value *F = CGM.getIntrinsic(Intrinsic::readcyclecounter);
431 Value *F = CGM.getIntrinsic(Intrinsic::trap);
435 Value *F = CGM.getIntrinsic(Intrinsic::debugtrap);
458 Value *F = CGM.getIntrinsic(Intrinsic::powi, ArgType);
723 Value *F = CGM.getIntrinsic(Intrinsic::eh_dwarf_cfa);
730 Value *F = CGM.getIntrinsic(Intrinsic::returnaddress);
736 Value *F = CGM.getIntrinsic(Intrinsic::frameaddress);
773 ? Intrinsic::eh_return_i32
774 : Intrinsic::eh_return_i64);
784 Value *F = CGM.getIntrinsic(Intrinsic::eh_unwind_init);
818 Builder.CreateCall(CGM.getIntrinsic(Intrinsic::frameaddress),
824 Builder.CreateCall(CGM.getIntrinsic(Intrinsic::stacksave));
830 Value *F = CGM.getIntrinsic(Intrinsic::eh_sjlj_setjmp);
839 Builder.CreateCall(CGM.getIntrinsic(Intrinsic::eh_sjlj_longjmp), Buf);
1032 // synchonization, not device I/O or anything like that). This intrinsic
1296 // Transform a call to pow* into a @llvm.pow.* intrinsic call.
1302 Value *F = CGM.getIntrinsic(Intrinsic::pow, ArgType);
1313 // Rewrite fma to intrinsic.
1316 Value *F = CGM.getIntrinsic(Intrinsic::fma, ArgType);
1340 llvm::Value *F = CGM.getIntrinsic(llvm::Intrinsic::annotation,
1385 llvm::Intrinsic::ID IntrinsicId;
1393 IntrinsicId = llvm::Intrinsic::uadd_with_overflow;
1400 IntrinsicId = llvm::Intrinsic::usub_with_overflow;
1446 llvm::Intrinsic::ID IntrinsicId;
1452 IntrinsicId = llvm::Intrinsic::uadd_with_overflow;
1457 IntrinsicId = llvm::Intrinsic::usub_with_overflow;
1462 IntrinsicId = llvm::Intrinsic::umul_with_overflow;
1467 IntrinsicId = llvm::Intrinsic::sadd_with_overflow;
1472 IntrinsicId = llvm::Intrinsic::ssub_with_overflow;
1477 IntrinsicId = llvm::Intrinsic::smul_with_overflow;
1507 // See if we have a target specific intrinsic.
1509 Intrinsic::ID IntrinsicID = Intrinsic::not_intrinsic;
1512 IntrinsicID = Intrinsic::getIntrinsicForGCCBuiltin(Prefix, Name);
1514 if (IntrinsicID != Intrinsic::not_intrinsic) {
1534 // know that the generated intrinsic gets a ConstantInt.
1542 // If the intrinsic arg type is different from the builtin arg type
1734 // Determine the type of this overloaded NEON intrinsic.
1784 F = CGM.getIntrinsic(Intrinsic::aarch64_neon_vacgeq);
1786 F = CGM.getIntrinsic(Intrinsic::arm_neon_vacgeq);
1798 F = CGM.getIntrinsic(Intrinsic::aarch64_neon_vacgtq);
1800 F = CGM.getIntrinsic(Intrinsic::arm_neon_vacgtq);
1869 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
1875 // LLVM's fma intrinsic puts the accumulator in the last position, but the
1876 // AArch64 intrinsic has it first.
1881 Int = Intrinsic::aarch64_neon_vmaxnm;
1886 Int = Intrinsic::aarch64_neon_vminnm;
1891 Int = Intrinsic::aarch64_neon_vpmaxnm;
1896 Int = Intrinsic::aarch64_neon_vpminnm;
1900 Int = usgn ? Intrinsic::arm_neon_vpmaxu : Intrinsic::arm_neon_vpmaxs;
1904 Int = usgn ? Intrinsic::arm_neon_vpminu : Intrinsic::arm_neon_vpmins;
1908 Int = Intrinsic::arm_neon_vpadd;
1913 Int = Intrinsic::aarch64_neon_vmulx;
1936 Function *F = CGM.getIntrinsic(Intrinsic::arm_ldrexd);
1962 Function *F = CGM.getIntrinsic(Intrinsic::arm_ldrex, LoadAddr->getType());
1976 Function *F = CGM.getIntrinsic(Intrinsic::arm_strexd);
2010 Function *F = CGM.getIntrinsic(Intrinsic::arm_strex, StoreAddr->getType());
2015 Function *F = CGM.getIntrinsic(Intrinsic::arm_clrex);
2131 unsigned Int = usgn ? Intrinsic::arm_vcvtru : Intrinsic::arm_vcvtr;
2133 // Call the appropriate intrinsic.
2138 // Determine the type of this overloaded NEON intrinsic.
2154 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vbsl, Ty),
2158 Int = usgn ? Intrinsic::arm_neon_vabdu : Intrinsic::arm_neon_vabds;
2162 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vabs, Ty),
2165 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vaddhn, Ty),
2170 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vacged);
2176 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vacgeq);
2182 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vacgtd);
2188 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vacgtq);
2193 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vcls, Ty);
2198 // Generate target-independent intrinsic; also need to add second argument
2200 Function *F = CGM.getIntrinsic(Intrinsic::ctlz, Ty);
2206 // generate target-independent intrinsic
2207 Function *F = CGM.getIntrinsic(Intrinsic::ctpop, Ty);
2213 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vcvtfp2hf);
2219 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vcvthf2fp);
2243 Int = usgn ? Intrinsic::arm_neon_vcvtfxu2fp
2244 : Intrinsic::arm_neon_vcvtfxs2fp;
2255 Int = usgn ? Intrinsic::arm_neon_vcvtfp2fxu
2256 : Intrinsic::arm_neon_vcvtfp2fxs;
2274 Int = usgn ? Intrinsic::arm_neon_vhaddu : Intrinsic::arm_neon_vhadds;
2278 Int = usgn ? Intrinsic::arm_neon_vhsubu : Intrinsic::arm_neon_vhsubs;
2283 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vld1, Ty),
2296 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld1, Ty);
2327 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld2, Ty);
2335 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld3, Ty);
2343 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld4, Ty);
2351 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld2lane, Ty);
2362 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld3lane, Ty);
2374 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld4lane, Ty);
2392 Int = Intrinsic::arm_neon_vld2;
2395 Int = Intrinsic::arm_neon_vld3;
2398 Int = Intrinsic::arm_neon_vld4;
2400 default: llvm_unreachable("unknown vld_dup intrinsic?");
2410 Int = Intrinsic::arm_neon_vld2lane;
2413 Int = Intrinsic::arm_neon_vld3lane;
2416 Int = Intrinsic::arm_neon_vld4lane;
2418 default: llvm_unreachable("unknown vld_dup intrinsic?");
2446 Int = usgn ? Intrinsic::arm_neon_vmaxu : Intrinsic::arm_neon_vmaxs;
2450 Int = usgn ? Intrinsic::arm_neon_vminu : Intrinsic::arm_neon_vmins;
2467 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vmulp, Ty),
2470 Int = usgn ? Intrinsic::arm_neon_vmullu : Intrinsic::arm_neon_vmulls;
2471 Int = Type.isPoly() ? (unsigned)Intrinsic::arm_neon_vmullp : Int;
2475 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
2480 // NEON intrinsic puts accumulator first, unlike the LLVM fma.
2485 Int = usgn ? Intrinsic::arm_neon_vpadalu : Intrinsic::arm_neon_vpadals;
2496 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vpadd, Ty),
2500 Int = usgn ? Intrinsic::arm_neon_vpaddlu : Intrinsic::arm_neon_vpaddls;
2510 Int = usgn ? Intrinsic::arm_neon_vpmaxu : Intrinsic::arm_neon_vpmaxs;
2513 Int = usgn ? Intrinsic::arm_neon_vpminu : Intrinsic::arm_neon_vpmins;
2517 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqabs, Ty),
2521 Int = usgn ? Intrinsic::arm_neon_vqaddu : Intrinsic::arm_neon_vqadds;
2524 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmlal, Ty),
2527 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmlsl, Ty),
2531 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmulh, Ty),
2534 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmull, Ty),
2537 Int = usgn ? Intrinsic::arm_neon_vqmovnu : Intrinsic::arm_neon_vqmovns;
2540 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqmovnsu, Ty),
2544 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqneg, Ty),
2548 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqrdmulh, Ty),
2552 Int = usgn ? Intrinsic::arm_neon_vqrshiftu : Intrinsic::arm_neon_vqrshifts;
2556 usgn ? Intrinsic::arm_neon_vqrshiftnu : Intrinsic::arm_neon_vqrshiftns;
2560 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqrshiftnsu, Ty),
2564 Int = usgn ? Intrinsic::arm_neon_vqshiftu : Intrinsic::arm_neon_vqshifts;
2568 Int = usgn ? Intrinsic::arm_neon_vqshiftu : Intrinsic::arm_neon_vqshifts;
2573 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqshiftsu, Ty),
2576 Int = usgn ? Intrinsic::arm_neon_vqshiftnu : Intrinsic::arm_neon_vqshiftns;
2580 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqshiftnsu, Ty),
2584 Int = usgn ? Intrinsic::arm_neon_vqsubu : Intrinsic::arm_neon_vqsubs;
2587 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vraddhn, Ty),
2591 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrecpe, Ty),
2595 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrecps, Ty),
2599 Int = usgn ? Intrinsic::arm_neon_vrhaddu : Intrinsic::arm_neon_vrhadds;
2603 Int = usgn ? Intrinsic::arm_neon_vrshiftu : Intrinsic::arm_neon_vrshifts;
2606 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrshiftn, Ty),
2610 Int = usgn ? Intrinsic::arm_neon_vrshiftu : Intrinsic::arm_neon_vrshifts;
2614 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrsqrte, Ty),
2618 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrsqrts, Ty),
2625 Int = usgn ? Intrinsic::arm_neon_vrshiftu : Intrinsic::arm_neon_vrshifts;
2629 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrsubhn, Ty),
2633 Int = usgn ? Intrinsic::arm_neon_vshiftu : Intrinsic::arm_neon_vshifts;
2636 Int = usgn ? Intrinsic::arm_neon_vshiftlu : Intrinsic::arm_neon_vshiftls;
2644 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vshiftn, Ty),
2660 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vshiftins, Ty),
2675 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst1, Ty),
2685 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst1,
2701 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst2, Ty),
2706 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst2lane, Ty),
2711 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst3, Ty),
2716 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst3lane, Ty),
2721 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst4, Ty),
2726 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst4lane, Ty),
2729 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vsubhn, Ty),
2732 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbl1),
2735 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbl2),
2738 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbl3),
2741 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbl4),
2744 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbx1),
2747 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbx2),
2750 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbx3),
2753 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vtbx4),
2870 // that the generated intrinsic gets a ConstantInt.
2892 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::x86_sse_ldmxcsr),
2899 Builder.CreateCall(CGM.getIntrinsic(Intrinsic::x86_sse_stmxcsr),
2944 llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_mmx_psrl_q);
2974 llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_sse2_psrl_dq);
3012 llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_avx2_psrl_dq);
3042 Intrinsic::ID ID = Intrinsic::not_intrinsic;
3044 default: llvm_unreachable("Unsupported intrinsic!");
3048 ID = Intrinsic::x86_3dnowa_pswapd;
3062 Intrinsic::ID ID;
3064 default: llvm_unreachable("Unsupported intrinsic!");
3066 ID = Intrinsic::x86_rdrand_16;
3069 ID = Intrinsic::x86_rdrand_32;
3072 ID = Intrinsic::x86_rdrand_64;
3075 ID = Intrinsic::x86_rdseed_16;
3078 ID = Intrinsic::x86_rdseed_32;
3081 ID = Intrinsic::x86_rdseed_64;
3100 Intrinsic::ID ID = Intrinsic::not_intrinsic;
3120 default: llvm_unreachable("Unsupported ld/lvsl/lvsr intrinsic!");
3122 ID = Intrinsic::ppc_altivec_lvx;
3125 ID = Intrinsic::ppc_altivec_lvxl;
3128 ID = Intrinsic::ppc_altivec_lvebx;
3131 ID = Intrinsic::ppc_altivec_lvehx;
3134 ID = Intrinsic::ppc_altivec_lvewx;
3137 ID = Intrinsic::ppc_altivec_lvsl;
3140 ID = Intrinsic::ppc_altivec_lvsr;
3159 default: llvm_unreachable("Unsupported st intrinsic!");
3161 ID = Intrinsic::ppc_altivec_stvx;
3164 ID = Intrinsic::ppc_altivec_stvxl;
3167 ID = Intrinsic::ppc_altivec_stvebx;
3170 ID = Intrinsic::ppc_altivec_stvehx;
3173 ID = Intrinsic::ppc_altivec_stvewx;