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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-01-05
     Ever confirmed|0                           |1

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
  _5 = BIT_FIELD_REF <v1_1(D), 32, 0>;
  _6 = BIT_FIELD_REF <v2_2(D), 32, 0>;
  _7 = _5 * _6;

Here is a shorter testcase for one of the issues:
typedef float f32x4 __attribute__((vector_size(16)));
typedef double f64x2 __attribute__((vector_size(16)));


float f(f32x4 v1, f32x4 v2)
{
  return v1[0] * v2[0];
}
double d(f64x2 v1, f64x2 v2)
{
  return v1[0] * v2[0];
}

----- CUT ----
This is the extraction issue.

There is a generation issue too:
typedef float f32x4 __attribute__((vector_size(16)));
typedef double f64x2 __attribute__((vector_size(16)));


f32x4 f1(float a, float b, float c, float d)
{
  return (f32x4){a,b,c,d};
}
f64x2 d1(float a, float b)
{
  return (f64x2){a,b};
}
---- CUT ----
I think they both should be filed seperately too and make this depdent on those
two issues.

Reply via email to