This is an archive of the discontinued LLVM Phabricator instance.

[X86] Remove isel patterns for ADCX instruction
ClosedPublic

Authored by craig.topper on Sep 6 2018, 2:30 PM.

Details

Summary

There's no advantage to this instruction unless you need to avoid touching other flag bits. It's encoding is longer, it can't fold an immediate, it doesn't write all the flags.

I don't think gcc will generate this instruction either.

Fixes PR38852.

Diff Detail

Repository
rL LLVM

Event Timeline

craig.topper created this revision.Sep 6 2018, 2:30 PM

We losing a lot of test coverage of the ADX instructions here - we already don't have any ADOX test coverage other than with inline asm.

Plus I don't think SBB is an ADX instruction?

Rebase after the other ADC changes that have gone in recently. Add a non-ADX command line to the stack folding test.

I've added a commuting and stack folding MIR test for the ADCX and ADOX instructions since we can't isel them.

RKSimon accepted this revision.Sep 12 2018, 3:28 AM

LGTM

This revision is now accepted and ready to land.Sep 12 2018, 3:28 AM
This revision was automatically updated to reflect the committed changes.