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

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

Issue 1152703006: Subzero ARM: lowerLoad and lowerStore. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: typo in comments Created 5 years, 6 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/IceTargetLoweringX8632.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 ; 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 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ 5 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \
6 ; RUN: --target x8632 -i %s --args -O2 \ 6 ; RUN: --target x8632 -i %s --args -O2 \
7 ; RUN: | %if --need=target_X8632 --command FileCheck %s 7 ; RUN: | %if --need=target_X8632 --command FileCheck %s
8 8
9 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ 9 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \
10 ; RUN: --target x8632 -i %s --args -Om1 \ 10 ; RUN: --target x8632 -i %s --args -Om1 \
(...skipping 1285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 } 1296 }
1297 ; CHECK-LABEL: load64 1297 ; CHECK-LABEL: load64
1298 ; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4] 1298 ; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4]
1299 ; CHECK-NEXT: mov {{.*}},DWORD PTR [e[[REGISTER]]] 1299 ; CHECK-NEXT: mov {{.*}},DWORD PTR [e[[REGISTER]]]
1300 ; CHECK-NEXT: mov {{.*}},DWORD PTR [e[[REGISTER]]+0x4] 1300 ; CHECK-NEXT: mov {{.*}},DWORD PTR [e[[REGISTER]]+0x4]
1301 ; 1301 ;
1302 ; OPTM1-LABEL: load64 1302 ; OPTM1-LABEL: load64
1303 ; OPTM1: mov e{{..}},DWORD PTR [e{{..}}] 1303 ; OPTM1: mov e{{..}},DWORD PTR [e{{..}}]
1304 ; OPTM1: mov e{{..}},DWORD PTR [e{{..}}+0x4] 1304 ; OPTM1: mov e{{..}},DWORD PTR [e{{..}}+0x4]
1305 1305
1306 ; ARM32-LABEL: load64
1307 ; ARM32: ldr r{{.*}}, [r[[REG:.*]]]
1308 ; ARM32: ldr r{{.*}}, [r[[REG]], #4]
1309
1306 define internal void @store64(i32 %a, i64 %value) { 1310 define internal void @store64(i32 %a, i64 %value) {
1307 entry: 1311 entry:
1308 %__2 = inttoptr i32 %a to i64* 1312 %__2 = inttoptr i32 %a to i64*
1309 store i64 %value, i64* %__2, align 1 1313 store i64 %value, i64* %__2, align 1
1310 ret void 1314 ret void
1311 } 1315 }
1312 ; CHECK-LABEL: store64 1316 ; CHECK-LABEL: store64
1313 ; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4] 1317 ; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4]
1314 ; CHECK: mov DWORD PTR [e[[REGISTER]]+0x4], 1318 ; CHECK: mov DWORD PTR [e[[REGISTER]]+0x4],
1315 ; CHECK: mov DWORD PTR [e[[REGISTER]]], 1319 ; CHECK: mov DWORD PTR [e[[REGISTER]]],
1316 ; 1320 ;
1317 ; OPTM1-LABEL: store64 1321 ; OPTM1-LABEL: store64
1318 ; OPTM1: mov DWORD PTR [e[[REGISTER:[a-z]+]]+0x4], 1322 ; OPTM1: mov DWORD PTR [e[[REGISTER:[a-z]+]]+0x4],
1319 ; OPTM1: mov DWORD PTR [e[[REGISTER]]], 1323 ; OPTM1: mov DWORD PTR [e[[REGISTER]]],
1320 1324
1325 ; ARM32-LABEL: store64
1326 ; ARM32: str r{{.*}}, [r[[REG:.*]], #4]
1327 ; ARM32: str r{{.*}}, [r[[REG]]]
1328
1321 define internal void @store64Const(i32 %a) { 1329 define internal void @store64Const(i32 %a) {
1322 entry: 1330 entry:
1323 %__1 = inttoptr i32 %a to i64* 1331 %__1 = inttoptr i32 %a to i64*
1324 store i64 -2401053092306725256, i64* %__1, align 1 1332 store i64 -2401053092306725256, i64* %__1, align 1
1325 ret void 1333 ret void
1326 } 1334 }
1327 ; CHECK-LABEL: store64Const 1335 ; CHECK-LABEL: store64Const
1328 ; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4] 1336 ; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4]
1329 ; CHECK: mov DWORD PTR [e[[REGISTER]]+0x4],0xdeadbeef 1337 ; CHECK: mov DWORD PTR [e[[REGISTER]]+0x4],0xdeadbeef
1330 ; CHECK: mov DWORD PTR [e[[REGISTER]]],0x12345678 1338 ; CHECK: mov DWORD PTR [e[[REGISTER]]],0x12345678
1331 ; 1339 ;
1332 ; OPTM1-LABEL: store64Const 1340 ; OPTM1-LABEL: store64Const
1333 ; OPTM1: mov DWORD PTR [e[[REGISTER:[a-z]+]]+0x4],0xdeadbeef 1341 ; OPTM1: mov DWORD PTR [e[[REGISTER:[a-z]+]]+0x4],0xdeadbeef
1334 ; OPTM1: mov DWORD PTR [e[[REGISTER]]],0x12345678 1342 ; OPTM1: mov DWORD PTR [e[[REGISTER]]],0x12345678
1335 1343
1344 ; ARM32-LABEL: store64Const
1345 ; ARM32: movw [[REG1:.*]], #48879 ; 0xbeef
1346 ; ARM32: movt [[REG1:.*]], #57005 ; 0xdead
1347 ; ARM32: movw [[REG2:.*]], #22136 ; 0x5678
1348 ; ARM32: movt [[REG2:.*]], #4660 ; 0x1234
1349 ; ARM32: str [[REG1]], [r[[REG:.*]], #4]
1350 ; ARM32: str [[REG2]], [r[[REG]]]
1351
1336 define internal i64 @select64VarVar(i64 %a, i64 %b) { 1352 define internal i64 @select64VarVar(i64 %a, i64 %b) {
1337 entry: 1353 entry:
1338 %cmp = icmp ult i64 %a, %b 1354 %cmp = icmp ult i64 %a, %b
1339 %cond = select i1 %cmp, i64 %a, i64 %b 1355 %cond = select i1 %cmp, i64 %a, i64 %b
1340 ret i64 %cond 1356 ret i64 %cond
1341 } 1357 }
1342 ; CHECK-LABEL: select64VarVar 1358 ; CHECK-LABEL: select64VarVar
1343 ; CHECK: cmp 1359 ; CHECK: cmp
1344 ; CHECK: jb 1360 ; CHECK: jb
1345 ; CHECK: ja 1361 ; CHECK: ja
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1455 ret void 1471 ret void
1456 } 1472 }
1457 ; The following checks are not strictly necessary since one of the RUN 1473 ; The following checks are not strictly necessary since one of the RUN
1458 ; lines actually runs the output through the assembler. 1474 ; lines actually runs the output through the assembler.
1459 ; CHECK-LABEL: icmpLt64Imm 1475 ; CHECK-LABEL: icmpLt64Imm
1460 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, 1476 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}},
1461 ; OPTM1-LABEL: icmpLt64Imm 1477 ; OPTM1-LABEL: icmpLt64Imm
1462 ; OPTM1-NOT: cmp 0x{{[0-9a-f]+}}, 1478 ; OPTM1-NOT: cmp 0x{{[0-9a-f]+}},
1463 ; ARM32-LABEL: icmpLt64Imm 1479 ; ARM32-LABEL: icmpLt64Imm
1464 ; ARM32-NOT: cmp #{{[0-9a-f]+}}, 1480 ; ARM32-NOT: cmp #{{[0-9a-f]+}},
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698