aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2008-02-20 19:32:14 +0100
committerUros Bizjak <uros@gcc.gnu.org>2008-02-20 19:32:14 +0100
commit993ac7c7eff9ad66169977ba7f9e8eed241f107f (patch)
tree66a6e8969fe01391ffd29f32b96bd0b7e796c701
parent89a5afda0e8c61e452cf46f305658d3f01117aba (diff)
downloadgcc-993ac7c7eff9ad66169977ba7f9e8eed241f107f.zip
gcc-993ac7c7eff9ad66169977ba7f9e8eed241f107f.tar.gz
gcc-993ac7c7eff9ad66169977ba7f9e8eed241f107f.tar.bz2
sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
* config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template. (<sse>_div<mode>3): Ditto. (<sse>_vmdiv<mode>3): Ditto. (<sse>_vmsqrt<mode>2): Ditto. (*smax<mode>3): Ditto. (sse5_frcz<mode>2): Ditto. (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND as insn constraint. From-SVN: r132490
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/i386/sse.md36
2 files changed, 30 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 495a476..b8cc999 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2008-02-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
+ (<sse>_div<mode>3): Ditto.
+ (<sse>_vmdiv<mode>3): Ditto.
+ (<sse>_vmsqrt<mode>2): Ditto.
+ (*smax<mode>3): Ditto.
+ (sse5_frcz<mode>2): Ditto.
+ (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
+ as insn constraint.
+
2008-02-20 Richard Guenther <rguenther@suse.de>
PR middle-end/35265
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 12e8b42..968fff0 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -455,7 +455,7 @@
(const_int 1)))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)
&& ix86_binary_operator_ok (MULT, <MODE>mode, operands)"
- "muls<ssemodesuffix2c>\t{%2, %0|%0, %2}"
+ "muls<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
[(set_attr "type" "ssemul")
(set_attr "mode" "<ssescalarmode>")])
@@ -490,7 +490,7 @@
(match_operand:SSEMODEF2P 1 "register_operand" "0")
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "xm")))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
- "divp<ssemodesuffix2c>\t{%2, %0|%0, %2}"
+ "divp<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
[(set_attr "type" "ssediv")
(set_attr "mode" "<MODE>")])
@@ -503,7 +503,7 @@
(match_dup 1)
(const_int 1)))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
- "divs<ssemodesuffix2c>\t{%2, %0|%0, %2}"
+ "divs<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
[(set_attr "type" "ssediv")
(set_attr "mode" "<ssescalarmode>")])
@@ -566,7 +566,7 @@
(match_operand:SSEMODEF2P 2 "register_operand" "0")
(const_int 1)))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
- "sqrts<ssemodesuffix2c>\t{%1, %0|%0, %1}"
+ "sqrts<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
[(set_attr "type" "sse")
(set_attr "mode" "<ssescalarmode>")])
@@ -680,7 +680,7 @@
(match_operand:SSEMODEF2P 1 "register_operand" "0")
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "xm")))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
- "maxp<ssemodesuffix2c>\t{%2, %0|%0, %2}"
+ "maxp<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
[(set_attr "type" "sseadd")
(set_attr "mode" "<MODE>")])
@@ -693,7 +693,7 @@
(match_dup 1)
(const_int 1)))]
"SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
- "maxs<ssemodesuffix2c>\t{%2, %0|%0, %2}"
+ "maxs<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
[(set_attr "type" "sseadd")
(set_attr "mode" "<ssescalarmode>")])
@@ -7926,10 +7926,11 @@
;; SSE5 permute instructions
(define_insn "sse5_pperm"
[(set (match_operand:V16QI 0 "register_operand" "=x,x,x,x")
- (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "0,0,x,xm")
- (match_operand:V16QI 2 "nonimmediate_operand" "x,xm,xm,x")
- (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0")]
- UNSPEC_SSE5_PERMUTE))]
+ (unspec:V16QI
+ [(match_operand:V16QI 1 "nonimmediate_operand" "0,0,x,xm")
+ (match_operand:V16QI 2 "nonimmediate_operand" "x,xm,xm,x")
+ (match_operand:V16QI 3 "nonimmediate_operand" "xm,x,0,0")]
+ UNSPEC_SSE5_PERMUTE))]
"TARGET_SSE5 && ix86_sse5_valid_op_p (operands, insn, 4, true, 1)"
"pperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "sse4arg")
@@ -8132,7 +8133,7 @@
[(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "xm")]
UNSPEC_FRCZ))]
"TARGET_SSE5"
- "frcz<ssesuffixf4>\t{%1, %0|%0, %1}"
+ "frcz<ssemodesuffixf4>\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt1")
(set_attr "prefix_extra" "1")
(set_attr "mode" "<MODE>")])
@@ -8146,8 +8147,8 @@
UNSPEC_FRCZ)
(match_operand:SSEMODEF2P 1 "register_operand" "0")
(const_int 1)))]
- "TARGET_ROUND"
- "frcz<ssesuffixf2s>\t{%2, %0|%0, %2}"
+ "TARGET_SSE5"
+ "frcz<ssemodesuffixf2s>\t{%2, %0|%0, %2}"
[(set_attr "type" "ssecvt1")
(set_attr "prefix_extra" "1")
(set_attr "mode" "<MODE>")])
@@ -8289,10 +8290,11 @@
;; being added here to be complete.
(define_insn "sse5_pcom_tf<mode>3"
[(set (match_operand:SSEMODE1248 0 "register_operand" "=x")
- (unspec:SSEMODE1248 [(match_operand:SSEMODE1248 1 "register_operand" "x")
- (match_operand:SSEMODE1248 2 "nonimmediate_operand" "xm")
- (match_operand:SI 3 "const_int_operand" "n")]
- UNSPEC_SSE5_TRUEFALSE))]
+ (unspec:SSEMODE1248
+ [(match_operand:SSEMODE1248 1 "register_operand" "x")
+ (match_operand:SSEMODE1248 2 "nonimmediate_operand" "xm")
+ (match_operand:SI 3 "const_int_operand" "n")]
+ UNSPEC_SSE5_TRUEFALSE))]
"TARGET_SSE5"
{
return ((INTVAL (operands[3]) != 0)