[LLVMdev] LLVM 2.8 and MMX

Bill Wendling
Tue, 21 Sep 2010 21:36:47 -0000

On Sep 21, 2010, at 10:23 AM, Nicolas Capens wrote:

> Hi all,
>
> Sorry for the late reply. I got sidetracked by other fun projects. ;-)
>
> I found that the performance regression is caused by revisions 112804,
> 112805 and 112806. Those changes were made 2 days prior to the 2.8
> branching, so it may have not been the intention to include them there?
> Either way they make my vector-intensive code two times slower so it would
> be much appreciated to revert these changes for the 2.8 release.
>
Hi Nicolas,

Are you able to narrow it down to one of those patches? From the comments,
112804 and 112805 seem fairly innocuous:

------------------------------------------------------------------------
r112805 | bruno | 2010-09-01 21:20:26 -0700 (Wed, 01 Sep 2010) | 1 line

Move condition out to prepare for more matching
------------------------------------------------------------------------
r112804 | bruno | 2010-09-01 20:57:58 -0700 (Wed, 01 Sep 2010) | 1 line

Remove checking for isUNPCKL_v_undef_Mask, the specific node is already emitted
for it
------------------------------------------------------------------------

This one maybe caused the MMX regression?

------------------------------------------------------------------------
r112806 | bruno | 2010-09-01 22:23:12 -0700 (Wed, 01 Sep 2010) | 1 line

Replace unpckl_undef and unpckh_undef matching with target specific opcodes
------------------------------------------------------------------------

If you can narrow it down, file a bug report, and if it doesn't cause a
regression from 2.7 in other areas of the compiler, then we can make a
determination on whether to remove the offending commit from 2.8.

Thanks!
-bw