[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / arm64ec-dllimport.ll
blobc1350d55f72e7d72dbd3a5ee2f0f5f2b1d7040cf
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=arm64ec-pc-windows-msvc < %s | FileCheck %s
4 @a = external dllimport global i32
5 declare dllimport void @b()
7 define ptr @dllimport_var() nounwind {
8 ; CHECK-LABEL: dllimport_var:
9 ; CHECK:       // %bb.0:
10 ; CHECK-NEXT:    adrp x0, __imp_a
11 ; CHECK-NEXT:    ldr x0, [x0, :lo12:__imp_a]
12 ; CHECK-NEXT:    ret
13   ret ptr @a
16 define ptr @dllimport_fn() nounwind {
17 ; CHECK-LABEL: dllimport_fn:
18 ; CHECK:       // %bb.0:
19 ; CHECK-NEXT:    .globl __imp_b
20 ; CHECK-NEXT:    adrp x0, __imp_aux_b
21 ; CHECK-NEXT:    .globl __imp_b
22 ; CHECK-NEXT:    ldr x0, [x0, :lo12:__imp_aux_b]
23 ; CHECK-NEXT:    ret
24   ret ptr @b
27 define void @dllimport_fn_call() nounwind {
28 ; CHECK-LABEL: dllimport_fn_call:
29 ; CHECK:       // %bb.0:
30 ; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill
31 ; CHECK-NEXT:    adrp x8, __imp_b
32 ; CHECK-NEXT:    ldr x8, [x8, :lo12:__imp_b]
33 ; CHECK-NEXT:    blr x8
34 ; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
35 ; CHECK-NEXT:    ret
36   call void @b()
37   ret void