| Submitter | Richard Guenther |
|---|---|
| Date | June 12, 2012, 12:17 p.m. |
| Message ID | <CAFiYyc2mzJEev0xjc6vKux5O+dMazGFEoPwTC+HYsMhW6UNAmQ@mail.gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/164402/ |
| State | New |
| Headers | show |
Comments
> > + if (TREE_CODE (mask) == SSA_NAME) > + { > + gimple def_stmt = SSA_NAME_DEF_STMT (mask); > + if (is_gimple_assign (def_stmt) > + && gimple_assign_rhs_code (def_stmt) == VECTOR_CST) > + mask = gimple_assign_rhs1 (def_stmt); > + } > + > if (TREE_CODE (mask) == VECTOR_CST) > { > unsigned char *sel_int = XALLOCAVEC (unsigned char, elements); > > pre-approved if it passes bootstrap & regtest. Thanks that's similar to what I was wiring up. I'm happy to bootstrap and regtest that along with my other changes. Ramana
Patch
Index: tree-vect-generic.c =================================================================== --- tree-vect-generic.c (revision 188428) +++ tree-vect-generic.c (working copy) @@ -628,6 +628,14 @@ lower_vec_perm (gimple_stmt_iterator *gs location_t loc = gimple_location (gsi_stmt (*gsi)); unsigned i; + if (TREE_CODE (mask) == SSA_NAME) + { + gimple def_stmt = SSA_NAME_DEF_STMT (mask); + if (is_gimple_assign (def_stmt) + && gimple_assign_rhs_code (def_stmt) == VECTOR_CST) + mask = gimple_assign_rhs1 (def_stmt); + } + if (TREE_CODE (mask) == VECTOR_CST) { unsigned char *sel_int = XALLOCAVEC (unsigned char, elements);