76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -mattr=+v,+f \3; RUN: -verify-machineinstrs < %s | FileCheck %s4 5define void @foo(ptr nocapture noundef %p1) {6; CHECK-LABEL: foo:7; CHECK: # %bb.0: # %entry8; CHECK-NEXT: addi sp, sp, -1929; CHECK-NEXT: .cfi_def_cfa_offset 19210; CHECK-NEXT: sd ra, 184(sp) # 8-byte Folded Spill11; CHECK-NEXT: sd s0, 176(sp) # 8-byte Folded Spill12; CHECK-NEXT: sd s1, 168(sp) # 8-byte Folded Spill13; CHECK-NEXT: sd s2, 160(sp) # 8-byte Folded Spill14; CHECK-NEXT: .cfi_offset ra, -815; CHECK-NEXT: .cfi_offset s0, -1616; CHECK-NEXT: .cfi_offset s1, -2417; CHECK-NEXT: .cfi_offset s2, -3218; CHECK-NEXT: addi s0, sp, 19219; CHECK-NEXT: .cfi_def_cfa s0, 020; CHECK-NEXT: csrr a1, vlenb21; CHECK-NEXT: slli a1, a1, 122; CHECK-NEXT: sub sp, sp, a123; CHECK-NEXT: andi sp, sp, -6424; CHECK-NEXT: mv s1, sp25; CHECK-NEXT: mv s2, a026; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma27; CHECK-NEXT: vle32.v v8, (a0)28; CHECK-NEXT: addi a0, s1, 16029; CHECK-NEXT: vs2r.v v8, (a0) # vscale x 16-byte Folded Spill30; CHECK-NEXT: addi sp, sp, -1631; CHECK-NEXT: addi t0, s1, 6432; CHECK-NEXT: li a0, 133; CHECK-NEXT: li a1, 234; CHECK-NEXT: li a2, 335; CHECK-NEXT: li a3, 436; CHECK-NEXT: li a4, 537; CHECK-NEXT: li a5, 638; CHECK-NEXT: li a6, 739; CHECK-NEXT: li a7, 840; CHECK-NEXT: sd t0, 0(sp)41; CHECK-NEXT: call bar42; CHECK-NEXT: addi sp, sp, 1643; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma44; CHECK-NEXT: vle32.v v8, (s2)45; CHECK-NEXT: addi a0, s1, 16046; CHECK-NEXT: vl2r.v v10, (a0) # vscale x 16-byte Folded Reload47; CHECK-NEXT: vfadd.vv v8, v10, v848; CHECK-NEXT: vse32.v v8, (s2)49; CHECK-NEXT: addi sp, s0, -19250; CHECK-NEXT: .cfi_def_cfa sp, 19251; CHECK-NEXT: ld ra, 184(sp) # 8-byte Folded Reload52; CHECK-NEXT: ld s0, 176(sp) # 8-byte Folded Reload53; CHECK-NEXT: ld s1, 168(sp) # 8-byte Folded Reload54; CHECK-NEXT: ld s2, 160(sp) # 8-byte Folded Reload55; CHECK-NEXT: .cfi_restore ra56; CHECK-NEXT: .cfi_restore s057; CHECK-NEXT: .cfi_restore s158; CHECK-NEXT: .cfi_restore s259; CHECK-NEXT: addi sp, sp, 19260; CHECK-NEXT: .cfi_def_cfa_offset 061; CHECK-NEXT: ret62entry:63 %vla = alloca [10 x i32], align 6464 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %vla)65 %0 = load <8 x float>, ptr %p1, align 3266 call void @bar(i32 noundef signext 1, i32 noundef signext 2, i32 noundef signext 3, i32 noundef signext 4, i32 noundef signext 5, i32 noundef signext 6, i32 noundef signext 7, i32 noundef signext 8, ptr noundef nonnull %vla)67 %1 = load <8 x float>, ptr %p1, align 3268 %add = fadd <8 x float> %0, %169 store <8 x float> %add, ptr %p1, align 3270 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %vla)71 ret void72}73 74declare void @bar(i32 noundef signext, i32 noundef signext, i32 noundef signext, i32 noundef signext, i32 noundef signext, i32 noundef signext, i32 noundef signext, i32 noundef signext, ptr noundef)75 76