# RUN: llc -mtriple=i386-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=X32ALL --check-prefix=X32
# RUN: llc -mtriple=x86_64-linux-gnux32 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=X32ALL --check-prefix=X32ABI

--- |

  @g_int = dso_local global i32 0, align 4

  define dso_local void @test_global_ptrv() {
  entry:
    store i32* @g_int, i32** undef
    ret void
  }

  define dso_local i32 @test_global_valv() {
  entry:
    %0 = load i32, i32* @g_int, align 4
    ret i32 %0
  }

...
---
name:            test_global_ptrv
# CHECK-LABEL: name:  test_global_ptrv
alignment:       16
legalized:       true
regBankSelected: true
# X32:                 registers:
# X32-NEXT:              - { id: 0, class: gr32, preferred-register: '' }
# X32-NEXT:              - { id: 1, class: gr32, preferred-register: '' }
#
# X32ABI:              registers:
# X32ABI-NEXT:           - { id: 0, class: low32_addr_access, preferred-register: '' }
# X32ABI-NEXT:           - { id: 1, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
# X32:                     %0:gr32 = IMPLICIT_DEF
# X32-NEXT:                %1:gr32 = LEA32r $noreg, 1, $noreg, @g_int, $noreg
# X32-NEXT:                MOV32mr %0, 1, $noreg, 0, $noreg, %1 :: (store 4 into `i32** undef`)
# X32-NEXT:                RET 0
#
# X32ABI:                  %0:low32_addr_access = IMPLICIT_DEF
# X32ABI-NEXT:             %1:gr32 = LEA64_32r $noreg, 1, $noreg, @g_int, $noreg
# X32ABI-NEXT:             MOV32mr %0, 1, $noreg, 0, $noreg, %1 :: (store 4 into `i32** undef`)
# X32ABI-NEXT:             RET 0
body:             |
  bb.1.entry:
    liveins: $rdi

    %0(p0) = IMPLICIT_DEF
    %1(p0) = G_GLOBAL_VALUE @g_int
    G_STORE %1(p0), %0(p0) :: (store 4 into `i32** undef`)
    RET 0

...
---
name:            test_global_valv
# CHECK-LABEL: name:  test_global_valv
alignment:       16
legalized:       true
regBankSelected: true
# X32ALL:              registers:
# X32ALL-NEXT:           - { id: 0, class: gr32, preferred-register: '' }
# X32ALL-NEXT:           - { id: 1, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
# X32:                     %1:gr32 = LEA32r $noreg, 1, $noreg, @g_int, $noreg
# X32-NEXT:                %0:gr32 = MOV32rm %1, 1, $noreg, 0, $noreg :: (load 4 from @g_int)
# X32-NEXT:                $eax = COPY %0
# X32-NEXT:                RET 0, implicit $eax
#
# X32ABI:                  %1:gr32 = LEA64_32r $noreg, 1, $noreg, @g_int, $noreg
# X32ABI-NEXT:             %0:gr32 = MOV32rm %1, 1, $noreg, 0, $noreg :: (load 4 from @g_int)
# X32ABI-NEXT:             $eax = COPY %0
# X32ABI-NEXT:             RET 0, implicit $eax
body:             |
  bb.1.entry:
    %1(p0) = G_GLOBAL_VALUE @g_int
    %0(s32) = G_LOAD %1(p0) :: (load 4 from @g_int)
    $eax = COPY %0(s32)
    RET 0, implicit $eax

...
