; Test whether we don't mangle external, undefined, global names. This
; feature is needed for cross tests on global initializer relocations.
;
; Note: This code was generated by compiling subzero/crosstest/test_global.cpp

; We use lc2i (rather than p2i) because PNaCl bitcode files do not
; allow externally defined global variables. Hence, this test can only
; work if we read LLVM IR source, and convert to to ICE.

; REQUIRES: allow_llvm_ir_as_input
; RUN: %lc2i -i %s --insts --args --allow-uninitialized-globals | FileCheck %s
; RUN: %lc2i -i %s --insts --args --allow-uninitialized-globals \
; RUN:       -prefix Subzero_ | FileCheck --check-prefix=CROSS %s

@ArrayInitPartial = internal global [40 x i8] c"<\00\00\00F\00\00\00P\00\00\00Z\00\00\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 4

; CHECK: @ArrayInitPartial = internal global [40 x i8] c"<\00\00\00F\00\00\00P\00\00\00Z\00\00\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 4
; CROSS: @Subzero_ArrayInitPartial = internal global [40 x i8] c"<\00\00\00F\00\00\00P\00\00\00Z\00\00\00d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 4

@ArrayInitFull = internal global [20 x i8] c"\0A\00\00\00\14\00\00\00\1E\00\00\00(\00\00\002\00\00\00", align 4

; CHECK: @ArrayInitFull = internal global [20 x i8] c"\0A\00\00\00\14\00\00\00\1E\00\00\00(\00\00\002\00\00\00", align 4
; CROSS: @Subzero_ArrayInitFull = internal global [20 x i8] c"\0A\00\00\00\14\00\00\00\1E\00\00\00(\00\00\002\00\00\00", align 4

@NumArraysElements = internal global [4 x i8] c"\06\00\00\00", align 4

; CHECK: @NumArraysElements = internal global [4 x i8] c"\06\00\00\00", align 4
; CROSS: @Subzero_NumArraysElements = internal global [4 x i8] c"\06\00\00\00", align 4

@Arrays = internal constant <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8] }> <{ i32 ptrtoint ([40 x i8]* @ArrayInitPartial to i32), [4 x i8] c"(\00\00\00", i32 ptrtoint ([20 x i8]* @ArrayInitFull to i32), [4 x i8] c"\14\00\00\00", i32 ptrtoint ([12 x i8]* @_ZL10ArrayConst to i32), [4 x i8] c"\0C\00\00\00", i32 ptrtoint ([80 x i8]* @_ZL11ArrayDouble to i32), [4 x i8] c"P\00\00\00", i32 add (i32 ptrtoint ([40 x i8]* @ArrayInitPartial to i32), i32 8), [4 x i8] c" \00\00\00", i32 ptrtoint ([80 x i8]* @_ZL8StructEx to i32), [4 x i8] c"P\00\00\00" }>, align 4

; CHECK: @Arrays = internal constant <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8] }> <{ i32 ptrtoint ([40 x i8]* @ArrayInitPartial to i32), [4 x i8] c"(\00\00\00", i32 ptrtoint ([20 x i8]* @ArrayInitFull to i32), [4 x i8] c"\14\00\00\00", i32 ptrtoint ([12 x i8]* @_ZL10ArrayConst to i32), [4 x i8] c"\0C\00\00\00", i32 ptrtoint ([80 x i8]* @_ZL11ArrayDouble to i32), [4 x i8] c"P\00\00\00", i32 add (i32 ptrtoint ([40 x i8]* @ArrayInitPartial to i32), i32 8), [4 x i8] c" \00\00\00", i32 ptrtoint ([80 x i8]* @_ZL8StructEx to i32), [4 x i8] c"P\00\00\00" }>, align 4
; CROSS: @Subzero_Arrays = internal constant <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8] }> <{ i32 ptrtoint ([40 x i8]* @Subzero_ArrayInitPartial to i32), [4 x i8] c"(\00\00\00", i32 ptrtoint ([20 x i8]* @Subzero_ArrayInitFull to i32), [4 x i8] c"\14\00\00\00", i32 ptrtoint ([12 x i8]* @Subzero__ZL10ArrayConst to i32), [4 x i8] c"\0C\00\00\00", i32 ptrtoint ([80 x i8]* @Subzero__ZL11ArrayDouble to i32), [4 x i8] c"P\00\00\00", i32 add (i32 ptrtoint ([40 x i8]* @Subzero_ArrayInitPartial to i32), i32 8), [4 x i8] c" \00\00\00", i32 ptrtoint ([80 x i8]* @Subzero__ZL8StructEx to i32), [4 x i8] c"P\00\00\00" }>, align 4


