mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-03 08:07:51 +00:00
[X86] Add more type qualifiers to INSERT_SUBREG operations in rotate patterns so they don't get created with a v64i8 type.
Not sure why tablegen didn't error on this. Fixes PR35158. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317079 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
07ea6bb2fb
commit
5d7d418e3b
@ -5424,26 +5424,26 @@ let Predicates = [HasAVX512, NoVLX] in {
|
||||
(EXTRACT_SUBREG (v8i64
|
||||
(VPROLVQZrr
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src1, sub_xmm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm))),
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm)))),
|
||||
sub_xmm)>;
|
||||
def : Pat<(v4i64 (rotl (v4i64 VR256X:$src1), (v4i64 VR256X:$src2))),
|
||||
(EXTRACT_SUBREG (v8i64
|
||||
(VPROLVQZrr
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src1, sub_ymm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm))),
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm)))),
|
||||
sub_ymm)>;
|
||||
|
||||
def : Pat<(v4i32 (rotl (v4i32 VR128X:$src1), (v4i32 VR128X:$src2))),
|
||||
(EXTRACT_SUBREG (v16i32
|
||||
(VPROLVDZrr
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src1, sub_xmm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm))),
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm)))),
|
||||
sub_xmm)>;
|
||||
def : Pat<(v8i32 (rotl (v8i32 VR256X:$src1), (v8i32 VR256X:$src2))),
|
||||
(EXTRACT_SUBREG (v16i32
|
||||
(VPROLVDZrr
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src1, sub_ymm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm))),
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm)))),
|
||||
sub_ymm)>;
|
||||
|
||||
def : Pat<(v2i64 (X86vrotli (v2i64 VR128X:$src1), (i8 imm:$src2))),
|
||||
@ -5475,26 +5475,26 @@ let Predicates = [HasAVX512, NoVLX] in {
|
||||
(EXTRACT_SUBREG (v8i64
|
||||
(VPRORVQZrr
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src1, sub_xmm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm))),
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm)))),
|
||||
sub_xmm)>;
|
||||
def : Pat<(v4i64 (rotr (v4i64 VR256X:$src1), (v4i64 VR256X:$src2))),
|
||||
(EXTRACT_SUBREG (v8i64
|
||||
(VPRORVQZrr
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src1, sub_ymm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm))),
|
||||
(v8i64 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm)))),
|
||||
sub_ymm)>;
|
||||
|
||||
def : Pat<(v4i32 (rotr (v4i32 VR128X:$src1), (v4i32 VR128X:$src2))),
|
||||
(EXTRACT_SUBREG (v16i32
|
||||
(VPRORVDZrr
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src1, sub_xmm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm))),
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR128X:$src2, sub_xmm)))),
|
||||
sub_xmm)>;
|
||||
def : Pat<(v8i32 (rotr (v8i32 VR256X:$src1), (v8i32 VR256X:$src2))),
|
||||
(EXTRACT_SUBREG (v16i32
|
||||
(VPRORVDZrr
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src1, sub_ymm)),
|
||||
(INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm))),
|
||||
(v16i32 (INSERT_SUBREG (IMPLICIT_DEF), VR256X:$src2, sub_ymm)))),
|
||||
sub_ymm)>;
|
||||
|
||||
def : Pat<(v2i64 (X86vrotri (v2i64 VR128X:$src1), (i8 imm:$src2))),
|
||||
|
Loading…
x
Reference in New Issue
Block a user