https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81931
--- Comment #10 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Aldy Hernandez from comment #9) > (In reply to Richard Biener from comment #7) > Fixes testcase. Untested otherwise. > > diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c > index 676c806..04a30b8 100644 > --- a/gcc/tree-ssanames.c > +++ b/gcc/tree-ssanames.c > @@ -470,7 +470,7 @@ get_nonzero_bits (const_tree name) > if (TREE_CODE (name) == INTEGER_CST) > return name; > > - unsigned int precision = TYPE_PRECISION (TREE_TYPE (name)); > + unsigned int precision = element_precision (TREE_TYPE (name)); > if (POINTER_TYPE_P (TREE_TYPE (name))) > { > struct ptr_info_def *pi = SSA_NAME_PTR_INFO (name); Tested on powerpc64-linux {-m32,-m64}; it fixes everything. Thanks!