[PATCH] middle-end/97579 - fix VEC_COND_EXPR ISEL optab query

Richard Biener rguenther@suse.de
Tue Nov 3 14:27:05 GMT 2020


This fixes a mistake in the optab query done by ISEL.  It
doesn't fix the PR but shifts the ICE elsewhere.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

Richard.

2020-11-03  Richard Biener  <rguenther@suse.de>

	PR middle-end/97579
	* gimple-isel.cc (gimple_expand_vec_cond_expr): Use
	the correct types for the vcond_mask/vec_cmp optab queries.
---
 gcc/gimple-isel.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/gimple-isel.cc b/gcc/gimple-isel.cc
index b64e31fc6fe..9186ff55cdd 100644
--- a/gcc/gimple-isel.cc
+++ b/gcc/gimple-isel.cc
@@ -162,11 +162,12 @@ gimple_expand_vec_cond_expr (gimple_stmt_iterator *gsi,
 	  op0a = gimple_assign_rhs1 (def_stmt);
 	  op0b = gimple_assign_rhs2 (def_stmt);
 
+	  tree op0_type = TREE_TYPE (op0);
 	  tree op0a_type = TREE_TYPE (op0a);
 	  if (used_vec_cond_exprs >= 2
-	      && (get_vcond_mask_icode (mode, TYPE_MODE (op0a_type))
+	      && (get_vcond_mask_icode (mode, TYPE_MODE (op0_type))
 		  != CODE_FOR_nothing)
-	      && expand_vec_cmp_expr_p (op0a_type, TREE_TYPE (lhs), tcode))
+	      && expand_vec_cmp_expr_p (op0a_type, op0_type, tcode))
 	    {
 	      /* Keep the SSA name and use vcond_mask.  */
 	      tcode = TREE_CODE (op0);
-- 
2.26.2


More information about the Gcc-patches mailing list