|
5 | 5 | define <16 x i8> @load_v3i8(ptr %src) {
|
6 | 6 | ; CHECK-LABEL: load_v3i8:
|
7 | 7 | ; CHECK: ; %bb.0:
|
8 |
| -; CHECK-NEXT: sub sp, sp, #16 |
9 |
| -; CHECK-NEXT: .cfi_def_cfa_offset 16 |
10 |
| -; CHECK-NEXT: ldrh w8, [x0] |
11 |
| -; CHECK-NEXT: strh w8, [sp, #12] |
12 |
| -; CHECK-NEXT: ldr s0, [sp, #12] |
13 |
| -; CHECK-NEXT: ushll.8h v0, v0, #0 |
14 |
| -; CHECK-NEXT: umov.h w8, v0[0] |
15 |
| -; CHECK-NEXT: umov.h w9, v0[1] |
| 8 | +; CHECK-NEXT: ldrb w8, [x0, #2] |
| 9 | +; CHECK-NEXT: ldrh w9, [x0] |
| 10 | +; CHECK-NEXT: orr w8, w9, w8, lsl #16 |
16 | 11 | ; CHECK-NEXT: fmov s0, w8
|
17 |
| -; CHECK-NEXT: add x8, x0, #2 |
18 |
| -; CHECK-NEXT: mov.b v0[1], w9 |
19 |
| -; CHECK-NEXT: ld1.b { v0 }[2], [x8] |
20 |
| -; CHECK-NEXT: add sp, sp, #16 |
21 | 12 | ; CHECK-NEXT: ret
|
22 | 13 | ;
|
23 | 14 | ; BE-LABEL: load_v3i8:
|
@@ -47,19 +38,14 @@ define <16 x i8> @load_v3i8(ptr %src) {
|
47 | 38 | define <4 x i32> @load_v3i8_to_4xi32(ptr %src) {
|
48 | 39 | ; CHECK-LABEL: load_v3i8_to_4xi32:
|
49 | 40 | ; CHECK: ; %bb.0:
|
50 |
| -; CHECK-NEXT: sub sp, sp, #16 |
51 |
| -; CHECK-NEXT: .cfi_def_cfa_offset 16 |
52 |
| -; CHECK-NEXT: ldrh w8, [x0] |
| 41 | +; CHECK-NEXT: ldrb w8, [x0, #2] |
| 42 | +; CHECK-NEXT: ldrh w9, [x0] |
53 | 43 | ; CHECK-NEXT: movi.2d v1, #0x0000ff000000ff
|
54 |
| -; CHECK-NEXT: strh w8, [sp, #12] |
55 |
| -; CHECK-NEXT: ldr s0, [sp, #12] |
56 |
| -; CHECK-NEXT: ldrsb w8, [x0, #2] |
57 |
| -; CHECK-NEXT: ushll.8h v0, v0, #0 |
58 |
| -; CHECK-NEXT: mov.h v0[1], v0[1] |
59 |
| -; CHECK-NEXT: mov.h v0[2], w8 |
| 44 | +; CHECK-NEXT: orr w8, w9, w8, lsl #16 |
| 45 | +; CHECK-NEXT: fmov s0, w8 |
| 46 | +; CHECK-NEXT: zip1.8b v0, v0, v0 |
60 | 47 | ; CHECK-NEXT: ushll.4s v0, v0, #0
|
61 | 48 | ; CHECK-NEXT: and.16b v0, v0, v1
|
62 |
| -; CHECK-NEXT: add sp, sp, #16 |
63 | 49 | ; CHECK-NEXT: ret
|
64 | 50 | ;
|
65 | 51 | ; BE-LABEL: load_v3i8_to_4xi32:
|
@@ -160,19 +146,14 @@ define <4 x i32> @load_v3i8_to_4xi32_align_4(ptr %src) {
|
160 | 146 | define <4 x i32> @load_v3i8_to_4xi32_const_offset_1(ptr %src) {
|
161 | 147 | ; CHECK-LABEL: load_v3i8_to_4xi32_const_offset_1:
|
162 | 148 | ; CHECK: ; %bb.0:
|
163 |
| -; CHECK-NEXT: sub sp, sp, #16 |
164 |
| -; CHECK-NEXT: .cfi_def_cfa_offset 16 |
165 |
| -; CHECK-NEXT: ldurh w8, [x0, #1] |
| 149 | +; CHECK-NEXT: ldrb w8, [x0, #3] |
| 150 | +; CHECK-NEXT: ldurh w9, [x0, #1] |
166 | 151 | ; CHECK-NEXT: movi.2d v1, #0x0000ff000000ff
|
167 |
| -; CHECK-NEXT: strh w8, [sp, #12] |
168 |
| -; CHECK-NEXT: ldr s0, [sp, #12] |
169 |
| -; CHECK-NEXT: ldrsb w8, [x0, #3] |
170 |
| -; CHECK-NEXT: ushll.8h v0, v0, #0 |
171 |
| -; CHECK-NEXT: mov.h v0[1], v0[1] |
172 |
| -; CHECK-NEXT: mov.h v0[2], w8 |
| 152 | +; CHECK-NEXT: orr w8, w9, w8, lsl #16 |
| 153 | +; CHECK-NEXT: fmov s0, w8 |
| 154 | +; CHECK-NEXT: zip1.8b v0, v0, v0 |
173 | 155 | ; CHECK-NEXT: ushll.4s v0, v0, #0
|
174 | 156 | ; CHECK-NEXT: and.16b v0, v0, v1
|
175 |
| -; CHECK-NEXT: add sp, sp, #16 |
176 | 157 | ; CHECK-NEXT: ret
|
177 | 158 | ;
|
178 | 159 | ; BE-LABEL: load_v3i8_to_4xi32_const_offset_1:
|
@@ -204,19 +185,14 @@ define <4 x i32> @load_v3i8_to_4xi32_const_offset_1(ptr %src) {
|
204 | 185 | define <4 x i32> @load_v3i8_to_4xi32_const_offset_3(ptr %src) {
|
205 | 186 | ; CHECK-LABEL: load_v3i8_to_4xi32_const_offset_3:
|
206 | 187 | ; CHECK: ; %bb.0:
|
207 |
| -; CHECK-NEXT: sub sp, sp, #16 |
208 |
| -; CHECK-NEXT: .cfi_def_cfa_offset 16 |
209 |
| -; CHECK-NEXT: ldurh w8, [x0, #3] |
| 188 | +; CHECK-NEXT: ldrb w8, [x0, #5] |
| 189 | +; CHECK-NEXT: ldurh w9, [x0, #3] |
210 | 190 | ; CHECK-NEXT: movi.2d v1, #0x0000ff000000ff
|
211 |
| -; CHECK-NEXT: strh w8, [sp, #12] |
212 |
| -; CHECK-NEXT: ldr s0, [sp, #12] |
213 |
| -; CHECK-NEXT: ldrsb w8, [x0, #5] |
214 |
| -; CHECK-NEXT: ushll.8h v0, v0, #0 |
215 |
| -; CHECK-NEXT: mov.h v0[1], v0[1] |
216 |
| -; CHECK-NEXT: mov.h v0[2], w8 |
| 191 | +; CHECK-NEXT: orr w8, w9, w8, lsl #16 |
| 192 | +; CHECK-NEXT: fmov s0, w8 |
| 193 | +; CHECK-NEXT: zip1.8b v0, v0, v0 |
217 | 194 | ; CHECK-NEXT: ushll.4s v0, v0, #0
|
218 | 195 | ; CHECK-NEXT: and.16b v0, v0, v1
|
219 |
| -; CHECK-NEXT: add sp, sp, #16 |
220 | 196 | ; CHECK-NEXT: ret
|
221 | 197 | ;
|
222 | 198 | ; BE-LABEL: load_v3i8_to_4xi32_const_offset_3:
|
@@ -439,19 +415,15 @@ entry:
|
439 | 415 | define void @load_ext_to_64bits(ptr %src, ptr %dst) {
|
440 | 416 | ; CHECK-LABEL: load_ext_to_64bits:
|
441 | 417 | ; CHECK: ; %bb.0: ; %entry
|
442 |
| -; CHECK-NEXT: sub sp, sp, #16 |
443 |
| -; CHECK-NEXT: .cfi_def_cfa_offset 16 |
444 |
| -; CHECK-NEXT: ldrh w8, [x0] |
445 |
| -; CHECK-NEXT: strh w8, [sp, #12] |
446 |
| -; CHECK-NEXT: add x8, x0, #2 |
447 |
| -; CHECK-NEXT: ldr s0, [sp, #12] |
448 |
| -; CHECK-NEXT: ushll.8h v0, v0, #0 |
449 |
| -; CHECK-NEXT: ld1.b { v0 }[4], [x8] |
| 418 | +; CHECK-NEXT: ldrb w8, [x0, #2] |
| 419 | +; CHECK-NEXT: ldrh w9, [x0] |
| 420 | +; CHECK-NEXT: orr w8, w9, w8, lsl #16 |
| 421 | +; CHECK-NEXT: fmov s0, w8 |
450 | 422 | ; CHECK-NEXT: add x8, x1, #4
|
| 423 | +; CHECK-NEXT: zip1.8b v0, v0, v0 |
451 | 424 | ; CHECK-NEXT: bic.4h v0, #255, lsl #8
|
452 | 425 | ; CHECK-NEXT: st1.h { v0 }[2], [x8]
|
453 | 426 | ; CHECK-NEXT: str s0, [x1]
|
454 |
| -; CHECK-NEXT: add sp, sp, #16 |
455 | 427 | ; CHECK-NEXT: ret
|
456 | 428 | ;
|
457 | 429 | ; BE-LABEL: load_ext_to_64bits:
|
|
0 commit comments