https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69564
--- Comment #27 from Richard Biener <rguenth at gcc dot gnu.org> --- So, dealII slowdown is confirmed. 447.dealII 11440 252 45.4 S 11440 255 44.8 S 447.dealII 11440 254 45.1 S 11440 256 44.6 S 447.dealII 11440 253 45.2 * 11440 256 44.7 * it's probably similarly artificial than the slowdown in this PR and thus it might be acceptable given artificially swapping all exit comparisons isn't something that should be done. When profiling the difference it looks like the culprit is (are) 6.55% dealII_base.amd libstdc++.so.6.0.22 [.] std::_Rb_tree_increment(std::_Rb_tree_node_base const*) 6.53% dealII_peak.amd dealII_peak.amd64-m64-gcc42-nn [.] MappingQ1<3>::compute_fill(TriaIterator<3, DoFCellAccessor<3> > const&, unsigned int, QProjector<3>::D 6.34% dealII_peak.amd libstdc++.so.6.0.22 [.] std::_Rb_tree_increment(std::_Rb_tree_node_base const*) 5.95% dealII_base.amd dealII_base.amd64-m64-gcc42-nn [.] MappingQ1<3>::compute_fill(TriaIterator<3, DoFCellAccessor<3> > const&, unsigned int, QProjector<3>::D ... 1.61% dealII_peak.amd dealII_peak.amd64-m64-gcc42-nn [.] SparsityPattern::operator()(unsigned int, unsigned int) const 1.60% dealII_peak.amd dealII_peak.amd64-m64-gcc42-nn [.] MappingQ<3>::transform_covariant(Tensor<1, 3>*, Tensor<1, 3>*, Tensor<1, 3> const*, Mapping<3>::Intern 1.60% dealII_base.amd dealII_base.amd64-m64-gcc42-nn [.] SparsityPattern::operator()(unsigned int, unsigned int) const 1.56% dealII_base.amd dealII_base.amd64-m64-gcc42-nn [.] MappingQ<3>::transform_covariant(Tensor<1, 3>*, Tensor<1, 3>*, Tensor<1, 3> const*, Mapping<3>::Intern but there isn't any assembly difference for MappingQ1<3>::compute_fill ...