On Tue, Nov 10, 2015 at 1:09 AM, Bernd Schmidt <bschm...@redhat.com> wrote: > On 11/07/2015 01:46 PM, Richard Sandiford wrote: >> >> @@ -3814,8 +3817,8 @@ extract_range_basic (value_range *vr, gimple *stmt) >> break; >> /* Both __builtin_ffs* and __builtin_popcount return >> [0, prec]. */ >> - CASE_INT_FN (BUILT_IN_FFS): >> - CASE_INT_FN (BUILT_IN_POPCOUNT): >> + CASE_CFN_FFS: >> + CASE_CFN_POPCOUNT: >> arg = gimple_call_arg (stmt, 0); >> prec = TYPE_PRECISION (TREE_TYPE (arg)); >> mini = 0; > > > So let me see if I understood this. From what we discussed the purpose of > these new internal functions is that they can have vector types. If so, > isn't this code (here and elsewhere) which expects integers potentially > going to be confused?
We indeed need to add additional checks to most users of CASE_CFN_* to cover the bigger freedom that exists with respect to types. Richard, please audit all the cases you change for that. Thanks, Richard. > > > Bernd