llvm-ar: Clean up memory management with OwningPtr.
[oota-llvm.git] / test / CodeGen / ARM / fusedMAC.ll
index d35330c09f5f00f39e196c10963fe2e5965ccde9..303d165de0b693d0d28dbb03425fac9bc09de497 100644 (file)
@@ -206,7 +206,19 @@ define float @test_fma_canonicalize(float %a, float %b) nounwind {
   ret float %ret
 }
 
+; Check that very wide vector fma's can be split into legal fma's.
+define void @test_fma_v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c, <8 x float>* %p) nounwind readnone ssp {
+; CHECK: test_fma_v8f32
+; CHECK: vfma.f32
+; CHECK: vfma.f32
+entry:
+  %call = tail call <8 x float> @llvm.fma.v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c) nounwind readnone
+  store <8 x float> %call, <8 x float>* %p, align 16
+  ret void
+}
+
 
 declare float @llvm.fma.f32(float, float, float) nounwind readnone
 declare double @llvm.fma.f64(double, double, double) nounwind readnone
 declare <2 x float> @llvm.fma.v2f32(<2 x float>, <2 x float>, <2 x float>) nounwind readnone
+declare <8 x float> @llvm.fma.v8f32(<8 x float>, <8 x float>, <8 x float>) nounwind readnone