diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-05-22 07:40:40 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-05-22 07:40:40 +0000 |
| commit | a1041ff00144baf82523dcba05df28bd18769b42 (patch) | |
| tree | 641445d8a45b310b9f7250a7757ef55d5e21284b /llvm/lib | |
| parent | de5498546e4e92865e904ae2c0779d736e8918c1 (diff) | |
| download | bcm5719-llvm-a1041ff00144baf82523dcba05df28bd18769b42.tar.gz bcm5719-llvm-a1041ff00144baf82523dcba05df28bd18769b42.zip | |
[AVX512] Add an AddedComplexity line to the 512-bit insert_subvector undef index 0 patterns. This gives them higher priority than the memory patterns. This matches AVX1/2.
llvm-svn: 270355
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index def35bbef63..329ea0c793b 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -796,6 +796,7 @@ defm : vextract_for_size_lowering<"VEXTRACTI64x4Z", v64i8_info, v32i8x_info, // A 128-bit subvector insert to the first 512-bit vector position // is a subregister copy that needs no instruction. +let AddedComplexity = 25 in { // to give priority over vinsertf128rm def : Pat<(v8i64 (insert_subvector undef, (v2i64 VR128X:$src), (iPTR 0))), (INSERT_SUBREG (v8i64 (IMPLICIT_DEF)), VR128X:$src, sub_xmm)>; def : Pat<(v8f64 (insert_subvector undef, (v2f64 VR128X:$src), (iPTR 0))), @@ -821,6 +822,7 @@ def : Pat<(v32i16 (insert_subvector undef, (v16i16 VR256X:$src), (iPTR 0))), (INSERT_SUBREG (v32i16 (IMPLICIT_DEF)), VR256X:$src, sub_ymm)>; def : Pat<(v64i8 (insert_subvector undef, (v32i8 VR256X:$src), (iPTR 0))), (INSERT_SUBREG (v64i8 (IMPLICIT_DEF)), VR256X:$src, sub_ymm)>; +} // vextractps - extract 32 bits from XMM def VEXTRACTPSZrr : AVX512AIi8<0x17, MRMDestReg, (outs GR32:$dst), |

