mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-09 11:25:55 +00:00
Add AVX 128-bit sqrt versions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135404 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1894,6 +1894,17 @@ let Predicates = [HasAVX] in {
|
|||||||
sse1_fp_unop_p_int<0x53, "vrcp", int_x86_sse_rcp_ps>, VEX;
|
sse1_fp_unop_p_int<0x53, "vrcp", int_x86_sse_rcp_ps>, VEX;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def : Pat<(f32 (fsqrt FR32:$src)),
|
||||||
|
(VSQRTSSr (f32 (IMPLICIT_DEF)), FR32:$src)>, Requires<[HasAVX]>;
|
||||||
|
def : Pat<(f64 (fsqrt FR64:$src)),
|
||||||
|
(VSQRTSDr (f64 (IMPLICIT_DEF)), FR64:$src)>, Requires<[HasAVX]>;
|
||||||
|
def : Pat<(f64 (fsqrt (load addr:$src))),
|
||||||
|
(VSQRTSDm (f64 (IMPLICIT_DEF)), addr:$src)>,
|
||||||
|
Requires<[HasAVX, OptForSize]>;
|
||||||
|
def : Pat<(f32 (fsqrt (load addr:$src))),
|
||||||
|
(VSQRTSSm (f32 (IMPLICIT_DEF)), addr:$src)>,
|
||||||
|
Requires<[HasAVX, OptForSize]>;
|
||||||
|
|
||||||
// Square root.
|
// Square root.
|
||||||
defm SQRT : sse1_fp_unop_s<0x51, "sqrt", fsqrt, int_x86_sse_sqrt_ss>,
|
defm SQRT : sse1_fp_unop_s<0x51, "sqrt", fsqrt, int_x86_sse_sqrt_ss>,
|
||||||
sse1_fp_unop_p<0x51, "sqrt", fsqrt>,
|
sse1_fp_unop_p<0x51, "sqrt", fsqrt>,
|
||||||
|
@@ -52,3 +52,21 @@ entry:
|
|||||||
%conv = sitofp i64 %tmp1 to float
|
%conv = sitofp i64 %tmp1 to float
|
||||||
ret float %conv
|
ret float %conv
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; CHECK: vsqrtss
|
||||||
|
define float @sqrtA(float %a) nounwind uwtable readnone ssp {
|
||||||
|
entry:
|
||||||
|
%conv1 = tail call float @sqrtf(float %a) nounwind readnone
|
||||||
|
ret float %conv1
|
||||||
|
}
|
||||||
|
|
||||||
|
declare double @sqrt(double) readnone
|
||||||
|
|
||||||
|
; CHECK: vsqrtsd
|
||||||
|
define double @sqrtB(double %a) nounwind uwtable readnone ssp {
|
||||||
|
entry:
|
||||||
|
%call = tail call double @sqrt(double %a) nounwind readnone
|
||||||
|
ret double %call
|
||||||
|
}
|
||||||
|
|
||||||
|
declare float @sqrtf(float) readnone
|
||||||
|
Reference in New Issue
Block a user