Files
TheRock/compiler/amd-llvm/bolt/test/X86/unclaimed-jt-entries.s
T
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

76 lines
1.7 KiB
ArmAsm

## This test ensures that "unclaimed" jump table entries are accounted later
## in postProcessIndirectBranches and the function is marked as non-simple.
# The test is compiled from the following source using GCC 12.2 -O3:
# https://godbolt.org/z/YcPG131s6
# int func(long long Input) {
# switch(Input) {
# case 3: return 1;
# case 4: return 2;
# case 6: return 3;
# case 8: return 4;
# case 13: return 5;
# default: __builtin_unreachable();
# }
# }
# REQUIRES: system-linux
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
# RUN: %clang %cflags -no-pie %t.o -o %t.exe -Wl,-q
## Check that non-simple function profile is emitted in perf2bolt mode
# RUN: link_fdata %s %t.exe %t.pa PREAGG
# RUN: llvm-strip -N L5 -N L5_ret %t.exe
# RUN: perf2bolt %t.exe -p %t.pa --pa -o %t.fdata -strict=0 -print-profile \
# RUN: -print-only=main | FileCheck %s --check-prefix=CHECK-P2B
# CHECK-P2B: PERF2BOLT: traces mismatching disassembled function contents: 0
# CHECK-P2B: Binary Function "main"
# CHECK-P2B: IsSimple : 0
# RUN: FileCheck %s --input-file %t.fdata --check-prefix=CHECK-FDATA
# CHECK-FDATA: 1 main 0 1 main 7 0 1
# RUN: llvm-bolt %t.exe -v=1 -o %t.out 2>&1 | FileCheck %s
# CHECK: BOLT-WARNING: 11 unclaimed data relocations remain against function main
.text
.globl main
.type main, %function
.size main, .Lend-main
main:
jmp *L4-24(,%rdi,8)
# PREAGG: T #main# #L5# #L5_ret# 1
L5:
movl $4, %eax
L5_ret:
ret
.L9:
movl $2, %eax
ret
.L8:
movl $1, %eax
ret
.L3:
movl $5, %eax
ret
.L6:
movl $3, %eax
ret
.Lend:
.section .rodata
.globl L4
L4:
.quad .L8
.quad .L9
.quad .L3
.quad .L6
.quad .L3
.quad L5
.quad .L3
.quad .L3
.quad .L3
.quad .L3
.quad .L3