From: Andrea Di Biagio Date: Sat, 19 Jul 2014 07:52:58 +0000 (+0000) Subject: [x86] Fix wrong shuffle mask in test 'combine-vec-shuffle-3.ll'. No functional change. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5bc21c3b57273921600b86d5ce45569b642871ad;p=oota-llvm.git [x86] Fix wrong shuffle mask in test 'combine-vec-shuffle-3.ll'. No functional change. Function @test3c should check that the DAGCombiner is able to fold a pair of shuffles into a new shuffle with a permute mask of <6,7,2,3>. However, one of the shuffles in @test3c had a wrong permute mask; this prevented the DAGCombiner from folding the shuffles into the expected result. Now that the shuffle mask is fixed, the backend correctly folds the two shuffles in function @test3c into a single movhlps instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213451 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/X86/combine-vec-shuffle-3.ll b/test/CodeGen/X86/combine-vec-shuffle-3.ll index c2cff517d4e..bd2d34ca189 100644 --- a/test/CodeGen/X86/combine-vec-shuffle-3.ll +++ b/test/CodeGen/X86/combine-vec-shuffle-3.ll @@ -273,19 +273,14 @@ define <4 x i8> @test2c(<4 x i8>* %a, <4 x i8>* %b) { define <4 x i8> @test3c(<4 x i8>* %a, <4 x i8>* %b) { %A = load <4 x i8>* %a %B = load <4 x i8>* %b - %1 = shufflevector <4 x i8> %A, <4 x i8> %B, <4 x i32> + %1 = shufflevector <4 x i8> %A, <4 x i8> %B, <4 x i32> %2 = shufflevector <4 x i8> %1, <4 x i8> %B, <4 x i32> ret <4 x i8> %2 } -; FIXME: this should be lowered as a single movhlps. However, the backend -; wrongly thinks that shuffle mask [6,7,2,3] is not legal. Therefore, we end up -; with a sub-optimal sequence of 'shufps+palignr'. - ; CHECK-LABEL: test3c ; Mask: [6,7,2,3] -; CHECK: shufps $84 -; CHECK: palignr $8 -; CHECK: ret +; CHECK: movhlps +; CHECK-NEXT: ret define <4 x i8> @test4c(<4 x i8>* %a, <4 x i8>* %b) { %A = load <4 x i8>* %a