]> granicus.if.org Git - llvm/commit
[X86][SSE] Auto upgrade PADDUS/PSUBUS intrinsics to UADD_SAT/USUB_SAT generic intrins...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 19 Dec 2018 14:43:36 +0000 (14:43 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 19 Dec 2018 14:43:36 +0000 (14:43 +0000)
commitece16472bf8dabbc2c641e09c488700d30cec76c
tree3952098fba77b3f5e0aab6d17d59d9a5ee3adf9b
parent0d195adc70cb05e077aaca61bb0e0ff1d9cbcc33
[X86][SSE] Auto upgrade PADDUS/PSUBUS intrinsics to UADD_SAT/USUB_SAT generic intrinsics (llvm)

Now that we use the generic ISD opcodes, we can use the generic intrinsics directly as well. This fixes the poor fast-isel codegen by not expanding to an easily broken IR code sequence.

I'm intending to deal with the signed saturation equivalents as well.

Clang counterpart: https://reviews.llvm.org/D55879

Differential Revision: https://reviews.llvm.org/D55855

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349630 91177308-0d34-0410-b5e6-96231b3b80d8
lib/IR/AutoUpgrade.cpp
test/CodeGen/X86/avx2-intrinsics-fast-isel.ll
test/CodeGen/X86/avx512bw-intrinsics-canonical.ll
test/CodeGen/X86/avx512bwvl-intrinsics-canonical.ll
test/CodeGen/X86/sse2-intrinsics-fast-isel.ll