[PATCH] D13161: [PATCH, PR24373] Combine shifts for x86

Evgeny Stupachenko via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 14 07:15:52 PDT 2015


evstupac updated this revision to Diff 37349.
evstupac added a comment.

During final check 2 new tests failed on x86:

1. sar_fold64.ll failed on Windows. Fixed by using regular expression for parameter register:

"movswq %{{[cd][xi]}}, %rax" as parameter could be "cx" or "di"
and
"movsbq %{{[cdi]*l}}, %rax" as parameter could be "cl" or "dil"

2. recently modified "vector-sext.ll" also failed as contains appropriate for folding shr/shl combinations.

This case is less obvious as for some reason the folding influence on scheduling pass.
I'm not happy with such dramatic change on scheduler pass, however I believe that should be fixed by another patch, not related to instructions combine. I've also checked the performance of changed function "load_sext_16i1_to_16i16" and it is the same with and without the patch.
I'll submit corresponding bug report after commit.

Is the patch still ok?


Repository:
  rL LLVM

http://reviews.llvm.org/D13161

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
  test/CodeGen/X86/sar_fold.ll
  test/CodeGen/X86/sar_fold64.ll
  test/CodeGen/X86/vector-sext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13161.37349.patch
Type: text/x-patch
Size: 21278 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151014/432d5d3b/attachment.bin>


More information about the llvm-commits mailing list