From 32f19262d5fb5861e2f673f63a8d4537e91cba8e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 17 Dec 2005 23:14:30 +0000 Subject: [PATCH] Add patterns for fround/fextend and the funny fsmuld instruction llvm-svn: 24802 --- llvm/lib/Target/SparcV8/SparcV8InstrInfo.td | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td b/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td index 3739b90a53b8..cf8d551d7405 100644 --- a/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td +++ b/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td @@ -501,10 +501,12 @@ def FDTOI : F3_3<2, 0b110100, 0b011010010, // Convert between Floating-point Formats Instructions, p. 143 def FSTOD : F3_3<2, 0b110100, 0b011001001, (ops DFPRegs:$dst, FPRegs:$src), - "fstod $src, $dst", []>; + "fstod $src, $dst", + [(set DFPRegs:$dst, (fextend FPRegs:$src))]>; def FDTOS : F3_3<2, 0b110100, 0b011000110, (ops FPRegs:$dst, DFPRegs:$src), - "fdtos $src, $dst", []>; + "fdtos $src, $dst", + [(set FPRegs:$dst, (fround DFPRegs:$src))]>; // Floating-point Move Instructions, p. 144 def FMOVS : F3_3<2, 0b110100, 0b000000001, @@ -546,11 +548,13 @@ def FMULD : F3_3<2, 0b110100, 0b001001010, [(set DFPRegs:$dst, (fmul DFPRegs:$src1, DFPRegs:$src2))]>; def FSMULD : F3_3<2, 0b110100, 0b001101001, (ops DFPRegs:$dst, FPRegs:$src1, FPRegs:$src2), - "fsmuld $src1, $src2, $dst", []>; + "fsmuld $src1, $src2, $dst", + [(set DFPRegs:$dst, (fmul (fextend FPRegs:$src1), + (fextend FPRegs:$src2)))]>; def FDIVS : F3_3<2, 0b110100, 0b001001101, (ops FPRegs:$dst, FPRegs:$src1, FPRegs:$src2), "fdivs $src1, $src2, $dst", - [(set DFPRegs:$dst, (fdiv FPRegs:$src1, FPRegs:$src2))]>; + [(set FPRegs:$dst, (fdiv FPRegs:$src1, FPRegs:$src2))]>; def FDIVD : F3_3<2, 0b110100, 0b001001110, (ops DFPRegs:$dst, DFPRegs:$src1, DFPRegs:$src2), "fdivd $src1, $src2, $dst",