https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108237
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, I see, it is forwprop4 which does that: +Applying pattern match.pd:6223, generic-match.cc:75158 ... - _15 = v.2_7 & { 18446744073709551360, 18446744073709551360 }; - _9 = _15 != { 0, 0 }; + _9 = v.2_7 > { 255, 255 }; and the reason why it happens can be seen in the Applying line, it isn't GIMPLE but GENERIC even when it happens so late. #0 optimize_vectors_before_lowering_p () at ../../gcc/generic-match-head.cc:93 #1 0x00000000019d3302 in generic_simplify_NE_EXPR (loc=2147483658, code=NE_EXPR, type=<vector_type 0x7fffea2ddb28>, _p0=<bit_and_expr 0x7fffea304280>, _p1=<vector_cst 0x7fffea308cf0>) at generic-match.cc:75147 #2 0x0000000001a46486 in generic_simplify (loc=2147483658, code=NE_EXPR, type=<vector_type 0x7fffea2ddb28>, _p0=<bit_and_expr 0x7fffea304280>, _p1=<vector_cst 0x7fffea308cf0>) at generic-match.cc:102839 #3 0x000000000085e140 in fold_binary_loc (loc=2147483658, code=NE_EXPR, type=<vector_type 0x7fffea2ddb28>, op0=<bit_and_expr 0x7fffea304280>, op1=<vector_cst 0x7fffea308cf0>) at ../../gcc/fold-const.cc:10924 #4 0x0000000000f5c7ea in combine_cond_expr_cond (stmt=<gimple_assign 0x7fffea3020b0>, code=NE_EXPR, type=<vector_type 0x7fffea2ddb28>, op0=<bit_and_expr 0x7fffea304280>, op1=<vector_cst 0x7fffea308cf0>, invariant_only=false) at ../../gcc/tree-ssa-forwprop.cc:387 #5 0x0000000000f5ca80 in forward_propagate_into_comparison_1 (stmt=<gimple_assign 0x7fffea3020b0>, code=NE_EXPR, type=<vector_type 0x7fffea2ddb28>, op0=<ssa_name 0x7fffea3014c8 15>, op1=<vector_cst 0x7fffea308cf0>) at ../../gcc/tree-ssa-forwprop.cc:446 #6 0x0000000000f5cc71 in forward_propagate_into_comparison (gsi=0x7fffffffd740) at ../../gcc/tree-ssa-forwprop.cc:493 #7 0x0000000000f6bfff in (anonymous namespace)::pass_forwprop::execute (this=0x37a2170, fun=0x7fffea2fd000) at ../../gcc/tree-ssa-forwprop.cc:3753