[X86] Remove the VCVTSI2SD32 with rounding intrinsic. It's not used by clang and not needed since 32-bit integer to double is always exact.
llvm-svn: 281442
This commit is contained in:
parent
b3224adfb6
commit
4e2d5a43cf
|
|
@ -4361,9 +4361,6 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||||
def int_x86_avx512_cvtsi2ss64 : GCCBuiltin<"__builtin_ia32_cvtsi2ss64">,
|
def int_x86_avx512_cvtsi2ss64 : GCCBuiltin<"__builtin_ia32_cvtsi2ss64">,
|
||||||
Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
|
Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
|
||||||
llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
|
llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||||
def int_x86_avx512_cvtsi2sd32 : GCCBuiltin<"__builtin_ia32_cvtsi2sd32">,
|
|
||||||
Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
|
|
||||||
llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
|
|
||||||
def int_x86_avx512_cvtsi2sd64 : GCCBuiltin<"__builtin_ia32_cvtsi2sd64">,
|
def int_x86_avx512_cvtsi2sd64 : GCCBuiltin<"__builtin_ia32_cvtsi2sd64">,
|
||||||
Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
|
Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
|
||||||
llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
|
llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||||
|
|
|
||||||
|
|
@ -354,7 +354,6 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
|
||||||
X86_INTRINSIC_DATA(avx512_cvtq2mask_128, CONVERT_TO_MASK, X86ISD::CVT2MASK, 0),
|
X86_INTRINSIC_DATA(avx512_cvtq2mask_128, CONVERT_TO_MASK, X86ISD::CVT2MASK, 0),
|
||||||
X86_INTRINSIC_DATA(avx512_cvtq2mask_256, CONVERT_TO_MASK, X86ISD::CVT2MASK, 0),
|
X86_INTRINSIC_DATA(avx512_cvtq2mask_256, CONVERT_TO_MASK, X86ISD::CVT2MASK, 0),
|
||||||
X86_INTRINSIC_DATA(avx512_cvtq2mask_512, CONVERT_TO_MASK, X86ISD::CVT2MASK, 0),
|
X86_INTRINSIC_DATA(avx512_cvtq2mask_512, CONVERT_TO_MASK, X86ISD::CVT2MASK, 0),
|
||||||
X86_INTRINSIC_DATA(avx512_cvtsi2sd32, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
|
||||||
X86_INTRINSIC_DATA(avx512_cvtsi2sd64, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
X86_INTRINSIC_DATA(avx512_cvtsi2sd64, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
||||||
X86_INTRINSIC_DATA(avx512_cvtsi2ss32, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
X86_INTRINSIC_DATA(avx512_cvtsi2ss32, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
||||||
X86_INTRINSIC_DATA(avx512_cvtsi2ss64, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
X86_INTRINSIC_DATA(avx512_cvtsi2ss64, INTR_TYPE_3OP, X86ISD::SINT_TO_FP_RND, 0),
|
||||||
|
|
|
||||||
|
|
@ -2968,16 +2968,6 @@ define <2 x double> @test_max_sd(<2 x double> %a0, <2 x double> %a1) {
|
||||||
ret <2 x double> %res
|
ret <2 x double> %res
|
||||||
}
|
}
|
||||||
|
|
||||||
define <2 x double> @test_x86_avx512_cvtsi2sd32(<2 x double> %a, i32 %b) {
|
|
||||||
; CHECK-LABEL: test_x86_avx512_cvtsi2sd32:
|
|
||||||
; CHECK: ## BB#0:
|
|
||||||
; CHECK-NEXT: vcvtsi2sdl %edi, {rz-sae}, %xmm0, %xmm0
|
|
||||||
; CHECK-NEXT: retq
|
|
||||||
%res = call <2 x double> @llvm.x86.avx512.cvtsi2sd32(<2 x double> %a, i32 %b, i32 3) ; <<<2 x double>> [#uses=1]
|
|
||||||
ret <2 x double> %res
|
|
||||||
}
|
|
||||||
declare <2 x double> @llvm.x86.avx512.cvtsi2sd32(<2 x double>, i32, i32) nounwind readnone
|
|
||||||
|
|
||||||
define <2 x double> @test_x86_avx512_cvtsi2sd64(<2 x double> %a, i64 %b) {
|
define <2 x double> @test_x86_avx512_cvtsi2sd64(<2 x double> %a, i64 %b) {
|
||||||
; CHECK-LABEL: test_x86_avx512_cvtsi2sd64:
|
; CHECK-LABEL: test_x86_avx512_cvtsi2sd64:
|
||||||
; CHECK: ## BB#0:
|
; CHECK: ## BB#0:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue