mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
Fix AVX512 vector sqrt assembly strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201681 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6e2c745e99
commit
35f15e54a9
@ -3275,25 +3275,25 @@ multiclass avx512_sqrt_packed<bits<8> opc, string OpcodeStr, SDNode OpNode,
|
||||
Intrinsic V16F32Int, Intrinsic V8F64Int,
|
||||
OpndItins itins_s, OpndItins itins_d> {
|
||||
def PSZrr :AVX512PSI<opc, MRMSrcReg, (outs VR512:$dst), (ins VR512:$src),
|
||||
!strconcat(OpcodeStr, " \t{$src, $dst|$dst, $src}"),
|
||||
!strconcat(OpcodeStr, "ps\t{$src, $dst|$dst, $src}"),
|
||||
[(set VR512:$dst, (v16f32 (OpNode VR512:$src)))], itins_s.rr>,
|
||||
EVEX, EVEX_V512;
|
||||
|
||||
let mayLoad = 1 in
|
||||
def PSZrm : AVX512PSI<opc, MRMSrcMem, (outs VR512:$dst), (ins f512mem:$src),
|
||||
!strconcat(OpcodeStr, " \t{$src, $dst|$dst, $src}"),
|
||||
!strconcat(OpcodeStr, "ps\t{$src, $dst|$dst, $src}"),
|
||||
[(set VR512:$dst,
|
||||
(OpNode (v16f32 (bitconvert (memopv16f32 addr:$src)))))],
|
||||
itins_s.rm>, EVEX, EVEX_V512, EVEX_CD8<32, CD8VF>;
|
||||
|
||||
def PDZrr : AVX512PDI<opc, MRMSrcReg, (outs VR512:$dst), (ins VR512:$src),
|
||||
!strconcat(OpcodeStr, " \t{$src, $dst|$dst, $src}"),
|
||||
!strconcat(OpcodeStr, "pd\t{$src, $dst|$dst, $src}"),
|
||||
[(set VR512:$dst, (v8f64 (OpNode VR512:$src)))], itins_d.rr>,
|
||||
EVEX, EVEX_V512;
|
||||
|
||||
let mayLoad = 1 in
|
||||
def PDZrm : AVX512PDI<opc, MRMSrcMem, (outs VR512:$dst), (ins f512mem:$src),
|
||||
!strconcat(OpcodeStr, " \t{$src, $dst|$dst, $src}"),
|
||||
!strconcat(OpcodeStr, "pd\t{$src, $dst|$dst, $src}"),
|
||||
[(set VR512:$dst, (OpNode
|
||||
(v8f64 (bitconvert (memopv16f32 addr:$src)))))],
|
||||
itins_d.rm>, EVEX, EVEX_V512, EVEX_CD8<64, CD8VF>;
|
||||
|
@ -224,6 +224,24 @@ define float @sqrtC(float %a) nounwind {
|
||||
ret float %b
|
||||
}
|
||||
|
||||
; CHECK-LABEL: sqrtD
|
||||
; CHECK: vsqrtps {{.*}}
|
||||
; CHECK: ret
|
||||
declare <16 x float> @llvm.sqrt.v16f32(<16 x float>)
|
||||
define <16 x float> @sqrtD(<16 x float> %a) nounwind {
|
||||
%b = call <16 x float> @llvm.sqrt.v16f32(<16 x float> %a)
|
||||
ret <16 x float> %b
|
||||
}
|
||||
|
||||
; CHECK-LABEL: sqrtE
|
||||
; CHECK: vsqrtpd {{.*}}
|
||||
; CHECK: ret
|
||||
declare <8 x double> @llvm.sqrt.v8f64(<8 x double>)
|
||||
define <8 x double> @sqrtE(<8 x double> %a) nounwind {
|
||||
%b = call <8 x double> @llvm.sqrt.v8f64(<8 x double> %a)
|
||||
ret <8 x double> %b
|
||||
}
|
||||
|
||||
; CHECK-LABEL: fadd_broadcast
|
||||
; CHECK: LCP{{.*}}(%rip){1to16}, %zmm0, %zmm0
|
||||
; CHECK: ret
|
||||
|
Loading…
Reference in New Issue
Block a user