Files
derek.holloway 7502bf64a4
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
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

304 lines
7.3 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -float-abi=hard -mattr=+hard-float -mattr=+2e3 -mattr=+fpuv2_sf | FileCheck %s --check-prefix=CHECK-SF
; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -float-abi=hard -mattr=+hard-float -mattr=+2e3 -mattr=+fpuv3_sf | FileCheck %s --check-prefix=CHECK-SF2
define float @faddRR(float %x, float %y) {
;
; CHECK-SF-LABEL: faddRR:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fadds vr0, vr1, vr0
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: faddRR:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fadd.32 vr0, vr1, vr0
; CHECK-SF2-NEXT: rts16
entry:
%fadd = fadd float %y, %x
ret float %fadd
}
define float @faddRI(float %x) {
;
; CHECK-SF-LABEL: faddRI:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 16672
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fadds vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: faddRI:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 16672
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fadd.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fadd = fadd float %x, 10.0
ret float %fadd
}
define float @faddRI_X(float %x) {
;
; CHECK-SF-LABEL: faddRI_X:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 17792
; CHECK-SF-NEXT: ori32 a0, a0, 2048
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fadds vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: faddRI_X:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 17792
; CHECK-SF2-NEXT: ori32 a0, a0, 2048
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fadd.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fadd = fadd float %x, 4097.0
ret float %fadd
}
define float @fsubRR(float %x, float %y) {
;
; CHECK-SF-LABEL: fsubRR:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fsubs vr0, vr1, vr0
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fsubRR:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fsub.32 vr0, vr1, vr0
; CHECK-SF2-NEXT: rts16
entry:
%fsub = fsub float %y, %x
ret float %fsub
}
define float @fsubRI(float %x) {
;
; CHECK-SF-LABEL: fsubRI:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 49440
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fadds vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fsubRI:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 49440
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fadd.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fsub = fsub float %x, 10.0
ret float %fsub
}
define float @fsubRI_X(float %x) {
;
; CHECK-SF-LABEL: fsubRI_X:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 50560
; CHECK-SF-NEXT: ori32 a0, a0, 2048
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fadds vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fsubRI_X:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 50560
; CHECK-SF2-NEXT: ori32 a0, a0, 2048
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fadd.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fsub = fsub float %x, 4097.0
ret float %fsub
}
define float @fmulRR(float %x, float %y) {
;
; CHECK-SF-LABEL: fmulRR:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fmuls vr0, vr1, vr0
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fmulRR:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fmul.32 vr0, vr1, vr0
; CHECK-SF2-NEXT: rts16
entry:
%fmul = fmul float %y, %x
ret float %fmul
}
define float @fnmulRR_a(float %x, float %y) {
;
; CHECK-SF-LABEL: fnmulRR_a:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fnmuls vr0, vr1, vr0
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fnmulRR_a:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fnmul.32 vr0, vr1, vr0
; CHECK-SF2-NEXT: rts16
entry:
%z = fneg float %y
%fnmul = fmul float %z, %x
ret float %fnmul
}
define float @fnmulRR_b(float %x, float %y) {
; CHECK-SF-LABEL: fnmulRR_b:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fnmuls vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fnmulRR_b:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fnmul.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%z = fneg float %x
%fnmul = fmul float %y, %z
ret float %fnmul
}
define float @fmulRI(float %x) {
;
; CHECK-SF-LABEL: fmulRI:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 16672
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fmuls vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fmulRI:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 16672
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fmul.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fmul = fmul float %x, 10.0
ret float %fmul
}
define float @fmulRI_X(float %x) {
;
; CHECK-SF-LABEL: fmulRI_X:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 17792
; CHECK-SF-NEXT: ori32 a0, a0, 2048
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fmuls vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fmulRI_X:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 17792
; CHECK-SF2-NEXT: ori32 a0, a0, 2048
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fmul.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fmul = fmul float %x, 4097.0
ret float %fmul
}
define float @fdivRR(float %x, float %y) {
;
; CHECK-SF-LABEL: fdivRR:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fdivs vr0, vr1, vr0
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fdivRR:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fdiv.32 vr0, vr1, vr0
; CHECK-SF2-NEXT: rts16
entry:
%fdiv = fdiv float %y, %x
ret float %fdiv
}
define float @fdivRI(float %x) {
;
; CHECK-SF-LABEL: fdivRI:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 16672
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fdivs vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fdivRI:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 16672
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fdiv.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fdiv = fdiv float %x, 10.0
ret float %fdiv
}
define float @fdivRI_X(float %x) {
;
; CHECK-SF-LABEL: fdivRI_X:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: movih32 a0, 17792
; CHECK-SF-NEXT: ori32 a0, a0, 2048
; CHECK-SF-NEXT: fmtvrl vr1, a0
; CHECK-SF-NEXT: fdivs vr0, vr0, vr1
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fdivRI_X:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: movih32 a0, 17792
; CHECK-SF2-NEXT: ori32 a0, a0, 2048
; CHECK-SF2-NEXT: fmtvr.32.1 vr1, a0
; CHECK-SF2-NEXT: fdiv.32 vr0, vr0, vr1
; CHECK-SF2-NEXT: rts16
entry:
%fdiv = fdiv float %x, 4097.0
ret float %fdiv
}
define float @fnegRR(float %x) {
;
; CHECK-SF-LABEL: fnegRR:
; CHECK-SF: # %bb.0: # %entry
; CHECK-SF-NEXT: fnegs vr0, vr0
; CHECK-SF-NEXT: rts16
;
; CHECK-SF2-LABEL: fnegRR:
; CHECK-SF2: # %bb.0: # %entry
; CHECK-SF2-NEXT: fneg.32 vr0, vr0
; CHECK-SF2-NEXT: rts16
entry:
%fneg = fneg float %x
ret float %fneg
}