https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83389
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-12-12 CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Component|c++ |tree-optimization Ever confirmed|0 |1 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- This is fold_truth_andor / optimize_bit_field_compare at work combining d1.x == d2.x && d1.y == d2.y very early if exposed in such form in the IL. The uglification via tuples makes this not happen. The optimization is premature at its current place and lacks a suitable implementation later (in some GIMPLE optimization pass). We must have a dozen related / dups of this. Maybe store-merging/bswap infrastructure can come to the rescue here somehow ...