aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/Alpha/AlphaInstrInfo.td
diff options
context:
space:
mode:
authorAndrew Lenharth <andrewl@lenharth.org>2006-03-09 17:41:50 +0000
committerAndrew Lenharth <andrewl@lenharth.org>2006-03-09 17:41:50 +0000
commit283f22275aabb69339676edce6b31d000b9716eb (patch)
tree076ca2a528dcf15960a370daea87b9da281214ac /lib/Target/Alpha/AlphaInstrInfo.td
parent8c84f3f0dfae7975e93fb5465c41c8a41bd70aa6 (diff)
downloadexternal_llvm-283f22275aabb69339676edce6b31d000b9716eb.zip
external_llvm-283f22275aabb69339676edce6b31d000b9716eb.tar.gz
external_llvm-283f22275aabb69339676edce6b31d000b9716eb.tar.bz2
alpha and llvm have different oppinions on which arg is the sign bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26647 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Alpha/AlphaInstrInfo.td')
-rw-r--r--lib/Target/Alpha/AlphaInstrInfo.td18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/Target/Alpha/AlphaInstrInfo.td b/lib/Target/Alpha/AlphaInstrInfo.td
index 6d5458d..adbd972 100644
--- a/lib/Target/Alpha/AlphaInstrInfo.td
+++ b/lib/Target/Alpha/AlphaInstrInfo.td
@@ -571,11 +571,10 @@ def MULS : FPForm<0x16, 0x582, "muls/su $RA,$RB,$RC",
[(set F4RC:$RC, (fmul F4RC:$RA, F4RC:$RB))], s_fmul>;
def CPYSS : FPForm<0x17, 0x020, "cpys $RA,$RB,$RC",
- [(set F4RC:$RC, (fcopysign F4RC:$RA, F4RC:$RB))], s_fadd>;
+ [(set F4RC:$RC, (fcopysign F4RC:$RB, F4RC:$RA))], s_fadd>;
def CPYSES : FPForm<0x17, 0x022, "cpyse $RA,$RB,$RC",[], s_fadd>; //Copy sign and exponent
-//FIXME: This might be legalized in the oposite manner
def CPYSNS : FPForm<0x17, 0x021, "cpysn $RA,$RB,$RC",
- [(set F4RC:$RC, (fneg (fcopysign F4RC:$RA, F4RC:$RB)))], s_fadd>;
+ [(set F4RC:$RC, (fneg (fcopysign F4RC:$RB, F4RC:$RA)))], s_fadd>;
}
//Doubles
@@ -595,11 +594,10 @@ def MULT : FPForm<0x16, 0x5A2, "mult/su $RA,$RB,$RC",
[(set F8RC:$RC, (fmul F8RC:$RA, F8RC:$RB))], s_fmul>;
def CPYST : FPForm<0x17, 0x020, "cpys $RA,$RB,$RC",
- [(set F8RC:$RC, (fcopysign F8RC:$RA, F8RC:$RB))], s_fadd>;
+ [(set F8RC:$RC, (fcopysign F8RC:$RB, F8RC:$RA))], s_fadd>;
def CPYSET : FPForm<0x17, 0x022, "cpyse $RA,$RB,$RC",[], s_fadd>; //Copy sign and exponent
-//FIXME: This might be legalized in the oposite manner
def CPYSNT : FPForm<0x17, 0x021, "cpysn $RA,$RB,$RC",
- [(set F8RC:$RC, (fneg (fcopysign F8RC:$RA, F8RC:$RB)))], s_fadd>;
+ [(set F8RC:$RC, (fneg (fcopysign F8RC:$RB, F8RC:$RA)))], s_fadd>;
def CMPTEQ : FPForm<0x16, 0x5A5, "cmpteq/su $RA,$RB,$RC", [], s_fadd>;
// [(set F8RC:$RC, (seteq F8RC:$RA, F8RC:$RB))]>;
@@ -850,10 +848,10 @@ def : Pat<(fneg F8RC:$RB),
(CPYSNT F8RC:$RB, F8RC:$RB)>;
def : Pat<(fneg F4RC:$RB),
(CPYSNS F4RC:$RB, F4RC:$RB)>;
-def : Pat<(fcopysign (fneg F4RC:$A), F4RC:$B),
- (CPYSNS F4RC:$A, F4RC:$B)>;
-def : Pat<(fcopysign (fneg F8RC:$A), F8RC:$B),
- (CPYSNT F8RC:$A, F8RC:$B)>;
+def : Pat<(fcopysign F4RC:$A, (fneg F4RC:$B)),
+ (CPYSNS F4RC:$B, F4RC:$A)>;
+def : Pat<(fcopysign F8RC:$A, (fneg F8RC:$B)),
+ (CPYSNT F8RC:$B, F8RC:$A)>;
//Yes, signed multiply high is ugly
def : Pat<(mulhs GPRC:$RA, GPRC:$RB),