Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Side by Side Diff: tests_lit/llvm2ice_tests/elf_container.ll

Issue 837393005: Subzero: Write float/double constant pools directly to the ELF file. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: use WriteAmt everywhere Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTranslator.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Tests that we generate an ELF container with fields that make sense, 1 ; Tests that we generate an ELF container with fields that make sense,
2 ; cross-validating against llvm-mc. 2 ; cross-validating against llvm-mc.
3 3
4 ; For the integrated ELF writer, we can't pipe the output because we need 4 ; For the integrated ELF writer, we can't pipe the output because we need
5 ; to seek backward and patch up the file headers. So, use a temporary file. 5 ; to seek backward and patch up the file headers. So, use a temporary file.
6 ; RUN: %p2i -i %s --args -O2 --verbose none -elf-writer -o %t \ 6 ; RUN: %p2i -i %s --args -O2 --verbose none -elf-writer -o %t \
7 ; RUN: && llvm-readobj -file-headers -sections -section-data \ 7 ; RUN: && llvm-readobj -file-headers -sections -section-data \
8 ; RUN: -relocations -symbols %t | FileCheck %s 8 ; RUN: -relocations -symbols %t | FileCheck %s
9 9
10 ; RUN: %p2i -i %s --args -O2 --verbose none \ 10 ; RUN: %p2i -i %s --args -O2 --verbose none \
(...skipping 20 matching lines...) Expand all
31 @const_short_zero = internal constant [2 x i8] zeroinitializer, align 2 31 @const_short_zero = internal constant [2 x i8] zeroinitializer, align 2
32 @const_double_zero = internal constant [8 x i8] zeroinitializer, align 8 32 @const_double_zero = internal constant [8 x i8] zeroinitializer, align 8
33 33
34 34
35 @addend_ptr = internal global i32 add (i32 ptrtoint (i32* @ptr to i32), i32 128) 35 @addend_ptr = internal global i32 add (i32 ptrtoint (i32* @ptr to i32), i32 128)
36 @const_addend_ptr = internal constant i32 add (i32 ptrtoint (i32* @ptr to i32), i32 64) 36 @const_addend_ptr = internal constant i32 add (i32 ptrtoint (i32* @ptr to i32), i32 64)
37 37
38 ; Use float/double constants to test constant pools. 38 ; Use float/double constants to test constant pools.
39 define internal float @returnFloatConst() { 39 define internal float @returnFloatConst() {
40 entry: 40 entry:
41 %f = fadd float 0x3FF3AE1480000000, 0x3FF3AE1400000000 41 %f = fadd float -0.0, 0x3FF3AE1400000000
42 ret float %f 42 ret float %f
43 } 43 }
44 44
45 define internal double @returnDoubleConst() { 45 define internal double @returnDoubleConst() {
46 entry: 46 entry:
47 %d = fadd double 1.230000e+00, 3.210000e+00 47 %d = fadd double 0x7FFFFFFFFFFFFFFFF, 0xFFF7FFFFFFFFFFFF
48 ret double %d 48 %d2 = fadd double %d, 0xFFF8000000000003
49 ret double %d2
49 } 50 }
50 51
51 define internal void @test_memcpy(i32 %iptr_dst, i32 %len) { 52 define internal void @test_memcpy(i32 %iptr_dst, i32 %len) {
52 entry: 53 entry:
53 %dst = inttoptr i32 %iptr_dst to i8* 54 %dst = inttoptr i32 %iptr_dst to i8*
54 %src = bitcast [7 x i8]* @bytes to i8* 55 %src = bitcast [7 x i8]* @bytes to i8*
55 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %src, 56 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dst, i8* %src,
56 i32 %len, i32 1, i1 false) 57 i32 %len, i32 1, i1 false)
57 ret void 58 ret void
58 } 59 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 ; CHECK: Info: 0 135 ; CHECK: Info: 0
135 ; CHECK: AddressAlignment: 32 136 ; CHECK: AddressAlignment: 32
136 ; CHECK: EntrySize: 0 137 ; CHECK: EntrySize: 0
137 ; CHECK: SectionData ( 138 ; CHECK: SectionData (
138 ; There's probably halt padding (0xF4) in there somewhere. 139 ; There's probably halt padding (0xF4) in there somewhere.
139 ; CHECK: {{.*}}F4 140 ; CHECK: {{.*}}F4
140 ; CHECK: ) 141 ; CHECK: )
141 ; CHECK: } 142 ; CHECK: }
142 ; CHECK: Section { 143 ; CHECK: Section {
143 ; CHECK: Index: {{[1-9][0-9]*}} 144 ; CHECK: Index: {{[1-9][0-9]*}}
145 ; CHECK: Name: .rodata.cst4
146 ; CHECK: Type: SHT_PROGBITS
147 ; CHECK: Flags [ (0x12)
148 ; CHECK: SHF_ALLOC
149 ; CHECK: SHF_MERGE
150 ; CHECK: ]
151 ; CHECK: Address: 0x0
152 ; CHECK: Offset: 0x{{[1-9A-F][0-9A-F]*}}
153 ; CHECK: Size: 8
154 ; CHECK: Link: 0
155 ; CHECK: Info: 0
156 ; CHECK: AddressAlignment: 4
157 ; CHECK: EntrySize: 4
158 ; CHECK: SectionData (
159 ; CHECK: 0000: A0709D3F 00000080
160 ; CHECK: )
161 ; CHECK: }
162 ; CHECK: Section {
163 ; CHECK: Index: {{[1-9][0-9]*}}
164 ; CHECK: Name: .rodata.cst8
165 ; CHECK: Type: SHT_PROGBITS
166 ; CHECK: Flags [ (0x12)
167 ; CHECK: SHF_ALLOC
168 ; CHECK: SHF_MERGE
169 ; CHECK: ]
170 ; CHECK: Address: 0x0
171 ; CHECK: Offset: 0x{{[1-9A-F][0-9A-F]*}}
172 ; CHECK: Size: 24
173 ; CHECK: Link: 0
174 ; CHECK: Info: 0
175 ; CHECK: AddressAlignment: 8
176 ; CHECK: EntrySize: 8
177 ; CHECK: SectionData (
178 ; CHECK: 0000: 03000000 0000F8FF FFFFFFFF FFFFF7FF
179 ; CHECK: 0010: FFFFFFFF FFFFFFFF
180 ; CHECK: )
181 ; CHECK: }
182 ; CHECK: Section {
183 ; CHECK: Index: {{[1-9][0-9]*}}
144 ; CHECK: Name: .shstrtab 184 ; CHECK: Name: .shstrtab
145 ; CHECK: Type: SHT_STRTAB 185 ; CHECK: Type: SHT_STRTAB
146 ; CHECK: Flags [ (0x0) 186 ; CHECK: Flags [ (0x0)
147 ; CHECK: ] 187 ; CHECK: ]
148 ; CHECK: Address: 0x0 188 ; CHECK: Address: 0x0
149 ; CHECK: Offset: 0x{{[1-9A-F][0-9A-F]*}} 189 ; CHECK: Offset: 0x{{[1-9A-F][0-9A-F]*}}
150 ; CHECK: Size: {{[1-9][0-9]*}} 190 ; CHECK: Size: {{[1-9][0-9]*}}
151 ; CHECK: Link: 0 191 ; CHECK: Link: 0
152 ; CHECK: Info: 0 192 ; CHECK: Info: 0
153 ; CHECK: AddressAlignment: 1 193 ; CHECK: AddressAlignment: 1
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 ; CHECK-NEXT: Name: (0) 236 ; CHECK-NEXT: Name: (0)
197 ; CHECK-NEXT: Value: 0x0 237 ; CHECK-NEXT: Value: 0x0
198 ; CHECK-NEXT: Size: 0 238 ; CHECK-NEXT: Size: 0
199 ; CHECK-NEXT: Binding: Local 239 ; CHECK-NEXT: Binding: Local
200 ; CHECK-NEXT: Type: None 240 ; CHECK-NEXT: Type: None
201 ; CHECK-NEXT: Other: 0 241 ; CHECK-NEXT: Other: 0
202 ; CHECK-NEXT: Section: Undefined (0x0) 242 ; CHECK-NEXT: Section: Undefined (0x0)
203 ; CHECK-NEXT: } 243 ; CHECK-NEXT: }
204 ; TODO: fill in the data symbols. 244 ; TODO: fill in the data symbols.
205 ; CHECK: Symbol { 245 ; CHECK: Symbol {
246 ; CHECK: Name: .L$double$0
247 ; CHECK-NEXT: Value: 0x10
248 ; CHECK-NEXT: Size: 0
249 ; CHECK-NEXT: Binding: Local (0x0)
250 ; CHECK-NEXT: Type: None (0x0)
251 ; CHECK-NEXT: Other: 0
252 ; CHECK-NEXT: Section: .rodata.cst8
253 ; CHECK-NEXT: }
254 ; CHECK: Symbol {
255 ; CHECK: Name: .L$double$2
256 ; CHECK-NEXT: Value: 0x0
257 ; CHECK-NEXT: Size: 0
258 ; CHECK-NEXT: Binding: Local (0x0)
259 ; CHECK-NEXT: Type: None (0x0)
260 ; CHECK-NEXT: Other: 0
261 ; CHECK-NEXT: Section: .rodata.cst8
262 ; CHECK-NEXT: }
263 ; CHECK: Symbol {
264 ; CHECK: Name: .L$float$0
265 ; CHECK-NEXT: Value: 0x4
266 ; CHECK-NEXT: Size: 0
267 ; CHECK-NEXT: Binding: Local (0x0)
268 ; CHECK-NEXT: Type: None (0x0)
269 ; CHECK-NEXT: Other: 0
270 ; CHECK-NEXT: Section: .rodata.cst4
271 ; CHECK-NEXT: }
272 ; CHECK: Symbol {
273 ; CHECK: Name: .L$float$1
274 ; CHECK-NEXT: Value: 0x0
275 ; CHECK-NEXT: Size: 0
276 ; CHECK-NEXT: Binding: Local (0x0)
277 ; CHECK-NEXT: Type: None (0x0)
278 ; CHECK-NEXT: Other: 0
279 ; CHECK-NEXT: Section: .rodata.cst4
280 ; CHECK-NEXT: }
281 ; CHECK: Symbol {
206 ; CHECK: Name: returnDoubleConst 282 ; CHECK: Name: returnDoubleConst
207 ; CHECK-NEXT: Value: 0x{{[1-9A-F][0-9A-F]*}} 283 ; CHECK-NEXT: Value: 0x{{[1-9A-F][0-9A-F]*}}
208 ; CHECK-NEXT: Size: 0 284 ; CHECK-NEXT: Size: 0
209 ; CHECK-NEXT: Binding: Local 285 ; CHECK-NEXT: Binding: Local
210 ; CHECK-NEXT: Type: None 286 ; CHECK-NEXT: Type: None
211 ; CHECK-NEXT: Other: 0 287 ; CHECK-NEXT: Other: 0
212 ; CHECK-NEXT: Section: .text 288 ; CHECK-NEXT: Section: .text
213 ; CHECK-NEXT: } 289 ; CHECK-NEXT: }
214 ; CHECK: Symbol { 290 ; CHECK: Symbol {
215 ; CHECK: Name: returnFloatConst 291 ; CHECK: Name: returnFloatConst
(...skipping 17 matching lines...) Expand all
233 ; CHECK: Symbol { 309 ; CHECK: Symbol {
234 ; CHECK: Name: _start 310 ; CHECK: Name: _start
235 ; CHECK-NEXT: Value: 0x{{[1-9A-F][0-9A-F]*}} 311 ; CHECK-NEXT: Value: 0x{{[1-9A-F][0-9A-F]*}}
236 ; CHECK-NEXT: Size: 0 312 ; CHECK-NEXT: Size: 0
237 ; CHECK-NEXT: Binding: Global 313 ; CHECK-NEXT: Binding: Global
238 ; CHECK-NEXT: Type: Function 314 ; CHECK-NEXT: Type: Function
239 ; CHECK-NEXT: Other: 0 315 ; CHECK-NEXT: Other: 0
240 ; CHECK-NEXT: Section: .text 316 ; CHECK-NEXT: Section: .text
241 ; CHECK-NEXT: } 317 ; CHECK-NEXT: }
242 ; CHECK: ] 318 ; CHECK: ]
OLDNEW
« no previous file with comments | « src/IceTranslator.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698