[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)
commit7bfbf3caa499b4903a3fcc52b99f7c4f9b9ae62d
treef827b33012cbd2c7a44f4dccdf1cb36d2d47852a
parent2ae3a9165664a079e7386166f1d541fa4032bb85
[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

llvm-svn: 349630
llvm/lib/IR/AutoUpgrade.cpp
llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/avx512bw-intrinsics-canonical.ll
llvm/test/CodeGen/X86/avx512bwvl-intrinsics-canonical.ll
llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll