llvm/lld/test/COFF/arm64x-icf.s

// REQUIRES: aarch64
// RUN: split-file %s %t.dir && cd %t.dir

// RUN: llvm-mc -filetype=obj -triple=arm64ec-windows func-arm64ec.s -o func-arm64ec.obj
// RUN: llvm-mc -filetype=obj -triple=aarch64-windows func-arm64.s -o func-arm64.obj
// RUN: lld-link -machine:arm64x -dll -noentry -out:out.dll func-arm64ec.obj func-arm64.obj
// RUN: llvm-objdump -d out.dll | FileCheck %s

// CHECK:      0000000180001000 <.text>:
// CHECK-NEXT: 180001000: 52800020     mov     w0, #0x1                // =1
// CHECK-NEXT: 180001004: d65f03c0     ret
// CHECK-NEXT:                 ...
// CHECK-NEXT: 180002000: 52800020     mov     w0, #0x1                // =1
// CHECK-NEXT: 180002004: d65f03c0     ret


#--- func-arm64.s
        .section .text,"xr",discard,func
        .globl func
        .p2align 2
func:
        mov w0, #1
        ret

        .data
        .rva func

#--- func-arm64ec.s
        .section .text,"xr",discard,"#func"
        .globl "#func"
        .p2align 2
"#func":
        mov w0, #1
        ret

        .data
        .rva "#func"