OLD | NEW |
---|---|
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 -allow-externally-defined-symbols \ | 6 ; RUN: --target x8632 -i %s --args -O2 -allow-externally-defined-symbols \ |
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 -allow-externally-defined-symbols \ | 10 ; RUN: --target x8632 -i %s --args -Om1 -allow-externally-defined-symbols \ |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
507 ; OPTM1-LABEL: shr64BitSigned | 507 ; OPTM1-LABEL: shr64BitSigned |
508 ; OPTM1: shrd | 508 ; OPTM1: shrd |
509 ; OPTM1: sar | 509 ; OPTM1: sar |
510 ; OPTM1: test {{.*}},0x20 | 510 ; OPTM1: test {{.*}},0x20 |
511 ; OPTM1: je | 511 ; OPTM1: je |
512 ; OPTM1: sar {{.*}},0x1f | 512 ; OPTM1: sar {{.*}},0x1f |
513 | 513 |
514 ; ARM32-LABEL: shr64BitSigned | 514 ; ARM32-LABEL: shr64BitSigned |
515 ; ARM32: lsr [[T0:r[0-9]+]], r0, r2 | 515 ; ARM32: lsr [[T0:r[0-9]+]], r0, r2 |
516 ; ARM32: rsb [[T1:r[0-9]+]], r2, #32 | 516 ; ARM32: rsb [[T1:r[0-9]+]], r2, #32 |
517 ; ARM32: orr r0, [[T0]], r1, lsl [[T1]] | 517 ; ARM32: orr [[T3:r[0-9]+]], [[T0]], r1, lsl [[T1]] |
John
2015/10/12 15:35:17
why/how did this change?
Jim Stichnoth
2015/10/12 17:27:31
Turns out it shouldn't have changed, and the "brea
| |
518 ; ARM32: sub [[T2:r[0-9]+]], r2, #32 | 518 ; ARM32: sub [[T2:r[0-9]+]], r2, #32 |
519 ; ARM32: cmp [[T2]], #0 | 519 ; ARM32: cmp [[T2]], #0 |
520 ; ARM32: asrge r0, r1, [[T2]] | 520 ; ARM32: asrge [[T3]], r1, [[T2]] |
521 ; ARM32: asr r{{[0-9]+}}, r1, r2 | 521 ; ARM32: asr r{{[0-9]+}}, r1, r2 |
522 | 522 |
523 define internal i32 @shr64BitSignedTrunc(i64 %a, i64 %b) { | 523 define internal i32 @shr64BitSignedTrunc(i64 %a, i64 %b) { |
524 entry: | 524 entry: |
525 %shr = ashr i64 %a, %b | 525 %shr = ashr i64 %a, %b |
526 %result = trunc i64 %shr to i32 | 526 %result = trunc i64 %shr to i32 |
527 ret i32 %result | 527 ret i32 %result |
528 } | 528 } |
529 ; CHECK-LABEL: shr64BitSignedTrunc | 529 ; CHECK-LABEL: shr64BitSignedTrunc |
530 ; CHECK: shrd | 530 ; CHECK: shrd |
(...skipping 1279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1810 ; CHECK-LABEL: phi64Undef | 1810 ; CHECK-LABEL: phi64Undef |
1811 ; CHECK: mov {{.*}},0x0 | 1811 ; CHECK: mov {{.*}},0x0 |
1812 ; CHECK: mov {{.*}},0x0 | 1812 ; CHECK: mov {{.*}},0x0 |
1813 ; OPTM1-LABEL: phi64Undef | 1813 ; OPTM1-LABEL: phi64Undef |
1814 ; OPTM1: mov {{.*}},0x0 | 1814 ; OPTM1: mov {{.*}},0x0 |
1815 ; OPTM1: mov {{.*}},0x0 | 1815 ; OPTM1: mov {{.*}},0x0 |
1816 ; ARM32-LABEL: phi64Undef | 1816 ; ARM32-LABEL: phi64Undef |
1817 ; ARM32: mov {{.*}} #0 | 1817 ; ARM32: mov {{.*}} #0 |
1818 ; ARM32: mov {{.*}} #0 | 1818 ; ARM32: mov {{.*}} #0 |
1819 | 1819 |
OLD | NEW |