Previously we would use MOVZXrm8/MOVZXrm16, but those are longer encodings.
This is similar to what we do in the loadi32 predicate.
Paths
| Differential D60341
[X86] Use (SUBREG_TO_REG (MOV32rm)) for extloadi64i8/extloadi64i16 when the load is 4 byte aligned or better and not volatile. ClosedPublic Authored by craig.topper on Apr 5 2019, 2:46 PM.
Details Summary Previously we would use MOVZXrm8/MOVZXrm16, but those are longer encodings. This is similar to what we do in the loadi32 predicate.
Diff Detail
Event TimelineComment Actions LGTM - although I'm a little surprised that <4 x i1> has an alignment >= 4
This revision is now accepted and ready to land.Apr 7 2019, 5:46 AM Closed by commit rL357875: [X86] Use (SUBREG_TO_REG (MOV32rm)) for extloadi64i8/extloadi64i16 when the… (authored by ctopper). · Explain WhyApr 7 2019, 12:18 PM This revision was automatically updated to reflect the committed changes. craig.topper added inline comments.
Revision Contents
Diff 194070 llvm/trunk/lib/Target/X86/X86InstrCompiler.td
llvm/trunk/lib/Target/X86/X86InstrInfo.td
llvm/trunk/test/CodeGen/X86/fp128-cast.ll
llvm/trunk/test/CodeGen/X86/vector-sext-widen.ll
llvm/trunk/test/CodeGen/X86/vector-sext.ll
llvm/trunk/test/CodeGen/X86/zext-logicop-shift-load.ll
|