diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2022-09-08 16:18:28 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2022-09-08 16:18:28 +0100 |
commit | 338a5b0d7da84ef1f6c01dd96abf2c6bc830f403 (patch) | |
tree | 4a2db79af8eb0bca7cd30ff9b0c3d828ac0d0b23 | |
parent | 0697bd070c4fffb33468976c93baff9493922fb3 (diff) | |
download | gcc-338a5b0d7da84ef1f6c01dd96abf2c6bc830f403.zip gcc-338a5b0d7da84ef1f6c01dd96abf2c6bc830f403.tar.gz gcc-338a5b0d7da84ef1f6c01dd96abf2c6bc830f403.tar.bz2 |
vect: Fix scalar stmt typo in vect_optimize_slp_pass [PR106886]
Fix a stupid typo in my vect_optimize_slp_pass patch.
gcc/
PR tree-optimization/106886
* tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
Fix copying of scalar stmts.
gcc/testsuite/
PR tree-optimization/106886
* gcc.dg/vect/bb-slp-layout-21.c: New test.
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-layout-21.c | 23 | ||||
-rw-r--r-- | gcc/tree-vect-slp.cc | 2 |
2 files changed, 24 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-layout-21.c b/gcc/testsuite/gcc.dg/vect/bb-slp-layout-21.c new file mode 100644 index 0000000..c851d58 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-layout-21.c @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=bdver2" { target x86_64-*-* i?86-*-* } } */ + +int rl2GeomExport64_little_endian, rl2GeomExport64_little_endian_arch; +void rl2GeomExport64(unsigned char *p, double value) { + union { + unsigned char byte[8]; + double double_value; + } convert; + convert.double_value = value; + if (rl2GeomExport64_little_endian_arch) + if (rl2GeomExport64_little_endian) { + *(p + 7) = convert.byte[0]; + *(p + 6) = convert.byte[1]; + *(p + 5) = convert.byte[2]; + *(p + 4) = convert.byte[3]; + *(p + 3) = convert.byte[4]; + *(p + 2) = convert.byte[5]; + *(p + 1) = convert.byte[6]; + *p = convert.byte[7]; + } else + *p = convert.byte[7]; +} diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index 3fa2dc9..ca3422c 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -5212,7 +5212,7 @@ vect_optimize_slp_pass::get_result_with_layout (slp_tree node, if (SLP_TREE_SCALAR_STMTS (node).length ()) { auto &stmts = SLP_TREE_SCALAR_STMTS (result); - stmts.safe_splice (SLP_TREE_SCALAR_STMTS (result)); + stmts.safe_splice (SLP_TREE_SCALAR_STMTS (node)); if (from_layout_i != 0) vect_slp_permute (m_perms[from_layout_i], stmts, false); if (to_layout_i != 0) |