@@ -186,47 +186,40 @@ define void @v2i8_v4i8(ptr %p, ptr %q) {
186
186
define void @v16i8_v32i8 (ptr %p , ptr %q ) {
187
187
; CHECK-LABEL: v16i8_v32i8:
188
188
; CHECK: # %bb.0:
189
- ; CHECK-NEXT: addi sp, sp, -32
190
- ; CHECK-NEXT: .cfi_def_cfa_offset 32
191
- ; CHECK-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
192
- ; CHECK-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
189
+ ; CHECK-NEXT: addi sp, sp, -64
190
+ ; CHECK-NEXT: .cfi_def_cfa_offset 64
191
+ ; CHECK-NEXT: sd ra, 56(sp) # 8-byte Folded Spill
192
+ ; CHECK-NEXT: sd s0, 48(sp) # 8-byte Folded Spill
193
+ ; CHECK-NEXT: sd s1, 40(sp) # 8-byte Folded Spill
193
194
; CHECK-NEXT: .cfi_offset ra, -8
194
195
; CHECK-NEXT: .cfi_offset s0, -16
196
+ ; CHECK-NEXT: .cfi_offset s1, -24
195
197
; CHECK-NEXT: csrr a2, vlenb
196
198
; CHECK-NEXT: slli a2, a2, 1
197
199
; CHECK-NEXT: sub sp, sp, a2
198
- ; CHECK-NEXT: .cfi_escape 0x0f, 0x0d , 0x72, 0x00, 0x11, 0x20, 0x22, 0x11, 0x02, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 32 + 2 * vlenb
199
- ; CHECK-NEXT: addi a2, a0, 16
200
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1 , ta, ma
200
+ ; CHECK-NEXT: .cfi_escape 0x0f, 0x0e , 0x72, 0x00, 0x11, 0xc0, 0x00, 0x22, 0x11, 0x02, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 64 + 2 * vlenb
201
+ ; CHECK-NEXT: li s1, 32
202
+ ; CHECK-NEXT: vsetvli zero, s1 , e8, m2 , ta, ma
201
203
; CHECK-NEXT: vle8.v v8, (a0)
202
- ; CHECK-NEXT: csrr a0, vlenb
203
- ; CHECK-NEXT: add a0, sp, a0
204
- ; CHECK-NEXT: addi a0, a0, 16
205
- ; CHECK-NEXT: vs1r.v v8, (a0) # Unknown-size Folded Spill
206
- ; CHECK-NEXT: vle8.v v8, (a2)
207
- ; CHECK-NEXT: addi a0, sp, 16
208
- ; CHECK-NEXT: vs1r.v v8, (a0) # Unknown-size Folded Spill
204
+ ; CHECK-NEXT: addi a0, sp, 32
205
+ ; CHECK-NEXT: vs2r.v v8, (a0) # Unknown-size Folded Spill
209
206
; CHECK-NEXT: mv s0, a1
210
207
; CHECK-NEXT: call g
211
- ; CHECK-NEXT: addi a0, s0, 2
212
- ; CHECK-NEXT: csrr a1, vlenb
213
- ; CHECK-NEXT: add a1, sp, a1
214
- ; CHECK-NEXT: addi a1, a1, 16
215
- ; CHECK-NEXT: vl1r.v v8, (a1) # Unknown-size Folded Reload
216
- ; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, ma
208
+ ; CHECK-NEXT: addi a0, sp, 32
209
+ ; CHECK-NEXT: vl2r.v v8, (a0) # Unknown-size Folded Reload
210
+ ; CHECK-NEXT: vsetvli zero, s1, e8, m2, ta, ma
217
211
; CHECK-NEXT: vse8.v v8, (s0)
218
- ; CHECK-NEXT: addi a1, sp, 16
219
- ; CHECK-NEXT: vl1r.v v8, (a1) # Unknown-size Folded Reload
220
- ; CHECK-NEXT: vse8.v v8, (a0)
221
212
; CHECK-NEXT: csrr a0, vlenb
222
213
; CHECK-NEXT: slli a0, a0, 1
223
214
; CHECK-NEXT: add sp, sp, a0
224
- ; CHECK-NEXT: .cfi_def_cfa sp, 32
225
- ; CHECK-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
226
- ; CHECK-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
215
+ ; CHECK-NEXT: .cfi_def_cfa sp, 64
216
+ ; CHECK-NEXT: ld ra, 56(sp) # 8-byte Folded Reload
217
+ ; CHECK-NEXT: ld s0, 48(sp) # 8-byte Folded Reload
218
+ ; CHECK-NEXT: ld s1, 40(sp) # 8-byte Folded Reload
227
219
; CHECK-NEXT: .cfi_restore ra
228
220
; CHECK-NEXT: .cfi_restore s0
229
- ; CHECK-NEXT: addi sp, sp, 32
221
+ ; CHECK-NEXT: .cfi_restore s1
222
+ ; CHECK-NEXT: addi sp, sp, 64
230
223
; CHECK-NEXT: .cfi_def_cfa_offset 0
231
224
; CHECK-NEXT: ret
232
225
%p0 = getelementptr i8 , ptr %p , i64 0
@@ -235,8 +228,8 @@ define void @v16i8_v32i8(ptr %p, ptr %q) {
235
228
%x1 = load <16 x i8 >, ptr %p1
236
229
call void @g ()
237
230
%q0 = getelementptr i8 , ptr %q , i64 0
238
- %q1 = getelementptr i8 , ptr %q , i64 2
239
- store <16 x i8 > %x0 , ptr %q0 , align 16
231
+ %q1 = getelementptr i8 , ptr %q , i64 16
232
+ store <16 x i8 > %x0 , ptr %q0 , align 2
240
233
store <16 x i8 > %x1 , ptr %q1
241
234
ret void
242
235
}
0 commit comments