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

Side by Side Diff: tests_lit/llvm2ice_tests/64bit.pnacl.ll

Issue 700263003: Rearrange emit vs emitIAS. Wait till function is done before dumping text. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: remove comment... might end up using the iterator Created 6 years, 1 month 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/assembler_ia32.h ('k') | tests_lit/llvm2ice_tests/arith-opt.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; This tries to be a comprehensive test of i64 operations, in 1 ; This tries to be a comprehensive test of i64 operations, in
2 ; particular the patterns for lowering i64 operations into constituent 2 ; particular the patterns for lowering i64 operations into constituent
3 ; i32 operations on x86-32. 3 ; i32 operations on x86-32.
4 4
5 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer 5 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer
6 ; doesn't know how to symbolize non-section-local functions. 6 ; doesn't know how to symbolize non-section-local functions.
7 ; The newer LLVM 3.6 one does work, but watch out for other bugs. 7 ; The newer LLVM 3.6 one does work, but watch out for other bugs.
8 8
9 ; RUN: %p2i -i %s --args -O2 --verbose none \ 9 ; RUN: %p2i -i %s --args -O2 --verbose none \
10 ; RUN: | FileCheck --check-prefix=CALLTARGETS %s 10 ; RUN: | FileCheck --check-prefix=CALLTARGETS %s
(...skipping 26 matching lines...) Expand all
37 } 37 }
38 ; CHECK-LABEL: pass64BitArg 38 ; CHECK-LABEL: pass64BitArg
39 ; CALLTARGETS-LABEL: pass64BitArg 39 ; CALLTARGETS-LABEL: pass64BitArg
40 ; CHECK: sub esp 40 ; CHECK: sub esp
41 ; CHECK: mov dword ptr [esp + 4] 41 ; CHECK: mov dword ptr [esp + 4]
42 ; CHECK: mov dword ptr [esp] 42 ; CHECK: mov dword ptr [esp]
43 ; CHECK: mov dword ptr [esp + 8], 123 43 ; CHECK: mov dword ptr [esp + 8], 123
44 ; CHECK: mov dword ptr [esp + 16] 44 ; CHECK: mov dword ptr [esp + 16]
45 ; CHECK: mov dword ptr [esp + 12] 45 ; CHECK: mov dword ptr [esp + 12]
46 ; CHECK: call -4 46 ; CHECK: call -4
47 ; CALLTARGETS: call ignore64BitArgNoInline 47 ; CALLTARGETS: .long ignore64BitArgNoInline
48 ; CHECK: sub esp 48 ; CHECK: sub esp
49 ; CHECK: mov dword ptr [esp + 4] 49 ; CHECK: mov dword ptr [esp + 4]
50 ; CHECK: mov dword ptr [esp] 50 ; CHECK: mov dword ptr [esp]
51 ; CHECK: mov dword ptr [esp + 8], 123 51 ; CHECK: mov dword ptr [esp + 8], 123
52 ; CHECK: mov dword ptr [esp + 16] 52 ; CHECK: mov dword ptr [esp + 16]
53 ; CHECK: mov dword ptr [esp + 12] 53 ; CHECK: mov dword ptr [esp + 12]
54 ; CHECK: call -4 54 ; CHECK: call -4
55 ; CALLTARGETS: call ignore64BitArgNoInline 55 ; CALLTARGETS: .long ignore64BitArgNoInline
56 ; CHECK: sub esp 56 ; CHECK: sub esp
57 ; CHECK: mov dword ptr [esp + 4] 57 ; CHECK: mov dword ptr [esp + 4]
58 ; CHECK: mov dword ptr [esp] 58 ; CHECK: mov dword ptr [esp]
59 ; CHECK: mov dword ptr [esp + 8], 123 59 ; CHECK: mov dword ptr [esp + 8], 123
60 ; CHECK: mov dword ptr [esp + 16] 60 ; CHECK: mov dword ptr [esp + 16]
61 ; CHECK: mov dword ptr [esp + 12] 61 ; CHECK: mov dword ptr [esp + 12]
62 ; CHECK: call -4 62 ; CHECK: call -4
63 ; CALLTARGETS: call ignore64BitArgNoInline 63 ; CALLTARGETS: .long ignore64BitArgNoInline
64 ; 64 ;
65 ; OPTM1-LABEL: pass64BitArg 65 ; OPTM1-LABEL: pass64BitArg
66 ; OPTM1: sub esp 66 ; OPTM1: sub esp
67 ; OPTM1: mov dword ptr [esp + 4] 67 ; OPTM1: mov dword ptr [esp + 4]
68 ; OPTM1: mov dword ptr [esp] 68 ; OPTM1: mov dword ptr [esp]
69 ; OPTM1: mov dword ptr [esp + 8], 123 69 ; OPTM1: mov dword ptr [esp + 8], 123
70 ; OPTM1: mov dword ptr [esp + 16] 70 ; OPTM1: mov dword ptr [esp + 16]
71 ; OPTM1: mov dword ptr [esp + 12] 71 ; OPTM1: mov dword ptr [esp + 12]
72 ; OPTM1: call -4 72 ; OPTM1: call -4
73 ; OPTM1: sub esp 73 ; OPTM1: sub esp
(...skipping 23 matching lines...) Expand all
97 ; CHECK: sub esp 97 ; CHECK: sub esp
98 ; CHECK: mov dword ptr [esp + 4] 98 ; CHECK: mov dword ptr [esp + 4]
99 ; CHECK-NEXT: mov dword ptr [esp] 99 ; CHECK-NEXT: mov dword ptr [esp]
100 ; CHECK-NEXT: mov dword ptr [esp + 8], 123 100 ; CHECK-NEXT: mov dword ptr [esp + 8], 123
101 ; Bundle padding might be added (so not using -NEXT). 101 ; Bundle padding might be added (so not using -NEXT).
102 ; CHECK: mov dword ptr [esp + 16], 3735928559 102 ; CHECK: mov dword ptr [esp + 16], 3735928559
103 ; CHECK-NEXT: mov dword ptr [esp + 12], 305419896 103 ; CHECK-NEXT: mov dword ptr [esp + 12], 305419896
104 ; Bundle padding will push the call down. 104 ; Bundle padding will push the call down.
105 ; CHECK-NOT: mov 105 ; CHECK-NOT: mov
106 ; CHECK: call -4 106 ; CHECK: call -4
107 ; CALLTARGETS: call ignore64BitArgNoInline 107 ; CALLTARGETS: .long ignore64BitArgNoInline
108 ; 108 ;
109 ; OPTM1-LABEL: pass64BitConstArg 109 ; OPTM1-LABEL: pass64BitConstArg
110 ; OPTM1: sub esp 110 ; OPTM1: sub esp
111 ; OPTM1: mov dword ptr [esp + 4] 111 ; OPTM1: mov dword ptr [esp + 4]
112 ; OPTM1-NEXT: mov dword ptr [esp] 112 ; OPTM1-NEXT: mov dword ptr [esp]
113 ; OPTM1-NEXT: mov dword ptr [esp + 8], 123 113 ; OPTM1-NEXT: mov dword ptr [esp + 8], 123
114 ; Bundle padding might be added (so not using -NEXT). 114 ; Bundle padding might be added (so not using -NEXT).
115 ; OPTM1: mov dword ptr [esp + 16], 3735928559 115 ; OPTM1: mov dword ptr [esp + 16], 3735928559
116 ; OPTM1-NEXT: mov dword ptr [esp + 12], 305419896 116 ; OPTM1-NEXT: mov dword ptr [esp + 12], 305419896
117 ; OPTM1-NOT: mov 117 ; OPTM1-NOT: mov
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 ; OPTM1: add 232 ; OPTM1: add
233 233
234 define internal i64 @div64BitSigned(i64 %a, i64 %b) { 234 define internal i64 @div64BitSigned(i64 %a, i64 %b) {
235 entry: 235 entry:
236 %div = sdiv i64 %a, %b 236 %div = sdiv i64 %a, %b
237 ret i64 %div 237 ret i64 %div
238 } 238 }
239 ; CHECK-LABEL: div64BitSigned 239 ; CHECK-LABEL: div64BitSigned
240 ; CALLTARGETS-LABEL: div64BitSigned 240 ; CALLTARGETS-LABEL: div64BitSigned
241 ; CHECK: call -4 241 ; CHECK: call -4
242 ; CALLTARGETS: call __divdi3 242 ; CALLTARGETS: .long __divdi3
243 243
244 ; OPTM1-LABEL: div64BitSigned 244 ; OPTM1-LABEL: div64BitSigned
245 ; OPTM1: call -4 245 ; OPTM1: call -4
246 246
247 define internal i64 @div64BitSignedConst(i64 %a) { 247 define internal i64 @div64BitSignedConst(i64 %a) {
248 entry: 248 entry:
249 %div = sdiv i64 %a, 12345678901234 249 %div = sdiv i64 %a, 12345678901234
250 ret i64 %div 250 ret i64 %div
251 } 251 }
252 ; CHECK-LABEL: div64BitSignedConst 252 ; CHECK-LABEL: div64BitSignedConst
253 ; CALLTARGETS-LABEL: div64BitSignedConst 253 ; CALLTARGETS-LABEL: div64BitSignedConst
254 ; CHECK: mov dword ptr [esp + 12], 2874 254 ; CHECK: mov dword ptr [esp + 12], 2874
255 ; CHECK: mov dword ptr [esp + 8], 1942892530 255 ; CHECK: mov dword ptr [esp + 8], 1942892530
256 ; CHECK: call -4 256 ; CHECK: call -4
257 ; CALLTARGETS: call __divdi3 257 ; CALLTARGETS: .long __divdi3
258 ; 258 ;
259 ; OPTM1-LABEL: div64BitSignedConst 259 ; OPTM1-LABEL: div64BitSignedConst
260 ; OPTM1: mov dword ptr [esp + 12], 2874 260 ; OPTM1: mov dword ptr [esp + 12], 2874
261 ; OPTM1: mov dword ptr [esp + 8], 1942892530 261 ; OPTM1: mov dword ptr [esp + 8], 1942892530
262 ; OPTM1: call -4 262 ; OPTM1: call -4
263 263
264 define internal i64 @div64BitUnsigned(i64 %a, i64 %b) { 264 define internal i64 @div64BitUnsigned(i64 %a, i64 %b) {
265 entry: 265 entry:
266 %div = udiv i64 %a, %b 266 %div = udiv i64 %a, %b
267 ret i64 %div 267 ret i64 %div
268 } 268 }
269 ; CHECK-LABEL: div64BitUnsigned 269 ; CHECK-LABEL: div64BitUnsigned
270 ; CALLTARGETS-LABEL: div64BitUnsigned 270 ; CALLTARGETS-LABEL: div64BitUnsigned
271 ; CHECK: call -4 271 ; CHECK: call -4
272 ; CALLTARGETS: call __udivdi3 272 ; CALLTARGETS: .long __udivdi3
273 ; 273 ;
274 ; OPTM1-LABEL: div64BitUnsigned 274 ; OPTM1-LABEL: div64BitUnsigned
275 ; OPTM1: call -4 275 ; OPTM1: call -4
276 276
277 define internal i64 @rem64BitSigned(i64 %a, i64 %b) { 277 define internal i64 @rem64BitSigned(i64 %a, i64 %b) {
278 entry: 278 entry:
279 %rem = srem i64 %a, %b 279 %rem = srem i64 %a, %b
280 ret i64 %rem 280 ret i64 %rem
281 } 281 }
282 ; CHECK-LABEL: rem64BitSigned 282 ; CHECK-LABEL: rem64BitSigned
283 ; CALLTARGETS-LABEL: rem64BitSigned 283 ; CALLTARGETS-LABEL: rem64BitSigned
284 ; CHECK: call -4 284 ; CHECK: call -4
285 ; CALLTARGETS: call __moddi3 285 ; CALLTARGETS: .long __moddi3
286 ; 286 ;
287 ; OPTM1-LABEL: rem64BitSigned 287 ; OPTM1-LABEL: rem64BitSigned
288 ; OPTM1: call -4 288 ; OPTM1: call -4
289 289
290 define internal i64 @rem64BitUnsigned(i64 %a, i64 %b) { 290 define internal i64 @rem64BitUnsigned(i64 %a, i64 %b) {
291 entry: 291 entry:
292 %rem = urem i64 %a, %b 292 %rem = urem i64 %a, %b
293 ret i64 %rem 293 ret i64 %rem
294 } 294 }
295 ; CHECK-LABEL: rem64BitUnsigned 295 ; CHECK-LABEL: rem64BitUnsigned
296 ; CALLTARGETS-LABEL: rem64BitUnsigned 296 ; CALLTARGETS-LABEL: rem64BitUnsigned
297 ; CHECK: call -4 297 ; CHECK: call -4
298 ; CALLTARGETS: call __umoddi3 298 ; CALLTARGETS: .long __umoddi3
299 ; 299 ;
300 ; OPTM1-LABEL: rem64BitUnsigned 300 ; OPTM1-LABEL: rem64BitUnsigned
301 ; OPTM1: call -4 301 ; OPTM1: call -4
302 302
303 define internal i64 @shl64BitSigned(i64 %a, i64 %b) { 303 define internal i64 @shl64BitSigned(i64 %a, i64 %b) {
304 entry: 304 entry:
305 %shl = shl i64 %a, %b 305 %shl = shl i64 %a, %b
306 ret i64 %shl 306 ret i64 %shl
307 } 307 }
308 ; CHECK-LABEL: shl64BitSigned 308 ; CHECK-LABEL: shl64BitSigned
(...skipping 1011 matching lines...) Expand 10 before | Expand all | Expand 10 after
1320 1320
1321 if.end3: ; preds = %if.then2, %if.end 1321 if.end3: ; preds = %if.then2, %if.end
1322 ret void 1322 ret void
1323 } 1323 }
1324 ; The following checks are not strictly necessary since one of the RUN 1324 ; The following checks are not strictly necessary since one of the RUN
1325 ; lines actually runs the output through the assembler. 1325 ; lines actually runs the output through the assembler.
1326 ; CHECK-LABEL: icmpLt64Imm 1326 ; CHECK-LABEL: icmpLt64Imm
1327 ; CHECK-NOT: cmp {{[0-9]+}}, 1327 ; CHECK-NOT: cmp {{[0-9]+}},
1328 ; OPTM1-LABEL: icmpLt64Imm 1328 ; OPTM1-LABEL: icmpLt64Imm
1329 ; OPTM1-NOT: cmp {{[0-9]+}}, 1329 ; OPTM1-NOT: cmp {{[0-9]+}},
OLDNEW
« no previous file with comments | « src/assembler_ia32.h ('k') | tests_lit/llvm2ice_tests/arith-opt.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698