[X86] Custom widen 128/256-bit vXi32 fp_to_uint on avx512f targets without avx512vl...
authorCraig Topper <craig.topper@gmail.com>
Fri, 27 Dec 2019 05:46:29 +0000 (21:46 -0800)
committerCraig Topper <craig.topper@gmail.com>
Fri, 27 Dec 2019 06:04:40 +0000 (22:04 -0800)
commitecbaf152f8fe2b5b8ebc633541e15158984f4db4
tree77453b8078ab9a82ff116981285a3f076ddd6b1d
parent50fb3957c1906d2e971a192e5bd69b40bc5a3919
[X86] Custom widen 128/256-bit vXi32 fp_to_uint on avx512f targets without avx512vl. Similar for vXi64 on avx512dq without avx512vl.

Summary:
Previously we did this with isel patterns that used garbage in
the widened part of the source. But that's not valid for strictfp.
So now we custom widen and use zeroes for the widened elemens for
strictfp.

This replaces D71864.

Reviewers: RKSimon, spatel, andrew.w.kaylor, pengfei, LiuChen3

Reviewed By: pengfei

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71879
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll
llvm/test/CodeGen/X86/vec-strict-fptoint-256.ll