[PATCH] D11503: [INSTCOMBINE][X86][SSE] Replace sign/zero extension intrinsics with native IR

Simon Pilgrim llvm-dev at redking.me.uk
Sat Jul 25 08:07:07 PDT 2015


RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel, andreadb, silvas.
RKSimon added a subscriber: llvm-commits.
RKSimon set the repository for this revision to rL LLVM.

Now that we are generating sane codegen for vector sext/zext nodes on SSE targets, this patch uses instcombine to replace the SSE41/AVX2 pmovsx and pmovzx intrinsics with the equivalent native IR code.

I have investigated removing these intrinsics completely, but we are still up against the issue of debug/-O0 codegen. At present this would be doable for some of the AVX2 intrinsics only (the ones that extend the entire xmm to a ymm) - if people think this is worthwhile I can provide patches that update the avx2 headers to use __builtin_convertvector where possible and remove those specific intrinsics entirely but I thought it best to keep them all for now and include them in this instcombine patch.

Repository:
  rL LLVM

http://reviews.llvm.org/D11503

Files:
  lib/Transforms/InstCombine/InstCombineCalls.cpp
  test/Transforms/InstCombine/vec_demanded_elts.ll
  test/Transforms/InstCombine/x86-pmovsx.ll
  test/Transforms/InstCombine/x86-pmovzx.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11503.30635.patch
Type: text/x-patch
Size: 16913 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150725/50a5dded/attachment.bin>


More information about the llvm-commits mailing list