[X86] Lowering integer truncation intrinsics to native IR
authorMikhail Dvoretckii <mikhail.dvoretckii@intel.com>
Tue, 10 Jul 2018 08:22:44 +0000 (08:22 +0000)
committerMikhail Dvoretckii <mikhail.dvoretckii@intel.com>
Tue, 10 Jul 2018 08:22:44 +0000 (08:22 +0000)
commitd1bf9ef0c7926a64a202865a6b879190c9b4cf9c
treec3626883c7475d47144a67697df12f6203556a5b
parentd32ca2c0b78def49ed6e9b612f5481775662fc4e
[X86] Lowering integer truncation intrinsics to native IR

This patch lowers the _mm[256|512]_cvtepi{64|32|16}_epi{32|16|8} intrinsics to
native IR in cases where the result's length is less than 128 bits.

The resulting IR for 256-bit inputs is folded into VPMOV instructions, while for
128-bit inputs the vpshufb (or, in the 64-to-32-bit case, vinsertps)
instructions are generated instead

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

llvm-svn: 336643
clang/lib/Headers/avx512vlbwintrin.h
clang/lib/Headers/avx512vlintrin.h
clang/test/CodeGen/avx512vl-builtins.c
clang/test/CodeGen/avx512vlbw-builtins.c