CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
76 lines
3.0 KiB
LLVM
76 lines
3.0 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc -mtriple=riscv64 -mattr=+v,+f \
|
|
; RUN: -verify-machineinstrs < %s | FileCheck %s
|
|
|
|
define void @foo(ptr nocapture noundef %p1) {
|
|
; CHECK-LABEL: foo:
|
|
; CHECK: # %bb.0: # %entry
|
|
; CHECK-NEXT: addi sp, sp, -192
|
|
; CHECK-NEXT: .cfi_def_cfa_offset 192
|
|
; CHECK-NEXT: sd ra, 184(sp) # 8-byte Folded Spill
|
|
; CHECK-NEXT: sd s0, 176(sp) # 8-byte Folded Spill
|
|
; CHECK-NEXT: sd s1, 168(sp) # 8-byte Folded Spill
|
|
; CHECK-NEXT: sd s2, 160(sp) # 8-byte Folded Spill
|
|
; CHECK-NEXT: .cfi_offset ra, -8
|
|
; CHECK-NEXT: .cfi_offset s0, -16
|
|
; CHECK-NEXT: .cfi_offset s1, -24
|
|
; CHECK-NEXT: .cfi_offset s2, -32
|
|
; CHECK-NEXT: addi s0, sp, 192
|
|
; CHECK-NEXT: .cfi_def_cfa s0, 0
|
|
; CHECK-NEXT: csrr a1, vlenb
|
|
; CHECK-NEXT: slli a1, a1, 1
|
|
; CHECK-NEXT: sub sp, sp, a1
|
|
; CHECK-NEXT: andi sp, sp, -64
|
|
; CHECK-NEXT: mv s1, sp
|
|
; CHECK-NEXT: mv s2, a0
|
|
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
|
|
; CHECK-NEXT: vle32.v v8, (a0)
|
|
; CHECK-NEXT: addi a0, s1, 160
|
|
; CHECK-NEXT: vs2r.v v8, (a0) # vscale x 16-byte Folded Spill
|
|
; CHECK-NEXT: addi sp, sp, -16
|
|
; CHECK-NEXT: addi t0, s1, 64
|
|
; CHECK-NEXT: li a0, 1
|
|
; CHECK-NEXT: li a1, 2
|
|
; CHECK-NEXT: li a2, 3
|
|
; CHECK-NEXT: li a3, 4
|
|
; CHECK-NEXT: li a4, 5
|
|
; CHECK-NEXT: li a5, 6
|
|
; CHECK-NEXT: li a6, 7
|
|
; CHECK-NEXT: li a7, 8
|
|
; CHECK-NEXT: sd t0, 0(sp)
|
|
; CHECK-NEXT: call bar
|
|
; CHECK-NEXT: addi sp, sp, 16
|
|
; CHECK-NEXT: vsetivli zero, 8, e32, m2, ta, ma
|
|
; CHECK-NEXT: vle32.v v8, (s2)
|
|
; CHECK-NEXT: addi a0, s1, 160
|
|
; CHECK-NEXT: vl2r.v v10, (a0) # vscale x 16-byte Folded Reload
|
|
; CHECK-NEXT: vfadd.vv v8, v10, v8
|
|
; CHECK-NEXT: vse32.v v8, (s2)
|
|
; CHECK-NEXT: addi sp, s0, -192
|
|
; CHECK-NEXT: .cfi_def_cfa sp, 192
|
|
; CHECK-NEXT: ld ra, 184(sp) # 8-byte Folded Reload
|
|
; CHECK-NEXT: ld s0, 176(sp) # 8-byte Folded Reload
|
|
; CHECK-NEXT: ld s1, 168(sp) # 8-byte Folded Reload
|
|
; CHECK-NEXT: ld s2, 160(sp) # 8-byte Folded Reload
|
|
; CHECK-NEXT: .cfi_restore ra
|
|
; CHECK-NEXT: .cfi_restore s0
|
|
; CHECK-NEXT: .cfi_restore s1
|
|
; CHECK-NEXT: .cfi_restore s2
|
|
; CHECK-NEXT: addi sp, sp, 192
|
|
; CHECK-NEXT: .cfi_def_cfa_offset 0
|
|
; CHECK-NEXT: ret
|
|
entry:
|
|
%vla = alloca [10 x i32], align 64
|
|
call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %vla)
|
|
%0 = load <8 x float>, ptr %p1, align 32
|
|
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)
|
|
%1 = load <8 x float>, ptr %p1, align 32
|
|
%add = fadd <8 x float> %0, %1
|
|
store <8 x float> %add, ptr %p1, align 32
|
|
call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %vla)
|
|
ret void
|
|
}
|
|
|
|
declare 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)
|
|
|