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 \ | 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 \ |
11 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=OPTM1 %s | 11 ; RUN: | %if --need=target_X8632 --command FileCheck --check-prefix=OPTM1 %s |
12 | 12 |
13 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) | 13 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) |
14 ; once enough infrastructure is in. Also, switch to --filetype=obj | 14 ; once enough infrastructure is in. Also, switch to --filetype=obj |
15 ; when possible. | 15 ; when possible. |
16 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=asm --assemble \ | 16 ; RUN: %if --need=target_ARM32 --need=allow_dump \ |
| 17 ; RUN: --command %p2i --filetype=asm --assemble \ |
17 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ | 18 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ |
18 ; RUN: | %if --need=target_ARM32 --command FileCheck --check-prefix ARM32 %s | 19 ; RUN: | %if --need=target_ARM32 --need=allow_dump \ |
| 20 ; RUN: --command FileCheck --check-prefix ARM32 %s |
19 | 21 |
20 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 22 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
21 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 23 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
22 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 | 24 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 |
23 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 | 25 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 |
24 | 26 |
25 define internal i32 @ignore64BitArg(i64 %a, i32 %b, i64 %c) { | 27 define internal i32 @ignore64BitArg(i64 %a, i32 %b, i64 %c) { |
26 entry: | 28 entry: |
27 ret i32 %b | 29 ret i32 %b |
28 } | 30 } |
(...skipping 1647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1676 ret void | 1678 ret void |
1677 } | 1679 } |
1678 ; The following checks are not strictly necessary since one of the RUN | 1680 ; The following checks are not strictly necessary since one of the RUN |
1679 ; lines actually runs the output through the assembler. | 1681 ; lines actually runs the output through the assembler. |
1680 ; CHECK-LABEL: icmpLt64Imm | 1682 ; CHECK-LABEL: icmpLt64Imm |
1681 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, | 1683 ; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, |
1682 ; OPTM1-LABEL: icmpLt64Imm | 1684 ; OPTM1-LABEL: icmpLt64Imm |
1683 ; OPTM1-NOT: cmp 0x{{[0-9a-f]+}}, | 1685 ; OPTM1-NOT: cmp 0x{{[0-9a-f]+}}, |
1684 ; ARM32-LABEL: icmpLt64Imm | 1686 ; ARM32-LABEL: icmpLt64Imm |
1685 ; ARM32-NOT: cmp #{{[0-9a-f]+}}, | 1687 ; ARM32-NOT: cmp #{{[0-9a-f]+}}, |
OLD | NEW |