re PR target/29776 (result of ffs/clz/ctz/popcount/parity are already sign-extended)
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. From-SVN: r200731
Showing
- gcc/ChangeLog 14 additions, 0 deletionsgcc/ChangeLog
- gcc/builtins.c 2 additions, 6 deletionsgcc/builtins.c
- gcc/fold-const.c 2 additions, 0 deletionsgcc/fold-const.c
- gcc/testsuite/ChangeLog 5 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.dg/tree-ssa/vrp89.c 57 additions, 0 deletionsgcc/testsuite/gcc.dg/tree-ssa/vrp89.c
- gcc/tree-vrp.c 178 additions, 14 deletionsgcc/tree-vrp.c
- gcc/tree.h 1 addition, 1 deletiongcc/tree.h
- libgcc/ChangeLog 5 additions, 0 deletionslibgcc/ChangeLog
- libgcc/libgcc2.c 1 addition, 1 deletionlibgcc/libgcc2.c
Loading
Please register or sign in to comment