; RUN: llc < %s --mtriple=wasm32-unknown-emscripten -asm-verbose=false -relocation-model=pic -fast-isel -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s -check-prefixes=PIC,CHECK -DPTR=i32
; RUN: llc < %s --mtriple=wasm32-unknown-emscripten -asm-verbose=false -relocation-model=pic -fast-isel=false -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s -check-prefixes=PIC,CHECK -DPTR=i32
; RUN: llc < %s --mtriple=wasm64-unknown-emscripten -asm-verbose=false -relocation-model=pic -fast-isel -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s -check-prefixes=PIC,CHECK -DPTR=i64
; RUN: llc < %s --mtriple=wasm64-unknown-emscripten -asm-verbose=false -relocation-model=pic -fast-isel=false -wasm-disable-explicit-locals -wasm-keep-registers | FileCheck %s -check-prefixes=PIC,CHECK -DPTR=i64

; Test that globals assemble as expected with -fPIC.
; We test here both with and without fast-isel.

@hidden_global         = external hidden global i32
@hidden_global_array   = external hidden global [10 x i32]
@external_global       = external        global i32
@external_global_array = external        global [10 x i32]

; PIC: .globaltype __memory_base, [[PTR]]

declare i32 @foo();

; For hidden symbols PIC code needs to offset all loads and stores
; by the value of the __memory_base global

define i32 @load_hidden_global() {
; CHECK-LABEL: load_hidden_global:
; PIC:         global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
; PIC-NEXT:    [[PTR]].const $push[[L1:[0-9]+]]=, hidden_global@MBREL{{$}}
; PIC-NEXT:    [[PTR]].add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT:    i32.load $push[[L3:[0-9]+]]=, 0($pop[[L2]]){{$}}
; CHECK-NEXT:    end_function

  %1 = load i32, i32* @hidden_global
  ret i32 %1
}

define i32 @load_hidden_global_offset() {
; CHECK-LABEL: load_hidden_global_offset:
; PIC:         global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
; PIC-NEXT:    [[PTR]].const $push[[L1:[0-9]+]]=, hidden_global_array@MBREL{{$}}
; PIC-NEXT:    [[PTR]].add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1:[0-9]+]]{{$}}
; PIC-NEXT:    [[PTR]].const $push[[L3:[0-9]+]]=, 20{{$}}
; PIC-NEXT:    [[PTR]].add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]{{$}}
; PIC-NEXT:    i32.load $push{{[0-9]+}}=, 0($pop[[L4]]){{$}}
; CHECK-NEXT:  end_function

  %1 = getelementptr [10 x i32], [10 x i32]* @hidden_global_array, i32 0, i32 5
  %2 = load i32, i32* %1
  ret i32 %2
}

; Store to a hidden global

define void @store_hidden_global(i32 %n) {
; CHECK-LABEL: store_hidden_global:
; PIC:         global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
; PIC-NEXT:    [[PTR]].const $push[[L1:[0-9]+]]=, hidden_global@MBREL{{$}}
; PIC-NEXT:    [[PTR]].add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT:    i32.store 0($pop[[L2]]), $0{{$}}
; CHECK-NEXT:    end_function

  store i32 %n, i32* @hidden_global
  ret void
}

define void @store_hidden_global_offset(i32 %n) {
; CHECK-LABEL: store_hidden_global_offset:
; PIC:         global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
; PIC-NEXT:    [[PTR]].const $push[[L1:[0-9]+]]=, hidden_global_array@MBREL{{$}}
; PIC-NEXT:    [[PTR]].add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT:    [[PTR]].const $push[[L3:[0-9]+]]=, 20{{$}}
; PIC-NEXT:    [[PTR]].add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]{{$}}
; PIC-NEXT:    i32.store 0($pop[[L4]]), $0{{$}}

; CHECK-NEXT:   end_function

  %1 = getelementptr [10 x i32], [10 x i32]* @hidden_global_array, i32 0, i32 5
  store i32 %n, i32* %1
  ret void
}

; For non-hidden globals PIC code has to load the address from a wasm global
; using the @GOT relocation type.


define i32 @load_external_global() {
; CHECK-LABEL:  load_external_global:
; PIC:          global.get $push[[L0:[0-9]+]]=, external_global@GOT{{$}}
; PIC-NEXT:     i32.load $push{{[0-9]+}}=, 0($pop[[L0]]){{$}}

; CHECK-NEXT:   end_function

  %1 = load i32, i32* @external_global
  ret i32 %1
}

define i32 @load_external_global_offset() {
; CHECK-LABEL:  load_external_global_offset:
; PIC:          global.get $push[[L0:[0-9]+]]=, external_global_array@GOT{{$}}
; PIC-NEXT:     [[PTR]].const $push[[L1:[0-9]+]]=, 20{{$}}
; PIC-NEXT:     [[PTR]].add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT:     i32.load $push{{[0-9]+}}=, 0($pop[[L2]]){{$}}

; CHECK-NEXT:   end_function

  %1 = getelementptr [10 x i32], [10 x i32]* @external_global_array, i32 0, i32 5
  %2 = load i32, i32* %1
  ret i32 %2
}

; Store to a non-hidden global via the wasm global.

define void @store_external_global(i32 %n) {
; CHECK-LABEL:  store_external_global:
; PIC:          global.get $push[[L0:[0-9]+]]=, external_global@GOT{{$}}
; PIC-NEXT:     i32.store 0($pop[[L0]]), $0{{$}}

; CHECK-NEXT:   end_function

  store i32 %n, i32* @external_global
  ret void
}

define void @store_external_global_offset(i32 %n) {
; CHECK-LABEL:  store_external_global_offset:
; PIC:          global.get $push[[L0:[0-9]+]]=, external_global_array@GOT{{$}}
; PIC-NEXT:     [[PTR]].const $push[[L1:[0-9]+]]=, 20{{$}}
; PIC-NEXT:     [[PTR]].add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT:     i32.store 0($pop[[L2]]), $0{{$}}

; CHECK-NEXT:   end_function

  %1 = getelementptr [10 x i32], [10 x i32]* @external_global_array, i32 0, i32 5
  store i32 %n, i32* %1
  ret void
}
