I managed to somehow commit sth bogus on trunk (the branch is correct).
Bootstrapped / tested on x86_64-unknown-linux-gnu, applied. Richard. 2019-11-21 Richard Biener <rguent...@suse.de> PR tree-optimization/92596 * tree-vect-slp.c (vect_build_slp_tree): Fix pasto. * gcc.dg/torture/pr92596-1.c: New testcase. Index: gcc/tree-vect-slp.c =================================================================== --- gcc/tree-vect-slp.c (revision 278550) +++ gcc/tree-vect-slp.c (working copy) @@ -1247,7 +1248,8 @@ vect_build_slp_tree (vec_info *vinfo, return *leader; } poly_uint64 this_max_nunits = 1; - slp_tree res = vect_build_slp_tree_2 (vinfo, stmts, group_size, max_nunits, + slp_tree res = vect_build_slp_tree_2 (vinfo, stmts, group_size, + &this_max_nunits, matches, npermutes, tree_size, bst_map); if (res) { Index: gcc/testsuite/gcc.dg/torture/pr92596-1.c =================================================================== --- gcc/testsuite/gcc.dg/torture/pr92596-1.c (nonexistent) +++ gcc/testsuite/gcc.dg/torture/pr92596-1.c (working copy) @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-ftree-slp-vectorize" } */ + +typedef struct { + long n[5]; +} secp256k1_fe; + +void *a, *b; +int c; +static void +fn1(secp256k1_fe *p1, int p2) +{ + p1->n[2] = p1->n[3] = p1->n[4] = p2; +} +void +fn2() +{ + fn1(b, !c); + fn1(a, !c); +}