Lower FNEG just like FABS to fneg[ds] and fmov[ds], thus avoiding

expensive libcall. Also, Qp_neg is not implemented on at least
FreeBSD. This is also what gcc is doing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202422 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Roman Divacky
2014-02-27 19:26:29 +00:00
parent 3e31a5684a
commit 14551f041b
2 changed files with 19 additions and 17 deletions

View File

@@ -232,3 +232,14 @@ entry:
store i32 %3, i32* %4, align 8
ret void
}
; SOFT-LABEL: f128_neg
; SOFT: fnegs
define void @f128_neg(fp128* noalias sret %scalar.result, fp128* byval %a) {
entry:
%0 = load fp128* %a, align 8
%1 = fsub fp128 0xL00000000000000008000000000000000, %0
store fp128 %1, fp128* %scalar.result, align 8
ret void
}