OLD | NEW |
1 ; Simple test of non-fused compare/branch. | 1 ; Simple test of non-fused compare/branch. |
2 | 2 |
3 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s | |
4 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck --check-prefix=OPTM1 %s | |
5 ; RUN: %llvm2ice -O2 --verbose none %s \ | 3 ; RUN: %llvm2ice -O2 --verbose none %s \ |
6 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
7 ; RUN: %llvm2ice -Om1 --verbose none %s \ | 6 ; RUN: %llvm2ice -Om1 --verbose none %s \ |
8 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ |
| 9 ; RUN: | FileCheck --check-prefix=OPTM1 %s |
9 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 10 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
10 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s | 11 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
11 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ | 12 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
12 ; RUN: | FileCheck --check-prefix=DUMP %s | 13 ; RUN: | FileCheck --check-prefix=DUMP %s |
13 | 14 |
14 define void @testBool(i32 %a, i32 %b) { | 15 define void @testBool(i32 %a, i32 %b) { |
15 entry: | 16 entry: |
16 %cmp = icmp slt i32 %a, %b | 17 %cmp = icmp slt i32 %a, %b |
17 %cmp1 = icmp sgt i32 %a, %b | 18 %cmp1 = icmp sgt i32 %a, %b |
18 br i1 %cmp, label %if.then, label %if.end | 19 br i1 %cmp, label %if.then, label %if.end |
(...skipping 10 matching lines...) Expand all Loading... |
29 %cmp1_ext = zext i1 %cmp1 to i32 | 30 %cmp1_ext = zext i1 %cmp1 to i32 |
30 tail call void @use(i32 %cmp1_ext) | 31 tail call void @use(i32 %cmp1_ext) |
31 br label %if.end7 | 32 br label %if.end7 |
32 | 33 |
33 if.end7: ; preds = %if.then5, %if.end | 34 if.end7: ; preds = %if.then5, %if.end |
34 ret void | 35 ret void |
35 } | 36 } |
36 | 37 |
37 declare void @use(i32) | 38 declare void @use(i32) |
38 | 39 |
39 ; CHECK: .globl testBool | 40 ; CHECK-LABEL: testBool |
40 ; Two bool computations | 41 ; Two bool computations |
41 ; CHECK: cmp | 42 ; CHECK: cmp |
42 ; CHECK: cmp | 43 ; CHECK: cmp |
43 ; Test first bool | 44 ; Test first bool |
44 ; CHECK: cmp | 45 ; CHECK: cmp |
45 ; CHECK: call | 46 ; CHECK: call |
46 ; Test second bool | 47 ; Test second bool |
47 ; CHECK: cmp | 48 ; CHECK: cmp |
48 ; CHECK: call | 49 ; CHECK: call |
49 ; CHECK: ret | 50 ; CHECK: ret |
50 ; | 51 ; |
51 ; OPTM1: .globl testBool | 52 ; OPTM1-LABEL: testBool |
52 ; Two bool computations | 53 ; Two bool computations |
53 ; OPTM1: cmp | 54 ; OPTM1: cmp |
54 ; OPTM1: cmp | 55 ; OPTM1: cmp |
55 ; Test first bool | 56 ; Test first bool |
56 ; OPTM1: cmp | 57 ; OPTM1: cmp |
57 ; OPTM1: call | 58 ; OPTM1: call |
58 ; Test second bool | 59 ; Test second bool |
59 ; OPTM1: cmp | 60 ; OPTM1: cmp |
60 ; OPTM1: call | 61 ; OPTM1: call |
61 ; OPTM1: ret | 62 ; OPTM1: ret |
62 | 63 |
63 ; ERRORS-NOT: ICE translation error | 64 ; ERRORS-NOT: ICE translation error |
64 ; DUMP-NOT: SZ | 65 ; DUMP-NOT: SZ |
OLD | NEW |