For this program: $ cat b.ll define i64 @bork(<2 x i64> %vec) { entry: %tmp = extractelement <2 x i64> %vec, i32 0 ret i64 %tmp } I get this abort: $ llvm-as -f b.ll $ opt -std-compile-opts -o a.bc -f b.bc /Users/wendling/llvm/llvm.src/lib/Transforms/Scalar/InstructionCombining.cpp:1399: failed assertion `DemandedElts != EltMask && (DemandedElts & ~EltMask) == 0 && "Invalid DemandedElts!"' Abort trap If it's more than 1 element in the vector, you get the failure reported in PR1303.
you attached the wrong testcase, you mean <1 x i64>
Fixed, testcase here: Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.ll Patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/047044.html Thanks, -Chris