@@ -186,47 +186,40 @@ define void @v2i8_v4i8(ptr %p, ptr %q) {
186186define void @v16i8_v32i8 (ptr %p , ptr %q ) {
187187; CHECK-LABEL: v16i8_v32i8:
188188; 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
193194; CHECK-NEXT: .cfi_offset ra, -8
194195; CHECK-NEXT: .cfi_offset s0, -16
196+ ; CHECK-NEXT: .cfi_offset s1, -24
195197; CHECK-NEXT: csrr a2, vlenb
196198; CHECK-NEXT: slli a2, a2, 1
197199; 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
201203; 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
209206; CHECK-NEXT: mv s0, a1
210207; 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
217211; 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)
221212; CHECK-NEXT: csrr a0, vlenb
222213; CHECK-NEXT: slli a0, a0, 1
223214; 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
227219; CHECK-NEXT: .cfi_restore ra
228220; 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
230223; CHECK-NEXT: .cfi_def_cfa_offset 0
231224; CHECK-NEXT: ret
232225 %p0 = getelementptr i8 , ptr %p , i64 0
@@ -235,8 +228,8 @@ define void @v16i8_v32i8(ptr %p, ptr %q) {
235228 %x1 = load <16 x i8 >, ptr %p1
236229 call void @g ()
237230 %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
240233 store <16 x i8 > %x1 , ptr %q1
241234 ret void
242235}
0 commit comments