# RUN: llc -O0 -mtriple arm-linux -relocation-model=pic -mattr=+no-movt -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=CHECK,ELF
# RUN: llc -O0 -mtriple arm-linux -relocation-model=pic -mattr=-no-movt,+v8m -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=CHECK,ELF
# RUN: llc -O0 -mtriple arm-darwin -relocation-model=pic -mattr=+no-movt -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=CHECK,DARWIN-NOMOVT
# RUN: llc -O0 -mtriple arm-darwin -relocation-model=pic -mattr=-no-movt,+v8m -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=CHECK,DARWIN-MOVT
--- |
  @internal_global = internal global i32 42
  define void @test_internal_global() { ret void }

  @external_global = external global i32
  define void @test_external_global() { ret void }

  @internal_constant = internal constant i32 42
  define void @test_internal_constant() { ret void }

  @external_constant = external constant i32
  define void @test_external_constant() { ret void }
...
---
name:            test_internal_global
# CHECK-LABEL: name: test_internal_global
legalized:       true
regBankSelected: true
selected:        false
# CHECK: selected: true
registers:
  - { id: 0, class: gprb }
  - { id: 1, class: gprb }
body:             |
  bb.0:
    %0(p0) = G_GLOBAL_VALUE @internal_global
    ; DARWIN-MOVT: [[G:%[0-9]+]]:gpr = MOV_ga_pcrel target-flags(arm-nonlazy) @internal_global
    ; DARWIN-NOMOVT: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel target-flags(arm-nonlazy) @internal_global
    ; ELF: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel @internal_global

    %1(s32) = G_LOAD %0(p0) :: (load 4 from @internal_global)
    ; CHECK: [[V:%[0-9]+]]:gpr = LDRi12 [[G]], 0, 14, $noreg :: (load 4 from @internal_global)

    $r0 = COPY %1(s32)
    ; CHECK: $r0 = COPY [[V]]

    BX_RET 14, $noreg, implicit $r0
    ; CHECK: BX_RET 14, $noreg, implicit $r0
...
---
name:            test_external_global
# CHECK-LABEL: name: test_external_global
legalized:       true
regBankSelected: true
selected:        false
# CHECK: selected: true
registers:
  - { id: 0, class: gprb }
  - { id: 1, class: gprb }
body:             |
  bb.0:
    %0(p0) = G_GLOBAL_VALUE @external_global
    ; DARWIN-MOVT: [[G:%[0-9]+]]:gpr = MOV_ga_pcrel_ldr target-flags(arm-nonlazy) @external_global :: (load 4 from got)
    ; DARWIN-NOMOVT: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel_ldr target-flags(arm-nonlazy) @external_global :: (load 4 from got)
    ; ELF: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel_ldr target-flags(arm-got) @external_global :: (load 4 from got)

    %1(s32) = G_LOAD %0(p0) :: (load 4 from @external_global)
    ; CHECK: [[V:%[0-9]+]]:gpr = LDRi12 [[G]], 0, 14, $noreg :: (load 4 from @external_global)

    $r0 = COPY %1(s32)
    ; CHECK: $r0 = COPY [[V]]

    BX_RET 14, $noreg, implicit $r0
    ; CHECK: BX_RET 14, $noreg, implicit $r0
...
---
name:            test_internal_constant
# CHECK-LABEL: name: test_internal_constant
legalized:       true
regBankSelected: true
selected:        false
# CHECK: selected: true
registers:
  - { id: 0, class: gprb }
  - { id: 1, class: gprb }
body:             |
  bb.0:
    %0(p0) = G_GLOBAL_VALUE @internal_constant
    ; DARWIN-MOVT: [[G:%[0-9]+]]:gpr = MOV_ga_pcrel target-flags(arm-nonlazy) @internal_constant
    ; DARWIN-NOMOVT: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel target-flags(arm-nonlazy) @internal_constant
    ; ELF: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel @internal_constant

    %1(s32) = G_LOAD %0(p0) :: (load 4 from @internal_constant)
    ; CHECK: [[V:%[0-9]+]]:gpr = LDRi12 [[G]], 0, 14, $noreg :: (load 4 from @internal_constant)

    $r0 = COPY %1(s32)
    ; CHECK: $r0 = COPY [[V]]

    BX_RET 14, $noreg, implicit $r0
    ; CHECK: BX_RET 14, $noreg, implicit $r0
...
---
name:            test_external_constant
# CHECK-LABEL: name: test_external_constant
legalized:       true
regBankSelected: true
selected:        false
# CHECK: selected: true
registers:
  - { id: 0, class: gprb }
  - { id: 1, class: gprb }
body:             |
  bb.0:
    %0(p0) = G_GLOBAL_VALUE @external_constant
    ; DARWIN-MOVT: [[G:%[0-9]+]]:gpr = MOV_ga_pcrel_ldr target-flags(arm-nonlazy) @external_constant :: (load 4 from got)
    ; DARWIN-NOMOVT: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel_ldr target-flags(arm-nonlazy) @external_constant :: (load 4 from got)
    ; ELF: [[G:%[0-9]+]]:gpr = LDRLIT_ga_pcrel_ldr target-flags(arm-got) @external_constant :: (load 4 from got)

    %1(s32) = G_LOAD %0(p0) :: (load 4 from @external_constant)
    ; CHECK: [[V:%[0-9]+]]:gpr = LDRi12 [[G]], 0, 14, $noreg :: (load 4 from @external_constant)

    $r0 = COPY %1(s32)
    ; CHECK: $r0 = COPY [[V]]

    BX_RET 14, $noreg, implicit $r0
    ; CHECK: BX_RET 14, $noreg, implicit $r0
...
