aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-04-09 10:41:37 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-04-09 10:41:37 +0000
commit3f2060fd386c382197ec67f0c64eebdf44c79cf4 (patch)
tree797973450c5b52c26a7b2f2baf6278c2aa64d85d
parentb690cc0f331d0f63e2de4f0aa2e3883444cfead2 (diff)
downloadgcc-3f2060fd386c382197ec67f0c64eebdf44c79cf4.zip
gcc-3f2060fd386c382197ec67f0c64eebdf44c79cf4.tar.gz
gcc-3f2060fd386c382197ec67f0c64eebdf44c79cf4.tar.bz2
re PR target/43152 (vcond<> not supported for AVX float modes)
2010-04-09 Richard Guenther <rguenther@suse.de> PR target/43152 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well. From-SVN: r158158
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/sse.md15
2 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bdf0c58..0db0161 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2010-04-09 Richard Guenther <rguenther@suse.de>
+ PR target/43152
+ * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
+
+2010-04-09 Richard Guenther <rguenther@suse.de>
+
* tree-vectorizer.h (struct _stmt_vec_info): Document
that vectype is the type of the LHS.
(supportable_widening_operation, supportable_narrowing_operation):
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 671dcd4..f989136 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -1538,14 +1538,15 @@
(set_attr "mode" "<MODE>")])
(define_expand "vcond<mode>"
- [(set (match_operand:SSEMODEF2P 0 "register_operand" "")
- (if_then_else:SSEMODEF2P
+ [(set (match_operand:AVXMODEF2P 0 "register_operand" "")
+ (if_then_else:AVXMODEF2P
(match_operator 3 ""
- [(match_operand:SSEMODEF2P 4 "nonimmediate_operand" "")
- (match_operand:SSEMODEF2P 5 "nonimmediate_operand" "")])
- (match_operand:SSEMODEF2P 1 "general_operand" "")
- (match_operand:SSEMODEF2P 2 "general_operand" "")))]
- "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
+ [(match_operand:AVXMODEF2P 4 "nonimmediate_operand" "")
+ (match_operand:AVXMODEF2P 5 "nonimmediate_operand" "")])
+ (match_operand:AVXMODEF2P 1 "general_operand" "")
+ (match_operand:AVXMODEF2P 2 "general_operand" "")))]
+ "(SSE_VEC_FLOAT_MODE_P (<MODE>mode)
+ || AVX_VEC_FLOAT_MODE_P (<MODE>mode))"
{
bool ok = ix86_expand_fp_vcond (operands);
gcc_assert (ok);