@_ZL10ArrayConst = internal constant [12 x i8] c"\F6\FF\FF\FF\EC\FF\FF\FF\E2\FF\FF\FF", align 4

; CHECK: @_ZL10ArrayConst = internal constant [12 x i8] c"\F6\FF\FF\FF\EC\FF\FF\FF\E2\FF\FF\FF", align 4
; CROSS: @Subzero__ZL10ArrayConst = internal constant [12 x i8] c"\F6\FF\FF\FF\EC\FF\FF\FF\E2\FF\FF\FF", align 4

@_ZL11ArrayDouble = internal global [80 x i8] c"\00\00\00\00\00\00\E0?\00\00\00\00\00\00\F8?\00\00\00\00\00\00\04@\00\00\00\00\00\00\0C@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 8

; CHECK: @_ZL11ArrayDouble = internal global [80 x i8] c"\00\00\00\00\00\00\E0?\00\00\00\00\00\00\F8?\00\00\00\00\00\00\04@\00\00\00\00\00\00\0C@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 8
; CROSS: @Subzero__ZL11ArrayDouble = internal global [80 x i8] c"\00\00\00\00\00\00\E0?\00\00\00\00\00\00\F8?\00\00\00\00\00\00\04@\00\00\00\00\00\00\0C@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 8

@_ZL8StructEx = internal global [80 x i8] zeroinitializer, align 8

; CHECK: @_ZL8StructEx = internal global [80 x i8] zeroinitializer, align 8
; CROSS: @Subzero__ZL8StructEx = internal global [80 x i8] zeroinitializer, align 8

@ExternName1 = external global [4 x i8], align 4

; CHECK: @ExternName1 = external global <{  }> <{  }>, align 4
; CROSS: @ExternName1 = external global <{  }> <{  }>, align 4

@ExternName4 = external global [4 x i8], align 4

; CHECK: @ExternName4 = external global <{  }> <{  }>, align 4
; CROSS: @ExternName4 = external global <{  }> <{  }>, align 4

@ExternName3 = external global [4 x i8], align 4

; CHECK: @ExternName3 = external global <{  }> <{  }>, align 4
; CROSS: @ExternName3 = external global <{  }> <{  }>, align 4

@ExternName2 = external global [4 x i8], align 4

; CHECK: @ExternName2 = external global <{  }> <{  }>, align 4
; CROSS: @ExternName2 = external global <{  }> <{  }>, align 4

@ExternName5 = external global [4 x i8], align 4

; CHECK: @ExternName5 = external global <{  }> <{  }>, align 4
; CROSS: @ExternName5 = external global <{  }> <{  }>, align 4

define i32 @_Z12getNumArraysv() {
; CHECK: define i32 @_Z12getNumArraysv() {
; CROSS: define i32 @_ZN8Subzero_12getNumArraysEv() {
entry:
  %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32*
; CHECK:   %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32
; CROSS:   %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32
  %0 = load i32, i32* %NumArraysElements.bc, align 1
  ret i32 %0
}

define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) {
; CHECK: define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) {
; CROSS: define i32 @_ZN8Subzero_8getArrayEjRj(i32 %WhichArray, i32 %Len) {
entry:
  %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32*
; CHECK:   %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32
; CROSS:   %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32
  %0 = load i32, i32* %NumArraysElements.bc, align 1
  %cmp = icmp ugt i32 %0, %WhichArray
; CHECK:   %cmp = icmp ugt i32 %__3, %WhichArray
; CROSS:   %cmp = icmp ugt i32 %__3, %WhichArray
  br i1 %cmp, label %if.end, label %if.then

if.then:                                          ; preds = %entry
  %Len.asptr = inttoptr i32 %Len to i32*
; CHECK:   %Len.asptr = i32 %Len
; CROSS:   %Len.asptr = i32 %Len
  store i32 -1, i32* %Len.asptr, align 1
  br label %return

if.end:                                           ; preds = %entry
  %gep_array = mul i32 %WhichArray, 8
; CHECK:   %gep_array = mul i32 %WhichArray, 8
; CROSS:   %gep_array = mul i32 %WhichArray, 8
  %expanded1 = ptrtoint <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8] }>* @Arrays to i32
; CHECK:   %expanded1 = i32 @Arrays
; CROSS:   %expanded1 = i32 @Subzero_Arrays
  %gep = add i32 %expanded1, %gep_array
  %gep1 = add i32 %gep, 4
  %gep1.asptr = inttoptr i32 %gep1 to i32*
  %1 = load i32, i32* %gep1.asptr, align 1
  %Len.asptr3 = inttoptr i32 %Len to i32*
; CHECK:   %Len.asptr3 = i32 %Len
; CROSS:   %Len.asptr3 = i32 %Len
  store i32 %1, i32* %Len.asptr3, align 1
  %gep_array3 = mul i32 %WhichArray, 8
; CHECK:   %gep_array3 = mul i32 %WhichArray, 8
; CROSS:   %gep_array3 = mul i32 %WhichArray, 8
  %expanded2 = ptrtoint <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4 x i8] }>* @Arrays to i32
