add FABSS and FABSD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31012 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index 5109eea..f252f60 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -288,6 +288,14 @@
"fnegd $dst, $src",
[(set DFPRegs:$dst, (fneg DFPRegs:$src))]>;
+def FABSS : InstARM<(ops FPRegs:$dst, FPRegs:$src),
+ "fabss $dst, $src",
+ [(set FPRegs:$dst, (fabs FPRegs:$src))]>;
+
+def FABSD : InstARM<(ops DFPRegs:$dst, DFPRegs:$src),
+ "fabsd $dst, $src",
+ [(set DFPRegs:$dst, (fabs DFPRegs:$src))]>;
+
def FMULS : FPBinOp<"fmuls", fmul>;
def FMULD : DFPBinOp<"fmuld", fmul>;
def FDIVS : FPBinOp<"fdivs", fdiv>;
diff --git a/test/CodeGen/ARM/fparith.ll b/test/CodeGen/ARM/fparith.ll
index f83aa77..db115a9 100644
--- a/test/CodeGen/ARM/fparith.ll
+++ b/test/CodeGen/ARM/fparith.ll
@@ -67,3 +67,19 @@
%tmp1 = div double %a, %b
ret double %tmp1
}
+
+float %f11(float %a) {
+entry:
+ %tmp1 = call float %fabsf(float %a)
+ ret float %tmp1
+}
+
+declare float %fabsf(float)
+
+double %f12(double %a) {
+entry:
+ %tmp1 = call double %fabs(double %a)
+ ret double %tmp1
+}
+
+declare double %fabs(double)