Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Builtin

10 // This contains code to emit Builtin calls as LLVM code.
30 /// getBuiltinLibFunction - Given a builtin id for a function like
40 // If the builtin has been declared explicitly with an assembler label,
177 // See if we can constant fold this builtin. If so, don't emit it at all.
191 case Builtin::BI__builtin___CFStringMakeConstantString:
192 case Builtin::BI__builtin___NSStringMakeConstantString:
194 case Builtin::BI__builtin_stdarg_start:
195 case Builtin::BI__builtin_va_start:
196 case Builtin::BI__builtin_va_end: {
203 Intrinsic::ID inst = (BuiltinID == Builtin::BI__builtin_va_end) ?
207 case Builtin::BI__builtin_va_copy: {
218 case Builtin::BI__builtin_abs: {
231 case Builtin::BI__builtin_ctz:
232 case Builtin::BI__builtin_ctzl:
233 case Builtin::BI__builtin_ctzll: {
246 case Builtin::BI__builtin_clz:
247 case Builtin::BI__builtin_clzl:
248 case Builtin::BI__builtin_clzll: {
261 case Builtin::BI__builtin_ffs:
262 case Builtin::BI__builtin_ffsl:
263 case Builtin::BI__builtin_ffsll: {
281 case Builtin::BI__builtin_parity:
282 case Builtin::BI__builtin_parityl:
283 case Builtin::BI__builtin_parityll: {
298 case Builtin::BI__builtin_popcount:
299 case Builtin::BI__builtin_popcountl:
300 case Builtin::BI__builtin_popcountll: {
313 case Builtin::BI__builtin_expect: {
324 case Builtin::BI__builtin_bswap32:
325 case Builtin::BI__builtin_bswap64: {
331 case Builtin::BI__builtin_object_size: {
332 // We pass this builtin onto the optimizer so that it can
349 case Builtin::BI__builtin_prefetch: {
360 case Builtin::BI__builtin_trap: {
364 case Builtin::BI__builtin_unreachable: {
376 case Builtin::BI__builtin_powi:
377 case Builtin::BI__builtin_powif:
378 case Builtin::BI__builtin_powil: {
386 case Builtin::BI__builtin_isgreater:
387 case Builtin::BI__builtin_isgreaterequal:
388 case Builtin::BI__builtin_isless:
389 case Builtin::BI__builtin_islessequal:
390 case Builtin::BI__builtin_islessgreater:
391 case Builtin::BI__builtin_isunordered: {
399 case Builtin::BI__builtin_isgreater:
402 case Builtin::BI__builtin_isgreaterequal:
405 case Builtin::BI__builtin_isless:
408 case Builtin::BI__builtin_islessequal:
411 case Builtin::BI__builtin_islessgreater:
414 case Builtin::BI__builtin_isunordered:
421 case Builtin::BI__builtin_isnan: {
427 case Builtin::BI__builtin_isinf: {
439 case Builtin::BI__builtin_isnormal: {
457 case Builtin::BI__builtin_isfinite: {
470 case Builtin::BI__builtin_fpclassify: {
528 case Builtin::BIalloca:
529 case Builtin::BI__builtin_alloca: {
533 case Builtin::BIbzero:
534 case Builtin::BI__builtin_bzero: {
540 case Builtin::BImemcpy:
541 case Builtin::BI__builtin_memcpy: {
549 case Builtin::BI__builtin___memcpy_chk: {
564 case Builtin::BI__builtin_objc_memmove_collectable: {
573 case Builtin::BI__builtin___memmove_chk: {
588 case Builtin::BImemmove:
589 case Builtin::BI__builtin_memmove: {
596 case Builtin::BImemset:
597 case Builtin::BI__builtin_memset: {
605 case Builtin::BI__builtin___memset_chk: {
621 case Builtin::BI__builtin_dwarf_cfa: {
636 case Builtin::BI__builtin_return_address: {
642 case Builtin::BI__builtin_frame_address: {
648 case Builtin::BI__builtin_extract_return_addr: {
653 case Builtin::BI__builtin_frob_return_addr: {
658 case Builtin::BI__builtin_dwarf_sp_column: {
668 case Builtin::BI__builtin_init_dwarf_reg_size_table: {
674 case Builtin::BI__builtin_eh_return: {
692 case Builtin::BI__builtin_unwind_init: {
696 case Builtin::BI__builtin_extend_pointer: {
721 case Builtin::BI__builtin_setjmp: {
743 case Builtin::BI__builtin_longjmp: {
758 case Builtin::BI__sync_fetch_and_add:
759 case Builtin::BI__sync_fetch_and_sub:
760 case Builtin::BI__sync_fetch_and_or:
761 case Builtin::BI__sync_fetch_and_and:
762 case Builtin::BI__sync_fetch_and_xor:
763 case Builtin::BI__sync_add_and_fetch:
764 case Builtin::BI__sync_sub_and_fetch:
765 case Builtin::BI__sync_and_and_fetch:
766 case Builtin::BI__sync_or_and_fetch:
767 case Builtin::BI__sync_xor_and_fetch:
768 case Builtin::BI__sync_val_compare_and_swap:
769 case Builtin::BI__sync_bool_compare_and_swap:
770 case Builtin::BI__sync_lock_test_and_set:
771 case Builtin::BI__sync_lock_release:
772 case Builtin::BI__sync_swap:
774 case Builtin::BI__sync_fetch_and_add_1:
775 case Builtin::BI__sync_fetch_and_add_2:
776 case Builtin::BI__sync_fetch_and_add_4:
777 case Builtin::BI__sync_fetch_and_add_8:
778 case Builtin::BI__sync_fetch_and_add_16:
780 case Builtin::BI__sync_fetch_and_sub_1:
781 case Builtin::BI__sync_fetch_and_sub_2:
782 case Builtin::BI__sync_fetch_and_sub_4:
783 case Builtin::BI__sync_fetch_and_sub_8:
784 case Builtin::BI__sync_fetch_and_sub_16:
786 case Builtin::BI__sync_fetch_and_or_1:
787 case Builtin::BI__sync_fetch_and_or_2:
788 case Builtin::BI__sync_fetch_and_or_4:
789 case Builtin::BI__sync_fetch_and_or_8:
790 case Builtin::BI__sync_fetch_and_or_16:
792 case Builtin::BI__sync_fetch_and_and_1:
793 case Builtin::BI__sync_fetch_and_and_2:
794 case Builtin::BI__sync_fetch_and_and_4:
795 case Builtin::BI__sync_fetch_and_and_8:
796 case Builtin::BI__sync_fetch_and_and_16:
798 case Builtin::BI__sync_fetch_and_xor_1:
799 case Builtin::BI__sync_fetch_and_xor_2:
800 case Builtin::BI__sync_fetch_and_xor_4:
801 case Builtin::BI__sync_fetch_and_xor_8:
802 case Builtin::BI__sync_fetch_and_xor_16:
806 case Builtin::BI__sync_fetch_and_min:
808 case Builtin::BI__sync_fetch_and_max:
810 case Builtin::BI__sync_fetch_and_umin:
812 case Builtin::BI__sync_fetch_and_umax:
815 case Builtin::BI__sync_add_and_fetch_1:
816 case Builtin::BI__sync_add_and_fetch_2:
817 case Builtin::BI__sync_add_and_fetch_4:
818 case Builtin::BI__sync_add_and_fetch_8:
819 case Builtin::BI__sync_add_and_fetch_16:
822 case Builtin::BI__sync_sub_and_fetch_1:
823 case Builtin::BI__sync_sub_and_fetch_2:
824 case Builtin::BI__sync_sub_and_fetch_4:
825 case Builtin::BI__sync_sub_and_fetch_8:
826 case Builtin::BI__sync_sub_and_fetch_16:
829 case Builtin::BI__sync_and_and_fetch_1:
830 case Builtin::BI__sync_and_and_fetch_2:
831 case Builtin::BI__sync_and_and_fetch_4:
832 case Builtin::BI__sync_and_and_fetch_8:
833 case Builtin::BI__sync_and_and_fetch_16:
836 case Builtin::BI__sync_or_and_fetch_1:
837 case Builtin::BI__sync_or_and_fetch_2:
838 case Builtin::BI__sync_or_and_fetch_4:
839 case Builtin::BI__sync_or_and_fetch_8:
840 case Builtin::BI__sync_or_and_fetch_16:
843 case Builtin::BI__sync_xor_and_fetch_1:
844 case Builtin::BI__sync_xor_and_fetch_2:
845 case Builtin::BI__sync_xor_and_fetch_4:
846 case Builtin::BI__sync_xor_and_fetch_8:
847 case Builtin::BI__sync_xor_and_fetch_16:
851 case Builtin::BI__sync_val_compare_and_swap_1:
852 case Builtin::BI__sync_val_compare_and_swap_2:
853 case Builtin::BI__sync_val_compare_and_swap_4:
854 case Builtin::BI__sync_val_compare_and_swap_8:
855 case Builtin::BI__sync_val_compare_and_swap_16: {
879 case Builtin::BI__sync_bool_compare_and_swap_1:
880 case Builtin::BI__sync_bool_compare_and_swap_2:
881 case Builtin::BI__sync_bool_compare_and_swap_4:
882 case Builtin::BI__sync_bool_compare_and_swap_8:
883 case Builtin::BI__sync_bool_compare_and_swap_16: {
908 case Builtin::BI__sync_swap_1:
909 case Builtin::BI__sync_swap_2:
910 case Builtin::BI__sync_swap_4:
911 case Builtin::BI__sync_swap_8:
912 case Builtin::BI__sync_swap_16:
915 case Builtin::BI__sync_lock_test_and_set_1:
916 case Builtin::BI__sync_lock_test_and_set_2:
917 case Builtin::BI__sync_lock_test_and_set_4:
918 case Builtin::BI__sync_lock_test_and_set_8:
919 case Builtin::BI__sync_lock_test_and_set_16:
922 case Builtin::BI__sync_lock_release_1:
923 case Builtin::BI__sync_lock_release_2:
924 case Builtin::BI__sync_lock_release_4:
925 case Builtin::BI__sync_lock_release_8:
926 case Builtin::BI__sync_lock_release_16: {
939 case Builtin::BI__sync_synchronize: {
951 case Builtin::BI__atomic_thread_fence:
952 case Builtin::BI__atomic_signal_fence: {
954 if (BuiltinID == Builtin::BI__atomic_signal_fence)
1018 case Builtin::BIsqrt:
1019 case Builtin::BIsqrtf:
1020 case Builtin::BIsqrtl: {
1029 case Builtin::BIpow:
1030 case Builtin::BIpowf:
1031 case Builtin::BIpowl: {
1042 case Builtin::BIfma:
1043 case Builtin::BIfmaf:
1044 case Builtin::BIfmal:
1045 case Builtin::BI__builtin_fma:
1046 case Builtin::BI__builtin_fmaf:
1047 case Builtin::BI__builtin_fmal: {
1057 case Builtin::BI__builtin_signbit:
1058 case Builtin::BI__builtin_signbitf:
1059 case Builtin::BI__builtin_signbitl: {
1073 case Builtin::BI__builtin_annotation: {
1133 // If the intrinsic arg type is different from the builtin arg type
1160 // See if we have a target specific builtin that needs to be lowered.
1164 ErrorUnsupported(E, "builtin function");
1166 // Unknown builtin, for now just dump it out and return undef.
1349 // Determine the overloaded type of this builtin.
1432 assert((type & 0x7) == 7 && !quad && "unexpected vcvt_f16_v builtin");
1437 assert((type & 0x7) == 7 && !quad && "unexpected vcvt_f32_f16 builtin");
1659 assert(poly && "vmul builtin only supported for polynomial types");