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.
Paths
| Differential D51754
[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
Event TimelineComment Actions 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? Comment Actions 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. This revision is now accepted and ready to land.Sep 12 2018, 3:28 AM Closed by commit rL342059: [X86] Remove isel patterns for ADCX instruction (authored by ctopper). · Explain WhySep 12 2018, 8:48 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 165095 llvm/trunk/lib/Target/X86/X86InstrArithmetic.td
llvm/trunk/test/CodeGen/X86/adx-intrinsics-upgrade.ll
llvm/trunk/test/CodeGen/X86/adx-intrinsics.ll
llvm/trunk/test/CodeGen/X86/pr32282.ll
llvm/trunk/test/CodeGen/X86/pr32284.ll
llvm/trunk/test/CodeGen/X86/stack-folding-adx-x86_64.ll
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||