aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2006-10-10 19:35:01 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2006-10-10 19:35:01 +0000
commit667c349febc16ec921093baedadeeab8488dbe26 (patch)
treeaa7b9a24584c03ed0f98fa343c2555bf4187f44b
parentb47e1d033cd3519d4a50779e07563a8dc2c0a21a (diff)
add fp sub
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30859 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td8
-rw-r--r--test/CodeGen/ARM/fparith.ll20
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index 13153dedc3..5965774340 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -235,6 +235,14 @@ def FADDD : InstARM<(ops DFPRegs:$dst, DFPRegs:$a, DFPRegs:$b),
"faddd $dst, $a, $b",
[(set DFPRegs:$dst, (fadd DFPRegs:$a, DFPRegs:$b))]>;
+def FSUBS : InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
+ "fsubs $dst, $a, $b",
+ [(set FPRegs:$dst, (fsub FPRegs:$a, FPRegs:$b))]>;
+
+def FSUBD : InstARM<(ops DFPRegs:$dst, DFPRegs:$a, DFPRegs:$b),
+ "fsubd $dst, $a, $b",
+ [(set DFPRegs:$dst, (fsub DFPRegs:$a, DFPRegs:$b))]>;
+
def FMULS : InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
"fmuls $dst, $a, $b",
[(set FPRegs:$dst, (fmul FPRegs:$a, FPRegs:$b))]>;
diff --git a/test/CodeGen/ARM/fparith.ll b/test/CodeGen/ARM/fparith.ll
index abf4426f1c..7210eee9dd 100644
--- a/test/CodeGen/ARM/fparith.ll
+++ b/test/CodeGen/ARM/fparith.ll
@@ -4,26 +4,38 @@
; RUN: llvm-as < %s | llc -march=arm | grep fmuls &&
; RUN: llvm-as < %s | llc -march=arm | grep fmuld
-float %f(float %a, float %b) {
+float %f1(float %a, float %b) {
entry:
%tmp = add float %a, %b
ret float %tmp
}
-double %g(double %a, double %b) {
+double %f2(double %a, double %b) {
entry:
%tmp = add double %a, %b
ret double %tmp
}
-float %h(float %a, float %b) {
+float %f3(float %a, float %b) {
entry:
%tmp = mul float %a, %b
ret float %tmp
}
-double %i(double %a, double %b) {
+double %f4(double %a, double %b) {
entry:
%tmp = mul double %a, %b
ret double %tmp
}
+
+float %f5(float %a, float %b) {
+entry:
+ %tmp = sub float %a, %b
+ ret float %tmp
+}
+
+double %f6(double %a, double %b) {
+entry:
+ %tmp = sub double %a, %b
+ ret double %tmp
+}