alpha.c (code_for_builtin): Replace special-case builtin codes with ctzdi2, clzdi2, popcountdi2.
* config/alpha/alpha.c (code_for_builtin): Replace special-case builtin codes with ctzdi2, clzdi2, popcountdi2. (struct alpha_builtin_def): Add is_const. (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it. (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New. (alpha_init_builtins): Init them. Set nothrow and const attributes on builtins. (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, alpha_fold_vector_minmax, alpha_fold_builtin_perr, alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb, alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw, alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz, alpha_fold_builtin_ctpop, alpha_fold_builtin): New. (TARGET_FOLD_BUILTIN): New. * config/alpha/alpha.md (UNSPEC_CTTZ): Remove. (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove. (ffsdi2): Use ctz. (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove. From-SVN: r96098
Showing
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment