OLD | NEW |
1 ; Tests various aspects of i1 related lowering. | 1 ; Tests various aspects of i1 related lowering. |
2 | 2 |
3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
4 ; RUN: --target x8632 -i %s --args -O2 \ | 4 ; RUN: --target x8632 -i %s --args -O2 \ |
5 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
6 | 6 |
7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
8 ; RUN: --target x8632 -i %s --args -Om1 \ | 8 ; RUN: --target x8632 -i %s --args -Om1 \ |
9 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 9 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
10 | 10 |
11 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) | 11 ; TODO(jvoung): Stop skipping unimplemented parts (via --skip-unimplemented) |
12 ; once enough infrastructure is in. Also, switch to --filetype=obj | 12 ; once enough infrastructure is in. Also, switch to --filetype=obj |
13 ; when possible. | 13 ; when possible. |
14 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=asm --assemble \ | 14 ; RUN: %if --need=target_ARM32 --need=allow_dump \ |
| 15 ; RUN: --command %p2i --filetype=asm --assemble \ |
15 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ | 16 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ |
16 ; RUN: | %if --need=target_ARM32 --command FileCheck --check-prefix ARM32 %s | 17 ; RUN: | %if --need=target_ARM32 --need=allow_dump \ |
17 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=asm --assemble \ | 18 ; RUN: --command FileCheck --check-prefix ARM32 %s |
| 19 ; RUN: %if --need=target_ARM32 --need=allow_dump \ |
| 20 ; RUN: --command %p2i --filetype=asm --assemble \ |
18 ; RUN: --disassemble --target arm32 -i %s --args -Om1 --skip-unimplemented \ | 21 ; RUN: --disassemble --target arm32 -i %s --args -Om1 --skip-unimplemented \ |
19 ; RUN: | %if --need=target_ARM32 --command FileCheck --check-prefix ARM32 %s | 22 ; RUN: | %if --need=target_ARM32 --need=allow_dump \ |
| 23 ; RUN: --command FileCheck --check-prefix ARM32 %s |
20 | 24 |
21 ; TODO(jvoung): test this. | 25 ; TODO(jvoung): test this. |
22 | 26 |
23 ; Test that and with true uses immediate 1, not -1. | 27 ; Test that and with true uses immediate 1, not -1. |
24 define internal i32 @testAndTrue(i32 %arg) { | 28 define internal i32 @testAndTrue(i32 %arg) { |
25 entry: | 29 entry: |
26 %arg_i1 = trunc i32 %arg to i1 | 30 %arg_i1 = trunc i32 %arg to i1 |
27 %result_i1 = and i1 %arg_i1, true | 31 %result_i1 = and i1 %arg_i1, true |
28 %result = zext i1 %result_i1 to i32 | 32 %result = zext i1 %result_i1 to i32 |
29 ret i32 %result | 33 ret i32 %result |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 %arg_i1 = fptosi double %arg to i1 | 282 %arg_i1 = fptosi double %arg to i1 |
279 %result = sext i1 %arg_i1 to i32 | 283 %result = sext i1 %arg_i1 to i32 |
280 ret i32 %result | 284 ret i32 %result |
281 } | 285 } |
282 ; CHECK-LABEL: testFptosiDouble | 286 ; CHECK-LABEL: testFptosiDouble |
283 ; CHECK: cvttsd2si | 287 ; CHECK: cvttsd2si |
284 ; CHECK: and {{.*}},0x1 | 288 ; CHECK: and {{.*}},0x1 |
285 ; CHECK: movzx [[REG:.*]], | 289 ; CHECK: movzx [[REG:.*]], |
286 ; CHECK-NEXT: shl [[REG]],0x1f | 290 ; CHECK-NEXT: shl [[REG]],0x1f |
287 ; CHECK-NEXT: sar [[REG]],0x1f | 291 ; CHECK-NEXT: sar [[REG]],0x1f |
OLD | NEW |