[llvm] r207088 - X86: Emit test instead of constant shift + compare if the shift result is unused.
Tobias Grosser
tobias at grosser.es
Thu Apr 24 13:01:49 PDT 2014
On 24/04/2014 10:15, Benjamin Kramer wrote:
> Author: d0k
> Date: Thu Apr 24 03:15:31 2014
> New Revision: 207088
>
> URL: http://llvm.org/viewvc/llvm-project?rev=207088&view=rev
> Log:
> X86: Emit test instead of constant shift + compare if the shift result is unused.
>
> This allows us to compile
> return (mask & 0x8 ? a : b);
> into
> testb $8, %dil
> cmovnel %edx, %esi
> instead of
> andl $8, %edi
> shrl $3, %edi
> cmovnel %edx, %esi
>
> which we formed previously because dag combiner canonicalizes setcc of and into shift.
After this commit, my -O3 test-suite buildbot showed a miscompare during
the execution of MultiSource/Benchmarks/mediabench/g721/g721encode/encode.
http://lab.llvm.org:8011/builders/polly-perf-O3/builds/2811
The only other two commits in this batch are 207090 and 207091 from
Chandler, but I guess they should not cause this.
I did not investigate further.
Tobias
More information about the llvm-commits
mailing list