According to the X86ISelLowering.h, UMUL results are low, high, and flags. But one place was treating result 1 as flags, and another place was treating result 1 or 2 as flags.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
I'm actually not sure why any of the "flag" setting instructions are in computeKnownBitsForTargetNode. You can remove them all and no tests fail.
lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
26920 | Probably a lot cleaner just to set Known.Zero.setBitsFrom(1); here instead of using goto |
Comment Actions
Removed the known bits part. I think we should just remove these nodes from known bits. I've done that in D36657
Probably a lot cleaner just to set Known.Zero.setBitsFrom(1); here instead of using goto