The call to ifc_temp_var in predicate_mem_writes become redundant in r230099. Before that point the mask was calculated using fold_build_*s, but now it's calculated by gimple_build and so is already a valid gimple value.
As it stands, the call forces an SSA_NAME-to-SSA_NAME copy to be created, whereas SLP expects that such redundant copies have already been eliminated. This is latent at the moment, but since it's dead code... Tested on aarch64-linux-gnu (with and without SVE), x86_64-linux-gnu and powerpc64le-linux-gnu. OK to install? Richard 2017-11-17 Richard Sandiford <richard.sandif...@linaro.org> gcc/ * tree-if-conv.c (predicate_mem_writes): Remove redundant call to ifc_temp_var. Index: gcc/tree-if-conv.c =================================================================== --- gcc/tree-if-conv.c 2017-11-17 15:07:43.953630256 +0000 +++ gcc/tree-if-conv.c 2017-11-17 16:05:10.483025412 +0000 @@ -2261,7 +2261,6 @@ predicate_mem_writes (loop_p loop) } gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT); - mask = ifc_temp_var (TREE_TYPE (mask), mask, &gsi); /* Save mask and its size for further use. */ vect_sizes.safe_push (bitsize); vect_masks.safe_push (mask);