diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-09-29 18:15:26 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-09-29 18:15:26 +0000 |
commit | a2efe82b8160e9e72b94899cdcee21c7a6ec3797 (patch) | |
tree | d1f1cfea5ef792de431bad9dd2d71180af67da1e /llvm/test/CodeGen/X86/dagcombine-cse.ll | |
parent | 845789e823c5a57bcd5b3a0284b3d51dfe9ec9d7 (diff) | |
download | bcm5719-llvm-a2efe82b8160e9e72b94899cdcee21c7a6ec3797.tar.gz bcm5719-llvm-a2efe82b8160e9e72b94899cdcee21c7a6ec3797.zip |
[X86] SimplifyDemandedVectorEltsForTargetNode - remove identity target shuffles before simplifying inputs
By removing demanded target shuffles that simplify to zero/undef/identity before simplifying its inputs we improve chances of further simplification, as only the immediate parent user of the combined is added back to the work list - this still doesn't help us if its passed through other ops though (bitcasts....).
llvm-svn: 343390
Diffstat (limited to 'llvm/test/CodeGen/X86/dagcombine-cse.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/dagcombine-cse.ll | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/llvm/test/CodeGen/X86/dagcombine-cse.ll b/llvm/test/CodeGen/X86/dagcombine-cse.ll index 778040a888f..bf1dab35875 100644 --- a/llvm/test/CodeGen/X86/dagcombine-cse.ll +++ b/llvm/test/CodeGen/X86/dagcombine-cse.ll @@ -9,9 +9,7 @@ define i32 @t(i8* %ref_frame_ptr, i32 %ref_frame_stride, i32 %idxX, i32 %idxY) n ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx ; X32-NEXT: imull {{[0-9]+}}(%esp), %ecx ; X32-NEXT: addl {{[0-9]+}}(%esp), %ecx -; X32-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero -; X32-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,2,4,5,6,7] -; X32-NEXT: movd %xmm0, %eax +; X32-NEXT: movl (%eax,%ecx), %eax ; X32-NEXT: retl ; ; X64-LABEL: t: |