From cfb61b368cbeb67b8bfd333f8a9aa17b6518b00a Mon Sep 17 00:00:00 2001 From: Ahmed Bougacha Date: Fri, 30 Jan 2015 23:41:15 +0000 Subject: [PATCH] [AArch64] Add a few more DUP testcases. NFC. Also, don't lie about testing index 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227642 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/AArch64/neon-scalar-copy.ll | 30 ++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/test/CodeGen/AArch64/neon-scalar-copy.ll b/test/CodeGen/AArch64/neon-scalar-copy.ll index c27260e4116..cd6aead1b50 100644 --- a/test/CodeGen/AArch64/neon-scalar-copy.ll +++ b/test/CodeGen/AArch64/neon-scalar-copy.ll @@ -19,6 +19,14 @@ define float @test_dup_sv2S_0(<2 x float> %v) #0 { define float @test_dup_sv4S(<4 x float> %v) #0 { ; CHECK-LABEL: test_dup_sv4S: + ; CHECK-NEXT: ins {{v[0-9]+}}.s[0], {{v[0-9]+}}.s[1] + ; CHECK-NEXT: ret + %tmp1 = extractelement <4 x float> %v, i32 1 + ret float %tmp1 +} + +define float @test_dup_sv4S_0(<4 x float> %v) #0 { + ; CHECK-LABEL: test_dup_sv4S_0: ; CHECK-NOT: dup {{[vsd][0-9]+}} ; CHECK-NOT: ins {{[vsd][0-9]+}} ; CHECK-NEXT: ret @@ -45,12 +53,30 @@ define double @test_dup_dv2D(<2 x double> %v) #0 { define double @test_dup_dv2D_0(<2 x double> %v) #0 { ; CHECK-LABEL: test_dup_dv2D_0: - ; CHECK-NEXT: ins {{v[0-9]+}}.d[0], {{v[0-9]+}}.d[1] + ; CHECK-NOT: dup {{[vsd][0-9]+}} + ; CHECK-NOT: ins {{[vsd][0-9]+}} ; CHECK-NEXT: ret - %tmp1 = extractelement <2 x double> %v, i32 1 + %tmp1 = extractelement <2 x double> %v, i32 0 ret double %tmp1 } +define half @test_dup_hv8H(<8 x half> %v) #0 { + ; CHECK-LABEL: test_dup_hv8H: + ; CHECK-NEXT: ins {{v[0-9]+}}.h[0], {{v[0-9]+}}.h[1] + ; CHECK-NEXT: ret + %tmp1 = extractelement <8 x half> %v, i32 1 + ret half %tmp1 +} + +define half @test_dup_hv8H_0(<8 x half> %v) #0 { + ; CHECK-LABEL: test_dup_hv8H_0: + ; CHECK-NOT: dup {{[vsdh][0-9]+}} + ; CHECK-NOT: ins {{[vsdh][0-9]+}} + ; CHECK-NEXT: ret + %tmp1 = extractelement <8 x half> %v, i32 0 + ret half %tmp1 +} + define <1 x i8> @test_vector_dup_bv16B(<16 x i8> %v1) #0 { ; CHECK-LABEL: test_vector_dup_bv16B: ; CHECK-NEXT: umov [[W:w[0-9]+]], v0.b[14] -- 2.34.1