diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-09-29 05:54:43 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-09-29 05:54:43 +0000 |
commit | 7eb0e7ce1f592339d49c13695e8157d40d58ee4d (patch) | |
tree | 68cac331bb7ff0da6c6933ee2f1c58196d7f1621 /llvm/lib | |
parent | e7f261116095a5124d23d6068099b91ff15c5c2e (diff) | |
download | bcm5719-llvm-7eb0e7ce1f592339d49c13695e8157d40d58ee4d.tar.gz bcm5719-llvm-7eb0e7ce1f592339d49c13695e8157d40d58ee4d.zip |
[AVX-512] Replicate pattern from AVX to select VMOVDDUP for (v2f64 (X86VBroadcast f64:)). Add AVX512VL to command line of existing AVX2 test that hits this condition.
llvm-svn: 282688
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index 3d3d1e26538..35d1ee193ff 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -8066,10 +8066,14 @@ multiclass avx512_movddup<bits<8> opc, string OpcodeStr, SDNode OpNode>{ defm VMOVDDUP : avx512_movddup<0x12, "vmovddup", X86Movddup>; +let Predicates = [HasVLX] in { def : Pat<(X86Movddup (loadv2f64 addr:$src)), - (VMOVDDUPZ128rm addr:$src)>, Requires<[HasAVX512, HasVLX]>; + (VMOVDDUPZ128rm addr:$src)>; def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))), - (VMOVDDUPZ128rm addr:$src)>, Requires<[HasAVX512, HasVLX]>; + (VMOVDDUPZ128rm addr:$src)>; +def : Pat<(v2f64 (X86VBroadcast f64:$src)), + (VMOVDDUPZ128rr (COPY_TO_REGCLASS FR64X:$src, VR128X))>; +} //===----------------------------------------------------------------------===// // AVX-512 - Unpack Instructions |