mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
[X86] Remove unnecessary isel pattern that is a combination of two other patterns.
The pattern was this def : Pat<(i32 (zext (i8 (bitconvert (v8i1 VK8:$src))))), (MOVZX32rr8 (EXTRACT_SUBREG (i32 (COPY_TO_REGCLASS VK8:$src, GR32)), sub_8bit))>, Requires<[NoDQI]>; but if you just let (i32 (zext X)) match byte itself you'll get MOVZX32rr8. And if you let (i8 (bitconvert (v8i1 VK8:$src))) match by itself you'll get (EXTRACT_SUBREG (i32 (COPY_TO_REGCLASS VK8:$src, GR32)), sub_8bit). So we can just let isel do the two patterns naturally. llvm-svn: 322049
This commit is contained in:
parent
3075bb4222
commit
c5dbf5a582
@ -2683,8 +2683,6 @@ def : Pat<(i32 (zext (i16 (bitconvert (v16i1 VK16:$src))))),
|
||||
def : Pat<(i32 (anyext (i16 (bitconvert (v16i1 VK16:$src))))),
|
||||
(COPY_TO_REGCLASS VK16:$src, GR32)>;
|
||||
|
||||
def : Pat<(i32 (zext (i8 (bitconvert (v8i1 VK8:$src))))),
|
||||
(MOVZX32rr8 (EXTRACT_SUBREG (i32 (COPY_TO_REGCLASS VK8:$src, GR32)), sub_8bit))>, Requires<[NoDQI]>;
|
||||
def : Pat<(i32 (zext (i8 (bitconvert (v8i1 VK8:$src))))),
|
||||
(KMOVBrk VK8:$src)>, Requires<[HasDQI]>;
|
||||
def : Pat<(i32 (anyext (i8 (bitconvert (v8i1 VK8:$src))))),
|
||||
|
Loading…
Reference in New Issue
Block a user