This is an archive of the discontinued LLVM Phabricator instance.

[X86] Custom split v32i16/v64i8 bitcasts when AVX512F is available, but BWI is not.
ClosedPublic

Authored by craig.topper on Feb 18 2018, 11:49 AM.

Details

Summary

The test changes you can see are related to the changes in ReplaceNodeResults. Though shuffle-vs-trunc-512.ll does have a test that exercises the code in LowerBITCAST. Looks like the test output didn't change because DAG combining is able to clean up the resulting type legalization. Adding the custom hook just makes type legalization work less hard.

Diff Detail

Repository
rL LLVM

Event Timeline

craig.topper created this revision.Feb 18 2018, 11:49 AM
RKSimon added inline comments.Feb 20 2018, 4:21 AM
lib/Target/X86/X86ISelLowering.cpp
23708 ↗(On Diff #134842)

Use Lower512IntUnary instead?

25109 ↗(On Diff #134842)

Use Lower512IntUnary instead?

Use Lower512IntUanry after fixing it to handle src and dest types being different.

RKSimon accepted this revision.Feb 23 2018, 4:26 AM

LGTM - thanks

This revision is now accepted and ready to land.Feb 23 2018, 4:26 AM
This revision was automatically updated to reflect the committed changes.