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
121 lines
15 KiB
LLVM
121 lines
15 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
|
|
; RUN: llc < %s -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -stop-after=prologepilog | FileCheck %s -check-prefix=ZDINX
|
|
; RUN: llc < %s -mtriple=riscv32 -mattr=+zdinx,+zilsd -verify-machineinstrs -stop-after=prologepilog | FileCheck %s -check-prefix=ZDINX-ZILSD
|
|
; RUN: llc < %s -mtriple=riscv32 -mattr=+zdinx,+zilsd,+unaligned-scalar-mem -verify-machineinstrs -stop-after=prologepilog | FileCheck %s -check-prefix=ZDINX-ZILSD-UNALIGNED
|
|
; RUN: llc < %s -mtriple=riscv32 -mattr=+zdinx,+zilsd,+zilsd-4byte-align -verify-machineinstrs -stop-after=prologepilog | FileCheck %s -check-prefix=ZDINX-ZILSD-4BYTEALIGN
|
|
|
|
declare void @bar()
|
|
|
|
define double @foo(double %x) nounwind {
|
|
; ZDINX-LABEL: name: foo
|
|
; ZDINX: bb.0 (%ir-block.0):
|
|
; ZDINX-NEXT: liveins: $x10, $x11, $x8, $x9, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27
|
|
; ZDINX-NEXT: {{ $}}
|
|
; ZDINX-NEXT: $x2 = frame-setup ADDI $x2, -64
|
|
; ZDINX-NEXT: frame-setup SW killed $x8, $x2, 60 :: (store (s32) into %stack.1)
|
|
; ZDINX-NEXT: frame-setup SW killed $x9, $x2, 56 :: (store (s32) into %stack.2)
|
|
; ZDINX-NEXT: frame-setup SW killed $x18, $x2, 52 :: (store (s32) into %stack.3)
|
|
; ZDINX-NEXT: frame-setup SW killed $x19, $x2, 48 :: (store (s32) into %stack.4)
|
|
; ZDINX-NEXT: frame-setup SW killed $x20, $x2, 44 :: (store (s32) into %stack.5)
|
|
; ZDINX-NEXT: frame-setup SW killed $x21, $x2, 40 :: (store (s32) into %stack.6)
|
|
; ZDINX-NEXT: frame-setup SW killed $x22, $x2, 36 :: (store (s32) into %stack.7)
|
|
; ZDINX-NEXT: frame-setup SW killed $x23, $x2, 32 :: (store (s32) into %stack.8)
|
|
; ZDINX-NEXT: frame-setup SW killed $x24, $x2, 28 :: (store (s32) into %stack.9)
|
|
; ZDINX-NEXT: frame-setup SW killed $x25, $x2, 24 :: (store (s32) into %stack.10)
|
|
; ZDINX-NEXT: frame-setup SW killed $x26, $x2, 20 :: (store (s32) into %stack.11)
|
|
; ZDINX-NEXT: frame-setup SW killed $x27, $x2, 16 :: (store (s32) into %stack.12)
|
|
; ZDINX-NEXT: renamable $x10_x11 = nofpexcept FADD_D_IN32X killed renamable $x10_x11, renamable $x10_x11, 7, implicit $frm
|
|
; ZDINX-NEXT: PseudoRV32ZdinxSD killed renamable $x10_x11, $x2, 8 :: (store (s64) into %stack.0, align 4)
|
|
; ZDINX-NEXT: INLINEASM &"", sideeffect attdialect, clobber, implicit-def dead early-clobber $x6, clobber, implicit-def dead early-clobber $x7, clobber, implicit-def dead early-clobber $x8, clobber, implicit-def dead early-clobber $x9, clobber, implicit-def dead early-clobber $x10, clobber, implicit-def dead early-clobber $x11, clobber, implicit-def dead early-clobber $x12, clobber, implicit-def dead early-clobber $x13, clobber, implicit-def dead early-clobber $x14, clobber, implicit-def dead early-clobber $x15, clobber, implicit-def dead early-clobber $x16, clobber, implicit-def dead early-clobber $x17, clobber, implicit-def dead early-clobber $x18, clobber, implicit-def dead early-clobber $x19, clobber, implicit-def dead early-clobber $x20, clobber, implicit-def dead early-clobber $x21, clobber, implicit-def dead early-clobber $x22, clobber, implicit-def dead early-clobber $x23, clobber, implicit-def dead early-clobber $x24, clobber, implicit-def dead early-clobber $x25, clobber, implicit-def dead early-clobber $x26, clobber, implicit-def dead early-clobber $x27, clobber, implicit-def dead early-clobber $x28, clobber, implicit-def dead early-clobber $x29, clobber, implicit-def dead early-clobber $x31
|
|
; ZDINX-NEXT: renamable $x10_x11 = PseudoRV32ZdinxLD $x2, 8 :: (load (s64) from %stack.0, align 4)
|
|
; ZDINX-NEXT: $x8 = frame-destroy LW $x2, 60 :: (load (s32) from %stack.1)
|
|
; ZDINX-NEXT: $x9 = frame-destroy LW $x2, 56 :: (load (s32) from %stack.2)
|
|
; ZDINX-NEXT: $x18 = frame-destroy LW $x2, 52 :: (load (s32) from %stack.3)
|
|
; ZDINX-NEXT: $x19 = frame-destroy LW $x2, 48 :: (load (s32) from %stack.4)
|
|
; ZDINX-NEXT: $x20 = frame-destroy LW $x2, 44 :: (load (s32) from %stack.5)
|
|
; ZDINX-NEXT: $x21 = frame-destroy LW $x2, 40 :: (load (s32) from %stack.6)
|
|
; ZDINX-NEXT: $x22 = frame-destroy LW $x2, 36 :: (load (s32) from %stack.7)
|
|
; ZDINX-NEXT: $x23 = frame-destroy LW $x2, 32 :: (load (s32) from %stack.8)
|
|
; ZDINX-NEXT: $x24 = frame-destroy LW $x2, 28 :: (load (s32) from %stack.9)
|
|
; ZDINX-NEXT: $x25 = frame-destroy LW $x2, 24 :: (load (s32) from %stack.10)
|
|
; ZDINX-NEXT: $x26 = frame-destroy LW $x2, 20 :: (load (s32) from %stack.11)
|
|
; ZDINX-NEXT: $x27 = frame-destroy LW $x2, 16 :: (load (s32) from %stack.12)
|
|
; ZDINX-NEXT: $x2 = frame-destroy ADDI $x2, 64
|
|
; ZDINX-NEXT: PseudoRET implicit $x10, implicit $x11
|
|
;
|
|
; ZDINX-ZILSD-LABEL: name: foo
|
|
; ZDINX-ZILSD: bb.0 (%ir-block.0):
|
|
; ZDINX-ZILSD-NEXT: liveins: $x10, $x11, $x8_x9, $x18_x19, $x20_x21, $x22_x23, $x24_x25, $x26_x27
|
|
; ZDINX-ZILSD-NEXT: {{ $}}
|
|
; ZDINX-ZILSD-NEXT: $x2 = frame-setup ADDI $x2, -64
|
|
; ZDINX-ZILSD-NEXT: frame-setup SD_RV32 killed $x8_x9, $x2, 56 :: (store (s64) into %stack.1)
|
|
; ZDINX-ZILSD-NEXT: frame-setup SD_RV32 killed $x18_x19, $x2, 48 :: (store (s64) into %stack.2)
|
|
; ZDINX-ZILSD-NEXT: frame-setup SD_RV32 killed $x20_x21, $x2, 40 :: (store (s64) into %stack.3)
|
|
; ZDINX-ZILSD-NEXT: frame-setup SD_RV32 killed $x22_x23, $x2, 32 :: (store (s64) into %stack.4)
|
|
; ZDINX-ZILSD-NEXT: frame-setup SD_RV32 killed $x24_x25, $x2, 24 :: (store (s64) into %stack.5)
|
|
; ZDINX-ZILSD-NEXT: frame-setup SD_RV32 killed $x26_x27, $x2, 16 :: (store (s64) into %stack.6)
|
|
; ZDINX-ZILSD-NEXT: renamable $x10_x11 = nofpexcept FADD_D_IN32X killed renamable $x10_x11, renamable $x10_x11, 7, implicit $frm
|
|
; ZDINX-ZILSD-NEXT: PseudoRV32ZdinxSD killed renamable $x10_x11, $x2, 8 :: (store (s64) into %stack.0, align 4)
|
|
; ZDINX-ZILSD-NEXT: INLINEASM &"", sideeffect attdialect, clobber, implicit-def dead early-clobber $x6, clobber, implicit-def dead early-clobber $x7, clobber, implicit-def dead early-clobber $x8, clobber, implicit-def dead early-clobber $x9, clobber, implicit-def dead early-clobber $x10, clobber, implicit-def dead early-clobber $x11, clobber, implicit-def dead early-clobber $x12, clobber, implicit-def dead early-clobber $x13, clobber, implicit-def dead early-clobber $x14, clobber, implicit-def dead early-clobber $x15, clobber, implicit-def dead early-clobber $x16, clobber, implicit-def dead early-clobber $x17, clobber, implicit-def dead early-clobber $x18, clobber, implicit-def dead early-clobber $x19, clobber, implicit-def dead early-clobber $x20, clobber, implicit-def dead early-clobber $x21, clobber, implicit-def dead early-clobber $x22, clobber, implicit-def dead early-clobber $x23, clobber, implicit-def dead early-clobber $x24, clobber, implicit-def dead early-clobber $x25, clobber, implicit-def dead early-clobber $x26, clobber, implicit-def dead early-clobber $x27, clobber, implicit-def dead early-clobber $x28, clobber, implicit-def dead early-clobber $x29, clobber, implicit-def dead early-clobber $x31
|
|
; ZDINX-ZILSD-NEXT: renamable $x10_x11 = PseudoRV32ZdinxLD $x2, 8 :: (load (s64) from %stack.0, align 4)
|
|
; ZDINX-ZILSD-NEXT: $x8_x9 = frame-destroy LD_RV32 $x2, 56 :: (load (s64) from %stack.1)
|
|
; ZDINX-ZILSD-NEXT: $x18_x19 = frame-destroy LD_RV32 $x2, 48 :: (load (s64) from %stack.2)
|
|
; ZDINX-ZILSD-NEXT: $x20_x21 = frame-destroy LD_RV32 $x2, 40 :: (load (s64) from %stack.3)
|
|
; ZDINX-ZILSD-NEXT: $x22_x23 = frame-destroy LD_RV32 $x2, 32 :: (load (s64) from %stack.4)
|
|
; ZDINX-ZILSD-NEXT: $x24_x25 = frame-destroy LD_RV32 $x2, 24 :: (load (s64) from %stack.5)
|
|
; ZDINX-ZILSD-NEXT: $x26_x27 = frame-destroy LD_RV32 $x2, 16 :: (load (s64) from %stack.6)
|
|
; ZDINX-ZILSD-NEXT: $x2 = frame-destroy ADDI $x2, 64
|
|
; ZDINX-ZILSD-NEXT: PseudoRET implicit $x10, implicit $x11
|
|
;
|
|
; ZDINX-ZILSD-UNALIGNED-LABEL: name: foo
|
|
; ZDINX-ZILSD-UNALIGNED: bb.0 (%ir-block.0):
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: liveins: $x10, $x11, $x8_x9, $x18_x19, $x20_x21, $x22_x23, $x24_x25, $x26_x27
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: {{ $}}
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x2 = frame-setup ADDI $x2, -64
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: frame-setup SD_RV32 killed $x8_x9, $x2, 56 :: (store (s64) into %stack.1, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: frame-setup SD_RV32 killed $x18_x19, $x2, 48 :: (store (s64) into %stack.2, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: frame-setup SD_RV32 killed $x20_x21, $x2, 40 :: (store (s64) into %stack.3, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: frame-setup SD_RV32 killed $x22_x23, $x2, 32 :: (store (s64) into %stack.4, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: frame-setup SD_RV32 killed $x24_x25, $x2, 24 :: (store (s64) into %stack.5, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: frame-setup SD_RV32 killed $x26_x27, $x2, 16 :: (store (s64) into %stack.6, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: renamable $x10_x11 = nofpexcept FADD_D_IN32X killed renamable $x10_x11, renamable $x10_x11, 7, implicit $frm
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: SD_RV32 killed renamable $x10_x11, $x2, 8 :: (store (s64) into %stack.0, align 4)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: INLINEASM &"", sideeffect attdialect, clobber, implicit-def dead early-clobber $x6, clobber, implicit-def dead early-clobber $x7, clobber, implicit-def dead early-clobber $x8, clobber, implicit-def dead early-clobber $x9, clobber, implicit-def dead early-clobber $x10, clobber, implicit-def dead early-clobber $x11, clobber, implicit-def dead early-clobber $x12, clobber, implicit-def dead early-clobber $x13, clobber, implicit-def dead early-clobber $x14, clobber, implicit-def dead early-clobber $x15, clobber, implicit-def dead early-clobber $x16, clobber, implicit-def dead early-clobber $x17, clobber, implicit-def dead early-clobber $x18, clobber, implicit-def dead early-clobber $x19, clobber, implicit-def dead early-clobber $x20, clobber, implicit-def dead early-clobber $x21, clobber, implicit-def dead early-clobber $x22, clobber, implicit-def dead early-clobber $x23, clobber, implicit-def dead early-clobber $x24, clobber, implicit-def dead early-clobber $x25, clobber, implicit-def dead early-clobber $x26, clobber, implicit-def dead early-clobber $x27, clobber, implicit-def dead early-clobber $x28, clobber, implicit-def dead early-clobber $x29, clobber, implicit-def dead early-clobber $x31
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: renamable $x10_x11 = LD_RV32 $x2, 8 :: (load (s64) from %stack.0, align 4)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x8_x9 = frame-destroy LD_RV32 $x2, 56 :: (load (s64) from %stack.1, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x18_x19 = frame-destroy LD_RV32 $x2, 48 :: (load (s64) from %stack.2, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x20_x21 = frame-destroy LD_RV32 $x2, 40 :: (load (s64) from %stack.3, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x22_x23 = frame-destroy LD_RV32 $x2, 32 :: (load (s64) from %stack.4, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x24_x25 = frame-destroy LD_RV32 $x2, 24 :: (load (s64) from %stack.5, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x26_x27 = frame-destroy LD_RV32 $x2, 16 :: (load (s64) from %stack.6, align 1)
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: $x2 = frame-destroy ADDI $x2, 64
|
|
; ZDINX-ZILSD-UNALIGNED-NEXT: PseudoRET implicit $x10, implicit $x11
|
|
;
|
|
; ZDINX-ZILSD-4BYTEALIGN-LABEL: name: foo
|
|
; ZDINX-ZILSD-4BYTEALIGN: bb.0 (%ir-block.0):
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: liveins: $x10, $x11, $x8_x9, $x18_x19, $x20_x21, $x22_x23, $x24_x25, $x26_x27
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: {{ $}}
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x2 = frame-setup ADDI $x2, -64
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: frame-setup SD_RV32 killed $x8_x9, $x2, 56 :: (store (s64) into %stack.1, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: frame-setup SD_RV32 killed $x18_x19, $x2, 48 :: (store (s64) into %stack.2, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: frame-setup SD_RV32 killed $x20_x21, $x2, 40 :: (store (s64) into %stack.3, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: frame-setup SD_RV32 killed $x22_x23, $x2, 32 :: (store (s64) into %stack.4, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: frame-setup SD_RV32 killed $x24_x25, $x2, 24 :: (store (s64) into %stack.5, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: frame-setup SD_RV32 killed $x26_x27, $x2, 16 :: (store (s64) into %stack.6, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: renamable $x10_x11 = nofpexcept FADD_D_IN32X killed renamable $x10_x11, renamable $x10_x11, 7, implicit $frm
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: SD_RV32 killed renamable $x10_x11, $x2, 8 :: (store (s64) into %stack.0, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: INLINEASM &"", sideeffect attdialect, clobber, implicit-def dead early-clobber $x6, clobber, implicit-def dead early-clobber $x7, clobber, implicit-def dead early-clobber $x8, clobber, implicit-def dead early-clobber $x9, clobber, implicit-def dead early-clobber $x10, clobber, implicit-def dead early-clobber $x11, clobber, implicit-def dead early-clobber $x12, clobber, implicit-def dead early-clobber $x13, clobber, implicit-def dead early-clobber $x14, clobber, implicit-def dead early-clobber $x15, clobber, implicit-def dead early-clobber $x16, clobber, implicit-def dead early-clobber $x17, clobber, implicit-def dead early-clobber $x18, clobber, implicit-def dead early-clobber $x19, clobber, implicit-def dead early-clobber $x20, clobber, implicit-def dead early-clobber $x21, clobber, implicit-def dead early-clobber $x22, clobber, implicit-def dead early-clobber $x23, clobber, implicit-def dead early-clobber $x24, clobber, implicit-def dead early-clobber $x25, clobber, implicit-def dead early-clobber $x26, clobber, implicit-def dead early-clobber $x27, clobber, implicit-def dead early-clobber $x28, clobber, implicit-def dead early-clobber $x29, clobber, implicit-def dead early-clobber $x31
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: renamable $x10_x11 = LD_RV32 $x2, 8 :: (load (s64) from %stack.0, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x8_x9 = frame-destroy LD_RV32 $x2, 56 :: (load (s64) from %stack.1, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x18_x19 = frame-destroy LD_RV32 $x2, 48 :: (load (s64) from %stack.2, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x20_x21 = frame-destroy LD_RV32 $x2, 40 :: (load (s64) from %stack.3, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x22_x23 = frame-destroy LD_RV32 $x2, 32 :: (load (s64) from %stack.4, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x24_x25 = frame-destroy LD_RV32 $x2, 24 :: (load (s64) from %stack.5, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x26_x27 = frame-destroy LD_RV32 $x2, 16 :: (load (s64) from %stack.6, align 4)
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: $x2 = frame-destroy ADDI $x2, 64
|
|
; ZDINX-ZILSD-4BYTEALIGN-NEXT: PseudoRET implicit $x10, implicit $x11
|
|
%a = fadd double %x, %x
|
|
call void asm sideeffect "", "~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{xr0},~{x31}"()
|
|
ret double %a
|
|
}
|