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

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |acoplan at gcc dot gnu.org

--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Here is a bit more of a cleaned-up testcase which is a bit more readable:

typedef char __attribute__((vector_size(4))) v4qi;
typedef short __attribute__((vector_size(2 * sizeof(short)))) v2hi;
typedef short __attribute__((vector_size(8 * sizeof(short)))) v8hi;
typedef int __attribute__((vector_size(8 * sizeof(int)))) v8si;
typedef long __attribute__((vector_size(2 * sizeof(long)))) v2di;
typedef long __attribute__((vector_size(4 * sizeof(long)))) v4di;
typedef long __attribute__((vector_size(8 * sizeof(long)))) v8di;
typedef long __attribute__((vector_size(32 * sizeof(long)))) v32di;
v4qi f, h;
long g;
int i(v2di) {
  v32di j, k;
  v4qi l = __builtin_convertvector(__builtin_shufflevector(k, j, 34, 1, 9, 7),
v4qi);
  f = (v4qi){l[3]};
}
v4di m() {
  if (g)
    if (h[0])
      return (v4di){3};
  int n = i(__builtin_convertvector((v2hi)1, v2di));
  return __builtin_shufflevector(
      __builtin_convertvector(
          (v8hi){1, 1, 1, 1, 1, 1, 1},
          v8di),
      __builtin_convertvector((v8si){n}, v8di),
      2, 11, 4, 6);
}

Reply via email to