This is an archive of the discontinued LLVM Phabricator instance.

[X86] WIP Swizzle the execution domains for AVX2 targets to prefer integer over floating point
Needs ReviewPublic

Authored by craig.topper on Dec 9 2020, 7:33 PM.

Details

Summary

The execution domain fixing pass defaults to the lowest numbered domain. This patch swizzles the domain numbering at the X86 interface to the pass when AVX2 is enabled so that integer appears to be the lowest numbered domain. This allows us to use the same tables for both cases.

The test updates are incomplete and may no longer apply cleanly. This patch has been sitting on my computer for a while.

Diff Detail

Event Timeline

craig.topper created this revision.Dec 9 2020, 7:33 PM
craig.topper requested review of this revision.Dec 9 2020, 7:33 PM
Herald added a project: Restricted Project. · View Herald TranscriptDec 9 2020, 7:33 PM

Are you happy to continue work on this or should someone else commandeer it?

llvm/lib/Target/X86/X86InstrInfo.cpp
7624

This probably be set to hasAVX2/hasInt256

7688

This probably be set to hasAVX2/hasInt256

change from avx1 to avx2. Update tests

Rebase after changing the domain for cvtsd2ss/cvtss2sd

yubing added a subscriber: yubing.Dec 14 2020, 6:50 PM