Consider attached testcase. We have: Cannot yet select: 0x878fe20: v4i16 = vector_shuffle 0x878fb90, 0x878fd28, 0x878fda0 ./llc((anonymous namespace)::PrintStackTrace()+0x1f)[0x866467f] /lib/libc.so.6(abort+0xec)[0xb7c9bc0c] ./llc((anonymous namespace)::X86DAGToDAGISel::Select_ISD_VECTOR_SHUFFLE_v4i16(llvm::SDOperand const&)+0x436)[0x8385016] This breaks Qt 4.3.0rc1
Created attachment 851 [details] Testcase
renaming this - the maskmov is selected correctly now, but another shuffle feeding it isn't.
Fixed. Patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070514/049726.html Testcase here: test/CodeGen/X86/mmx-shuffle.ll -Chris
This patch breaks almost all vector tests. Some of them just assert, others - cycle, eat all memory and die. I've reverted it in order not to break nightly testers.
Fixed again, patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070514/049750.html -Chris