Hi, This patch makes both outputs of neon_vzip/vuzp/vtrn_internal explicitly dependent on both inputs, preventing incorrect optimization: for (a,b)<- vzip (c,d) and (e,f) <- vzip (g,d) CSE decides that b==f, since b and f depend only on d. Tested on arm-linux-gnueabi. OK for trunk? OK for 4.6 after testing? Thanks, Ira ChangeLog: 2011-04-07 Ulrich Weigand Ira Rosen PR target/48252 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments to match neon_vzip/vuzp/vtrn_internal. * config/arm/neon.md (neon_vtrn_internal): Make both outputs explicitly dependent on both inputs. (neon_vzip_internal, neon_vuzp_internal): Likewise. testsuite/Changelog: PR target/48252 * gcc.target/arm/pr48252.c: New test.