]> granicus.if.org Git - llvm/commitdiff
[X86] Fix isel pattern that was looking for a bitcasted load. Remove what appears...
authorCraig Topper <craig.topper@intel.com>
Sun, 23 Jun 2019 19:17:50 +0000 (19:17 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 23 Jun 2019 19:17:50 +0000 (19:17 +0000)
DAG combine should ensure bitcasts of loads don't exist.

Also remove 3 patterns that are identical to the block above them.

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

lib/Target/X86/X86InstrAVX512.td

index 48da35f11a24eeb90c276300391a3794ca123414..e1516dd745c485c510843f95c1299db5bee06eda 100644 (file)
@@ -9797,19 +9797,7 @@ defm : AVX512_pmovx_patterns<"VPMOVZX", zext, zext_invec>;
 let Predicates = [HasAVX512, NoBWI] in {
 def: Pat<(v16i8 (trunc (v16i16 VR256X:$src))),
          (VPMOVDBZrr (v16i32 (VPMOVZXWDZrr VR256X:$src)))>;
-def: Pat<(v16i8 (trunc (bc_v16i16 (loadv4i64 addr:$src)))),
-         (VPMOVDBZrr (v16i32 (VPMOVZXWDZrm addr:$src)))>;
-def: Pat<(store (v16i8 (trunc (v16i16 VR256X:$src))), addr:$dst),
-         (VPMOVDBZmr addr:$dst, (v16i32 (VPMOVZXWDZrr VR256X:$src)))>;
-}
-
-// Without BWI we can't do a trunc from v16i16 to v16i8. DAG combine can merge
-// ext+trunc aggresively making it impossible to legalize the DAG to this
-// pattern directly.
-let Predicates = [HasAVX512, NoBWI] in {
-def: Pat<(v16i8 (trunc (v16i16 VR256X:$src))),
-         (VPMOVDBZrr (v16i32 (VPMOVZXWDZrr VR256X:$src)))>;
-def: Pat<(v16i8 (trunc (bc_v16i16 (loadv4i64 addr:$src)))),
+def: Pat<(v16i8 (trunc (loadv16i16 addr:$src))),
          (VPMOVDBZrr (v16i32 (VPMOVZXWDZrm addr:$src)))>;
 def: Pat<(store (v16i8 (trunc (v16i16 VR256X:$src))), addr:$dst),
          (VPMOVDBZmr addr:$dst, (v16i32 (VPMOVZXWDZrr VR256X:$src)))>;