On 04/08/14 14:32, Alan Lawrence wrote: > At the moment, for two-element vectors, __builtin_shuffle (vector, (mask) {C, > C}) for identical constants C outputs a zip (with both argument vectors the > same) rather than a dup. Dup is more obvious and easier to read, so prefer it. > > For big-endian, aarch64_evpc_dup always aborts; however tests demonstrate it > works ok, so enable it. > > Finally, add a testcase (of execution results, this gives confidence that > evpc_dup is ok for bigendian - yes, a different element index is output than > for > little-endian). Note existing tests for zip are not affected, they always > have > the two arguments different. > > gcc/ChangeLog: > * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian. > (aarch64_expand_vec_perm_const): Check for dup before zip. > > gcc/testsuite/ChangeLog: > * gcc.target/aarch64/vdup_n_2.c: New test. > >
OK. R.