alpha.c (code_for_builtin): Replace special-case builtin codes with ctzdi2, clzdi2...
authorRichard Henderson <rth@redhat.com>
Tue, 8 Mar 2005 12:01:17 +0000 (04:01 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 8 Mar 2005 12:01:17 +0000 (04:01 -0800)
commit360139876e080a505c41ad40e7fec7383a93fc8f
treeca9d4140dfe57915b40135466a7e552e51bd84e3
parentfe8a06f20a82dceb608ad8ba9f7b771ea8421b9d
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
gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.md