1## A label difference separated by an alignment directive, when the 2## referenced symbols are in a non-executable section with instructions, 3## should generate ADD/SUB relocations. 4## https://github.com/llvm/llvm-project/pull/76552 5 6# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s \ 7# RUN: | llvm-readobj -r - | FileCheck --check-prefixes=CHECK,RELAX %s 8# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=-relax %s \ 9# RUN: | llvm-readobj -r - | FileCheck %s 10 11.section ".dummy", "a" 12.L1: 13 la.pcrel $t0, sym 14.p2align 3 15.L2: 16.dword .L2 - .L1 17 18# CHECK: Relocations [ 19# CHECK-NEXT: Section ({{.*}}) .rela.dummy { 20# CHECK-NEXT: 0x0 R_LARCH_PCALA_HI20 sym 0x0 21# RELAX-NEXT: 0x0 R_LARCH_RELAX - 0x0 22# CHECK-NEXT: 0x4 R_LARCH_PCALA_LO12 sym 0x0 23# RELAX-NEXT: 0x4 R_LARCH_RELAX - 0x0 24# RELAX-NEXT: 0x8 R_LARCH_ADD64 .L2 0x0 25# RELAX-NEXT: 0x8 R_LARCH_SUB64 .L1 0x0 26# CHECK-NEXT: } 27# CHECK-NEXT: ] 28