mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-25 15:41:05 +00:00
[X86] Use integer broadcast instructions for integer broadcast patterns.
I'm not sure why we were using an FP instruction before and had to have a comment calling attention to it, but not justifying it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293588 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
35b092a75f
commit
1c8955ec1e
@ -8334,18 +8334,13 @@ let Predicates = [HasAVX2, NoVLX_Or_NoBWI] in {
|
||||
}
|
||||
let Predicates = [HasAVX2, NoVLX] in {
|
||||
def : Pat<(v4i32 (X86VBroadcast GR32:$src)),
|
||||
(VBROADCASTSSrr (COPY_TO_REGCLASS GR32:$src, VR128))>;
|
||||
(VPBROADCASTDrr (COPY_TO_REGCLASS GR32:$src, VR128))>;
|
||||
def : Pat<(v8i32 (X86VBroadcast GR32:$src)),
|
||||
(VBROADCASTSSYrr (COPY_TO_REGCLASS GR32:$src, VR128))>;
|
||||
def : Pat<(v4i64 (X86VBroadcast GR64:$src)),
|
||||
(VBROADCASTSDYrr (COPY_TO_REGCLASS GR64:$src, VR128))>;
|
||||
|
||||
// The patterns for VPBROADCASTD are not needed because they would match
|
||||
// the exact same thing as VBROADCASTSS patterns.
|
||||
|
||||
(VPBROADCASTDYrr (COPY_TO_REGCLASS GR32:$src, VR128))>;
|
||||
def : Pat<(v2i64 (X86VBroadcast GR64:$src)),
|
||||
(VPBROADCASTQrr (COPY_TO_REGCLASS GR64:$src, VR128))>;
|
||||
// The v4i64 pattern is not needed because VBROADCASTSDYrr already match.
|
||||
(VPBROADCASTQrr (COPY_TO_REGCLASS GR64:$src, VR128))>;
|
||||
def : Pat<(v4i64 (X86VBroadcast GR64:$src)),
|
||||
(VPBROADCASTQYrr (COPY_TO_REGCLASS GR64:$src, VR128))>;
|
||||
}
|
||||
|
||||
// AVX1 broadcast patterns
|
||||
|
Loading…
x
Reference in New Issue
Block a user