diff options
| -rw-r--r-- | llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll b/llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll index 352d45a4857..163dc0bc9a0 100644 --- a/llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll +++ b/llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll @@ -74,6 +74,25 @@ define <2 x i64> @test_mm_alignr_epi8(<2 x i64> %a0, <2 x i64> %a1) {    ret <2 x i64> %res  } +define <2 x i64> @test2_mm_alignr_epi8(<2 x i64> %a0, <2 x i64> %a1) { +; X32-LABEL: test2_mm_alignr_epi8: +; X32:       # BB#0: +; X32-NEXT:    palignr {{.*#+}} xmm1 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],xmm1[0] +; X32-NEXT:    movdqa %xmm1, %xmm0 +; X32-NEXT:    retl +; +; X64-LABEL: test2_mm_alignr_epi8: +; X64:       # BB#0: +; X64-NEXT:    palignr {{.*#+}} xmm1 = xmm0[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],xmm1[0] +; X64-NEXT:    movdqa %xmm1, %xmm0 +; X64-NEXT:    retq +  %arg0 = bitcast <2 x i64> %a0 to <16 x i8> +  %arg1 = bitcast <2 x i64> %a1 to <16 x i8> +  %shuf = shufflevector <16 x i8> %arg0, <16 x i8> %arg1, <16 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16> +  %res = bitcast <16 x i8> %shuf to <2 x i64> +  ret <2 x i64> %res +} +  define <2 x i64> @test_mm_hadd_epi16(<2 x i64> %a0, <2 x i64> %a1) {  ; X32-LABEL: test_mm_hadd_epi16:  ; X32:       # BB#0:  | 

