diff options
author | Jim Grosbach <grosbach@apple.com> | 2013-02-27 21:31:12 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2013-02-27 21:31:12 +0000 |
commit | 5f21587648a33f3aa6dd9e5264c8418f9049ad00 (patch) | |
tree | c534da19a21710ea98cbc6de802bb79fda31b3d7 /llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll | |
parent | 4890582f2adda536c719f664a51ae84760ffe4fe (diff) | |
download | bcm5719-llvm-5f21587648a33f3aa6dd9e5264c8418f9049ad00.tar.gz bcm5719-llvm-5f21587648a33f3aa6dd9e5264c8418f9049ad00.zip |
ARM: FMA is legal only if VFP4 is available.
rdar://13306723
llvm-svn: 176212
Diffstat (limited to 'llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll b/llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll new file mode 100644 index 00000000000..0e3bf237106 --- /dev/null +++ b/llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll @@ -0,0 +1,31 @@ +; RUN: llc < %s -mtriple=armv7-apple-darwin | FileCheck %s +; RUN: llc < %s -mtriple=armv7s-apple-darwin | FileCheck %s -check-prefix=VFP4 + +define <4 x float> @muladd(<4 x float> %a, <4 x float> %b, <4 x float> %c) nounwind { +; CHECK: muladd: +; CHECK: fmaf +; CHECK: fmaf +; CHECK: fmaf +; CHECK: fmaf +; CHECK-NOT: fmaf + +; CHECK-VFP4: vfma.f32 + %tmp = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %b, <4 x float> %c, <4 x float> %a) #2 + ret <4 x float> %tmp +} + +declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>) #1 + +define <2 x float> @muladd2(<2 x float> %a, <2 x float> %b, <2 x float> %c) nounwind { +; CHECK: muladd2: +; CHECK: fmaf +; CHECK: fmaf +; CHECK-NOT: fmaf + +; CHECK-VFP4: vfma.f32 + %tmp = tail call <2 x float> @llvm.fma.v2f32(<2 x float> %b, <2 x float> %c, <2 x float> %a) #2 + ret <2 x float> %tmp +} + +declare <2 x float> @llvm.fma.v2f32(<2 x float>, <2 x float>, <2 x float>) #1 + |