diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll b/llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll index 32825a67c37..1725e8f8c2b 100644 --- a/llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll +++ b/llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll @@ -44,6 +44,46 @@ define <2 x i64> @test_x86_sse2_psrl_dq(<2 x i64> %a0) { declare <2 x i64> @llvm.x86.sse2.psrl.dq(<2 x i64>, i32) nounwind readnone +define <2 x double> @test_x86_sse2_cvtdq2pd(<4 x i32> %a0) { +; SSE-LABEL: test_x86_sse2_cvtdq2pd: +; SSE: ## BB#0: +; SSE-NEXT: cvtdq2pd %xmm0, %xmm0 +; SSE-NEXT: retl +; +; KNL-LABEL: test_x86_sse2_cvtdq2pd: +; KNL: ## BB#0: +; KNL-NEXT: vcvtdq2pd %xmm0, %xmm0 +; KNL-NEXT: retl +; CHECK-LABEL: test_x86_sse2_cvtdq2pd: +; CHECK: ## BB#0: +; CHECK-NEXT: cvtdq2pd %xmm0, %xmm0 +; CHECK-NEXT: retl + %res = call <2 x double> @llvm.x86.sse2.cvtdq2pd(<4 x i32> %a0) ; <<2 x double>> [#uses=1] + ret <2 x double> %res +} +declare <2 x double> @llvm.x86.sse2.cvtdq2pd(<4 x i32>) nounwind readnone + + +define <2 x double> @test_x86_sse2_cvtps2pd(<4 x float> %a0) { +; SSE-LABEL: test_x86_sse2_cvtps2pd: +; SSE: ## BB#0: +; SSE-NEXT: cvtps2pd %xmm0, %xmm0 +; SSE-NEXT: retl +; +; KNL-LABEL: test_x86_sse2_cvtps2pd: +; KNL: ## BB#0: +; KNL-NEXT: vcvtps2pd %xmm0, %xmm0 +; KNL-NEXT: retl +; CHECK-LABEL: test_x86_sse2_cvtps2pd: +; CHECK: ## BB#0: +; CHECK-NEXT: cvtps2pd %xmm0, %xmm0 +; CHECK-NEXT: retl + %res = call <2 x double> @llvm.x86.sse2.cvtps2pd(<4 x float> %a0) ; <<2 x double>> [#uses=1] + ret <2 x double> %res +} +declare <2 x double> @llvm.x86.sse2.cvtps2pd(<4 x float>) nounwind readnone + + define void @test_x86_sse2_storel_dq(i8* %a0, <4 x i32> %a1) { ; CHECK-LABEL: test_x86_sse2_storel_dq: ; CHECK: ## BB#0: |