http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29776

--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Also, perhaps expand_builtin_unop for the int bitops builtin
(ffs/parity/popcount/clz/ctz/clrsb) optabs, if target returned by expand_unop
is wider than target_mode, perhaps we could set SUBREG_PROMOTED_VAR_P
and !SUBREG_PROMOTED_UNSIGNED_P.  When the builtins are expanded using libcall,
the libcalls return int and so does the builtin, thus the target_mode should
then be equal to what we have, and otherwise I'd think the result should be
already extended, as in target should be the return value, not some value with
target value only in the low bits.  But that would require verification for all
targets.

Reply via email to