66define <16 x i8 > @v16i8 () #0 {
77; CHECK-LABEL: v16i8:
88; CHECK: // %bb.0:
9- ; CHECK-NEXT: adrp x8, .LCPI0_0
10- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI0_0]
9+ ; CHECK-NEXT: index z0.b, #0, #1
10+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
1111; CHECK-NEXT: ret
1212 ret <16 x i8 > <i8 0 , i8 1 , i8 2 , i8 3 , i8 4 , i8 5 , i8 6 , i8 7 , i8 8 , i8 9 , i8 10 , i8 11 , i8 12 , i8 13 , i8 14 , i8 15 >
1313}
1414
1515define <8 x i16 > @v8i16 () #0 {
1616; CHECK-LABEL: v8i16:
1717; CHECK: // %bb.0:
18- ; CHECK-NEXT: adrp x8, .LCPI1_0
19- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI1_0]
18+ ; CHECK-NEXT: index z0.h, #0, #1
19+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
2020; CHECK-NEXT: ret
2121 ret <8 x i16 > <i16 0 , i16 1 , i16 2 , i16 3 , i16 4 , i16 5 , i16 6 , i16 7 >
2222}
2323
2424define <4 x i32 > @v4i32 () #0 {
2525; CHECK-LABEL: v4i32:
2626; CHECK: // %bb.0:
27- ; CHECK-NEXT: adrp x8, .LCPI2_0
28- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI2_0]
27+ ; CHECK-NEXT: index z0.s, #0, #1
28+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
2929; CHECK-NEXT: ret
3030 ret <4 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 >
3131}
3232
3333define <2 x i64 > @v2i64 () #0 {
3434; CHECK-LABEL: v2i64:
3535; CHECK: // %bb.0:
36- ; CHECK-NEXT: adrp x8, .LCPI3_0
37- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI3_0]
36+ ; CHECK-NEXT: index z0.d, #0, #1
37+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
3838; CHECK-NEXT: ret
3939 ret <2 x i64 > <i64 0 , i64 1 >
4040}
@@ -44,26 +44,26 @@ define <2 x i64> @v2i64() #0 {
4444define <8 x i8 > @v8i8 () #0 {
4545; CHECK-LABEL: v8i8:
4646; CHECK: // %bb.0:
47- ; CHECK-NEXT: adrp x8, .LCPI4_0
48- ; CHECK-NEXT: ldr d0, [x8, :lo12:.LCPI4_0]
47+ ; CHECK-NEXT: index z0.b, #0, #1
48+ ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
4949; CHECK-NEXT: ret
5050 ret <8 x i8 > <i8 0 , i8 1 , i8 2 , i8 3 , i8 4 , i8 5 , i8 6 , i8 7 >
5151}
5252
5353define <4 x i16 > @v4i16 () #0 {
5454; CHECK-LABEL: v4i16:
5555; CHECK: // %bb.0:
56- ; CHECK-NEXT: adrp x8, .LCPI5_0
57- ; CHECK-NEXT: ldr d0, [x8, :lo12:.LCPI5_0]
56+ ; CHECK-NEXT: index z0.h, #0, #1
57+ ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
5858; CHECK-NEXT: ret
5959 ret <4 x i16 > <i16 0 , i16 1 , i16 2 , i16 3 >
6060}
6161
6262define <2 x i32 > @v2i32 () #0 {
6363; CHECK-LABEL: v2i32:
6464; CHECK: // %bb.0:
65- ; CHECK-NEXT: adrp x8, .LCPI6_0
66- ; CHECK-NEXT: ldr d0, [x8, :lo12:.LCPI6_0]
65+ ; CHECK-NEXT: index z0.s, #0, #1
66+ ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
6767; CHECK-NEXT: ret
6868 ret <2 x i32 > <i32 0 , i32 1 >
6969}
@@ -73,8 +73,9 @@ define <2 x i32> @v2i32() #0 {
7373define <4 x i32 > @v4i32_non_zero_non_one () #0 {
7474; CHECK-LABEL: v4i32_non_zero_non_one:
7575; CHECK: // %bb.0:
76- ; CHECK-NEXT: adrp x8, .LCPI7_0
77- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI7_0]
76+ ; CHECK-NEXT: index z0.s, #0, #2
77+ ; CHECK-NEXT: orr z0.s, z0.s, #0x1
78+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
7879; CHECK-NEXT: ret
7980 ret <4 x i32 > <i32 1 , i32 3 , i32 5 , i32 7 >
8081}
@@ -83,8 +84,8 @@ define <4 x i32> @v4i32_non_zero_non_one() #0 {
8384define <4 x i32 > @v4i32_neg_immediates () #0 {
8485; CHECK-LABEL: v4i32_neg_immediates:
8586; CHECK: // %bb.0:
86- ; CHECK-NEXT: adrp x8, .LCPI8_0
87- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI8_0]
87+ ; CHECK-NEXT: index z0.s, #-1, #-2
88+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
8889; CHECK-NEXT: ret
8990 ret <4 x i32 > <i32 -1 , i32 -3 , i32 -5 , i32 -7 >
9091}
@@ -93,8 +94,9 @@ define <4 x i32> @v4i32_neg_immediates() #0 {
9394define <4 x i32 > @v4i32_out_range_start () #0 {
9495; CHECK-LABEL: v4i32_out_range_start:
9596; CHECK: // %bb.0:
96- ; CHECK-NEXT: adrp x8, .LCPI9_0
97- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI9_0]
97+ ; CHECK-NEXT: index z0.s, #0, #1
98+ ; CHECK-NEXT: add z0.s, z0.s, #16 // =0x10
99+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
98100; CHECK-NEXT: ret
99101 ret <4 x i32 > <i32 16 , i32 17 , i32 18 , i32 19 >
100102}
@@ -103,8 +105,9 @@ define <4 x i32> @v4i32_out_range_start() #0 {
103105define <4 x i32 > @v4i32_out_range_step () #0 {
104106; CHECK-LABEL: v4i32_out_range_step:
105107; CHECK: // %bb.0:
106- ; CHECK-NEXT: adrp x8, .LCPI10_0
107- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI10_0]
108+ ; CHECK-NEXT: mov w8, #16 // =0x10
109+ ; CHECK-NEXT: index z0.s, #0, w8
110+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
108111; CHECK-NEXT: ret
109112 ret <4 x i32 > <i32 0 , i32 16 , i32 32 , i32 48 >
110113}
@@ -113,8 +116,10 @@ define <4 x i32> @v4i32_out_range_step() #0 {
113116define <4 x i32 > @v4i32_out_range_start_step () #0 {
114117; CHECK-LABEL: v4i32_out_range_start_step:
115118; CHECK: // %bb.0:
116- ; CHECK-NEXT: adrp x8, .LCPI11_0
117- ; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI11_0]
119+ ; CHECK-NEXT: mov w8, #16 // =0x10
120+ ; CHECK-NEXT: index z0.s, #0, w8
121+ ; CHECK-NEXT: add z0.s, z0.s, #16 // =0x10
122+ ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
118123; CHECK-NEXT: ret
119124 ret <4 x i32 > <i32 16 , i32 32 , i32 48 , i32 64 >
120125}
0 commit comments