https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111683
--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That is true. I've been also wondering whether e.g. for the pr71083.c case we couldn't just look through all COMPONENT_REFs of the DR_REF (and maybe ARRAY_REFs with constant indexes) and check type size of the aggregate it is in against the size. That could perhaps fix the predcom of pr71083.c, because it is a 24-bit bitfield in 4 byte structure. Will you take this over, or should I tweak my patch? Note, statistics I've gathered with the above posted patch was that the patch did something in /home/jakub/src/gcc/gcc/testsuite/c-c++-common/torture/pr101636.c bar /home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c f /home/jakub/src/gcc/gcc/testsuite/gcc.dg/autopar/pr69109-2.c f /home/jakub/src/gcc/gcc/testsuite/gcc.dg/graphite/pr71575-2.c fn1 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/loop-versioning-6.c f1 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-1.c main /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-2.c main but only changed the generated code in the last 2 (those are intentional). The older patch with wi::multiple_of_p affected /home/jakub/src/gcc/gcc/testsuite/c-c++-common/torture/pr101636.c bar /home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c f /home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/execute/pr71083.c bar /home/jakub/src/gcc/gcc/testsuite/gcc.dg/autopar/pr69109-2.c f /home/jakub/src/gcc/gcc/testsuite/gcc.dg/graphite/pr71575-2.c fn1 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/loop-versioning-6.c f1 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-1.c main /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-2.c main /home/jakub/src/gcc/gcc/testsuite/gcc.dg/torture/pr112736.c fn1 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/torture/pr68379.c fn1 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr87022.c main /home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/pr101445.c foo /home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/pr68502-2.c reset_nodes /home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/pr81740-2.c main /home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/vect-avg-16.c f /home/jakub/src/gcc/gcc/testsuite/g++.dg/vect/pr95297.cc test and changed code generation of the 2 expected tests and pr71083.c. All this statistics was solely from make check-gcc check-g++.