Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp | ||
---|---|---|
4016 ↗ | (On Diff #194536) | Not related to this patch, but this fold looks buggy to me. X * undef should be {0, false}, as that's the only results that's possible for all values of X (including X=0). IIRC not even undef * undef can result in {undef, undef} for all bitwidths. |
Comment Actions
Hmm
llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp | ||
---|---|---|
4016 ↗ | (On Diff #194536) | ---------------------------------------- Name: D60518 %r = mul i8 %X, undef => %r = undef ERROR: Value mismatch for i8 %r Example: i8 %X = #x00 (0) Source value: #x00 (0) Target value: #x80 (128) ---------------------------------------- Name: D60518 %r = mul i8 %X, undef => %r = i8 0 Done: 1 Optimization is correct! ---------------------------------------- Name: D60518 %r = mul i8 %X, undef => %r = i8 %X Done: 1 Optimization is correct! |