diff options
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 14 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrSSE.td | 19 | 
2 files changed, 0 insertions, 33 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index 0b8994cdc69..9bbc3cc7000 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -6499,14 +6499,6 @@ multiclass avx512_extend_common<bits<8> opc, string OpcodeStr,    }//isCodeGenOnly  } -// support full register inputs (like SSE paterns) -multiclass avx512_extend_lowering<SDPatternOperator OpNode, X86VectorVTInfo To, -                                  X86VectorVTInfo From, SubRegIndex SubRegIdx> { -  def : Pat<(To.VT (OpNode (From.VT From.RC:$src))), -            (!cast<Instruction>(NAME#To.ZSuffix#"rr") -              (EXTRACT_SUBREG From.RC:$src, SubRegIdx))>; -} -  multiclass avx512_extend_BW<bits<8> opc, string OpcodeStr,            SDPatternOperator OpNode, bit IsCodeGenOnly,            string ExtTy,PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi8")> { @@ -6517,7 +6509,6 @@ multiclass avx512_extend_BW<bits<8> opc, string OpcodeStr,      defm Z256:  avx512_extend_common<opc, OpcodeStr, v16i16x_info,                      v16i8x_info, i128mem, LdFrag, OpNode, IsCodeGenOnly>, -                avx512_extend_lowering<OpNode, v16i16x_info, v32i8x_info, sub_xmm>,                       EVEX_CD8<8, CD8VH>, T8PD, EVEX_V256;    }    let Predicates = [HasBWI] in { @@ -6537,7 +6528,6 @@ multiclass avx512_extend_BD<bits<8> opc, string OpcodeStr,      defm Z256:  avx512_extend_common<opc, OpcodeStr, v8i32x_info,                     v16i8x_info, i64mem, LdFrag, OpNode, IsCodeGenOnly>, -                avx512_extend_lowering<OpNode, v8i32x_info, v32i8x_info, sub_xmm>,                           EVEX_CD8<8, CD8VQ>, T8PD, EVEX_V256;    }    let Predicates = [HasAVX512] in { @@ -6557,7 +6547,6 @@ multiclass avx512_extend_BQ<bits<8> opc, string OpcodeStr,      defm Z256:  avx512_extend_common<opc, OpcodeStr, v4i64x_info,                     v16i8x_info, i32mem, LdFrag, OpNode, IsCodeGenOnly>, -                avx512_extend_lowering<OpNode, v4i64x_info, v32i8x_info, sub_xmm>,                       EVEX_CD8<8, CD8VO>, T8PD, EVEX_V256;    }    let Predicates = [HasAVX512] in { @@ -6577,7 +6566,6 @@ multiclass avx512_extend_WD<bits<8> opc, string OpcodeStr,      defm Z256:  avx512_extend_common<opc, OpcodeStr, v8i32x_info,                     v8i16x_info, i128mem, LdFrag, OpNode, IsCodeGenOnly>, -                avx512_extend_lowering<OpNode, v8i32x_info, v16i16x_info, sub_xmm>,                       EVEX_CD8<16, CD8VH>, T8PD, EVEX_V256;    }    let Predicates = [HasAVX512] in { @@ -6597,7 +6585,6 @@ multiclass avx512_extend_WQ<bits<8> opc, string OpcodeStr,      defm Z256:  avx512_extend_common<opc, OpcodeStr, v4i64x_info,                     v8i16x_info, i64mem, LdFrag, OpNode, IsCodeGenOnly>, -                avx512_extend_lowering<OpNode, v4i64x_info, v16i16x_info, sub_xmm>,                       EVEX_CD8<16, CD8VQ>, T8PD, EVEX_V256;    }    let Predicates = [HasAVX512] in { @@ -6618,7 +6605,6 @@ multiclass avx512_extend_DQ<bits<8> opc, string OpcodeStr,      defm Z256:  avx512_extend_common<opc, OpcodeStr, v4i64x_info,                     v4i32x_info, i128mem, LdFrag, OpNode, IsCodeGenOnly>, -                avx512_extend_lowering<OpNode, v4i64x_info, v8i32x_info, sub_xmm>,                       EVEX_CD8<32, CD8VH>, T8PD, EVEX_V256;    }    let Predicates = [HasAVX512] in { diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td index bb2c33cd56e..586d9c3df38 100644 --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -5851,25 +5851,6 @@ multiclass SS41I_pmovx_avx2_patterns<string OpcPrefix, string ExtTy, SDNode ExtO    def : Pat<(v4i64 (ExtOp (v4i32 VR128:$src))),              (!cast<I>(OpcPrefix#DQYrr) VR128:$src)>;    } -  // On AVX2, we also support 256bit inputs. -  let Predicates = [HasAVX, NoVLX_Or_NoBWI] in { -  def : Pat<(v16i16 (ExtOp (v32i8 VR256:$src))), -            (!cast<I>(OpcPrefix#BWYrr) (EXTRACT_SUBREG VR256:$src, sub_xmm))>; -  } -  let Predicates = [HasAVX, NoVLX] in { -  def : Pat<(v8i32 (ExtOp (v32i8 VR256:$src))), -            (!cast<I>(OpcPrefix#BDYrr) (EXTRACT_SUBREG VR256:$src, sub_xmm))>; -  def : Pat<(v4i64 (ExtOp (v32i8 VR256:$src))), -            (!cast<I>(OpcPrefix#BQYrr) (EXTRACT_SUBREG VR256:$src, sub_xmm))>; - -  def : Pat<(v8i32 (ExtOp (v16i16 VR256:$src))), -            (!cast<I>(OpcPrefix#WDYrr) (EXTRACT_SUBREG VR256:$src, sub_xmm))>; -  def : Pat<(v4i64 (ExtOp (v16i16 VR256:$src))), -            (!cast<I>(OpcPrefix#WQYrr) (EXTRACT_SUBREG VR256:$src, sub_xmm))>; - -  def : Pat<(v4i64 (ExtOp (v8i32 VR256:$src))), -            (!cast<I>(OpcPrefix#DQYrr) (EXTRACT_SUBREG VR256:$src, sub_xmm))>; -  }    // Simple Register-Memory patterns    let Predicates = [HasAVX, NoVLX_Or_NoBWI] in {  | 

