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)