]> granicus.if.org Git - llvm/commitdiff
[X86] Add additional patterns for folding loads with 128-bit VCVTDQ2PD and VCVTUDQ2PD.
authorCraig Topper <craig.topper@intel.com>
Sat, 14 Oct 2017 04:18:09 +0000 (04:18 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 14 Oct 2017 04:18:09 +0000 (04:18 +0000)
This matches the patterns we have for the SSE/AVX version.

This is a prerequisite for D38714.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315797 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrAVX512.td

index b3eb34bf44c555cbb7232893706440fd03ec96b5..d73abf08105fe2b7dbe8cdd7262eef79842cab15 100644 (file)
@@ -7055,6 +7055,16 @@ let Predicates = [HasAVX512, HasVLX] in {
                                  (v4i32 (X86cvttp2ui (v2f64 VR128X:$src)))))))),
               (VCVTTPD2UDQZ128rr VR128X:$src)>;
   }
+
+  def : Pat<(v2f64 (X86VSintToFP (bc_v4i32 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
+            (VCVTDQ2PDZ128rm addr:$src)>;
+  def : Pat<(v2f64 (X86VSintToFP (bc_v4i32 (v2i64 (X86vzload addr:$src))))),
+            (VCVTDQ2PDZ128rm addr:$src)>;
+
+  def : Pat<(v2f64 (X86VUintToFP (bc_v4i32 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
+            (VCVTUDQ2PDZ128rm addr:$src)>;
+  def : Pat<(v2f64 (X86VUintToFP (bc_v4i32 (v2i64 (X86vzload addr:$src))))),
+            (VCVTUDQ2PDZ128rm addr:$src)>;
 }
 
 let Predicates = [HasAVX512] in {