Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp | ||
---|---|---|
4016 | 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 | ---------------------------------------- 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! |
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.