summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/vector.md
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-07-08 22:09:58 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-07-08 22:09:58 +0200
commit70db9095eaefb4aeb985487010521d47ee018205 (patch)
tree7bcf9c5b838741b00716f92f5cbc84858505c0ca /gcc/config/rs6000/vector.md
parentd6919c1f42428a468242b8d6c824361d18bc19b7 (diff)
downloadgcc-70db9095eaefb4aeb985487010521d47ee018205.tar.gz
re PR target/49621 (ICE in trunc_int_for_mode, at explow.c:57)
PR target/49621 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE. * config/rs6000/vector.md (vector_select_<mode>, vector_select_<mode>_uns): Change second operand of NE to CONST0_RTX (<MODE>mode) instead of const0_rtx. * config/rs6000/altivec.md (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Expect second operand of NE to be zero_constant of the corresponding vector mode. * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Likewise. * gcc.target/powerpc/altivec-34.c: New test. From-SVN: r176063
Diffstat (limited to 'gcc/config/rs6000/vector.md')
-rw-r--r--gcc/config/rs6000/vector.md8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/config/rs6000/vector.md b/gcc/config/rs6000/vector.md
index c0112507a6e..4799ff29e0a 100644
--- a/gcc/config/rs6000/vector.md
+++ b/gcc/config/rs6000/vector.md
@@ -465,21 +465,21 @@
[(set (match_operand:VEC_L 0 "vlogical_operand" "")
(if_then_else:VEC_L
(ne:CC (match_operand:VEC_L 3 "vlogical_operand" "")
- (const_int 0))
+ (match_dup 4))
(match_operand:VEC_L 2 "vlogical_operand" "")
(match_operand:VEC_L 1 "vlogical_operand" "")))]
"VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
- "")
+ "operands[4] = CONST0_RTX (<MODE>mode);")
(define_expand "vector_select_<mode>_uns"
[(set (match_operand:VEC_L 0 "vlogical_operand" "")
(if_then_else:VEC_L
(ne:CCUNS (match_operand:VEC_L 3 "vlogical_operand" "")
- (const_int 0))
+ (match_dup 4))
(match_operand:VEC_L 2 "vlogical_operand" "")
(match_operand:VEC_L 1 "vlogical_operand" "")))]
"VECTOR_UNIT_ALTIVEC_OR_VSX_P (<MODE>mode)"
- "")
+ "operands[4] = CONST0_RTX (<MODE>mode);")
;; Expansions that compare vectors producing a vector result and a predicate,
;; setting CR6 to indicate a combined status