@@ -1864,64 +1864,6 @@ def : Pat<(fshl GR64:$src1, GR64:$src2, (shiftMask64 CL)),
1864
1864
def : Pat<(fshr GR64:$src2, GR64:$src1, (shiftMask64 CL)),
1865
1865
(SHRD64rrCL GR64:$src1, GR64:$src2)>;
1866
1866
1867
- let Predicates = [HasBMI2] in {
1868
- let AddedComplexity = 1 in {
1869
- def : Pat<(sra GR32:$src1, (shiftMask32 GR8:$src2)),
1870
- (SARX32rr GR32:$src1,
1871
- (INSERT_SUBREG
1872
- (i32 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1873
- def : Pat<(sra GR64:$src1, (shiftMask64 GR8:$src2)),
1874
- (SARX64rr GR64:$src1,
1875
- (INSERT_SUBREG
1876
- (i64 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1877
-
1878
- def : Pat<(srl GR32:$src1, (shiftMask32 GR8:$src2)),
1879
- (SHRX32rr GR32:$src1,
1880
- (INSERT_SUBREG
1881
- (i32 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1882
- def : Pat<(srl GR64:$src1, (shiftMask64 GR8:$src2)),
1883
- (SHRX64rr GR64:$src1,
1884
- (INSERT_SUBREG
1885
- (i64 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1886
-
1887
- def : Pat<(shl GR32:$src1, (shiftMask32 GR8:$src2)),
1888
- (SHLX32rr GR32:$src1,
1889
- (INSERT_SUBREG
1890
- (i32 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1891
- def : Pat<(shl GR64:$src1, (shiftMask64 GR8:$src2)),
1892
- (SHLX64rr GR64:$src1,
1893
- (INSERT_SUBREG
1894
- (i64 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1895
- }
1896
-
1897
- def : Pat<(sra (loadi32 addr:$src1), (shiftMask32 GR8:$src2)),
1898
- (SARX32rm addr:$src1,
1899
- (INSERT_SUBREG
1900
- (i32 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1901
- def : Pat<(sra (loadi64 addr:$src1), (shiftMask64 GR8:$src2)),
1902
- (SARX64rm addr:$src1,
1903
- (INSERT_SUBREG
1904
- (i64 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1905
-
1906
- def : Pat<(srl (loadi32 addr:$src1), (shiftMask32 GR8:$src2)),
1907
- (SHRX32rm addr:$src1,
1908
- (INSERT_SUBREG
1909
- (i32 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1910
- def : Pat<(srl (loadi64 addr:$src1), (shiftMask64 GR8:$src2)),
1911
- (SHRX64rm addr:$src1,
1912
- (INSERT_SUBREG
1913
- (i64 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1914
-
1915
- def : Pat<(shl (loadi32 addr:$src1), (shiftMask32 GR8:$src2)),
1916
- (SHLX32rm addr:$src1,
1917
- (INSERT_SUBREG
1918
- (i32 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1919
- def : Pat<(shl (loadi64 addr:$src1), (shiftMask64 GR8:$src2)),
1920
- (SHLX64rm addr:$src1,
1921
- (INSERT_SUBREG
1922
- (i64 (IMPLICIT_DEF)), GR8:$src2, sub_8bit))>;
1923
- }
1924
-
1925
1867
// Use BTR/BTS/BTC for clearing/setting/toggling a bit in a variable location.
1926
1868
multiclass one_bit_patterns<RegisterClass RC, ValueType VT, Instruction BTR,
1927
1869
Instruction BTS, Instruction BTC,
0 commit comments