Lines Matching defs:Builtin

9 // This contains code to emit Builtin calls as LLVM code.
274 {Builtin::BI__builtin___fprintf_chk, "__fprintf_chkieee128"},
275 {Builtin::BI__builtin___printf_chk, "__printf_chkieee128"},
276 {Builtin::BI__builtin___snprintf_chk, "__snprintf_chkieee128"},
277 {Builtin::BI__builtin___sprintf_chk, "__sprintf_chkieee128"},
278 {Builtin::BI__builtin___vfprintf_chk, "__vfprintf_chkieee128"},
279 {Builtin::BI__builtin___vprintf_chk, "__vprintf_chkieee128"},
280 {Builtin::BI__builtin___vsnprintf_chk, "__vsnprintf_chkieee128"},
281 {Builtin::BI__builtin___vsprintf_chk, "__vsprintf_chkieee128"},
282 {Builtin::BI__builtin_fprintf, "__fprintfieee128"},
283 {Builtin::BI__builtin_printf, "__printfieee128"},
284 {Builtin::BI__builtin_snprintf, "__snprintfieee128"},
285 {Builtin::BI__builtin_sprintf, "__sprintfieee128"},
286 {Builtin::BI__builtin_vfprintf, "__vfprintfieee128"},
287 {Builtin::BI__builtin_vprintf, "__vprintfieee128"},
288 {Builtin::BI__builtin_vsnprintf, "__vsnprintfieee128"},
289 {Builtin::BI__builtin_vsprintf, "__vsprintfieee128"},
290 {Builtin::BI__builtin_fscanf, "__fscanfieee128"},
291 {Builtin::BI__builtin_scanf, "__scanfieee128"},
292 {Builtin::BI__builtin_sscanf, "__sscanfieee128"},
293 {Builtin::BI__builtin_vfscanf, "__vfscanfieee128"},
294 {Builtin::BI__builtin_vscanf, "__vscanfieee128"},
295 {Builtin::BI__builtin_vsscanf, "__vsscanfieee128"},
296 {Builtin::BI__builtin_nexttowardf128, "__nexttowardieee128"},
303 {Builtin::BI__builtin_frexpl, "frexp"},
304 {Builtin::BI__builtin_ldexpl, "ldexp"},
305 {Builtin::BI__builtin_modfl, "modf"},
463 /// @param E Builtin call expression to convert to cmpxchg.
1370 case Builtin::BI_bittest:
1372 case Builtin::BI_bittestandcomplement:
1374 case Builtin::BI_bittestandreset:
1376 case Builtin::BI_bittestandset:
1378 case Builtin::BI_interlockedbittestandreset:
1380 case Builtin::BI_interlockedbittestandset:
1384 case Builtin::BI_bittest64:
1386 case Builtin::BI_bittestandcomplement64:
1388 case Builtin::BI_bittestandreset64:
1390 case Builtin::BI_bittestandset64:
1392 case Builtin::BI_interlockedbittestandreset64:
1394 case Builtin::BI_interlockedbittestandset64:
1398 case Builtin::BI_interlockedbittestandset_acq:
1400 case Builtin::BI_interlockedbittestandset_rel:
1402 case Builtin::BI_interlockedbittestandset_nf:
1404 case Builtin::BI_interlockedbittestandreset_acq:
1406 case Builtin::BI_interlockedbittestandreset_rel:
1408 case Builtin::BI_interlockedbittestandreset_nf:
2238 if (!SanOpts.has(SanitizerKind::Builtin))
2254 if (!SanOpts.has(SanitizerKind::Builtin))
2503 return BuiltinID == Builtin::BI__builtin_mul_overflow &&
2514 Builtin::BI__builtin_mul_overflow, Op1Info, Op2Info, ResultInfo) &&
2546 return BuiltinID == Builtin::BI__builtin_mul_overflow &&
2559 assert(isSpecialMixedSignMultiply(Builtin::BI__builtin_mul_overflow, Op1Info,
2696 case Builtin::BI__builtin_##func##l: \
2697 return Builtin::BI__builtin_##func##f128;
2859 case Builtin::BI__builtin_fma:
2860 case Builtin::BI__builtin_fmaf:
2861 case Builtin::BI__builtin_fmal:
2862 case Builtin::BI__builtin_fmaf16:
2863 case Builtin::BIfma:
2864 case Builtin::BIfmaf:
2865 case Builtin::BIfmal: {
2915 case Builtin::BIacos:
2916 case Builtin::BIacosf:
2917 case Builtin::BIacosl:
2918 case Builtin::BI__builtin_acos:
2919 case Builtin::BI__builtin_acosf:
2920 case Builtin::BI__builtin_acosf16:
2921 case Builtin::BI__builtin_acosl:
2922 case Builtin::BI__builtin_acosf128:
2926 case Builtin::BIasin:
2927 case Builtin::BIasinf:
2928 case Builtin::BIasinl:
2929 case Builtin::BI__builtin_asin:
2930 case Builtin::BI__builtin_asinf:
2931 case Builtin::BI__builtin_asinf16:
2932 case Builtin::BI__builtin_asinl:
2933 case Builtin::BI__builtin_asinf128:
2937 case Builtin::BIatan:
2938 case Builtin::BIatanf:
2939 case Builtin::BIatanl:
2940 case Builtin::BI__builtin_atan:
2941 case Builtin::BI__builtin_atanf:
2942 case Builtin::BI__builtin_atanf16:
2943 case Builtin::BI__builtin_atanl:
2944 case Builtin::BI__builtin_atanf128:
2948 case Builtin::BIatan2:
2949 case Builtin::BIatan2f:
2950 case Builtin::BIatan2l:
2951 case Builtin::BI__builtin_atan2:
2952 case Builtin::BI__builtin_atan2f:
2953 case Builtin::BI__builtin_atan2f16:
2954 case Builtin::BI__builtin_atan2l:
2955 case Builtin::BI__builtin_atan2f128:
2960 case Builtin::BIceil:
2961 case Builtin::BIceilf:
2962 case Builtin::BIceill:
2963 case Builtin::BI__builtin_ceil:
2964 case Builtin::BI__builtin_ceilf:
2965 case Builtin::BI__builtin_ceilf16:
2966 case Builtin::BI__builtin_ceill:
2967 case Builtin::BI__builtin_ceilf128:
2972 case Builtin::BIcopysign:
2973 case Builtin::BIcopysignf:
2974 case Builtin::BIcopysignl:
2975 case Builtin::BI__builtin_copysign:
2976 case Builtin::BI__builtin_copysignf:
2977 case Builtin::BI__builtin_copysignf16:
2978 case Builtin::BI__builtin_copysignl:
2979 case Builtin::BI__builtin_copysignf128:
2983 case Builtin::BIcos:
2984 case Builtin::BIcosf:
2985 case Builtin::BIcosl:
2986 case Builtin::BI__builtin_cos:
2987 case Builtin::BI__builtin_cosf:
2988 case Builtin::BI__builtin_cosf16:
2989 case Builtin::BI__builtin_cosl:
2990 case Builtin::BI__builtin_cosf128:
2995 case Builtin::BIcosh:
2996 case Builtin::BIcoshf:
2997 case Builtin::BIcoshl:
2998 case Builtin::BI__builtin_cosh:
2999 case Builtin::BI__builtin_coshf:
3000 case Builtin::BI__builtin_coshf16:
3001 case Builtin::BI__builtin_coshl:
3002 case Builtin::BI__builtin_coshf128:
3006 case Builtin::BIexp:
3007 case Builtin::BIexpf:
3008 case Builtin::BIexpl:
3009 case Builtin::BI__builtin_exp:
3010 case Builtin::BI__builtin_expf:
3011 case Builtin::BI__builtin_expf16:
3012 case Builtin::BI__builtin_expl:
3013 case Builtin::BI__builtin_expf128:
3018 case Builtin::BIexp2:
3019 case Builtin::BIexp2f:
3020 case Builtin::BIexp2l:
3021 case Builtin::BI__builtin_exp2:
3022 case Builtin::BI__builtin_exp2f:
3023 case Builtin::BI__builtin_exp2f16:
3024 case Builtin::BI__builtin_exp2l:
3025 case Builtin::BI__builtin_exp2f128:
3029 case Builtin::BI__builtin_exp10:
3030 case Builtin::BI__builtin_exp10f:
3031 case Builtin::BI__builtin_exp10f16:
3032 case Builtin::BI__builtin_exp10l:
3033 case Builtin::BI__builtin_exp10f128: {
3040 case Builtin::BIfabs:
3041 case Builtin::BIfabsf:
3042 case Builtin::BIfabsl:
3043 case Builtin::BI__builtin_fabs:
3044 case Builtin::BI__builtin_fabsf:
3045 case Builtin::BI__builtin_fabsf16:
3046 case Builtin::BI__builtin_fabsl:
3047 case Builtin::BI__builtin_fabsf128:
3051 case Builtin::BIfloor:
3052 case Builtin::BIfloorf:
3053 case Builtin::BIfloorl:
3054 case Builtin::BI__builtin_floor:
3055 case Builtin::BI__builtin_floorf:
3056 case Builtin::BI__builtin_floorf16:
3057 case Builtin::BI__builtin_floorl:
3058 case Builtin::BI__builtin_floorf128:
3063 case Builtin::BIfma:
3064 case Builtin::BIfmaf:
3065 case Builtin::BIfmal:
3066 case Builtin::BI__builtin_fma:
3067 case Builtin::BI__builtin_fmaf:
3068 case Builtin::BI__builtin_fmaf16:
3069 case Builtin::BI__builtin_fmal:
3070 case Builtin::BI__builtin_fmaf128:
3075 case Builtin::BIfmax:
3076 case Builtin::BIfmaxf:
3077 case Builtin::BIfmaxl:
3078 case Builtin::BI__builtin_fmax:
3079 case Builtin::BI__builtin_fmaxf:
3080 case Builtin::BI__builtin_fmaxf16:
3081 case Builtin::BI__builtin_fmaxl:
3082 case Builtin::BI__builtin_fmaxf128:
3087 case Builtin::BIfmin:
3088 case Builtin::BIfminf:
3089 case Builtin::BIfminl:
3090 case Builtin::BI__builtin_fmin:
3091 case Builtin::BI__builtin_fminf:
3092 case Builtin::BI__builtin_fminf16:
3093 case Builtin::BI__builtin_fminl:
3094 case Builtin::BI__builtin_fminf128:
3099 case Builtin::BIfmaximum_num:
3100 case Builtin::BIfmaximum_numf:
3101 case Builtin::BIfmaximum_numl:
3102 case Builtin::BI__builtin_fmaximum_num:
3103 case Builtin::BI__builtin_fmaximum_numf:
3104 case Builtin::BI__builtin_fmaximum_numf16:
3105 case Builtin::BI__builtin_fmaximum_numl:
3106 case Builtin::BI__builtin_fmaximum_numf128:
3110 case Builtin::BIfminimum_num:
3111 case Builtin::BIfminimum_numf:
3112 case Builtin::BIfminimum_numl:
3113 case Builtin::BI__builtin_fminimum_num:
3114 case Builtin::BI__builtin_fminimum_numf:
3115 case Builtin::BI__builtin_fminimum_numf16:
3116 case Builtin::BI__builtin_fminimum_numl:
3117 case Builtin::BI__builtin_fminimum_numf128:
3123 case Builtin::BIfmod:
3124 case Builtin::BIfmodf:
3125 case Builtin::BIfmodl:
3126 case Builtin::BI__builtin_fmod:
3127 case Builtin::BI__builtin_fmodf:
3128 case Builtin::BI__builtin_fmodf16:
3129 case Builtin::BI__builtin_fmodl:
3130 case Builtin::BI__builtin_fmodf128:
3131 case Builtin::BI__builtin_elementwise_fmod: {
3138 case Builtin::BIlog:
3139 case Builtin::BIlogf:
3140 case Builtin::BIlogl:
3141 case Builtin::BI__builtin_log:
3142 case Builtin::BI__builtin_logf:
3143 case Builtin::BI__builtin_logf16:
3144 case Builtin::BI__builtin_logl:
3145 case Builtin::BI__builtin_logf128:
3150 case Builtin::BIlog10:
3151 case Builtin::BIlog10f:
3152 case Builtin::BIlog10l:
3153 case Builtin::BI__builtin_log10:
3154 case Builtin::BI__builtin_log10f:
3155 case Builtin::BI__builtin_log10f16:
3156 case Builtin::BI__builtin_log10l:
3157 case Builtin::BI__builtin_log10f128:
3162 case Builtin::BIlog2:
3163 case Builtin::BIlog2f:
3164 case Builtin::BIlog2l:
3165 case Builtin::BI__builtin_log2:
3166 case Builtin::BI__builtin_log2f:
3167 case Builtin::BI__builtin_log2f16:
3168 case Builtin::BI__builtin_log2l:
3169 case Builtin::BI__builtin_log2f128:
3174 case Builtin::BInearbyint:
3175 case Builtin::BInearbyintf:
3176 case Builtin::BInearbyintl:
3177 case Builtin::BI__builtin_nearbyint:
3178 case Builtin::BI__builtin_nearbyintf:
3179 case Builtin::BI__builtin_nearbyintl:
3180 case Builtin::BI__builtin_nearbyintf128:
3185 case Builtin::BIpow:
3186 case Builtin::BIpowf:
3187 case Builtin::BIpowl:
3188 case Builtin::BI__builtin_pow:
3189 case Builtin::BI__builtin_powf:
3190 case Builtin::BI__builtin_powf16:
3191 case Builtin::BI__builtin_powl:
3192 case Builtin::BI__builtin_powf128:
3197 case Builtin::BIrint:
3198 case Builtin::BIrintf:
3199 case Builtin::BIrintl:
3200 case Builtin::BI__builtin_rint:
3201 case Builtin::BI__builtin_rintf:
3202 case Builtin::BI__builtin_rintf16:
3203 case Builtin::BI__builtin_rintl:
3204 case Builtin::BI__builtin_rintf128:
3209 case Builtin::BIround:
3210 case Builtin::BIroundf:
3211 case Builtin::BIroundl:
3212 case Builtin::BI__builtin_round:
3213 case Builtin::BI__builtin_roundf:
3214 case Builtin::BI__builtin_roundf16:
3215 case Builtin::BI__builtin_roundl:
3216 case Builtin::BI__builtin_roundf128:
3221 case Builtin::BIroundeven:
3222 case Builtin::BIroundevenf:
3223 case Builtin::BIroundevenl:
3224 case Builtin::BI__builtin_roundeven:
3225 case Builtin::BI__builtin_roundevenf:
3226 case Builtin::BI__builtin_roundevenf16:
3227 case Builtin::BI__builtin_roundevenl:
3228 case Builtin::BI__builtin_roundevenf128:
3233 case Builtin::BIsin:
3234 case Builtin::BIsinf:
3235 case Builtin::BIsinl:
3236 case Builtin::BI__builtin_sin:
3237 case Builtin::BI__builtin_sinf:
3238 case Builtin::BI__builtin_sinf16:
3239 case Builtin::BI__builtin_sinl:
3240 case Builtin::BI__builtin_sinf128:
3245 case Builtin::BIsinh:
3246 case Builtin::BIsinhf:
3247 case Builtin::BIsinhl:
3248 case Builtin::BI__builtin_sinh:
3249 case Builtin::BI__builtin_sinhf:
3250 case Builtin::BI__builtin_sinhf16:
3251 case Builtin::BI__builtin_sinhl:
3252 case Builtin::BI__builtin_sinhf128:
3256 case Builtin::BI__builtin_sincos:
3257 case Builtin::BI__builtin_sincosf:
3258 case Builtin::BI__builtin_sincosf16:
3259 case Builtin::BI__builtin_sincosl:
3260 case Builtin::BI__builtin_sincosf128:
3264 case Builtin::BIsqrt:
3265 case Builtin::BIsqrtf:
3266 case Builtin::BIsqrtl:
3267 case Builtin::BI__builtin_sqrt:
3268 case Builtin::BI__builtin_sqrtf:
3269 case Builtin::BI__builtin_sqrtf16:
3270 case Builtin::BI__builtin_sqrtl:
3271 case Builtin::BI__builtin_sqrtf128:
3272 case Builtin::BI__builtin_elementwise_sqrt: {
3279 case Builtin::BItan:
3280 case Builtin::BItanf:
3281 case Builtin::BItanl:
3282 case Builtin::BI__builtin_tan:
3283 case Builtin::BI__builtin_tanf:
3284 case Builtin::BI__builtin_tanf16:
3285 case Builtin::BI__builtin_tanl:
3286 case Builtin::BI__builtin_tanf128:
3290 case Builtin::BItanh:
3291 case Builtin::BItanhf:
3292 case Builtin::BItanhl:
3293 case Builtin::BI__builtin_tanh:
3294 case Builtin::BI__builtin_tanhf:
3295 case Builtin::BI__builtin_tanhf16:
3296 case Builtin::BI__builtin_tanhl:
3297 case Builtin::BI__builtin_tanhf128:
3301 case Builtin::BItrunc:
3302 case Builtin::BItruncf:
3303 case Builtin::BItruncl:
3304 case Builtin::BI__builtin_trunc:
3305 case Builtin::BI__builtin_truncf:
3306 case Builtin::BI__builtin_truncf16:
3307 case Builtin::BI__builtin_truncl:
3308 case Builtin::BI__builtin_truncf128:
3313 case Builtin::BIlround:
3314 case Builtin::BIlroundf:
3315 case Builtin::BIlroundl:
3316 case Builtin::BI__builtin_lround:
3317 case Builtin::BI__builtin_lroundf:
3318 case Builtin::BI__builtin_lroundl:
3319 case Builtin::BI__builtin_lroundf128:
3324 case Builtin::BIllround:
3325 case Builtin::BIllroundf:
3326 case Builtin::BIllroundl:
3327 case Builtin::BI__builtin_llround:
3328 case Builtin::BI__builtin_llroundf:
3329 case Builtin::BI__builtin_llroundl:
3330 case Builtin::BI__builtin_llroundf128:
3335 case Builtin::BIlrint:
3336 case Builtin::BIlrintf:
3337 case Builtin::BIlrintl:
3338 case Builtin::BI__builtin_lrint:
3339 case Builtin::BI__builtin_lrintf:
3340 case Builtin::BI__builtin_lrintl:
3341 case Builtin::BI__builtin_lrintf128:
3346 case Builtin::BIllrint:
3347 case Builtin::BIllrintf:
3348 case Builtin::BIllrintl:
3349 case Builtin::BI__builtin_llrint:
3350 case Builtin::BI__builtin_llrintf:
3351 case Builtin::BI__builtin_llrintl:
3352 case Builtin::BI__builtin_llrintf128:
3356 case Builtin::BI__builtin_ldexp:
3357 case Builtin::BI__builtin_ldexpf:
3358 case Builtin::BI__builtin_ldexpl:
3359 case Builtin::BI__builtin_ldexpf16:
3360 case Builtin::BI__builtin_ldexpf128: {
3393 case Builtin::BI__builtin___CFStringMakeConstantString:
3394 case Builtin::BI__builtin___NSStringMakeConstantString:
3396 case Builtin::BI__builtin_stdarg_start:
3397 case Builtin::BI__builtin_va_start:
3398 case Builtin::BI__va_start:
3399 case Builtin::BI__builtin_va_end:
3400 EmitVAStartEnd(BuiltinID == Builtin::BI__va_start
3403 BuiltinID != Builtin::BI__builtin_va_end);
3405 case Builtin::BI__builtin_va_copy: {
3412 case Builtin::BIabs:
3413 case Builtin::BIlabs:
3414 case Builtin::BIllabs:
3415 case Builtin::BI__builtin_abs:
3416 case Builtin::BI__builtin_labs:
3417 case Builtin::BI__builtin_llabs: {
3438 case Builtin::BI__builtin_complex: {
3443 case Builtin::BI__builtin_conj:
3444 case Builtin::BI__builtin_conjf:
3445 case Builtin::BI__builtin_conjl:
3446 case Builtin::BIconj:
3447 case Builtin::BIconjf:
3448 case Builtin::BIconjl: {
3455 case Builtin::BI__builtin_creal:
3456 case Builtin::BI__builtin_crealf:
3457 case Builtin::BI__builtin_creall:
3458 case Builtin::BIcreal:
3459 case Builtin::BIcrealf:
3460 case Builtin::BIcreall: {
3465 case Builtin::BI__builtin_preserve_access_index: {
3486 case Builtin::BI__builtin_cimag:
3487 case Builtin::BI__builtin_cimagf:
3488 case Builtin::BI__builtin_cimagl:
3489 case Builtin::BIcimag:
3490 case Builtin::BIcimagf:
3491 case Builtin::BIcimagl: {
3496 case Builtin::BI__builtin_clrsb:
3497 case Builtin::BI__builtin_clrsbl:
3498 case Builtin::BI__builtin_clrsbll: {
3516 case Builtin::BI__builtin_ctzs:
3517 case Builtin::BI__builtin_ctz:
3518 case Builtin::BI__builtin_ctzl:
3519 case Builtin::BI__builtin_ctzll:
3520 case Builtin::BI__builtin_ctzg: {
3521 bool HasFallback = BuiltinIDIfNoAsmLabel == Builtin::BI__builtin_ctzg &&
3548 case Builtin::BI__builtin_clzs:
3549 case Builtin::BI__builtin_clz:
3550 case Builtin::BI__builtin_clzl:
3551 case Builtin::BI__builtin_clzll:
3552 case Builtin::BI__builtin_clzg: {
3553 bool HasFallback = BuiltinIDIfNoAsmLabel == Builtin::BI__builtin_clzg &&
3580 case Builtin::BI__builtin_ffs:
3581 case Builtin::BI__builtin_ffsl:
3582 case Builtin::BI__builtin_ffsll: {
3601 case Builtin::BI__builtin_parity:
3602 case Builtin::BI__builtin_parityl:
3603 case Builtin::BI__builtin_parityll: {
3618 case Builtin::BI__lzcnt16:
3619 case Builtin::BI__lzcnt:
3620 case Builtin::BI__lzcnt64: {
3633 case Builtin::BI__popcnt16:
3634 case Builtin::BI__popcnt:
3635 case Builtin::BI__popcnt64:
3636 case Builtin::BI__builtin_popcount:
3637 case Builtin::BI__builtin_popcountl:
3638 case Builtin::BI__builtin_popcountll:
3639 case Builtin::BI__builtin_popcountg: {
3652 case Builtin::BI__builtin_unpredictable: {
3658 case Builtin::BI__builtin_expect: {
3674 case Builtin::BI__builtin_expect_with_probability: {
3701 case Builtin::BI__builtin_assume_aligned: {
3718 case Builtin::BI__assume:
3719 case Builtin::BI__builtin_assume: {
3728 case Builtin::BI__builtin_assume_separate_storage: {
3740 case Builtin::BI__builtin_allow_runtime_check: {
3749 case Builtin::BI__arithmetic_fence: {
3779 case Builtin::BI__builtin_bswap16:
3780 case Builtin::BI__builtin_bswap32:
3781 case Builtin::BI__builtin_bswap64:
3782 case Builtin::BI_byteswap_ushort:
3783 case Builtin::BI_byteswap_ulong:
3784 case Builtin::BI_byteswap_uint64: {
3788 case Builtin::BI__builtin_bitreverse8:
3789 case Builtin::BI__builtin_bitreverse16:
3790 case Builtin::BI__builtin_bitreverse32:
3791 case Builtin::BI__builtin_bitreverse64: {
3795 case Builtin::BI__builtin_rotateleft8:
3796 case Builtin::BI__builtin_rotateleft16:
3797 case Builtin::BI__builtin_rotateleft32:
3798 case Builtin::BI__builtin_rotateleft64:
3799 case Builtin::BI_rotl8: // Microsoft variants of rotate left
3800 case Builtin::BI_rotl16:
3801 case Builtin::BI_rotl:
3802 case Builtin::BI_lrotl:
3803 case Builtin::BI_rotl64:
3806 case Builtin::BI__builtin_rotateright8:
3807 case Builtin::BI__builtin_rotateright16:
3808 case Builtin::BI__builtin_rotateright32:
3809 case Builtin::BI__builtin_rotateright64:
3810 case Builtin::BI_rotr8: // Microsoft variants of rotate right
3811 case Builtin::BI_rotr16:
3812 case Builtin::BI_rotr:
3813 case Builtin::BI_lrotr:
3814 case Builtin::BI_rotr64:
3817 case Builtin::BI__builtin_constant_p: {
3849 case Builtin::BI__builtin_dynamic_object_size:
3850 case Builtin::BI__builtin_object_size: {
3857 bool IsDynamic = BuiltinID == Builtin::BI__builtin_dynamic_object_size;
3861 case Builtin::BI__builtin_counted_by_ref: {
3890 case Builtin::BI__builtin_prefetch: {
3902 case Builtin::BI__builtin_readcyclecounter: {
3906 case Builtin::BI__builtin_readsteadycounter: {
3910 case Builtin::BI__builtin___clear_cache: {
3916 case Builtin::BI__builtin_trap:
3919 case Builtin::BI__builtin_verbose_trap: {
3931 case Builtin::BI__debugbreak:
3934 case Builtin::BI__builtin_unreachable: {
3943 case Builtin::BI__builtin_powi:
3944 case Builtin::BI__builtin_powif:
3945 case Builtin::BI__builtin_powil: {
3962 case Builtin::BI__builtin_frexpl: {
3970 case Builtin::BI__builtin_frexp:
3971 case Builtin::BI__builtin_frexpf:
3972 case Builtin::BI__builtin_frexpf128:
3973 case Builtin::BI__builtin_frexpf16:
3975 case Builtin::BI__builtin_isgreater:
3976 case Builtin::BI__builtin_isgreaterequal:
3977 case Builtin::BI__builtin_isless:
3978 case Builtin::BI__builtin_islessequal:
3979 case Builtin::BI__builtin_islessgreater:
3980 case Builtin::BI__builtin_isunordered: {
3989 case Builtin::BI__builtin_isgreater:
3992 case Builtin::BI__builtin_isgreaterequal:
3995 case Builtin::BI__builtin_isless:
3998 case Builtin::BI__builtin_islessequal:
4001 case Builtin::BI__builtin_islessgreater:
4004 case Builtin::BI__builtin_isunordered:
4012 case Builtin::BI__builtin_isnan: {
4022 case Builtin::BI__builtin_issignaling: {
4030 case Builtin::BI__builtin_isinf: {
4040 case Builtin::BIfinite:
4041 case Builtin::BI__finite:
4042 case Builtin::BIfinitef:
4043 case Builtin::BI__finitef:
4044 case Builtin::BIfinitel:
4045 case Builtin::BI__finitel:
4046 case Builtin::BI__builtin_isfinite: {
4056 case Builtin::BI__builtin_isnormal: {
4064 case Builtin::BI__builtin_issubnormal: {
4072 case Builtin::BI__builtin_iszero: {
4080 case Builtin::BI__builtin_isfpclass: {
4091 case Builtin::BI__builtin_nondeterministic_value: {
4100 case Builtin::BI__builtin_elementwise_abs: {
4116 case Builtin::BI__builtin_elementwise_acos:
4119 case Builtin::BI__builtin_elementwise_asin:
4122 case Builtin::BI__builtin_elementwise_atan:
4125 case Builtin::BI__builtin_elementwise_atan2:
4128 case Builtin::BI__builtin_elementwise_ceil:
4131 case Builtin::BI__builtin_elementwise_exp:
4134 case Builtin::BI__builtin_elementwise_exp2:
4137 case Builtin::BI__builtin_elementwise_log:
4140 case Builtin::BI__builtin_elementwise_log2:
4143 case Builtin::BI__builtin_elementwise_log10:
4146 case Builtin::BI__builtin_elementwise_pow: {
4150 case Builtin::BI__builtin_elementwise_bitreverse:
4153 case Builtin::BI__builtin_elementwise_cos:
4156 case Builtin::BI__builtin_elementwise_cosh:
4159 case Builtin::BI__builtin_elementwise_floor:
4162 case Builtin::BI__builtin_elementwise_popcount:
4165 case Builtin::BI__builtin_elementwise_roundeven:
4168 case Builtin::BI__builtin_elementwise_round:
4171 case Builtin::BI__builtin_elementwise_rint:
4174 case Builtin::BI__builtin_elementwise_nearbyint:
4177 case Builtin::BI__builtin_elementwise_sin:
4180 case Builtin::BI__builtin_elementwise_sinh:
4183 case Builtin::BI__builtin_elementwise_tan:
4186 case Builtin::BI__builtin_elementwise_tanh:
4189 case Builtin::BI__builtin_elementwise_trunc:
4192 case Builtin::BI__builtin_elementwise_canonicalize:
4195 case Builtin::BI__builtin_elementwise_copysign:
4198 case Builtin::BI__builtin_elementwise_fma:
4201 case Builtin::BI__builtin_elementwise_add_sat:
4202 case Builtin::BI__builtin_elementwise_sub_sat: {
4212 if (BuiltinIDIfNoAsmLabel == Builtin::BI__builtin_elementwise_add_sat)
4220 case Builtin::BI__builtin_elementwise_max: {
4236 case Builtin::BI__builtin_elementwise_min: {
4253 case Builtin::BI__builtin_elementwise_maximum: {
4261 case Builtin::BI__builtin_elementwise_minimum: {
4269 case Builtin::BI__builtin_reduce_max: {
4287 case Builtin::BI__builtin_reduce_min: {
4306 case Builtin::BI__builtin_reduce_add:
4309 case Builtin::BI__builtin_reduce_mul:
4312 case Builtin::BI__builtin_reduce_xor:
4315 case Builtin::BI__builtin_reduce_or:
4318 case Builtin::BI__builtin_reduce_and:
4321 case Builtin::BI__builtin_reduce_maximum:
4324 case Builtin::BI__builtin_reduce_minimum:
4328 case Builtin::BI__builtin_matrix_transpose: {
4337 case Builtin::BI__builtin_matrix_column_major_load: {
4357 case Builtin::BI__builtin_matrix_column_major_store: {
4378 case Builtin::BI__builtin_isinf_sign: {
4397 case Builtin::BI__builtin_flt_rounds: {
4408 case Builtin::BI__builtin_set_flt_rounds: {
4416 case Builtin::BI__builtin_fpclassify: {
4482 case Builtin::BIalloca:
4483 case Builtin::BI_alloca:
4484 case Builtin::BI__builtin_alloca_uninitialized:
4485 case Builtin::BI__builtin_alloca: {
4495 if (BuiltinID != Builtin::BI__builtin_alloca_uninitialized)
4507 case Builtin::BI__builtin_alloca_with_align_uninitialized:
4508 case Builtin::BI__builtin_alloca_with_align: {
4517 if (BuiltinID != Builtin::BI__builtin_alloca_with_align_uninitialized)
4529 case Builtin::BIbzero:
4530 case Builtin::BI__builtin_bzero: {
4539 case Builtin::BIbcopy:
4540 case Builtin::BI__builtin_bcopy: {
4554 case Builtin::BImemcpy:
4555 case Builtin::BI__builtin_memcpy:
4556 case Builtin::BImempcpy:
4557 case Builtin::BI__builtin_mempcpy: {
4564 if (BuiltinID == Builtin::BImempcpy ||
4565 BuiltinID == Builtin::BI__builtin_mempcpy)
4572 case Builtin::BI__builtin_memcpy_inline: {
4583 case Builtin::BI__builtin_char_memchr:
4584 BuiltinID = Builtin::BI__builtin_memchr;
4587 case Builtin::BI__builtin___memcpy_chk: {
4604 case Builtin::BI__builtin_objc_memmove_collectable: {
4613 case Builtin::BI__builtin___memmove_chk: {
4630 case Builtin::BImemmove:
4631 case Builtin::BI__builtin_memmove: {
4640 case Builtin::BImemset:
4641 case Builtin::BI__builtin_memset: {
4651 case Builtin::BI__builtin_memset_inline: {
4663 case Builtin::BI__builtin___memset_chk: {
4680 case Builtin::BI__builtin_wmemchr: {
4726 case Builtin::BI__builtin_wmemcmp: {
4783 case Builtin::BI__builtin_dwarf_cfa: {
4798 case Builtin::BI__builtin_return_address: {
4804 case Builtin::BI_ReturnAddress: {
4808 case Builtin::BI__builtin_frame_address: {
4814 case Builtin::BI__builtin_extract_return_addr: {
4819 case Builtin::BI__builtin_frob_return_addr: {
4824 case Builtin::BI__builtin_dwarf_sp_column: {
4834 case Builtin::BI__builtin_init_dwarf_reg_size_table: {
4840 case Builtin::BI__builtin_eh_return: {
4858 case Builtin::BI__builtin_unwind_init: {
4863 case Builtin::BI__builtin_extend_pointer: {
4888 case Builtin::BI__builtin_setjmp: {
4917 case Builtin::BI__builtin_longjmp: {
4931 case Builtin::BI__builtin_launder: {
4940 case Builtin::BI__sync_fetch_and_add:
4941 case Builtin::BI__sync_fetch_and_sub:
4942 case Builtin::BI__sync_fetch_and_or:
4943 case Builtin::BI__sync_fetch_and_and:
4944 case Builtin::BI__sync_fetch_and_xor:
4945 case Builtin::BI__sync_fetch_and_nand:
4946 case Builtin::BI__sync_add_and_fetch:
4947 case Builtin::BI__sync_sub_and_fetch:
4948 case Builtin::BI__sync_and_and_fetch:
4949 case Builtin::BI__sync_or_and_fetch:
4950 case Builtin::BI__sync_xor_and_fetch:
4951 case Builtin::BI__sync_nand_and_fetch:
4952 case Builtin::BI__sync_val_compare_and_swap:
4953 case Builtin::BI__sync_bool_compare_and_swap:
4954 case Builtin::BI__sync_lock_test_and_set:
4955 case Builtin::BI__sync_lock_release:
4956 case Builtin::BI__sync_swap:
4958 case Builtin::BI__sync_fetch_and_add_1:
4959 case Builtin::BI__sync_fetch_and_add_2:
4960 case Builtin::BI__sync_fetch_and_add_4:
4961 case Builtin::BI__sync_fetch_and_add_8:
4962 case Builtin::BI__sync_fetch_and_add_16:
4964 case Builtin::BI__sync_fetch_and_sub_1:
4965 case Builtin::BI__sync_fetch_and_sub_2:
4966 case Builtin::BI__sync_fetch_and_sub_4:
4967 case Builtin::BI__sync_fetch_and_sub_8:
4968 case Builtin::BI__sync_fetch_and_sub_16:
4970 case Builtin::BI__sync_fetch_and_or_1:
4971 case Builtin::BI__sync_fetch_and_or_2:
4972 case Builtin::BI__sync_fetch_and_or_4:
4973 case Builtin::BI__sync_fetch_and_or_8:
4974 case Builtin::BI__sync_fetch_and_or_16:
4976 case Builtin::BI__sync_fetch_and_and_1:
4977 case Builtin::BI__sync_fetch_and_and_2:
4978 case Builtin::BI__sync_fetch_and_and_4:
4979 case Builtin::BI__sync_fetch_and_and_8:
4980 case Builtin::BI__sync_fetch_and_and_16:
4982 case Builtin::BI__sync_fetch_and_xor_1:
4983 case Builtin::BI__sync_fetch_and_xor_2:
4984 case Builtin::BI__sync_fetch_and_xor_4:
4985 case Builtin::BI__sync_fetch_and_xor_8:
4986 case Builtin::BI__sync_fetch_and_xor_16:
4988 case Builtin::BI__sync_fetch_and_nand_1:
4989 case Builtin::BI__sync_fetch_and_nand_2:
4990 case Builtin::BI__sync_fetch_and_nand_4:
4991 case Builtin::BI__sync_fetch_and_nand_8:
4992 case Builtin::BI__sync_fetch_and_nand_16:
4996 case Builtin::BI__sync_fetch_and_min:
4998 case Builtin::BI__sync_fetch_and_max:
5000 case Builtin::BI__sync_fetch_and_umin:
5002 case Builtin::BI__sync_fetch_and_umax:
5005 case Builtin::BI__sync_add_and_fetch_1:
5006 case Builtin::BI__sync_add_and_fetch_2:
5007 case Builtin::BI__sync_add_and_fetch_4:
5008 case Builtin::BI__sync_add_and_fetch_8:
5009 case Builtin::BI__sync_add_and_fetch_16:
5012 case Builtin::BI__sync_sub_and_fetch_1:
5013 case Builtin::BI__sync_sub_and_fetch_2:
5014 case Builtin::BI__sync_sub_and_fetch_4:
5015 case Builtin::BI__sync_sub_and_fetch_8:
5016 case Builtin::BI__sync_sub_and_fetch_16:
5019 case Builtin::BI__sync_and_and_fetch_1:
5020 case Builtin::BI__sync_and_and_fetch_2:
5021 case Builtin::BI__sync_and_and_fetch_4:
5022 case Builtin::BI__sync_and_and_fetch_8:
5023 case Builtin::BI__sync_and_and_fetch_16:
5026 case Builtin::BI__sync_or_and_fetch_1:
5027 case Builtin::BI__sync_or_and_fetch_2:
5028 case Builtin::BI__sync_or_and_fetch_4:
5029 case Builtin::BI__sync_or_and_fetch_8:
5030 case Builtin::BI__sync_or_and_fetch_16:
5033 case Builtin::BI__sync_xor_and_fetch_1:
5034 case Builtin::BI__sync_xor_and_fetch_2:
5035 case Builtin::BI__sync_xor_and_fetch_4:
5036 case Builtin::BI__sync_xor_and_fetch_8:
5037 case Builtin::BI__sync_xor_and_fetch_16:
5040 case Builtin::BI__sync_nand_and_fetch_1:
5041 case Builtin::BI__sync_nand_and_fetch_2:
5042 case Builtin::BI__sync_nand_and_fetch_4:
5043 case Builtin::BI__sync_nand_and_fetch_8:
5044 case Builtin::BI__sync_nand_and_fetch_16:
5048 case Builtin::BI__sync_val_compare_and_swap_1:
5049 case Builtin::BI__sync_val_compare_and_swap_2:
5050 case Builtin::BI__sync_val_compare_and_swap_4:
5051 case Builtin::BI__sync_val_compare_and_swap_8:
5052 case Builtin::BI__sync_val_compare_and_swap_16:
5055 case Builtin::BI__sync_bool_compare_and_swap_1:
5056 case Builtin::BI__sync_bool_compare_and_swap_2:
5057 case Builtin::BI__sync_bool_compare_and_swap_4:
5058 case Builtin::BI__sync_bool_compare_and_swap_8:
5059 case Builtin::BI__sync_bool_compare_and_swap_16:
5062 case Builtin::BI__sync_swap_1:
5063 case Builtin::BI__sync_swap_2:
5064 case Builtin::BI__sync_swap_4:
5065 case Builtin::BI__sync_swap_8:
5066 case Builtin::BI__sync_swap_16:
5069 case Builtin::BI__sync_lock_test_and_set_1:
5070 case Builtin::BI__sync_lock_test_and_set_2:
5071 case Builtin::BI__sync_lock_test_and_set_4:
5072 case Builtin::BI__sync_lock_test_and_set_8:
5073 case Builtin::BI__sync_lock_test_and_set_16:
5076 case Builtin::BI__sync_lock_release_1:
5077 case Builtin::BI__sync_lock_release_2:
5078 case Builtin::BI__sync_lock_release_4:
5079 case Builtin::BI__sync_lock_release_8:
5080 case Builtin::BI__sync_lock_release_16: {
5092 case Builtin::BI__sync_synchronize: {
5104 case Builtin::BI__builtin_nontemporal_load:
5106 case Builtin::BI__builtin_nontemporal_store:
5108 case Builtin::BI__c11_atomic_is_lock_free:
5109 case Builtin::BI__atomic_is_lock_free: {
5117 if (BuiltinID == Builtin::BI__atomic_is_lock_free)
5131 case Builtin::BI__atomic_thread_fence:
5132 case Builtin::BI__atomic_signal_fence:
5133 case Builtin::BI__c11_atomic_thread_fence:
5134 case Builtin::BI__c11_atomic_signal_fence: {
5136 if (BuiltinID == Builtin::BI__atomic_signal_fence ||
5137 BuiltinID == Builtin::BI__c11_atomic_signal_fence)
5199 case Builtin::BI__scoped_atomic_thread_fence: {
5330 case Builtin::BI__builtin_signbit:
5331 case Builtin::BI__builtin_signbitf:
5332 case Builtin::BI__builtin_signbitl: {
5337 case Builtin::BI__warn_memset_zero_len:
5339 case Builtin::BI__annotation: {
5362 case Builtin::BI__builtin_annotation: {
5375 case Builtin::BI__builtin_addcb:
5376 case Builtin::BI__builtin_addcs:
5377 case Builtin::BI__builtin_addc:
5378 case Builtin::BI__builtin_addcl:
5379 case Builtin::BI__builtin_addcll:
5380 case Builtin::BI__builtin_subcb:
5381 case Builtin::BI__builtin_subcs:
5382 case Builtin::BI__builtin_subc:
5383 case Builtin::BI__builtin_subcl:
5384 case Builtin::BI__builtin_subcll: {
5413 case Builtin::BI__builtin_addcb:
5414 case Builtin::BI__builtin_addcs:
5415 case Builtin::BI__builtin_addc:
5416 case Builtin::BI__builtin_addcl:
5417 case Builtin::BI__builtin_addcll:
5420 case Builtin::BI__builtin_subcb:
5421 case Builtin::BI__builtin_subcs:
5422 case Builtin::BI__builtin_subc:
5423 case Builtin::BI__builtin_subcl:
5424 case Builtin::BI__builtin_subcll:
5442 case Builtin::BI__builtin_add_overflow:
5443 case Builtin::BI__builtin_sub_overflow:
5444 case Builtin::BI__builtin_mul_overflow: {
5484 case Builtin::BI__builtin_add_overflow:
5489 case Builtin::BI__builtin_sub_overflow:
5494 case Builtin::BI__builtin_mul_overflow:
5537 case Builtin::BI__builtin_uadd_overflow:
5538 case Builtin::BI__builtin_uaddl_overflow:
5539 case Builtin::BI__builtin_uaddll_overflow:
5540 case Builtin::BI__builtin_usub_overflow:
5541 case Builtin::BI__builtin_usubl_overflow:
5542 case Builtin::BI__builtin_usubll_overflow:
5543 case Builtin::BI__builtin_umul_overflow:
5544 case Builtin::BI__builtin_umull_overflow:
5545 case Builtin::BI__builtin_umulll_overflow:
5546 case Builtin::BI__builtin_sadd_overflow:
5547 case Builtin::BI__builtin_saddl_overflow:
5548 case Builtin::BI__builtin_saddll_overflow:
5549 case Builtin::BI__builtin_ssub_overflow:
5550 case Builtin::BI__builtin_ssubl_overflow:
5551 case Builtin::BI__builtin_ssubll_overflow:
5552 case Builtin::BI__builtin_smul_overflow:
5553 case Builtin::BI__builtin_smull_overflow:
5554 case Builtin::BI__builtin_smulll_overflow: {
5567 case Builtin::BI__builtin_uadd_overflow:
5568 case Builtin::BI__builtin_uaddl_overflow:
5569 case Builtin::BI__builtin_uaddll_overflow:
5572 case Builtin::BI__builtin_usub_overflow:
5573 case Builtin::BI__builtin_usubl_overflow:
5574 case Builtin::BI__builtin_usubll_overflow:
5577 case Builtin::BI__builtin_umul_overflow:
5578 case Builtin::BI__builtin_umull_overflow:
5579 case Builtin::BI__builtin_umulll_overflow:
5582 case Builtin::BI__builtin_sadd_overflow:
5583 case Builtin::BI__builtin_saddl_overflow:
5584 case Builtin::BI__builtin_saddll_overflow:
5587 case Builtin::BI__builtin_ssub_overflow:
5588 case Builtin::BI__builtin_ssubl_overflow:
5589 case Builtin::BI__builtin_ssubll_overflow:
5592 case Builtin::BI__builtin_smul_overflow:
5593 case Builtin::BI__builtin_smull_overflow:
5594 case Builtin::BI__builtin_smulll_overflow:
5606 case Builtin::BIaddressof:
5607 case Builtin::BI__addressof:
5608 case Builtin::BI__builtin_addressof:
5610 case Builtin::BI__builtin_function_start:
5613 case Builtin::BI__builtin_operator_new:
5616 case Builtin::BI__builtin_operator_delete:
5621 case Builtin::BI__builtin_is_aligned:
5623 case Builtin::BI__builtin_align_up:
5625 case Builtin::BI__builtin_align_down:
5628 case Builtin::BI__noop:
5631 case Builtin::BI__builtin_call_with_static_chain: {
5638 case Builtin::BI_InterlockedExchange8:
5639 case Builtin::BI_InterlockedExchange16:
5640 case Builtin::BI_InterlockedExchange:
5641 case Builtin::BI_InterlockedExchangePointer:
5644 case Builtin::BI_InterlockedCompareExchangePointer:
5647 case Builtin::BI_InterlockedCompareExchangePointer_nf:
5650 case Builtin::BI_InterlockedCompareExchange8:
5651 case Builtin::BI_InterlockedCompareExchange16:
5652 case Builtin::BI_InterlockedCompareExchange:
5653 case Builtin::BI_InterlockedCompareExchange64:
5655 case Builtin::BI_InterlockedIncrement16:
5656 case Builtin::BI_InterlockedIncrement:
5659 case Builtin::BI_InterlockedDecrement16:
5660 case Builtin::BI_InterlockedDecrement:
5663 case Builtin::BI_InterlockedAnd8:
5664 case Builtin::BI_InterlockedAnd16:
5665 case Builtin::BI_InterlockedAnd:
5667 case Builtin::BI_InterlockedExchangeAdd8:
5668 case Builtin::BI_InterlockedExchangeAdd16:
5669 case Builtin::BI_InterlockedExchangeAdd:
5672 case Builtin::BI_InterlockedExchangeSub8:
5673 case Builtin::BI_InterlockedExchangeSub16:
5674 case Builtin::BI_InterlockedExchangeSub:
5677 case Builtin::BI_InterlockedOr8:
5678 case Builtin::BI_InterlockedOr16:
5679 case Builtin::BI_InterlockedOr:
5681 case Builtin::BI_InterlockedXor8:
5682 case Builtin::BI_InterlockedXor16:
5683 case Builtin::BI_InterlockedXor:
5686 case Builtin::BI_bittest64:
5687 case Builtin::BI_bittest:
5688 case Builtin::BI_bittestandcomplement64:
5689 case Builtin::BI_bittestandcomplement:
5690 case Builtin::BI_bittestandreset64:
5691 case Builtin::BI_bittestandreset:
5692 case Builtin::BI_bittestandset64:
5693 case Builtin::BI_bittestandset:
5694 case Builtin::BI_interlockedbittestandreset:
5695 case Builtin::BI_interlockedbittestandreset64:
5696 case Builtin::BI_interlockedbittestandset64:
5697 case Builtin::BI_interlockedbittestandset:
5698 case Builtin::BI_interlockedbittestandset_acq:
5699 case Builtin::BI_interlockedbittestandset_rel:
5700 case Builtin::BI_interlockedbittestandset_nf:
5701 case Builtin::BI_interlockedbittestandreset_acq:
5702 case Builtin::BI_interlockedbittestandreset_rel:
5703 case Builtin::BI_interlockedbittestandreset_nf:
5708 case Builtin::BI__iso_volatile_load8:
5709 case Builtin::BI__iso_volatile_load16:
5710 case Builtin::BI__iso_volatile_load32:
5711 case Builtin::BI__iso_volatile_load64:
5713 case Builtin::BI__iso_volatile_store8:
5714 case Builtin::BI__iso_volatile_store16:
5715 case Builtin::BI__iso_volatile_store32:
5716 case Builtin::BI__iso_volatile_store64:
5719 case Builtin::BI__builtin_ptrauth_sign_constant:
5722 case Builtin::BI__builtin_ptrauth_auth:
5723 case Builtin::BI__builtin_ptrauth_auth_and_resign:
5724 case Builtin::BI__builtin_ptrauth_blend_discriminator:
5725 case Builtin::BI__builtin_ptrauth_sign_generic_data:
5726 case Builtin::BI__builtin_ptrauth_sign_unauthenticated:
5727 case Builtin::BI__builtin_ptrauth_strip: {
5739 case Builtin::BI__builtin_ptrauth_auth_and_resign:
5744 case Builtin::BI__builtin_ptrauth_auth:
5745 case Builtin::BI__builtin_ptrauth_sign_unauthenticated:
5750 case Builtin::BI__builtin_ptrauth_sign_generic_data:
5755 case Builtin::BI__builtin_ptrauth_blend_discriminator:
5756 case Builtin::BI__builtin_ptrauth_strip:
5763 case Builtin::BI__builtin_ptrauth_auth:
5765 case Builtin::BI__builtin_ptrauth_auth_and_resign:
5767 case Builtin::BI__builtin_ptrauth_blend_discriminator:
5769 case Builtin::BI__builtin_ptrauth_sign_generic_data:
5771 case Builtin::BI__builtin_ptrauth_sign_unauthenticated:
5773 case Builtin::BI__builtin_ptrauth_strip:
5781 if (BuiltinID != Builtin::BI__builtin_ptrauth_sign_generic_data &&
5782 BuiltinID != Builtin::BI__builtin_ptrauth_blend_discriminator &&
5789 case Builtin::BI__exception_code:
5790 case Builtin::BI_exception_code:
5792 case Builtin::BI__exception_info:
5793 case Builtin::BI_exception_info:
5795 case Builtin::BI__abnormal_termination:
5796 case Builtin::BI_abnormal_termination:
5798 case Builtin::BI_setjmpex:
5803 case Builtin::BI_setjmp:
5815 case Builtin::BImove:
5816 case Builtin::BImove_if_noexcept:
5817 case Builtin::BIforward:
5818 case Builtin::BIforward_like:
5819 case Builtin::BIas_const:
5821 case Builtin::BI__GetExceptionInfo: {
5828 case Builtin::BI__fastfail:
5831 case Builtin::BI__builtin_coro_id:
5833 case Builtin::BI__builtin_coro_promise:
5835 case Builtin::BI__builtin_coro_resume:
5838 case Builtin::BI__builtin_coro_frame:
5840 case Builtin::BI__builtin_coro_noop:
5842 case Builtin::BI__builtin_coro_free:
5844 case Builtin::BI__builtin_coro_destroy:
5847 case Builtin::BI__builtin_coro_done:
5849 case Builtin::BI__builtin_coro_alloc:
5851 case Builtin::BI__builtin_coro_begin:
5853 case Builtin::BI__builtin_coro_end:
5855 case Builtin::BI__builtin_coro_suspend:
5857 case Builtin::BI__builtin_coro_size:
5859 case Builtin::BI__builtin_coro_align:
5863 case Builtin::BIread_pipe:
5864 case Builtin::BIwrite_pipe: {
5878 const char *Name = (BuiltinID == Builtin::BIread_pipe) ? "__read_pipe_2"
5892 const char *Name = (BuiltinID == Builtin::BIread_pipe) ? "__read_pipe_4"
5913 case Builtin::BIreserve_read_pipe:
5914 case Builtin::BIreserve_write_pipe:
5915 case Builtin::BIwork_group_reserve_read_pipe:
5916 case Builtin::BIwork_group_reserve_write_pipe:
5917 case Builtin::BIsub_group_reserve_read_pipe:
5918 case Builtin::BIsub_group_reserve_write_pipe: {
5921 if (BuiltinID == Builtin::BIreserve_read_pipe)
5923 else if (BuiltinID == Builtin::BIreserve_write_pipe)
5925 else if (BuiltinID == Builtin::BIwork_group_reserve_read_pipe)
5927 else if (BuiltinID == Builtin::BIwork_group_reserve_write_pipe)
5929 else if (BuiltinID == Builtin::BIsub_group_reserve_read_pipe)
5954 case Builtin::BIcommit_read_pipe:
5955 case Builtin::BIcommit_write_pipe:
5956 case Builtin::BIwork_group_commit_read_pipe:
5957 case Builtin::BIwork_group_commit_write_pipe:
5958 case Builtin::BIsub_group_commit_read_pipe:
5959 case Builtin::BIsub_group_commit_write_pipe: {
5961 if (BuiltinID == Builtin::BIcommit_read_pipe)
5963 else if (BuiltinID == Builtin::BIcommit_write_pipe)
5965 else if (BuiltinID == Builtin::BIwork_group_commit_read_pipe)
5967 else if (BuiltinID == Builtin::BIwork_group_commit_write_pipe)
5969 else if (BuiltinID == Builtin::BIsub_group_commit_read_pipe)
5990 case Builtin::BIget_pipe_num_packets:
5991 case Builtin::BIget_pipe_max_packets: {
5994 if (BuiltinID == Builtin::BIget_pipe_num_packets)
6015 case Builtin::BIto_global:
6016 case Builtin::BIto_local:
6017 case Builtin::BIto_private: {
6048 case Builtin::BIenqueue_kernel: {
6232 case Builtin::BIget_kernel_work_group_size: {
6247 case Builtin::BIget_kernel_preferred_work_group_size_multiple: {
6262 case Builtin::BIget_kernel_max_sub_group_size_for_ndrange:
6263 case Builtin::BIget_kernel_sub_group_count_for_ndrange: {
6274 BuiltinID == Builtin::BIget_kernel_max_sub_group_size_for_ndrange
6285 case Builtin::BI__builtin_store_half:
6286 case Builtin::BI__builtin_store_halff: {
6293 case Builtin::BI__builtin_load_half: {
6298 case Builtin::BI__builtin_load_halff: {
6303 case Builtin::BI__builtin_printf:
6304 case Builtin::BIprintf:
6318 case Builtin::BI__builtin_canonicalize:
6319 case Builtin::BI__builtin_canonicalizef:
6320 case Builtin::BI__builtin_canonicalizef16:
6321 case Builtin::BI__builtin_canonicalizel:
6325 case Builtin::BI__builtin_thread_pointer: {
6331 case Builtin::BI__builtin_os_log_format:
6334 case Builtin::BI__xray_customevent: {
6365 case Builtin::BI__xray_typedevent: {
6403 case Builtin::BI__builtin_ms_va_start:
6404 case Builtin::BI__builtin_ms_va_end:
6407 BuiltinID == Builtin::BI__builtin_ms_va_start));
6409 case Builtin::BI__builtin_ms_va_copy: {
6426 case Builtin::BI__builtin_get_device_side_mangled_name: {
7944 const ARMVectorIntrinsicInfo *Builtin =
7947 if (Builtin != IntrinsicMap.end() && Builtin->BuiltinID == BuiltinID)
7948 return Builtin;
9544 const ARMVectorIntrinsicInfo *Builtin = findARMVectorIntrinsicInMap(
9546 if (Builtin)
9548 Builtin->BuiltinID, Builtin->LLVMIntrinsic, Builtin->AltLLVMIntrinsic,
9549 Builtin->NameHint, Builtin->TypeModifier, E, Ops, PtrOp0, PtrOp1, Arch);
10818 auto *Builtin = findARMVectorIntrinsicInMap(AArch64SVEIntrinsicMap, BuiltinID,
10822 SVETypeFlags TypeFlags(Builtin->TypeModifier);
10826 return EmitSVEMaskedLoad(E, Ty, Ops, Builtin->LLVMIntrinsic,
10829 return EmitSVEMaskedStore(E, Ops, Builtin->LLVMIntrinsic);
10831 return EmitSVEGatherLoad(TypeFlags, Ops, Builtin->LLVMIntrinsic);
10833 return EmitSVEScatterStore(TypeFlags, Ops, Builtin->LLVMIntrinsic);
10835 return EmitSVEPrefetchLoad(TypeFlags, Ops, Builtin->LLVMIntrinsic);
10837 return EmitSVEGatherPrefetch(TypeFlags, Ops, Builtin->LLVMIntrinsic);
10839 return EmitSVEStructLoad(TypeFlags, Ops, Builtin->LLVMIntrinsic);
10841 return EmitSVEStructStore(TypeFlags, Ops, Builtin->LLVMIntrinsic);
10848 else if (Builtin->LLVMIntrinsic != 0) {
10896 Function *F = CGM.getIntrinsic(Builtin->LLVMIntrinsic,
10950 auto OverloadedTy = getSVEType(SVETypeFlags(Builtin->TypeModifier));
10960 SVETypeFlags TypeFlags(Builtin->TypeModifier);
10968 SVETypeFlags TypeFlags(Builtin->TypeModifier);
11064 SVETypeFlags TypeFlags(Builtin->TypeModifier);
11098 SVETypeFlags TF(Builtin->TypeModifier);
11119 SVETypeFlags TF(Builtin->TypeModifier);
11204 auto *Builtin = findARMVectorIntrinsicInMap(AArch64SMEIntrinsicMap, BuiltinID,
11208 SVETypeFlags TypeFlags(Builtin->TypeModifier);
11212 return EmitSMELd1St1(TypeFlags, Ops, Builtin->LLVMIntrinsic);
11214 return EmitSMEReadWrite(TypeFlags, Ops, Builtin->LLVMIntrinsic);
11217 return EmitSMEZero(TypeFlags, Ops, Builtin->LLVMIntrinsic);
11222 return EmitSMELdrStr(TypeFlags, Ops, Builtin->LLVMIntrinsic);
11232 if (Builtin->LLVMIntrinsic == 0)
11256 ? CGM.getIntrinsic(Builtin->LLVMIntrinsic)
11257 : CGM.getIntrinsic(Builtin->LLVMIntrinsic, {getSVEType(TypeFlags)});
11273 if (BuiltinID == Builtin::BI__builtin_cpu_supports)
12059 const ARMVectorIntrinsicInfo *Builtin = findARMVectorIntrinsicInMap(
12062 if (Builtin) {
12064 Value *Result = EmitCommonNeonSISDBuiltinExpr(*this, *Builtin, Ops, E);
12782 Builtin = findARMVectorIntrinsicInMap(AArch64SIMDIntrinsicMap, BuiltinID,
12785 if (Builtin)
12787 Builtin->BuiltinID, Builtin->LLVMIntrinsic, Builtin->AltLLVMIntrinsic,
12788 Builtin->NameHint, Builtin->TypeModifier, E, Ops,
15189 if (BuiltinID == Builtin::BI__builtin_cpu_is)
15191 if (BuiltinID == Builtin::BI__builtin_cpu_supports)
15193 if (BuiltinID == Builtin::BI__builtin_cpu_init)
16302 // Builtin type is vXi64 so multiply by 8 to get bytes.
16331 // Builtin type is vXi64 so multiply by 8 to get bytes.
17843 case Builtin::BI__builtin_cpu_is: {
17882 case Builtin::BI__builtin_cpu_supports: {
19324 case Builtin::BI__builtin_hlsl_resource_getpointer: {
19335 case Builtin::BI__builtin_hlsl_all: {
19342 case Builtin::BI__builtin_hlsl_any: {
19349 case Builtin::BI__builtin_hlsl_asdouble:
19351 case Builtin::BI__builtin_hlsl_elementwise_clamp: {
19373 case Builtin::BI__builtin_hlsl_cross: {
19388 case Builtin::BI__builtin_hlsl_dot: {
19426 case Builtin::BI__builtin_hlsl_dot4add_i8packed: {
19436 case Builtin::BI__builtin_hlsl_dot4add_u8packed: {
19446 case Builtin::BI__builtin_hlsl_elementwise_firstbithigh: {
19454 case Builtin::BI__builtin_hlsl_elementwise_firstbitlow: {
19462 case Builtin::BI__builtin_hlsl_lerp: {
19472 case Builtin::BI__builtin_hlsl_normalize: {
19483 case Builtin::BI__builtin_hlsl_elementwise_degrees: {
19493 case Builtin::BI__builtin_hlsl_elementwise_frac: {
19501 case Builtin::BI__builtin_hlsl_elementwise_isinf: {
19515 case Builtin::BI__builtin_hlsl_mad: {
19542 case Builtin::BI__builtin_hlsl_elementwise_rcp: {
19556 case Builtin::BI__builtin_hlsl_elementwise_rsqrt: {
19564 case Builtin::BI__builtin_hlsl_elementwise_saturate: {
19573 case Builtin::BI__builtin_hlsl_select: {
19594 case Builtin::BI__builtin_hlsl_step: {
19604 case Builtin::BI__builtin_hlsl_wave_active_all_true: {
19613 case Builtin::BI__builtin_hlsl_wave_active_any_true: {
19622 case Builtin::BI__builtin_hlsl_wave_active_count_bits: {
19629 case Builtin::BI__builtin_hlsl_wave_active_sum: {
19646 case Builtin::BI__builtin_hlsl_wave_active_max: {
19663 case Builtin::BI__builtin_hlsl_wave_get_lane_index: {
19680 case Builtin::BI__builtin_hlsl_wave_is_first_lane: {
19685 case Builtin::BI__builtin_hlsl_wave_read_lane_at: {
19703 case Builtin::BI__builtin_hlsl_elementwise_sign: {
19727 case Builtin::BI__builtin_hlsl_elementwise_radians: {
19736 case Builtin::BI__builtin_hlsl_buffer_update_counter: {
19745 case Builtin::BI__builtin_hlsl_elementwise_splitdouble: {
19753 case Builtin::BI__builtin_hlsl_elementwise_clip:
19757 case Builtin::BI__builtin_hlsl_group_memory_barrier_with_group_sync: {
23203 if (BuiltinID == Builtin::BI__builtin_cpu_supports)
23205 if (BuiltinID == Builtin::BI__builtin_cpu_init)
23207 if (BuiltinID == Builtin::BI__builtin_cpu_is)