http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50031
--- Comment #5 from William J. Schmidt <wschmidt at gcc dot gnu.org> 2012-02-13 18:25:36 UTC --- Just a quick note about the patch that was committed last week. For 4.6 and 4.7, this approach adjusts the cost model for vector permutes with TARGET_VSX, making them appear more expensive across the board. This works well in the usual case where permutes are somewhat dense with respect to other vector operations. In rarer cases, this has drawbacks. When, for example, a loop contains only a single permute, this is overly conservative and loses otherwise useful vectorization opportunities. An example of this (thanks to Mike) is cSimpleChannel::deliver(CMessage*, double) in 471.omnetpp. In 4.8, we will want to model things more carefully to handle both the dense and sparse permute cases.