This is an archive of the discontinued LLVM Phabricator instance.

[X86] Don't emit COPY_TO_REG to ABCD registers before EXTRACT_SUBREG of sub_8bit
ClosedPublic

Authored by craig.topper on Sep 14 2017, 9:16 PM.

Details

Summary

This is similar to D37843, but for sub_8bit. This fixes all of the patterns except for the 2 that emit only an EXTRACT_SUBREG. That causes a verifier error with global isel because global isel doesn't know to issue the ABCD when doing this extract on 32-bits targets.

Diff Detail

Repository
rL LLVM

Event Timeline

craig.topper created this revision.Sep 14 2017, 9:16 PM
RKSimon edited edge metadata.Sep 15 2017, 9:45 AM

Out of interest, can you test this with -DLLVM_ENABLE_EXPENSIVE_CHECKS=true and llvm.X86TargetMachine.isMachineVerifierClean set to true? To see if any new failures occur compared to PR27481?

Ran with ENABLE_EXPENSIVE_CHECKS and llvm.X86TargetMachine.isMachineVerifierClean and got the same failures as PR27481

RKSimon accepted this revision.Sep 18 2017, 10:15 AM

Thanks for checking, LGTM

This revision is now accepted and ready to land.Sep 18 2017, 10:15 AM
This revision was automatically updated to reflect the committed changes.