add FNEGS and FNEGD
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 13 Oct 2006 17:37:35 +0000 (17:37 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 13 Oct 2006 17:37:35 +0000 (17:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30932 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td
test/CodeGen/ARM/fparith.ll

index 4954865b6c50d4f8a857ee97ce2c09acee805df5..fde132aaea00222fb7b8f505044cd1c0cd6db77d 100644 (file)
@@ -269,6 +269,14 @@ def FSUBD   : InstARM<(ops DFPRegs:$dst, DFPRegs:$a, DFPRegs:$b),
                        "fsubd $dst, $a, $b",
                       [(set DFPRegs:$dst, (fsub DFPRegs:$a, DFPRegs:$b))]>;
 
+def FNEGS   : InstARM<(ops FPRegs:$dst, FPRegs:$src),
+                       "fnegs $dst, $src",
+                      [(set FPRegs:$dst, (fneg FPRegs:$src))]>;
+
+def FNEGD   : InstARM<(ops DFPRegs:$dst, DFPRegs:$src),
+                       "fnegd $dst, $src",
+                      [(set DFPRegs:$dst, (fneg DFPRegs:$src))]>;
+
 def FMULS   : InstARM<(ops FPRegs:$dst, FPRegs:$a, FPRegs:$b),
                        "fmuls $dst, $a, $b",
                       [(set FPRegs:$dst, (fmul FPRegs:$a, FPRegs:$b))]>;
index 7210eee9ddd87fd32fbcdfb560a0c31ff8181eb2..c72a8738735b581fca1d47f5059680abc8d28519 100644 (file)
@@ -2,7 +2,9 @@
 ; RUN: llvm-as < %s | llc -march=arm | grep fadds &&
 ; RUN: llvm-as < %s | llc -march=arm | grep faddd &&
 ; RUN: llvm-as < %s | llc -march=arm | grep fmuls &&
-; RUN: llvm-as < %s | llc -march=arm | grep fmuld
+; RUN: llvm-as < %s | llc -march=arm | grep fmuld &&
+; RUN: llvm-as < %s | llc -march=arm | grep fnegs &&
+; RUN: llvm-as < %s | llc -march=arm | grep fnegd
 
 float %f1(float %a, float %b) {
 entry:
@@ -39,3 +41,15 @@ entry:
        %tmp = sub double %a, %b
        ret double %tmp
 }
+
+float %f7(float %a) {
+entry:
+       %tmp1 = sub float -0.000000e+00, %a
+       ret float %tmp1
+}
+
+double %f8(double %a) {
+entry:
+       %tmp1 = sub double -0.000000e+00, %a
+       ret double %tmp1
+}