This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX512] Replace lossless i32/u32 to f64 conversion intrinsics with generic IR
ClosedPublic

Authored by RKSimon on Nov 15 2016, 11:13 AM.

Details

Summary

Both the (V)CVTDQ2PD (i32 to f64) and (V)CVTDQ2PD (u32 to f64) conversion instructions are lossless and can be safely represented as generic __builtin_convertvector calls instead of x86 intrinsics without affecting final codegen.

This patch removes the clang builtins and their use in the headers - a future patch will deal with removing the llvm intrinsics.

This is an extension patch to D20528 which dealt with the equivalent sse/avx cases.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 78038.Nov 15 2016, 11:13 AM
RKSimon retitled this revision from to [X86][AVX512] Replace lossless i32/u64 to f64 conversion intrinsics with generic IR.
RKSimon updated this object.
RKSimon added reviewers: craig.topper, igorb, delena.
RKSimon set the repository for this revision to rL LLVM.
RKSimon retitled this revision from [X86][AVX512] Replace lossless i32/u64 to f64 conversion intrinsics with generic IR to [X86][AVX512] Replace lossless i32/u32 to f64 conversion intrinsics with generic IR.
RKSimon added a subscriber: cfe-commits.
craig.topper accepted this revision.Nov 15 2016, 10:48 PM
craig.topper edited edge metadata.

LGTM. Always nice to see more builtins go away.

This revision is now accepted and ready to land.Nov 15 2016, 10:48 PM
This revision was automatically updated to reflect the committed changes.