[Bug target/29776] result of ffs/clz/ctz/popcount/parity are already sign-extended
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jul 6 09:54:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29776
--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Sat Jul 6 09:34:17 2013
New Revision: 200731
URL: http://gcc.gnu.org/viewcvs?rev=200731&root=gcc&view=rev
Log:
PR target/29776
* fold-const.c (tree_call_nonnegative_warnv_p): Return true
for BUILT_IN_C{LZ,LRSB}*.
* tree.h (CASE_INT_FN): Add FN##IMAX case.
* tree-vrp.c (extract_range_basic): Handle
BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
fall thru to code calling set_value*.
* builtins.c (expand_builtin): Remove *IMAX cases.
(fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
if width is bigger than 2*HWI.
* libgcc2.c (__floattisf): Avoid undefined signed overflow.
* gcc.dg/tree-ssa/vrp89.c: New test.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp89.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c
trunk/gcc/tree.h
trunk/libgcc/ChangeLog
trunk/libgcc/libgcc2.c
More information about the Gcc-bugs
mailing list