[PATCH] D28744: [X86][AVX] Remove "OptForSize" condition from some memory foldings.

Igor Breger via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 17 01:15:19 PST 2017


igorb added inline comments.


================
Comment at: lib/Target/X86/X86InstrAVX512.td:7189
-
-  def : Pat<(_.EltVT (OpNode (load addr:$src))),
-            (!cast<Instruction>(NAME#SUFF#Zm)
----------------
this one should not be removed , only remove predicate OptForSize.
please add test case, i think llvm.sqrt.f32 can be used ( please insure AVX512 instruction selected)


================
Comment at: lib/Target/X86/X86InstrAVX512.td:7209
             (COPY_TO_REGCLASS (VRSQRT14SSrr (v4f32 (IMPLICIT_DEF)), (COPY_TO_REGCLASS FR32X:$src, VR128X)), VR128X)>;
-  def : Pat<(f32 (X86frsqrt (load addr:$src))),
-            (COPY_TO_REGCLASS (VRSQRT14SSrm (v4f32 (IMPLICIT_DEF)), addr:$src), VR128X)>,
----------------
this one should not be removed, only remove predicate, please add test case.


================
Comment at: lib/Target/X86/X86InstrAVX512.td:7214
             (COPY_TO_REGCLASS (VRCP14SSrr (v4f32 (IMPLICIT_DEF)), (COPY_TO_REGCLASS FR32X:$src, VR128X)), VR128X )>;
-  def : Pat<(f32 (X86frcp (load addr:$src))),
-            (COPY_TO_REGCLASS (VRCP14SSrm (v4f32 (IMPLICIT_DEF)), addr:$src), VR128X)>,
----------------
this one should not be removed, only remove predicate, please add test case.


https://reviews.llvm.org/D28744





More information about the llvm-commits mailing list