+2020-05-19 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/94591
+ * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
+ identity permutation.
+
2020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short,
if (d->vec_flags == VEC_SVE_PRED
|| !d->one_vector_p
- || !d->perm[0].is_constant (&diff))
+ || !d->perm[0].is_constant (&diff)
+ || !diff)
return false;
size = (diff + 1) * GET_MODE_UNIT_SIZE (d->vmode);
+2020-05-19 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/94591
+ * gcc.c-torture/execute/pr94591.c: New test.
+
2020-05-19 Nathan Sidwell <nathan@acm.org>
* c-c++-common/raw-string-14.c: Adjust errors.
--- /dev/null
+typedef unsigned __attribute__((__vector_size__(8))) V2SI_u;
+typedef int __attribute__((__vector_size__(8))) V2SI_d;
+
+typedef unsigned long __attribute__((__vector_size__(16))) V2DI_u;
+typedef long __attribute__((__vector_size__(16))) V2DI_d;
+
+void id_V2SI(V2SI_d *v)
+{
+ *v = __builtin_shuffle(*v, (V2SI_d)(V2SI_u) { 0, 1 });
+}
+
+void id_V2DI(V2DI_d *v)
+{
+ *v = __builtin_shuffle(*v, (V2DI_d)(V2DI_u) { 0, 1 });
+}
+
+extern void abort(void);
+
+int main(void)
+{
+ V2SI_d si = { 35, 42 };
+ id_V2SI(&si);
+
+ if (si[0] != 35 || si[1] != 42)
+ abort();
+
+ V2DI_d di = { 63, 38 };
+ id_V2DI(&di);
+
+ if (di[0] != 63 || di[1] != 38)
+ abort();
+}