https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118206
--- Comment #13 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #12) > One more thing. > All or most of the uniform_integer_cst_p in the new code look > weird/unexpected/wrong. > uniform_integer_cst_p skips location wrappers and then accepts either an > INTEGER_CST or vectors which repeat the same constant, tons of different > trees. Note uniform_integer_cst_p does return the INTEGER_CST if it exists. So you could do: wi::to_wide (uniform_integer_cst_p (res_ops[1]));