https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114197
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:8fdac08b4d5f65973164a476bd255533ed97a766 commit r14-9296-g8fdac08b4d5f65973164a476bd255533ed97a766 Author: Richard Biener <rguent...@suse.de> Date: Mon Mar 4 13:28:34 2024 +0100 tree-optimization/114197 - unexpected if-conversion for vectorization The following avoids lowering a volatile bitfiled access and in case the if-converted and original loops end up in different outer loops because of simplifcations enabled scrap the result since that is not how the vectorizer expects the loops to be laid out. PR tree-optimization/114197 * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if there are volatile bitfield accesses. (pass_if_conversion::execute): Throw away result if the if-converted and original loops are not nested as expected. * gcc.dg/torture/pr114197.c: New testcase.