[InstSimplify] allow vector folds for (Pow2C << X) == NonPow2C
Existing pre-conditions seem to be correct: https://rise4fun.com/Alive/lCLB Name: non-zero C1 Pre: !isPowerOf2(C1) && isPowerOf2(C2) && C1 != 0 %sub = shl i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false Name: one == C2 Pre: !isPowerOf2(C1) && isPowerOf2(C2) && C2 == 1 %sub = shl i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false Name: nuw Pre: !isPowerOf2(C1) && isPowerOf2(C2) %sub = shl nuw i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false Name: nsw Pre: !isPowerOf2(C1) && isPowerOf2(C2) %sub = shl nsw i8 C2, %X %cmp = icmp eq i8 %sub, C1 => %cmp = false
Loading
Please sign in to comment