| OLD | NEW |
| 1 ; Test whether we don't mangle external, undefined, global names. This | 1 ; Test whether we don't mangle external, undefined, global names. This |
| 2 ; feature is needed for cross tests on global initializer relocations. | 2 ; feature is needed for cross tests on global initializer relocations. |
| 3 ; | 3 ; |
| 4 ; Note: This code was generated by compiling subzero/crosstest/test_global.cpp | 4 ; Note: This code was generated by compiling subzero/crosstest/test_global.cpp |
| 5 | 5 |
| 6 ; We use lc2i (rather than p2i) because PNaCl bitcode files do not | 6 ; We use lc2i (rather than p2i) because PNaCl bitcode files do not |
| 7 ; allow externally defined global variables. Hence, this test can only | 7 ; allow externally defined global variables. Hence, this test can only |
| 8 ; work if we read LLVM IR source, and convert to to ICE. | 8 ; work if we read LLVM IR source, and convert to to ICE. |
| 9 | 9 |
| 10 ; REQUIRES: allow_llvm_ir_as_input | 10 ; REQUIRES: allow_llvm_ir_as_input |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 ; CHECK: @ExternName5 = external global <{ }> <{ }>, align 4 | 73 ; CHECK: @ExternName5 = external global <{ }> <{ }>, align 4 |
| 74 ; CROSS: @ExternName5 = external global <{ }> <{ }>, align 4 | 74 ; CROSS: @ExternName5 = external global <{ }> <{ }>, align 4 |
| 75 | 75 |
| 76 define i32 @_Z12getNumArraysv() { | 76 define i32 @_Z12getNumArraysv() { |
| 77 ; CHECK: define i32 @_Z12getNumArraysv() { | 77 ; CHECK: define i32 @_Z12getNumArraysv() { |
| 78 ; CROSS: define i32 @_ZN8Subzero_12getNumArraysEv() { | 78 ; CROSS: define i32 @_ZN8Subzero_12getNumArraysEv() { |
| 79 entry: | 79 entry: |
| 80 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* | 80 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* |
| 81 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 | 81 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 |
| 82 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 | 82 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 |
| 83 %0 = load i32* %NumArraysElements.bc, align 1 | 83 %0 = load i32, i32* %NumArraysElements.bc, align 1 |
| 84 ret i32 %0 | 84 ret i32 %0 |
| 85 } | 85 } |
| 86 | 86 |
| 87 define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { | 87 define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { |
| 88 ; CHECK: define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { | 88 ; CHECK: define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { |
| 89 ; CROSS: define i32 @_ZN8Subzero_8getArrayEjRj(i32 %WhichArray, i32 %Len) { | 89 ; CROSS: define i32 @_ZN8Subzero_8getArrayEjRj(i32 %WhichArray, i32 %Len) { |
| 90 entry: | 90 entry: |
| 91 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* | 91 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* |
| 92 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 | 92 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 |
| 93 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 | 93 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 |
| 94 %0 = load i32* %NumArraysElements.bc, align 1 | 94 %0 = load i32, i32* %NumArraysElements.bc, align 1 |
| 95 %cmp = icmp ugt i32 %0, %WhichArray | 95 %cmp = icmp ugt i32 %0, %WhichArray |
| 96 ; CHECK: %cmp = icmp ugt i32 %__3, %WhichArray | 96 ; CHECK: %cmp = icmp ugt i32 %__3, %WhichArray |
| 97 ; CROSS: %cmp = icmp ugt i32 %__3, %WhichArray | 97 ; CROSS: %cmp = icmp ugt i32 %__3, %WhichArray |
| 98 br i1 %cmp, label %if.end, label %if.then | 98 br i1 %cmp, label %if.end, label %if.then |
| 99 | 99 |
| 100 if.then: ; preds = %entry | 100 if.then: ; preds = %entry |
| 101 %Len.asptr = inttoptr i32 %Len to i32* | 101 %Len.asptr = inttoptr i32 %Len to i32* |
| 102 ; CHECK: %Len.asptr = i32 %Len | 102 ; CHECK: %Len.asptr = i32 %Len |
| 103 ; CROSS: %Len.asptr = i32 %Len | 103 ; CROSS: %Len.asptr = i32 %Len |
| 104 store i32 -1, i32* %Len.asptr, align 1 | 104 store i32 -1, i32* %Len.asptr, align 1 |
| 105 br label %return | 105 br label %return |
| 106 | 106 |
| 107 if.end: ; preds = %entry | 107 if.end: ; preds = %entry |
| 108 %gep_array = mul i32 %WhichArray, 8 | 108 %gep_array = mul i32 %WhichArray, 8 |
| 109 ; CHECK: %gep_array = mul i32 %WhichArray, 8 | 109 ; CHECK: %gep_array = mul i32 %WhichArray, 8 |
| 110 ; CROSS: %gep_array = mul i32 %WhichArray, 8 | 110 ; CROSS: %gep_array = mul i32 %WhichArray, 8 |
| 111 %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 | 111 %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 |
| 112 ; CHECK: %expanded1 = i32 @Arrays | 112 ; CHECK: %expanded1 = i32 @Arrays |
| 113 ; CROSS: %expanded1 = i32 @Subzero_Arrays | 113 ; CROSS: %expanded1 = i32 @Subzero_Arrays |
| 114 %gep = add i32 %expanded1, %gep_array | 114 %gep = add i32 %expanded1, %gep_array |
| 115 %gep1 = add i32 %gep, 4 | 115 %gep1 = add i32 %gep, 4 |
| 116 %gep1.asptr = inttoptr i32 %gep1 to i32* | 116 %gep1.asptr = inttoptr i32 %gep1 to i32* |
| 117 %1 = load i32* %gep1.asptr, align 1 | 117 %1 = load i32, i32* %gep1.asptr, align 1 |
| 118 %Len.asptr3 = inttoptr i32 %Len to i32* | 118 %Len.asptr3 = inttoptr i32 %Len to i32* |
| 119 ; CHECK: %Len.asptr3 = i32 %Len | 119 ; CHECK: %Len.asptr3 = i32 %Len |
| 120 ; CROSS: %Len.asptr3 = i32 %Len | 120 ; CROSS: %Len.asptr3 = i32 %Len |
| 121 store i32 %1, i32* %Len.asptr3, align 1 | 121 store i32 %1, i32* %Len.asptr3, align 1 |
| 122 %gep_array3 = mul i32 %WhichArray, 8 | 122 %gep_array3 = mul i32 %WhichArray, 8 |
| 123 ; CHECK: %gep_array3 = mul i32 %WhichArray, 8 | 123 ; CHECK: %gep_array3 = mul i32 %WhichArray, 8 |
| 124 ; CROSS: %gep_array3 = mul i32 %WhichArray, 8 | 124 ; CROSS: %gep_array3 = mul i32 %WhichArray, 8 |
| 125 %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 | 125 %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 |
| 126 ; CHECK: %expanded2 = i32 @Arrays | 126 ; CHECK: %expanded2 = i32 @Arrays |
| 127 ; CROSS: %expanded2 = i32 @Subzero_Arrays | 127 ; CROSS: %expanded2 = i32 @Subzero_Arrays |
| 128 %gep4 = add i32 %expanded2, %gep_array3 | 128 %gep4 = add i32 %expanded2, %gep_array3 |
| 129 %gep4.asptr = inttoptr i32 %gep4 to i32* | 129 %gep4.asptr = inttoptr i32 %gep4 to i32* |
| 130 %2 = load i32* %gep4.asptr, align 1 | 130 %2 = load i32, i32* %gep4.asptr, align 1 |
| 131 br label %return | 131 br label %return |
| 132 | 132 |
| 133 return: ; preds = %if.end, %if.then | 133 return: ; preds = %if.end, %if.then |
| 134 %retval.0 = phi i32 [ 0, %if.then ], [ %2, %if.end ] | 134 %retval.0 = phi i32 [ 0, %if.then ], [ %2, %if.end ] |
| 135 ret i32 %retval.0 | 135 ret i32 %retval.0 |
| 136 } | 136 } |
| 137 | 137 |
| 138 define void @_GLOBAL__I_a() { | 138 define void @_GLOBAL__I_a() { |
| 139 ; CHECK: define void @_GLOBAL__I_a() { | 139 ; CHECK: define void @_GLOBAL__I_a() { |
| 140 ; CROSS: define void @Subzero__GLOBAL__I_a() { | 140 ; CROSS: define void @Subzero__GLOBAL__I_a() { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 163 store i32 40, i32* %gep20.asptr, align 1 | 163 store i32 40, i32* %gep20.asptr, align 1 |
| 164 %expanded4 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 164 %expanded4 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 165 ; CHECK: %expanded4 = i32 @_ZL8StructEx | 165 ; CHECK: %expanded4 = i32 @_ZL8StructEx |
| 166 ; CROSS: %expanded4 = i32 @Subzero__ZL8StructEx | 166 ; CROSS: %expanded4 = i32 @Subzero__ZL8StructEx |
| 167 %gep22 = add i32 %expanded4, 16 | 167 %gep22 = add i32 %expanded4, 16 |
| 168 %gep22.asptr = inttoptr i32 %gep22 to i32* | 168 %gep22.asptr = inttoptr i32 %gep22 to i32* |
| 169 store i32 50, i32* %gep22.asptr, align 1 | 169 store i32 50, i32* %gep22.asptr, align 1 |
| 170 %ExternName1.bc = bitcast [4 x i8]* @ExternName1 to i32* | 170 %ExternName1.bc = bitcast [4 x i8]* @ExternName1 to i32* |
| 171 ; CHECK: %ExternName1.bc = bitcast i32 @ExternName1 to i32 | 171 ; CHECK: %ExternName1.bc = bitcast i32 @ExternName1 to i32 |
| 172 ; CROSS: %ExternName1.bc = bitcast i32 @ExternName1 to i32 | 172 ; CROSS: %ExternName1.bc = bitcast i32 @ExternName1 to i32 |
| 173 %0 = load i32* %ExternName1.bc, align 1 | 173 %0 = load i32, i32* %ExternName1.bc, align 1 |
| 174 %expanded6 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 174 %expanded6 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 175 ; CHECK: %expanded6 = i32 @_ZL8StructEx | 175 ; CHECK: %expanded6 = i32 @_ZL8StructEx |
| 176 ; CROSS: %expanded6 = i32 @Subzero__ZL8StructEx | 176 ; CROSS: %expanded6 = i32 @Subzero__ZL8StructEx |
| 177 %gep24 = add i32 %expanded6, 20 | 177 %gep24 = add i32 %expanded6, 20 |
| 178 %gep24.asptr = inttoptr i32 %gep24 to i32* | 178 %gep24.asptr = inttoptr i32 %gep24 to i32* |
| 179 store i32 %0, i32* %gep24.asptr, align 1 | 179 store i32 %0, i32* %gep24.asptr, align 1 |
| 180 %expanded7 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 180 %expanded7 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 181 ; CHECK: %expanded7 = i32 @_ZL8StructEx | 181 ; CHECK: %expanded7 = i32 @_ZL8StructEx |
| 182 ; CROSS: %expanded7 = i32 @Subzero__ZL8StructEx | 182 ; CROSS: %expanded7 = i32 @Subzero__ZL8StructEx |
| 183 %gep26 = add i32 %expanded7, 24 | 183 %gep26 = add i32 %expanded7, 24 |
| 184 %gep26.asptr = inttoptr i32 %gep26 to double* | 184 %gep26.asptr = inttoptr i32 %gep26 to double* |
| 185 store double 5.000000e-01, double* %gep26.asptr, align 8 | 185 store double 5.000000e-01, double* %gep26.asptr, align 8 |
| 186 %expanded8 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 186 %expanded8 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 187 ; CHECK: %expanded8 = i32 @_ZL8StructEx | 187 ; CHECK: %expanded8 = i32 @_ZL8StructEx |
| 188 ; CROSS: %expanded8 = i32 @Subzero__ZL8StructEx | 188 ; CROSS: %expanded8 = i32 @Subzero__ZL8StructEx |
| 189 %gep28 = add i32 %expanded8, 32 | 189 %gep28 = add i32 %expanded8, 32 |
| 190 %gep28.asptr = inttoptr i32 %gep28 to double* | 190 %gep28.asptr = inttoptr i32 %gep28 to double* |
| 191 store double 1.500000e+00, double* %gep28.asptr, align 8 | 191 store double 1.500000e+00, double* %gep28.asptr, align 8 |
| 192 %expanded9 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 192 %expanded9 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 193 ; CHECK: %expanded9 = i32 @_ZL8StructEx | 193 ; CHECK: %expanded9 = i32 @_ZL8StructEx |
| 194 ; CROSS: %expanded9 = i32 @Subzero__ZL8StructEx | 194 ; CROSS: %expanded9 = i32 @Subzero__ZL8StructEx |
| 195 %gep30 = add i32 %expanded9, 40 | 195 %gep30 = add i32 %expanded9, 40 |
| 196 %gep30.asptr = inttoptr i32 %gep30 to double* | 196 %gep30.asptr = inttoptr i32 %gep30 to double* |
| 197 store double 2.500000e+00, double* %gep30.asptr, align 8 | 197 store double 2.500000e+00, double* %gep30.asptr, align 8 |
| 198 %ExternName4.bc = bitcast [4 x i8]* @ExternName4 to i32* | 198 %ExternName4.bc = bitcast [4 x i8]* @ExternName4 to i32* |
| 199 ; CHECK: %ExternName4.bc = bitcast i32 @ExternName4 to i32 | 199 ; CHECK: %ExternName4.bc = bitcast i32 @ExternName4 to i32 |
| 200 ; CROSS: %ExternName4.bc = bitcast i32 @ExternName4 to i32 | 200 ; CROSS: %ExternName4.bc = bitcast i32 @ExternName4 to i32 |
| 201 %1 = load i32* %ExternName4.bc, align 1 | 201 %1 = load i32, i32* %ExternName4.bc, align 1 |
| 202 %expanded11 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 202 %expanded11 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 203 ; CHECK: %expanded11 = i32 @_ZL8StructEx | 203 ; CHECK: %expanded11 = i32 @_ZL8StructEx |
| 204 ; CROSS: %expanded11 = i32 @Subzero__ZL8StructEx | 204 ; CROSS: %expanded11 = i32 @Subzero__ZL8StructEx |
| 205 %gep32 = add i32 %expanded11, 48 | 205 %gep32 = add i32 %expanded11, 48 |
| 206 %gep32.asptr = inttoptr i32 %gep32 to i32* | 206 %gep32.asptr = inttoptr i32 %gep32 to i32* |
| 207 store i32 %1, i32* %gep32.asptr, align 1 | 207 store i32 %1, i32* %gep32.asptr, align 1 |
| 208 %ExternName3.bc = bitcast [4 x i8]* @ExternName3 to i32* | 208 %ExternName3.bc = bitcast [4 x i8]* @ExternName3 to i32* |
| 209 ; CHECK: %ExternName3.bc = bitcast i32 @ExternName3 to i32 | 209 ; CHECK: %ExternName3.bc = bitcast i32 @ExternName3 to i32 |
| 210 ; CROSS: %ExternName3.bc = bitcast i32 @ExternName3 to i32 | 210 ; CROSS: %ExternName3.bc = bitcast i32 @ExternName3 to i32 |
| 211 %2 = load i32* %ExternName3.bc, align 1 | 211 %2 = load i32, i32* %ExternName3.bc, align 1 |
| 212 %expanded13 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 212 %expanded13 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 213 ; CHECK: %expanded13 = i32 @_ZL8StructEx | 213 ; CHECK: %expanded13 = i32 @_ZL8StructEx |
| 214 ; CROSS: %expanded13 = i32 @Subzero__ZL8StructEx | 214 ; CROSS: %expanded13 = i32 @Subzero__ZL8StructEx |
| 215 %gep34 = add i32 %expanded13, 52 | 215 %gep34 = add i32 %expanded13, 52 |
| 216 %gep34.asptr = inttoptr i32 %gep34 to i32* | 216 %gep34.asptr = inttoptr i32 %gep34 to i32* |
| 217 store i32 %2, i32* %gep34.asptr, align 1 | 217 store i32 %2, i32* %gep34.asptr, align 1 |
| 218 %expanded14 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 218 %expanded14 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 219 ; CHECK: %expanded14 = i32 @_ZL8StructEx | 219 ; CHECK: %expanded14 = i32 @_ZL8StructEx |
| 220 ; CROSS: %expanded14 = i32 @Subzero__ZL8StructEx | 220 ; CROSS: %expanded14 = i32 @Subzero__ZL8StructEx |
| 221 %gep36 = add i32 %expanded14, 56 | 221 %gep36 = add i32 %expanded14, 56 |
| 222 %gep36.asptr = inttoptr i32 %gep36 to i32* | 222 %gep36.asptr = inttoptr i32 %gep36 to i32* |
| 223 store i32 1000, i32* %gep36.asptr, align 1 | 223 store i32 1000, i32* %gep36.asptr, align 1 |
| 224 %expanded15 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 224 %expanded15 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 225 ; CHECK: %expanded15 = i32 @_ZL8StructEx | 225 ; CHECK: %expanded15 = i32 @_ZL8StructEx |
| 226 ; CROSS: %expanded15 = i32 @Subzero__ZL8StructEx | 226 ; CROSS: %expanded15 = i32 @Subzero__ZL8StructEx |
| 227 %gep38 = add i32 %expanded15, 60 | 227 %gep38 = add i32 %expanded15, 60 |
| 228 %gep38.asptr = inttoptr i32 %gep38 to i32* | 228 %gep38.asptr = inttoptr i32 %gep38 to i32* |
| 229 store i32 1010, i32* %gep38.asptr, align 1 | 229 store i32 1010, i32* %gep38.asptr, align 1 |
| 230 %expanded16 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 230 %expanded16 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 231 ; CHECK: %expanded16 = i32 @_ZL8StructEx | 231 ; CHECK: %expanded16 = i32 @_ZL8StructEx |
| 232 ; CROSS: %expanded16 = i32 @Subzero__ZL8StructEx | 232 ; CROSS: %expanded16 = i32 @Subzero__ZL8StructEx |
| 233 %gep40 = add i32 %expanded16, 64 | 233 %gep40 = add i32 %expanded16, 64 |
| 234 %gep40.asptr = inttoptr i32 %gep40 to i32* | 234 %gep40.asptr = inttoptr i32 %gep40 to i32* |
| 235 store i32 1020, i32* %gep40.asptr, align 1 | 235 store i32 1020, i32* %gep40.asptr, align 1 |
| 236 %ExternName2.bc = bitcast [4 x i8]* @ExternName2 to i32* | 236 %ExternName2.bc = bitcast [4 x i8]* @ExternName2 to i32* |
| 237 ; CHECK: %ExternName2.bc = bitcast i32 @ExternName2 to i32 | 237 ; CHECK: %ExternName2.bc = bitcast i32 @ExternName2 to i32 |
| 238 ; CROSS: %ExternName2.bc = bitcast i32 @ExternName2 to i32 | 238 ; CROSS: %ExternName2.bc = bitcast i32 @ExternName2 to i32 |
| 239 %3 = load i32* %ExternName2.bc, align 1 | 239 %3 = load i32, i32* %ExternName2.bc, align 1 |
| 240 %expanded18 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 240 %expanded18 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 241 ; CHECK: %expanded18 = i32 @_ZL8StructEx | 241 ; CHECK: %expanded18 = i32 @_ZL8StructEx |
| 242 ; CROSS: %expanded18 = i32 @Subzero__ZL8StructEx | 242 ; CROSS: %expanded18 = i32 @Subzero__ZL8StructEx |
| 243 %gep42 = add i32 %expanded18, 68 | 243 %gep42 = add i32 %expanded18, 68 |
| 244 %gep42.asptr = inttoptr i32 %gep42 to i32* | 244 %gep42.asptr = inttoptr i32 %gep42 to i32* |
| 245 store i32 %3, i32* %gep42.asptr, align 1 | 245 store i32 %3, i32* %gep42.asptr, align 1 |
| 246 %ExternName5.bc = bitcast [4 x i8]* @ExternName5 to i32* | 246 %ExternName5.bc = bitcast [4 x i8]* @ExternName5 to i32* |
| 247 ; CHECK: %ExternName5.bc = bitcast i32 @ExternName5 to i32 | 247 ; CHECK: %ExternName5.bc = bitcast i32 @ExternName5 to i32 |
| 248 ; CROSS: %ExternName5.bc = bitcast i32 @ExternName5 to i32 | 248 ; CROSS: %ExternName5.bc = bitcast i32 @ExternName5 to i32 |
| 249 %4 = load i32* %ExternName5.bc, align 1 | 249 %4 = load i32, i32* %ExternName5.bc, align 1 |
| 250 %expanded20 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 250 %expanded20 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
| 251 ; CHECK: %expanded20 = i32 @_ZL8StructEx | 251 ; CHECK: %expanded20 = i32 @_ZL8StructEx |
| 252 ; CROSS: %expanded20 = i32 @Subzero__ZL8StructEx | 252 ; CROSS: %expanded20 = i32 @Subzero__ZL8StructEx |
| 253 %gep44 = add i32 %expanded20, 72 | 253 %gep44 = add i32 %expanded20, 72 |
| 254 %gep44.asptr = inttoptr i32 %gep44 to i32* | 254 %gep44.asptr = inttoptr i32 %gep44 to i32* |
| 255 store i32 %4, i32* %gep44.asptr, align 1 | 255 store i32 %4, i32* %gep44.asptr, align 1 |
| 256 ret void | 256 ret void |
| 257 } | 257 } |
| 258 | 258 |
| 259 define i32 @nacl_tp_tdb_offset(i32) { | 259 define i32 @nacl_tp_tdb_offset(i32) { |
| 260 entry: | 260 entry: |
| 261 ret i32 0 | 261 ret i32 0 |
| 262 } | 262 } |
| 263 | 263 |
| 264 define i32 @nacl_tp_tls_offset(i32 %size) { | 264 define i32 @nacl_tp_tls_offset(i32 %size) { |
| 265 entry: | 265 entry: |
| 266 %result = sub i32 0, %size | 266 %result = sub i32 0, %size |
| 267 ret i32 %result | 267 ret i32 %result |
| 268 } | 268 } |
| OLD | NEW |