OSDN Git Service

[X86][SSE] (Reapplied) Replace (V)PMOVSX and (V)PMOVZX integer extension intrinsics...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 28 May 2016 18:03:41 +0000 (18:03 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 28 May 2016 18:03:41 +0000 (18:03 +0000)
commit687467768e471b9eaf89d24648bdc04b1f2dcbab
treeec895bf58a166577d2a179a92c47f81193270d09
parent667a9bfce46d618d57f407bce7ed08444fa385af
[X86][SSE] (Reapplied) Replace (V)PMOVSX and (V)PMOVZX integer extension intrinsics with generic IR (llvm)

This patch removes the llvm intrinsics VPMOVSX and (V)PMOVZX sign/zero extension intrinsics and auto-upgrades to SEXT/ZEXT calls instead. We already did this for SSE41 PMOVSX sometime ago so much of that implementation can be reused.

Reapplied now that the the companion patch (D20684) removes/auto-upgrade the clang intrinsics has been committed.

Differential Revision: http://reviews.llvm.org/D20686

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271131 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
include/llvm/IR/IntrinsicsX86.td
lib/IR/AutoUpgrade.cpp
lib/Target/X86/X86IntrinsicsInfo.h
lib/Transforms/InstCombine/InstCombineCalls.cpp
test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll
test/CodeGen/X86/avx-intrinsics-x86.ll
test/CodeGen/X86/avx2-intrinsics-fast-isel.ll
test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll
test/CodeGen/X86/avx2-intrinsics-x86.ll
test/CodeGen/X86/avx2-pmovxrm-intrinsics.ll
test/CodeGen/X86/sse41-intrinsics-fast-isel.ll
test/CodeGen/X86/sse41-intrinsics-x86-upgrade.ll
test/CodeGen/X86/sse41-intrinsics-x86.ll
test/CodeGen/X86/sse41-pmovxrm-intrinsics.ll
test/CodeGen/X86/stack-folding-int-avx2.ll
test/Transforms/InstCombine/x86-pmovsx.ll [deleted file]
test/Transforms/InstCombine/x86-pmovzx.ll [deleted file]