diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-11-27 07:19:54 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-11-27 07:19:54 +0000 |
commit | 7c0f9a6461d12dab1e2608361c45891b7000b738 (patch) | |
tree | 17a52b3fec10014f8bbe94fefdc395427f82f6ec /llvm | |
parent | 6e20a16829d1b3fef120daff57eef59a641b21d4 (diff) | |
download | bcm5719-llvm-7c0f9a6461d12dab1e2608361c45891b7000b738.tar.gz bcm5719-llvm-7c0f9a6461d12dab1e2608361c45891b7000b738.zip |
Add test cases for r168417.
llvm-svn: 168681
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/test/CodeGen/X86/fma4-intrinsics-x86_64.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/fma4-intrinsics-x86_64.ll b/llvm/test/CodeGen/X86/fma4-intrinsics-x86_64.ll index 2fe1ecd40e0..7a1a9ae4614 100644 --- a/llvm/test/CodeGen/X86/fma4-intrinsics-x86_64.ll +++ b/llvm/test/CodeGen/X86/fma4-intrinsics-x86_64.ll @@ -63,6 +63,16 @@ define < 4 x float > @test_x86_fma_vfmadd_ps_load2(< 4 x float > %a0, < 4 x floa } declare < 4 x float > @llvm.x86.fma.vfmadd.ps(< 4 x float >, < 4 x float >, < 4 x float >) nounwind readnone +; To test execution dependency +define < 4 x float > @test_x86_fma_vfmadd_ps_load3(< 4 x float >* %a0, < 4 x float >* %a1, < 4 x float > %a2) { + ; CHECK: vmovaps + ; CHECK: vfmaddps %{{.*}}, (%{{.*}}) + %x = load <4 x float>* %a0 + %y = load <4 x float>* %a1 + %res = call < 4 x float > @llvm.x86.fma.vfmadd.ps(< 4 x float > %x, < 4 x float > %y, < 4 x float > %a2) ; <i64> [#uses=1] + ret < 4 x float > %res +} + define < 2 x double > @test_x86_fma_vfmadd_pd(< 2 x double > %a0, < 2 x double > %a1, < 2 x double > %a2) { ; CHECK: vfmaddpd %res = call < 2 x double > @llvm.x86.fma.vfmadd.pd(< 2 x double > %a0, < 2 x double > %a1, < 2 x double > %a2) ; <i64> [#uses=1] @@ -82,6 +92,16 @@ define < 2 x double > @test_x86_fma_vfmadd_pd_load2(< 2 x double > %a0, < 2 x do } declare < 2 x double > @llvm.x86.fma.vfmadd.pd(< 2 x double >, < 2 x double >, < 2 x double >) nounwind readnone +; To test execution dependency +define < 2 x double > @test_x86_fma_vfmadd_pd_load3(< 2 x double >* %a0, < 2 x double >* %a1, < 2 x double > %a2) { + ; CHECK: vmovapd + ; CHECK: vfmaddpd %{{.*}}, (%{{.*}}) + %x = load <2 x double>* %a0 + %y = load <2 x double>* %a1 + %res = call < 2 x double > @llvm.x86.fma.vfmadd.pd(< 2 x double > %x, < 2 x double > %y, < 2 x double > %a2) ; <i64> [#uses=1] + ret < 2 x double > %res +} + define < 8 x float > @test_x86_fma_vfmadd_ps_256(< 8 x float > %a0, < 8 x float > %a1, < 8 x float > %a2) { ; CHECK: vfmaddps ; CHECK: ymm |