Skip to content

Commit

Permalink
[X86] Fold MMX_MOVD64from64rr + store to MMX_MOVQ64mr instead of MMX_…
Browse files Browse the repository at this point in the history
…MOVD64from64mr in auto-generated table

This is a follow-up patch for D122241.
  • Loading branch information
KanRobert committed Apr 6, 2022
1 parent 9a2d5cc commit f4661b5
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
2 changes: 1 addition & 1 deletion llvm/lib/Target/X86/X86InstrMMX.td
Expand Up @@ -214,7 +214,7 @@ let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0, mayStore = 1 in
def MMX_MOVD64from64mr : MMXRI<0x7E, MRMDestMem,
(outs), (ins i64mem:$dst, VR64:$src),
"movq\t{$src, $dst|$dst, $src}", []>,
Sched<[SchedWriteVecMoveLS.MMX.MR]>;
Sched<[SchedWriteVecMoveLS.MMX.MR]>, NotMemoryFoldable;

let SchedRW = [SchedWriteVecMoveLS.MMX.RM] in {
let canFoldAsLoad = 1 in
Expand Down
49 changes: 25 additions & 24 deletions llvm/utils/TableGen/X86FoldTablesEmitter.cpp
Expand Up @@ -52,30 +52,31 @@ const char *ExplicitUnalign[] = {"MOVDQU", "MOVUPS", "MOVUPD",

// For manually mapping instructions that do not match by their encoding.
const ManualMapEntry ManualMapSet[] = {
{ "ADD16ri_DB", "ADD16mi", NO_UNFOLD },
{ "ADD16ri8_DB", "ADD16mi8", NO_UNFOLD },
{ "ADD16rr_DB", "ADD16mr", NO_UNFOLD },
{ "ADD32ri_DB", "ADD32mi", NO_UNFOLD },
{ "ADD32ri8_DB", "ADD32mi8", NO_UNFOLD },
{ "ADD32rr_DB", "ADD32mr", NO_UNFOLD },
{ "ADD64ri32_DB", "ADD64mi32", NO_UNFOLD },
{ "ADD64ri8_DB", "ADD64mi8", NO_UNFOLD },
{ "ADD64rr_DB", "ADD64mr", NO_UNFOLD },
{ "ADD8ri_DB", "ADD8mi", NO_UNFOLD },
{ "ADD8rr_DB", "ADD8mr", NO_UNFOLD },
{ "ADD16rr_DB", "ADD16rm", NO_UNFOLD },
{ "ADD32rr_DB", "ADD32rm", NO_UNFOLD },
{ "ADD64rr_DB", "ADD64rm", NO_UNFOLD },
{ "ADD8rr_DB", "ADD8rm", NO_UNFOLD },
{ "MOVLHPSrr", "MOVHPSrm", NO_UNFOLD },
{ "PUSH16r", "PUSH16rmm", UNFOLD },
{ "PUSH32r", "PUSH32rmm", UNFOLD },
{ "PUSH64r", "PUSH64rmm", UNFOLD },
{ "TAILJMPr", "TAILJMPm", UNFOLD },
{ "TAILJMPr64", "TAILJMPm64", UNFOLD },
{ "TAILJMPr64_REX", "TAILJMPm64_REX", UNFOLD },
{ "VMOVLHPSZrr", "VMOVHPSZ128rm", NO_UNFOLD },
{ "VMOVLHPSrr", "VMOVHPSrm", NO_UNFOLD },
{ "ADD16ri_DB", "ADD16mi", NO_UNFOLD },
{ "ADD16ri8_DB", "ADD16mi8", NO_UNFOLD },
{ "ADD16rr_DB", "ADD16mr", NO_UNFOLD },
{ "ADD32ri_DB", "ADD32mi", NO_UNFOLD },
{ "ADD32ri8_DB", "ADD32mi8", NO_UNFOLD },
{ "ADD32rr_DB", "ADD32mr", NO_UNFOLD },
{ "ADD64ri32_DB", "ADD64mi32", NO_UNFOLD },
{ "ADD64ri8_DB", "ADD64mi8", NO_UNFOLD },
{ "ADD64rr_DB", "ADD64mr", NO_UNFOLD },
{ "ADD8ri_DB", "ADD8mi", NO_UNFOLD },
{ "ADD8rr_DB", "ADD8mr", NO_UNFOLD },
{ "ADD16rr_DB", "ADD16rm", NO_UNFOLD },
{ "ADD32rr_DB", "ADD32rm", NO_UNFOLD },
{ "ADD64rr_DB", "ADD64rm", NO_UNFOLD },
{ "ADD8rr_DB", "ADD8rm", NO_UNFOLD },
{ "MMX_MOVD64from64rr", "MMX_MOVQ64mr", UNFOLD },
{ "MOVLHPSrr", "MOVHPSrm", NO_UNFOLD },
{ "PUSH16r", "PUSH16rmm", UNFOLD },
{ "PUSH32r", "PUSH32rmm", UNFOLD },
{ "PUSH64r", "PUSH64rmm", UNFOLD },
{ "TAILJMPr", "TAILJMPm", UNFOLD },
{ "TAILJMPr64", "TAILJMPm64", UNFOLD },
{ "TAILJMPr64_REX", "TAILJMPm64_REX", UNFOLD },
{ "VMOVLHPSZrr", "VMOVHPSZ128rm", NO_UNFOLD },
{ "VMOVLHPSrr", "VMOVHPSrm", NO_UNFOLD },
};


Expand Down

0 comments on commit f4661b5

Please sign in to comment.