aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSa Liu <saliu@gcc.gnu.org>2008-05-08 08:39:45 +0000
committerSa Liu <saliu@gcc.gnu.org>2008-05-08 08:39:45 +0000
commitf51de793f1bba6bbb88b9df65ef2a2d4e608914b (patch)
treeff92c3b2fa3b78f6f88024019287119fc637faab /gcc
parent1b674de05347bf855c4e06656cd8276715ee0092 (diff)
downloadgcc-f51de793f1bba6bbb88b9df65ef2a2d4e608914b.zip
gcc-f51de793f1bba6bbb88b9df65ef2a2d4e608914b.tar.gz
gcc-f51de793f1bba6bbb88b9df65ef2a2d4e608914b.tar.bz2
fixed subti3 pattern
From-SVN: r135073
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/spu/spu.md20
1 files changed, 13 insertions, 7 deletions
diff --git a/gcc/config/spu/spu.md b/gcc/config/spu/spu.md
index 1485460..e98fcf3 100644
--- a/gcc/config/spu/spu.md
+++ b/gcc/config/spu/spu.md
@@ -1047,19 +1047,25 @@
(match_operand:TI 2 "spu_reg_operand" "r")))
(clobber (match_scratch:TI 3 "=&r"))
(clobber (match_scratch:TI 4 "=&r"))
- (clobber (match_scratch:TI 5 "=&r"))]
+ (clobber (match_scratch:TI 5 "=&r"))
+ (clobber (match_scratch:TI 6 "=&r"))]
""
- "bg\t%3,%1,%2\n\\
+ "il\t%6,1\n\\
+ bg\t%3,%2,%1\n\\
+ xor\t%3,%3,%6\n\\
sf\t%4,%2,%1\n\\
shlqbyi\t%5,%3,4\n\\
- bg\t%3,%4,%5\n\\
+ bg\t%3,%5,%4\n\\
+ xor\t%3,%3,%6\n\\
sf\t%4,%5,%4\n\\
shlqbyi\t%5,%3,4\n\\
- bg\t%3,%4,%5\n\\
- shlqbyi\t%0,%3,4\n\\
- sfx\t%0,%5,%4"
+ bg\t%3,%5,%4\n\\
+ xor\t%3,%3,%6\n\\
+ sf\t%4,%5,%4\n\\
+ shlqbyi\t%5,%3,4\n\\
+ sf\t%0,%5,%4"
[(set_attr "type" "multi0")
- (set_attr "length" "36")])
+ (set_attr "length" "56")])
(define_insn "sub<mode>3"
[(set (match_operand:VSF 0 "spu_reg_operand" "=r")