@@ -1776,19 +1776,10 @@ entry:
17761776}
17771777
17781778define <16 x i8 > @test_concat_v16i8_v16i8_v16i8 (<16 x i8 > %x , <16 x i8 > %y ) #0 {
1779- ; CHECK-SD-LABEL: test_concat_v16i8_v16i8_v16i8:
1780- ; CHECK-SD: // %bb.0: // %entry
1781- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
1782- ; CHECK-SD-NEXT: ret
1783- ;
1784- ; CHECK-GI-LABEL: test_concat_v16i8_v16i8_v16i8:
1785- ; CHECK-GI: // %bb.0: // %entry
1786- ; CHECK-GI-NEXT: adrp x8, .LCPI126_0
1787- ; CHECK-GI-NEXT: // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1
1788- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI126_0]
1789- ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
1790- ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b
1791- ; CHECK-GI-NEXT: ret
1779+ ; CHECK-LABEL: test_concat_v16i8_v16i8_v16i8:
1780+ ; CHECK: // %bb.0: // %entry
1781+ ; CHECK-NEXT: mov v0.d[1], v1.d[0]
1782+ ; CHECK-NEXT: ret
17921783entry:
17931784 %vecinit30 = shufflevector <16 x i8 > %x , <16 x i8 > %y , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 16 , i32 17 , i32 18 , i32 19 , i32 20 , i32 21 , i32 22 , i32 23 >
17941785 ret <16 x i8 > %vecinit30
@@ -1803,9 +1794,7 @@ define <16 x i8> @test_concat_v16i8_v8i8_v16i8(<8 x i8> %x, <16 x i8> %y) #0 {
18031794;
18041795; CHECK-GI-LABEL: test_concat_v16i8_v8i8_v16i8:
18051796; CHECK-GI: // %bb.0: // %entry
1806- ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
1807- ; CHECK-GI-NEXT: adrp x8, .LCPI127_0
1808- ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
1797+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
18091798; CHECK-GI-NEXT: mov b2, v0.b[1]
18101799; CHECK-GI-NEXT: mov b3, v0.b[2]
18111800; CHECK-GI-NEXT: mov b4, v0.b[3]
@@ -1814,14 +1803,13 @@ define <16 x i8> @test_concat_v16i8_v8i8_v16i8(<8 x i8> %x, <16 x i8> %y) #0 {
18141803; CHECK-GI-NEXT: mov b7, v0.b[6]
18151804; CHECK-GI-NEXT: mov b16, v0.b[7]
18161805; CHECK-GI-NEXT: mov v0.b[1], v2.b[0]
1817- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI127_0]
18181806; CHECK-GI-NEXT: mov v0.b[2], v3.b[0]
18191807; CHECK-GI-NEXT: mov v0.b[3], v4.b[0]
18201808; CHECK-GI-NEXT: mov v0.b[4], v5.b[0]
18211809; CHECK-GI-NEXT: mov v0.b[5], v6.b[0]
18221810; CHECK-GI-NEXT: mov v0.b[6], v7.b[0]
18231811; CHECK-GI-NEXT: mov v0.b[7], v16.b[0]
1824- ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b
1812+ ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
18251813; CHECK-GI-NEXT: ret
18261814entry:
18271815 %vecext = extractelement <8 x i8 > %x , i32 0
@@ -1999,19 +1987,10 @@ entry:
19991987}
20001988
20011989define <8 x i16 > @test_concat_v8i16_v8i16_v8i16 (<8 x i16 > %x , <8 x i16 > %y ) #0 {
2002- ; CHECK-SD-LABEL: test_concat_v8i16_v8i16_v8i16:
2003- ; CHECK-SD: // %bb.0: // %entry
2004- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
2005- ; CHECK-SD-NEXT: ret
2006- ;
2007- ; CHECK-GI-LABEL: test_concat_v8i16_v8i16_v8i16:
2008- ; CHECK-GI: // %bb.0: // %entry
2009- ; CHECK-GI-NEXT: adrp x8, .LCPI130_0
2010- ; CHECK-GI-NEXT: // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1
2011- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI130_0]
2012- ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
2013- ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b
2014- ; CHECK-GI-NEXT: ret
1990+ ; CHECK-LABEL: test_concat_v8i16_v8i16_v8i16:
1991+ ; CHECK: // %bb.0: // %entry
1992+ ; CHECK-NEXT: mov v0.d[1], v1.d[0]
1993+ ; CHECK-NEXT: ret
20151994entry:
20161995 %vecinit14 = shufflevector <8 x i16 > %x , <8 x i16 > %y , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 8 , i32 9 , i32 10 , i32 11 >
20171996 ret <8 x i16 > %vecinit14
@@ -2026,17 +2005,14 @@ define <8 x i16> @test_concat_v8i16_v4i16_v8i16(<4 x i16> %x, <8 x i16> %y) #0 {
20262005;
20272006; CHECK-GI-LABEL: test_concat_v8i16_v4i16_v8i16:
20282007; CHECK-GI: // %bb.0: // %entry
2029- ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
2030- ; CHECK-GI-NEXT: adrp x8, .LCPI131_0
2031- ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
2008+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
20322009; CHECK-GI-NEXT: mov h2, v0.h[1]
20332010; CHECK-GI-NEXT: mov h3, v0.h[2]
20342011; CHECK-GI-NEXT: mov h4, v0.h[3]
20352012; CHECK-GI-NEXT: mov v0.h[1], v2.h[0]
2036- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI131_0]
20372013; CHECK-GI-NEXT: mov v0.h[2], v3.h[0]
20382014; CHECK-GI-NEXT: mov v0.h[3], v4.h[0]
2039- ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b
2015+ ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
20402016; CHECK-GI-NEXT: ret
20412017entry:
20422018 %vecext = extractelement <4 x i16 > %x , i32 0
@@ -2142,19 +2118,10 @@ entry:
21422118}
21432119
21442120define <4 x i32 > @test_concat_v4i32_v4i32_v4i32 (<4 x i32 > %x , <4 x i32 > %y ) #0 {
2145- ; CHECK-SD-LABEL: test_concat_v4i32_v4i32_v4i32:
2146- ; CHECK-SD: // %bb.0: // %entry
2147- ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0]
2148- ; CHECK-SD-NEXT: ret
2149- ;
2150- ; CHECK-GI-LABEL: test_concat_v4i32_v4i32_v4i32:
2151- ; CHECK-GI: // %bb.0: // %entry
2152- ; CHECK-GI-NEXT: adrp x8, .LCPI134_0
2153- ; CHECK-GI-NEXT: // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1
2154- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI134_0]
2155- ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
2156- ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b
2157- ; CHECK-GI-NEXT: ret
2121+ ; CHECK-LABEL: test_concat_v4i32_v4i32_v4i32:
2122+ ; CHECK: // %bb.0: // %entry
2123+ ; CHECK-NEXT: mov v0.d[1], v1.d[0]
2124+ ; CHECK-NEXT: ret
21582125entry:
21592126 %vecinit6 = shufflevector <4 x i32 > %x , <4 x i32 > %y , <4 x i32 > <i32 0 , i32 1 , i32 4 , i32 5 >
21602127 ret <4 x i32 > %vecinit6
@@ -2169,13 +2136,10 @@ define <4 x i32> @test_concat_v4i32_v2i32_v4i32(<2 x i32> %x, <4 x i32> %y) #0 {
21692136;
21702137; CHECK-GI-LABEL: test_concat_v4i32_v2i32_v4i32:
21712138; CHECK-GI: // %bb.0: // %entry
2172- ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
2173- ; CHECK-GI-NEXT: adrp x8, .LCPI135_0
2174- ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
2139+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
21752140; CHECK-GI-NEXT: mov s2, v0.s[1]
21762141; CHECK-GI-NEXT: mov v0.s[1], v2.s[0]
2177- ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI135_0]
2178- ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b
2142+ ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0]
21792143; CHECK-GI-NEXT: ret
21802144entry:
21812145 %vecext = extractelement <2 x i32 > %x , i32 0
0 commit comments