| 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 1754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1765 } | 1765 } |
| 1766 ; The following checks are not strictly necessary since one of the RUN | 1766 ; The following checks are not strictly necessary since one of the RUN |
| 1767 ; lines actually runs the output through the assembler. | 1767 ; lines actually runs the output through the assembler. |
| 1768 ; CHECK-LABEL: icmpLt64Imm | 1768 ; CHECK-LABEL: icmpLt64Imm |
| 1769 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, | 1769 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, |
| 1770 ; OPTM1-LABEL: icmpLt64Imm | 1770 ; OPTM1-LABEL: icmpLt64Imm |
| 1771 ; OPTM1-NOT: cmp 0x{{[0-9a-f]+}}, | 1771 ; OPTM1-NOT: cmp 0x{{[0-9a-f]+}}, |
| 1772 ; ARM32-LABEL: icmpLt64Imm | 1772 ; ARM32-LABEL: icmpLt64Imm |
| 1773 ; ARM32-NOT: cmp #{{[0-9a-f]+}}, | 1773 ; ARM32-NOT: cmp #{{[0-9a-f]+}}, |
| 1774 | 1774 |
| 1775 define internal void @icmpEqZero64Imm() { |
| 1776 entry: |
| 1777 %cmp = icmp eq i64 123, 0 |
| 1778 br i1 %cmp, label %if.then, label %if.end |
| 1779 |
| 1780 if.then: ; preds = %entry |
| 1781 call void @func() |
| 1782 br label %if.end |
| 1783 |
| 1784 if.end: ; preds = %if.then, %if.end |
| 1785 ret void |
| 1786 } |
| 1787 ; The following checks are not strictly necessary since one of the RUN |
| 1788 ; lines actually runs the output through the assembler. |
| 1789 ; CHECK-LABEL: icmpEqZero64Imm |
| 1790 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, |
| 1791 ; OPTM1-LABEL: icmpEqZero64Imm |
| 1792 ; OPTM1-LABEL-NOT: cmp 0x{{[0-9a-f]+}}, |
| 1793 ; ARM32-LABEL: icmpEqZero64Imm |
| 1794 ; ARM32-NOT: cmp #{{[0-9a-f]+}}, |
| 1795 |
| 1775 define internal i64 @phi64Imm(i32 %x, i64 %y, i64 %z) { | 1796 define internal i64 @phi64Imm(i32 %x, i64 %y, i64 %z) { |
| 1776 entry: | 1797 entry: |
| 1777 %cond = icmp eq i32 %x, 88 | 1798 %cond = icmp eq i32 %x, 88 |
| 1778 br i1 %cond, label %branch1, label %branch2 | 1799 br i1 %cond, label %branch1, label %branch2 |
| 1779 branch1: | 1800 branch1: |
| 1780 %tmp = add i64 %y, %z | 1801 %tmp = add i64 %y, %z |
| 1781 br label %branch2 | 1802 br label %branch2 |
| 1782 | 1803 |
| 1783 branch2: | 1804 branch2: |
| 1784 %merge = phi i64 [ %tmp, %branch1 ], [ 20014547621496, %entry ] | 1805 %merge = phi i64 [ %tmp, %branch1 ], [ 20014547621496, %entry ] |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1810 ; CHECK-LABEL: phi64Undef | 1831 ; CHECK-LABEL: phi64Undef |
| 1811 ; CHECK: mov {{.*}},0x0 | 1832 ; CHECK: mov {{.*}},0x0 |
| 1812 ; CHECK: mov {{.*}},0x0 | 1833 ; CHECK: mov {{.*}},0x0 |
| 1813 ; OPTM1-LABEL: phi64Undef | 1834 ; OPTM1-LABEL: phi64Undef |
| 1814 ; OPTM1: mov {{.*}},0x0 | 1835 ; OPTM1: mov {{.*}},0x0 |
| 1815 ; OPTM1: mov {{.*}},0x0 | 1836 ; OPTM1: mov {{.*}},0x0 |
| 1816 ; ARM32-LABEL: phi64Undef | 1837 ; ARM32-LABEL: phi64Undef |
| 1817 ; ARM32: mov {{.*}} #0 | 1838 ; ARM32: mov {{.*}} #0 |
| 1818 ; ARM32: mov {{.*}} #0 | 1839 ; ARM32: mov {{.*}} #0 |
| 1819 | 1840 |
| OLD | NEW |