; CHECK:   %expanded2 = i32 @Arrays
; CROSS:   %expanded2 = i32 @Subzero_Arrays
  %gep4 = add i32 %expanded2, %gep_array3
  %gep4.asptr = inttoptr i32 %gep4 to i32*
  %2 = load i32, i32* %gep4.asptr, align 1
  br label %return

return:                                           ; preds = %if.end, %if.then
  %retval.0 = phi i32 [ 0, %if.then ], [ %2, %if.end ]
  ret i32 %retval.0
}

define void @_GLOBAL__I_a() {
; CHECK: define void @_GLOBAL__I_a() {
; CROSS: define void @Subzero__GLOBAL__I_a() {
entry:
  %_ZL8StructEx.bc = bitcast [80 x i8]* @_ZL8StructEx to i32*
; CHECK:   %_ZL8StructEx.bc = bitcast i32 @_ZL8StructEx to i32
; CROSS:   %_ZL8StructEx.bc = bitcast i32 @Subzero__ZL8StructEx to i32
  store i32 10, i32* %_ZL8StructEx.bc, align 1
  %expanded1 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded1 = i32 @_ZL8StructEx
; CROSS:   %expanded1 = i32 @Subzero__ZL8StructEx
  %gep = add i32 %expanded1, 4
  %gep.asptr = inttoptr i32 %gep to i32*
  store i32 20, i32* %gep.asptr, align 1
  %expanded2 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded2 = i32 @_ZL8StructEx
; CROSS:   %expanded2 = i32 @Subzero__ZL8StructEx
  %gep18 = add i32 %expanded2, 8
  %gep18.asptr = inttoptr i32 %gep18 to i32*
  store i32 30, i32* %gep18.asptr, align 1
  %expanded3 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded3 = i32 @_ZL8StructEx
; CROSS:   %expanded3 = i32 @Subzero__ZL8StructEx
  %gep20 = add i32 %expanded3, 12
  %gep20.asptr = inttoptr i32 %gep20 to i32*
  store i32 40, i32* %gep20.asptr, align 1
  %expanded4 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded4 = i32 @_ZL8StructEx
; CROSS:   %expanded4 = i32 @Subzero__ZL8StructEx
  %gep22 = add i32 %expanded4, 16
  %gep22.asptr = inttoptr i32 %gep22 to i32*
  store i32 50, i32* %gep22.asptr, align 1
  %ExternName1.bc = bitcast [4 x i8]* @ExternName1 to i32*
; CHECK:   %ExternName1.bc = bitcast i32 @ExternName1 to i32
; CROSS:   %ExternName1.bc = bitcast i32 @ExternName1 to i32
  %0 = load i32, i32* %ExternName1.bc, align 1
  %expanded6 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded6 = i32 @_ZL8StructEx
; CROSS:   %expanded6 = i32 @Subzero__ZL8StructEx
  %gep24 = add i32 %expanded6, 20
  %gep24.asptr = inttoptr i32 %gep24 to i32*
  store i32 %0, i32* %gep24.asptr, align 1
  %expanded7 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded7 = i32 @_ZL8StructEx
; CROSS:   %expanded7 = i32 @Subzero__ZL8StructEx
  %gep26 = add i32 %expanded7, 24
  %gep26.asptr = inttoptr i32 %gep26 to double*
  store double 5.000000e-01, double* %gep26.asptr, align 8
  %expanded8 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded8 = i32 @_ZL8StructEx
; CROSS:   %expanded8 = i32 @Subzero__ZL8StructEx
  %gep28 = add i32 %expanded8, 32
  %gep28.asptr = inttoptr i32 %gep28 to double*
  store double 1.500000e+00, double* %gep28.asptr, align 8
  %expanded9 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded9 = i32 @_ZL8StructEx
; CROSS:   %expanded9 = i32 @Subzero__ZL8StructEx
  %gep30 = add i32 %expanded9, 40
  %gep30.asptr = inttoptr i32 %gep30 to double*
  store double 2.500000e+00, double* %gep30.asptr, align 8
  %ExternName4.bc = bitcast [4 x i8]* @ExternName4 to i32*
; CHECK:   %ExternName4.bc = bitcast i32 @ExternName4 to i32
; CROSS:   %ExternName4.bc = bitcast i32 @ExternName4 to i32
  %1 = load i32, i32* %ExternName4.bc, align 1
  %expanded11 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded11 = i32 @_ZL8StructEx
; CROSS:   %expanded11 = i32 @Subzero__ZL8StructEx
  %gep32 = add i32 %expanded11, 48
  %gep32.asptr = inttoptr i32 %gep32 to i32*
  store i32 %1, i32* %gep32.asptr, align 1
  %ExternName3.bc = bitcast [4 x i8]* @ExternName3 to i32*
; CHECK:   %ExternName3.bc = bitcast i32 @ExternName3 to i32
; CROSS:   %ExternName3.bc = bitcast i32 @ExternName3 to i32
  %2 = load i32, i32* %ExternName3.bc, align 1
  %expanded13 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded13 = i32 @_ZL8StructEx
; CROSS:   %expanded13 = i32 @Subzero__ZL8StructEx
  %gep34 = add i32 %expanded13, 52
  %gep34.asptr = inttoptr i32 %gep34 to i32*
  store i32 %2, i32* %gep34.asptr, align 1
  %expanded14 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded14 = i32 @_ZL8StructEx
; CROSS:   %expanded14 = i32 @Subzero__ZL8StructEx
  %gep36 = add i32 %expanded14, 56
  %gep36.asptr = inttoptr i32 %gep36 to i32*
  store i32 1000, i32* %gep36.asptr, align 1
  %expanded15 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded15 = i32 @_ZL8StructEx
; CROSS:   %expanded15 = i32 @Subzero__ZL8StructEx
  %gep38 = add i32 %expanded15, 60
  %gep38.asptr = inttoptr i32 %gep38 to i32*
  store i32 1010, i32* %gep38.asptr, align 1
  %expanded16 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded16 = i32 @_ZL8StructEx
; CROSS:   %expanded16 = i32 @Subzero__ZL8StructEx
  %gep40 = add i32 %expanded16, 64
  %gep40.asptr = inttoptr i32 %gep40 to i32*
  store i32 1020, i32* %gep40.asptr, align 1
  %ExternName2.bc = bitcast [4 x i8]* @ExternName2 to i32*
; CHECK:   %ExternName2.bc = bitcast i32 @ExternName2 to i32
; CROSS:   %ExternName2.bc = bitcast i32 @ExternName2 to i32
  %3 = load i32, i32* %ExternName2.bc, align 1
  %expanded18 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded18 = i32 @_ZL8StructEx
; CROSS:   %expanded18 = i32 @Subzero__ZL8StructEx
  %gep42 = add i32 %expanded18, 68
  %gep42.asptr = inttoptr i32 %gep42 to i32*
  store i32 %3, i32* %gep42.asptr, align 1
  %ExternName5.bc = bitcast [4 x i8]* @ExternName5 to i32*
; CHECK:   %ExternName5.bc = bitcast i32 @ExternName5 to i32
; CROSS:   %ExternName5.bc = bitcast i32 @ExternName5 to i32
  %4 = load i32, i32* %ExternName5.bc, align 1
  %expanded20 = ptrtoint [80 x i8]* @_ZL8StructEx to i32
; CHECK:   %expanded20 = i32 @_ZL8StructEx
; CROSS:   %expanded20 = i32 @Subzero__ZL8StructEx
  %gep44 = add i32 %expanded20, 72
  %gep44.asptr = inttoptr i32 %gep44 to i32*
  store i32 %4, i32* %gep44.asptr, align 1
  ret void
}

define i32 @nacl_tp_tdb_offset(i32) {
entry:
  ret i32 0
}

define i32 @nacl_tp_tls_offset(i32 %size) {
entry:
  %result = sub i32 0, %size
  ret i32 %result
}
