mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
[X86][AVX512] Add patterns that match the AVX512 floating point vbroadcast intrinsics.
Patch by Cameron McInally <cameron.mcinally@nyu.edu> llvm-svn: 193421
This commit is contained in:
parent
fa62351fd5
commit
5650890143
@ -391,6 +391,11 @@ def : Pat<(v16f32 (X86VBroadcast (loadf32 addr:$src))),
|
||||
def : Pat<(v8f64 (X86VBroadcast (loadf64 addr:$src))),
|
||||
(VBROADCASTSDZrm addr:$src)>;
|
||||
|
||||
def : Pat<(int_x86_avx512_vbroadcast_ss_512 addr:$src),
|
||||
(VBROADCASTSSZrm addr:$src)>;
|
||||
def : Pat<(int_x86_avx512_vbroadcast_sd_512 addr:$src),
|
||||
(VBROADCASTSDZrm addr:$src)>;
|
||||
|
||||
multiclass avx512_int_broadcast_reg<bits<8> opc, string OpcodeStr,
|
||||
RegisterClass SrcRC, RegisterClass KRC> {
|
||||
def Zrr : AVX5128I<opc, MRMSrcReg, (outs VR512:$dst), (ins SrcRC:$src),
|
||||
|
@ -205,3 +205,17 @@ define <16 x i16> @test_x86_vcvtps2ph_256(<16 x float> %a0) {
|
||||
ret <16 x i16> %res
|
||||
}
|
||||
declare <16 x i16> @llvm.x86.avx512.vcvtps2ph.512(<16 x float>, i32) nounwind readonly
|
||||
|
||||
define <16 x float> @test_x86_vbroadcast_ss_512(i8* %a0) {
|
||||
; CHECK: vbroadcastss
|
||||
%res = call <16 x float> @llvm.x86.avx512.vbroadcast.ss.512(i8* %a0) ; <<16 x float>> [#uses=1]
|
||||
ret <16 x float> %res
|
||||
}
|
||||
declare <16 x float> @llvm.x86.avx512.vbroadcast.ss.512(i8*) nounwind readonly
|
||||
|
||||
define <8 x double> @test_x86_vbroadcast_sd_512(i8* %a0) {
|
||||
; CHECK: vbroadcastsd
|
||||
%res = call <8 x double> @llvm.x86.avx512.vbroadcast.sd.512(i8* %a0) ; <<8 x double>> [#uses=1]
|
||||
ret <8 x double> %res
|
||||
}
|
||||
declare <8 x double> @llvm.x86.avx512.vbroadcast.sd.512(i8*) nounwind readonly
|
||||
|
Loading…
Reference in New Issue
Block a user