[llvm] r329153 - [X86] Use loadi16/loadi32 predicates in multiply patterns

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 4 00:00:22 PDT 2018


Author: ctopper
Date: Wed Apr  4 00:00:19 2018
New Revision: 329153

URL: http://llvm.org/viewvc/llvm-project?rev=329153&view=rev
Log:
[X86] Use loadi16/loadi32 predicates in multiply patterns

Modified:
    llvm/trunk/lib/Target/X86/X86InstrArithmetic.td

Modified: llvm/trunk/lib/Target/X86/X86InstrArithmetic.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrArithmetic.td?rev=329153&r1=329152&r2=329153&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrArithmetic.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrArithmetic.td Wed Apr  4 00:00:19 2018
@@ -180,21 +180,21 @@ def IMUL16rm : I<0xAF, MRMSrcMem, (outs
                                   (ins GR16:$src1, i16mem:$src2),
                  "imul{w}\t{$src2, $dst|$dst, $src2}",
                  [(set GR16:$dst, EFLAGS,
-                       (X86smul_flag GR16:$src1, (load addr:$src2)))],
+                       (X86smul_flag GR16:$src1, (loadi16 addr:$src2)))],
                        IIC_IMUL16_RM>,
                TB, OpSize16;
 def IMUL32rm : I<0xAF, MRMSrcMem, (outs GR32:$dst),
                  (ins GR32:$src1, i32mem:$src2),
                  "imul{l}\t{$src2, $dst|$dst, $src2}",
                  [(set GR32:$dst, EFLAGS,
-                       (X86smul_flag GR32:$src1, (load addr:$src2)))],
+                       (X86smul_flag GR32:$src1, (loadi32 addr:$src2)))],
                        IIC_IMUL32_RM>,
                TB, OpSize32;
 def IMUL64rm : RI<0xAF, MRMSrcMem, (outs GR64:$dst),
                                    (ins GR64:$src1, i64mem:$src2),
                   "imul{q}\t{$src2, $dst|$dst, $src2}",
                   [(set GR64:$dst, EFLAGS,
-                        (X86smul_flag GR64:$src1, (load addr:$src2)))],
+                        (X86smul_flag GR64:$src1, (loadi64 addr:$src2)))],
                         IIC_IMUL64_RM>,
                TB;
 } // SchedRW
@@ -250,41 +250,41 @@ def IMUL16rmi  : Ii16<0x69, MRMSrcMem,
                       (outs GR16:$dst), (ins i16mem:$src1, i16imm:$src2),
                       "imul{w}\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                       [(set GR16:$dst, EFLAGS,
-                            (X86smul_flag (load addr:$src1), imm:$src2))],
+                            (X86smul_flag (loadi16 addr:$src1), imm:$src2))],
                             IIC_IMUL16_RMI>,
                  OpSize16;
 def IMUL16rmi8 : Ii8<0x6B, MRMSrcMem,                       // GR16 = [mem16]*I8
                      (outs GR16:$dst), (ins i16mem:$src1, i16i8imm :$src2),
                      "imul{w}\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                      [(set GR16:$dst, EFLAGS,
-                           (X86smul_flag (load addr:$src1),
+                           (X86smul_flag (loadi16 addr:$src1),
                                          i16immSExt8:$src2))], IIC_IMUL16_RMI>,
                                          OpSize16;
 def IMUL32rmi  : Ii32<0x69, MRMSrcMem,                     // GR32 = [mem32]*I32
                       (outs GR32:$dst), (ins i32mem:$src1, i32imm:$src2),
                       "imul{l}\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                       [(set GR32:$dst, EFLAGS,
-                            (X86smul_flag (load addr:$src1), imm:$src2))],
+                            (X86smul_flag (loadi32 addr:$src1), imm:$src2))],
                             IIC_IMUL32_RMI>, OpSize32;
 def IMUL32rmi8 : Ii8<0x6B, MRMSrcMem,                       // GR32 = [mem32]*I8
                      (outs GR32:$dst), (ins i32mem:$src1, i32i8imm: $src2),
                      "imul{l}\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                      [(set GR32:$dst, EFLAGS,
-                           (X86smul_flag (load addr:$src1),
+                           (X86smul_flag (loadi32 addr:$src1),
                                          i32immSExt8:$src2))],
                                          IIC_IMUL32_RMI>, OpSize32;
 def IMUL64rmi32 : RIi32S<0x69, MRMSrcMem,                   // GR64 = [mem64]*I32
                          (outs GR64:$dst), (ins i64mem:$src1, i64i32imm:$src2),
                          "imul{q}\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                          [(set GR64:$dst, EFLAGS,
-                              (X86smul_flag (load addr:$src1),
+                              (X86smul_flag (loadi64 addr:$src1),
                                             i64immSExt32:$src2))],
                                             IIC_IMUL64_RMI>;
 def IMUL64rmi8 : RIi8<0x6B, MRMSrcMem,                      // GR64 = [mem64]*I8
                       (outs GR64:$dst), (ins i64mem:$src1, i64i8imm: $src2),
                       "imul{q}\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                       [(set GR64:$dst, EFLAGS,
-                            (X86smul_flag (load addr:$src1),
+                            (X86smul_flag (loadi64 addr:$src1),
                                           i64immSExt8:$src2))],
                                           IIC_IMUL64_RMI>;
 } // SchedRW




More information about the llvm-commits mailing list