diff --git a/llvm/include/llvm/Target/TargetSelectionDAG.td b/llvm/include/llvm/Target/TargetSelectionDAG.td index 7bc90d4428800..774063b460495 100644 --- a/llvm/include/llvm/Target/TargetSelectionDAG.td +++ b/llvm/include/llvm/Target/TargetSelectionDAG.td @@ -116,7 +116,7 @@ def SDTIntBinOp : SDTypeProfile<1, 2, [ // add, and, or, xor, udiv, etc. SDTCisSameAs<0, 1>, SDTCisSameAs<0, 2>, SDTCisInt<0> ]>; def SDTIntShiftOp : SDTypeProfile<1, 2, [ // shl, sra, srl - SDTCisSameAs<0, 1>, SDTCisInt<0>, SDTCisInt<2> + SDTCisSameAs<0, 1>, SDTCisInt<0>, SDTCisInt<2>, SDTCisSameNumEltsAs<0, 2> ]>; def SDTIntShiftPairOp : SDTypeProfile<2, 3, [ // shl_parts, sra_parts, srl_parts SDTCisInt<0>, SDTCisSameAs<1, 0>, diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td index a0acfcf5518dc..85ce9447c2028 100644 --- a/llvm/lib/Target/Hexagon/HexagonPatterns.td +++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td @@ -699,35 +699,20 @@ def: OpR_RR_pat; def: OpR_RR_pat; def: OpR_RR_pat, i1, I64>; def: OpR_RR_pat, i1, I64>; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat, i1, V8I8>; def: OpR_RR_pat, v8i1, V8I8>; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat, i1, V8I8>; def: OpR_RR_pat, v8i1, V8I8>; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat, i1, V4I16>; def: OpR_RR_pat, v4i1, V4I16>; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat, i1, V4I16>; def: OpR_RR_pat, v4i1, V4I16>; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat, i1, V2I32>; def: OpR_RR_pat, v2i1, V2I32>; -def: OpR_RR_pat; def: OpR_RR_pat; -def: OpR_RR_pat, i1, V2I32>; def: OpR_RR_pat, v2i1, V2I32>; -def: OpR_RR_pat; def: OpR_RR_pat; def: OpR_RR_pat; @@ -1213,12 +1198,6 @@ def: OpR_RI_pat; def: OpR_RI_pat; def: OpR_RI_pat; def: OpR_RI_pat; -def: OpR_RI_pat; -def: OpR_RI_pat; -def: OpR_RI_pat; -def: OpR_RI_pat; -def: OpR_RI_pat; -def: OpR_RI_pat; def: OpR_RR_pat; def: OpR_RR_pat;