diff options
author | Chris Lattner <sabre@nondot.org> | 2005-12-17 23:20:27 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-12-17 23:20:27 +0000 |
commit | 294974bd576c381d66af6e73159d0574af81d405 (patch) | |
tree | 40402824863a267d5e97f79a8197e1ceaa85ffbc /lib/Target/Sparc | |
parent | b4d5172af93533e3325b647dd257810b236337aa (diff) | |
download | llvm-294974bd576c381d66af6e73159d0574af81d405.tar.gz llvm-294974bd576c381d66af6e73159d0574af81d405.tar.bz2 llvm-294974bd576c381d66af6e73159d0574af81d405.tar.xz |
add fneg,fabs,fsqrt instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc')
-rw-r--r-- | lib/Target/Sparc/README.txt | 2 | ||||
-rw-r--r-- | lib/Target/Sparc/SparcInstrInfo.td | 18 |
2 files changed, 16 insertions, 4 deletions
diff --git a/lib/Target/Sparc/README.txt b/lib/Target/Sparc/README.txt index e97edec19a..1d7ceac3f6 100644 --- a/lib/Target/Sparc/README.txt +++ b/lib/Target/Sparc/README.txt @@ -79,7 +79,5 @@ To-do where possible. I think this is what afflicts the inner loop of Olden/tsp (hot block = tsp():no_exit.1.i, overall GCC/LLC = 0.03). -* Generate fsqrtd for calls to sqrt() (~ 4% speedup on Olden/tsp). - $Date$ diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index cf8d551d74..04fb7fe4f5 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -514,10 +514,24 @@ def FMOVS : F3_3<2, 0b110100, 0b000000001, "fmovs $src, $dst", []>; def FNEGS : F3_3<2, 0b110100, 0b000000101, (ops FPRegs:$dst, FPRegs:$src), - "fnegs $src, $dst", []>; + "fnegs $src, $dst", + [(set FPRegs:$dst, (fneg FPRegs:$src))]>; def FABSS : F3_3<2, 0b110100, 0b000001001, (ops FPRegs:$dst, FPRegs:$src), - "fabss $src, $dst", []>; + "fabss $src, $dst", + [(set FPRegs:$dst, (fabs FPRegs:$src))]>; + +// Floating-point Square Root Instructions, p.145 +def FSQRTS : F3_3<2, 0b110100, 0b000101001, + (ops FPRegs:$dst, FPRegs:$src), + "fsqrts $src, $dst", + [(set FPRegs:$dst, (fsqrt FPRegs:$src))]>; +def FSQRTD : F3_3<2, 0b110100, 0b000101010, + (ops DFPRegs:$dst, DFPRegs:$src), + "fsqrtd $src, $dst", + [(set DFPRegs:$dst, (fsqrt DFPRegs:$src))]>; + + // Floating-point Add and Subtract Instructions, p. 146 def FADDS : F3_3<2, 0b110100, 0b001000001, |