This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX512] Fix build fail after D81548
ClosedPublic

Authored by pengfei on Jul 30 2020, 2:10 AM.

Details

Summary

Test function mask_cmp_128 failed during ISEL
LLVM ERROR: Cannot select: t37: v8i1 = X86ISD::KSHIFTL t48, TargetConstant:i8<4>
due to v8i1 only available under AVX512DQ.

Diff Detail

Event Timeline

pengfei created this revision.Jul 30 2020, 2:10 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 30 2020, 2:10 AM
pengfei requested review of this revision.Jul 30 2020, 2:10 AM
RKSimon added inline comments.Jul 30 2020, 2:42 AM
llvm/lib/Target/X86/X86ISelLowering.cpp
38442

We might be able to recover from some of the regressions if we can use this before legalization as well?

yubing added inline comments.Jul 30 2020, 3:49 AM
llvm/lib/Target/X86/X86ISelLowering.cpp
38442

Eh, You mean we do the combineBitcastToBoolVector before legalizaeType procedure regardless of whether VT is Legal and let LegalizeType procedure handle the illegal Type?

pengfei updated this revision to Diff 282096.Jul 30 2020, 6:14 PM

Fix a mistake.

pengfei edited the summary of this revision. (Show Details)Jul 30 2020, 6:16 PM
pengfei added inline comments.Jul 30 2020, 6:23 PM
llvm/lib/Target/X86/X86ISelLowering.cpp
38442

I made a mistake. v16i1 is legal for avx512f. There's no regressions now.

pengfei added inline comments.Aug 2 2020, 5:47 PM
llvm/lib/Target/X86/X86ISelLowering.cpp
38361

Ping. @RKSimon, I think the check here won't break the further optimization. Can we let this patch in? Or you have a better solution?

RKSimon accepted this revision.Aug 3 2020, 11:31 AM

LGTM - cheers

This revision is now accepted and ready to land.Aug 3 2020, 11:31 AM
This revision was automatically updated to reflect the committed changes.