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
281 lines
5.7 KiB
NASM
281 lines
5.7 KiB
NASM
; RUN: llvm-ml64 -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK-64,CHECK
|
|
; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s --check-prefixes=CHECK-32,CHECK
|
|
|
|
ifdef rax
|
|
extern fn_ref_extern : qword
|
|
else
|
|
extern fn_ref_extern : dword
|
|
endif
|
|
|
|
extern fn_proc_extern : proc
|
|
extern fn_ref_extern_word : word
|
|
|
|
.data
|
|
|
|
ifdef rax
|
|
fn_ref qword 1
|
|
else
|
|
fn_ref dword 1
|
|
endif
|
|
|
|
fn_ref_word word 2
|
|
fn PROC
|
|
|
|
BranchTargetStruc struc
|
|
member0 dword ?
|
|
ifdef rax
|
|
member1 dword ?
|
|
endif
|
|
BranchTargetStruc ends
|
|
|
|
|
|
ifdef rax
|
|
fn_ref_struc BranchTargetStruc {3, 3}
|
|
else
|
|
fn_ref_struc BranchTargetStruc {3}
|
|
endif
|
|
|
|
.code
|
|
|
|
t0:
|
|
call fn_ref
|
|
jmp fn_ref
|
|
; CHECK-LABEL: t0:
|
|
; CHECK-64: call qword ptr [rip + fn_ref]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref]
|
|
; CHECK-32: call dword ptr [fn_ref]
|
|
; CHECK-32: jmp dword ptr [fn_ref]
|
|
|
|
t1:
|
|
call [fn_ref]
|
|
jmp [fn_ref]
|
|
; CHECK-LABEL: t1:
|
|
; CHECK-64: call qword ptr [rip + fn_ref]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref]
|
|
; CHECK-32: call dword ptr [fn_ref]
|
|
; CHECK-32: jmp dword ptr [fn_ref]
|
|
|
|
ifdef rax
|
|
t2:
|
|
call qword ptr [fn_ref]
|
|
jmp qword ptr [fn_ref]
|
|
; CHECK-64-LABEL: t2:
|
|
; CHECK-64: call qword ptr [rip + fn_ref]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref]
|
|
else
|
|
t2:
|
|
call dword ptr [fn_ref]
|
|
jmp dword ptr [fn_ref]
|
|
; CHECK-32-LABEL: t2:
|
|
; CHECK-32: call dword ptr [fn_ref]
|
|
; CHECK-32: jmp dword ptr [fn_ref]
|
|
|
|
t3:
|
|
call fn_ref_word
|
|
jmp fn_ref_word
|
|
; CHECK-32-LABEL: t3:
|
|
; CHECK-32: call word ptr [fn_ref_word]
|
|
; CHECK-32-NEXT: jmp word ptr [fn_ref_word]
|
|
|
|
t4:
|
|
call [fn_ref_word]
|
|
jmp [fn_ref_word]
|
|
; CHECK-32-LABEL: t4:
|
|
; CHECK-32: call word ptr [fn_ref_word]
|
|
; CHECK-32-NEXT: jmp word ptr [fn_ref_word]
|
|
|
|
t5:
|
|
call word ptr [fn_ref_word]
|
|
jmp word ptr [fn_ref_word]
|
|
; CHECK-32-LABEL: t5:
|
|
; CHECK-32: call word ptr [fn_ref_word]
|
|
; CHECK-32-NEXT: jmp word ptr [fn_ref_word]
|
|
endif
|
|
|
|
t6:
|
|
call t6
|
|
jmp t6
|
|
; CHECK-LABEL: t6:
|
|
; CHECK: call t6
|
|
; CHECK-NEXT: jmp t6
|
|
|
|
t7:
|
|
call [t7]
|
|
jmp [t7]
|
|
; CHECK-LABEL: t7:
|
|
; CHECK: call t7
|
|
; CHECK-NEXT: jmp t7
|
|
|
|
ifdef rax
|
|
t8:
|
|
call qword ptr [t8]
|
|
jmp qword ptr [t8]
|
|
; CHECK-64-LABEL: t8:
|
|
; CHECK-64: call qword ptr [rip + t8]
|
|
; CHECK-64-NEXT: jmp qword ptr [rip + t8]
|
|
else
|
|
t8:
|
|
call dword ptr [t8]
|
|
jmp dword ptr [t8]
|
|
; CHECK-32-LABEL: t8:
|
|
; CHECK-32: call dword ptr [t8]
|
|
; CHECK-32-NEXT: jmp dword ptr [t8]
|
|
endif
|
|
|
|
t9:
|
|
call fn
|
|
jmp fn
|
|
; CHECK-LABEL: t9:
|
|
; CHECK: call fn
|
|
; CHECK-NEXT: jmp fn
|
|
|
|
t10:
|
|
call [fn]
|
|
jmp [fn]
|
|
; CHECK-LABEL: t10:
|
|
; CHECK: call fn
|
|
; CHECK-NEXT: jmp fn
|
|
|
|
ifdef rax
|
|
t11:
|
|
call qword ptr [fn]
|
|
jmp qword ptr [fn]
|
|
; CHECK-64-LABEL: t11:
|
|
; CHECK-64: call qword ptr [rip + fn]
|
|
; CHECK-64-NEXT: jmp qword ptr [rip + fn]
|
|
else
|
|
t11:
|
|
call dword ptr [fn]
|
|
jmp dword ptr [fn]
|
|
; CHECK-32-LABEL: t11:
|
|
; CHECK-32: call dword ptr [fn]
|
|
; CHECK-32-NEXT: jmp dword ptr [fn]
|
|
endif
|
|
|
|
t12:
|
|
call fn_ref_struc
|
|
jmp fn_ref_struc
|
|
; CHECK-LABEL: t12:
|
|
; CHECK-64: call qword ptr [rip + fn_ref_struc]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_struc]
|
|
; CHECK-32: call dword ptr [fn_ref_struc]
|
|
; CHECK-32: jmp dword ptr [fn_ref_struc]
|
|
|
|
t13:
|
|
call [fn_ref_struc]
|
|
jmp [fn_ref_struc]
|
|
; CHECK-LABEL: t13:
|
|
; CHECK-64: call qword ptr [rip + fn_ref_struc]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_struc]
|
|
; CHECK-32: call dword ptr [fn_ref_struc]
|
|
; CHECK-32: jmp dword ptr [fn_ref_struc]
|
|
|
|
ifdef rax
|
|
t14:
|
|
call qword ptr [fn_ref_struc]
|
|
jmp qword ptr [fn_ref_struc]
|
|
; CHECK-64-LABEL: t14:
|
|
; CHECK-64: call qword ptr [rip + fn_ref_struc]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_struc]
|
|
else
|
|
t14:
|
|
call dword ptr [fn_ref_struc]
|
|
jmp dword ptr [fn_ref_struc]
|
|
; CHECK-32-LABEL: t14:
|
|
; CHECK-32: call dword ptr [fn_ref_struc]
|
|
; CHECK-32: jmp dword ptr [fn_ref_struc]
|
|
endif
|
|
|
|
t15:
|
|
je t15
|
|
; CHECK-LABEL: t15:
|
|
; CHECK: je t15
|
|
|
|
t16:
|
|
je [t16];
|
|
; CHECK-LABEL: t16:
|
|
; CHECK: je t16
|
|
|
|
t17:
|
|
call fn_ref_extern
|
|
jmp fn_ref_extern
|
|
; CHECK-LABEL: t17:
|
|
; CHECK-64: call qword ptr [rip + fn_ref_extern]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_extern]
|
|
; CHECK-32: call dword ptr [fn_ref_extern]
|
|
; CHECK-32: jmp dword ptr [fn_ref_extern]
|
|
|
|
t18:
|
|
call [fn_ref_extern]
|
|
jmp [fn_ref_extern]
|
|
; CHECK-LABEL: t18:
|
|
; CHECK-64: call qword ptr [rip + fn_ref_extern]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_extern]
|
|
; CHECK-32: call dword ptr [fn_ref_extern]
|
|
; CHECK-32: jmp dword ptr [fn_ref_extern]
|
|
|
|
ifdef rax
|
|
t19:
|
|
call qword ptr [fn_ref_extern]
|
|
jmp qword ptr [fn_ref_extern]
|
|
; CHECK-64-LABEL: t19:
|
|
; CHECK-64: call qword ptr [rip + fn_ref_extern]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_extern]
|
|
else
|
|
t19:
|
|
call dword ptr [fn_ref_extern]
|
|
jmp dword ptr [fn_ref_extern]
|
|
; CHECK-32-LABEL: t19:
|
|
; CHECK-32: call dword ptr [fn_ref_extern]
|
|
; CHECK-32: jmp dword ptr [fn_ref_extern]
|
|
|
|
t20:
|
|
call fn_ref_extern_word
|
|
jmp fn_ref_extern_word
|
|
; CHECK-32-LABEL: t20:
|
|
; CHECK-32: call word ptr [fn_ref_extern_word]
|
|
; CHECK-32-NEXT: jmp word ptr [fn_ref_extern_word]
|
|
|
|
t21:
|
|
call [fn_ref_extern_word]
|
|
jmp [fn_ref_extern_word]
|
|
; CHECK-32-LABEL: t21:
|
|
; CHECK-32: call word ptr [fn_ref_extern_word]
|
|
; CHECK-32-NEXT: jmp word ptr [fn_ref_extern_word]
|
|
|
|
t22:
|
|
call word ptr [fn_ref_extern_word]
|
|
jmp word ptr [fn_ref_extern_word]
|
|
; CHECK-32-LABEL: t22:
|
|
; CHECK-32: call word ptr [fn_ref_extern_word]
|
|
; CHECK-32-NEXT: jmp word ptr [fn_ref_extern_word]
|
|
endif
|
|
|
|
t23:
|
|
call fn_proc_extern
|
|
jmp fn_proc_extern
|
|
; CHECK-LABEL: t23:
|
|
; CHECK: call fn_proc_extern
|
|
|
|
t24:
|
|
call [fn_proc_extern]
|
|
jmp [fn_proc_extern]
|
|
; CHECK-LABEL: t24:
|
|
; CHECK: call fn_proc_extern
|
|
|
|
t25:
|
|
; CHECK-LABEL: t25:
|
|
ifdef rax
|
|
call qword ptr [fn_ref_extern]
|
|
jmp qword ptr [fn_ref_extern]
|
|
; CHECK-64: call qword ptr [rip + fn_ref_extern]
|
|
; CHECK-64: jmp qword ptr [rip + fn_ref_extern]
|
|
else
|
|
call dword ptr [fn_ref_extern]
|
|
jmp dword ptr [fn_ref_extern]
|
|
; CHECK-32: call dword ptr [fn_ref_extern]
|
|
; CHECK-32: jmp dword ptr [fn_ref_extern]
|
|
endif
|
|
|
|
end
|