From cf7ed12a1da0f7b425e81991410ee0fa830968e0 Mon Sep 17 00:00:00 2001 From: Kevin Qin Date: Tue, 26 Nov 2013 03:26:47 +0000 Subject: Refactored the implementation of AArch64 NEON instruction ZIP, UZP and TRN. Fix a bug when mixed use of vget_high_u8() and vuzp_u8(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195716 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/AArch64/neon-perm.ll | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/CodeGen') diff --git a/test/CodeGen/AArch64/neon-perm.ll b/test/CodeGen/AArch64/neon-perm.ll index 6ad93d01f9..fa4d54dc74 100644 --- a/test/CodeGen/AArch64/neon-perm.ll +++ b/test/CodeGen/AArch64/neon-perm.ll @@ -1677,3 +1677,17 @@ entry: %.fca.0.1.insert = insertvalue %struct.poly16x8x2_t %.fca.0.0.insert, <8 x i16> %vtrn1.i, 0, 1 ret %struct.poly16x8x2_t %.fca.0.1.insert } + +define %struct.uint8x8x2_t @test_uzp(<16 x i8> %y) { +; CHECK: test_uzp: + + %vuzp.i = shufflevector <16 x i8> %y, <16 x i8> undef, <8 x i32> + %vuzp1.i = shufflevector <16 x i8> %y, <16 x i8> undef, <8 x i32> + %.fca.0.0.insert = insertvalue %struct.uint8x8x2_t undef, <8 x i8> %vuzp.i, 0, 0 + %.fca.0.1.insert = insertvalue %struct.uint8x8x2_t %.fca.0.0.insert, <8 x i8> %vuzp1.i, 0, 1 + ret %struct.uint8x8x2_t %.fca.0.1.insert + +; CHECK: dup {{d[0-9]+}}, {{v[0-9]+}}.d[1] +; CHECK-NEXT: uzp1 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b +; CHECK-NEXT: uzp2 {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b +} -- cgit v1.2.3