https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87532

--- Comment #14 from kelvin at gcc dot gnu.org ---
To reconcile comments 12 and 13, the subtle issue is that we don't even get
into the altivec_resolve_overloaded_builtin function for the following code:

  vec_extract (vi, 10);

The gimple expander replaces this code with BIT_FIELD_REF <> before even
attempting to expand this overloaded builtin.

However, in the case that the "identical" code is represented by inlined
function X, we do come through altivec_resolve_overloaded_builtin.

int X (vector int vi, int index) {
  return vec_extract (vi, index);
}
...
X (vi, 10)


There are "two" ways to fix this problem.  Either we can make the gimple
expansion of in-lined functions match the non-inlined functions, or we can
insert code into altivec_resolve_overloaded_builtin to accommodate the
inconsistencies.

I gather you prefer I address this within altivec_resolve_overloaded_builtin.

I'll pursue this unless directed otherwise.

Reply via email to