Otherwise we could propagate overlapping flags that change meaning.
Extracted from early liveness PR.
// Update flags
//
- switchTree->gtFlags = switchTree->AsOp()->gtOp1->gtFlags;
- dominantCaseCompare->gtFlags |= dominantCaseCompare->AsOp()->gtOp1->gtFlags;
- jmpTree->gtFlags |= dominantCaseCompare->gtFlags;
+ switchTree->gtFlags = switchTree->AsOp()->gtOp1->gtFlags & GTF_ALL_EFFECT;
+ dominantCaseCompare->gtFlags |= dominantCaseCompare->AsOp()->gtOp1->gtFlags & GTF_ALL_EFFECT;
+ jmpTree->gtFlags |= dominantCaseCompare->gtFlags & GTF_ALL_EFFECT;
dominantCaseCompare->gtFlags |= GTF_RELOP_JMP_USED | GTF_DONT_CSE;
// Wire up the new control flow.