$ opt -instcombine -disable-output x.bc opt: llvm/include/llvm/ADT/APInt.h:1051: int64_t llvm::APInt::getSExtValue() const: Assertion `getMinSignedBits() <= 64 && "Too many bits for int64_t"' failed. This fires when building Fortran on x86-64 linux, and was introduced by: r59403 | lattner | 2008-11-16 06:38:51 +0100 (Sun, 16 Nov 2008) | 2 lines simplify a bunch more instcombines to use m_Specific etc. Testcase: define i128 @m(i1 %f) nounwind { entry: %tmp = select i1 %f, i128 18446744073709551615, i128 9223372036854775807 ; <i128> [#uses=1] ret i128 %tmp }
If I recall correctly, the pattern-matching code uses getSExtValue unconditionally.
taking a look
This doesn't fail for me with mainline, can you please reverify and if it still fails, attach a stack trace with line numbers?
This seems to have gone away in tot.
Created attachment 2342 [details] testcase.ll Less reduced testcase.
This is failing again. Maybe it's a Heisenbug? I've added a new less reduced testcase.
Fixed, thanks! http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090105/071824.html