Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: tests_lit/llvm2ice_tests/bool-folding.ll

Issue 1233903002: Factor out legalization of undef, and handle more cases for ARM. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: stuff Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTargetLoweringX86BaseImpl.h ('k') | tests_lit/llvm2ice_tests/nacl-atomic-intrinsics.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; This tests the optimization where producers and consumers of i1 (bool) 1 ; This tests the optimization where producers and consumers of i1 (bool)
2 ; variables are combined to implicitly use flags instead of explicitly using 2 ; variables are combined to implicitly use flags instead of explicitly using
3 ; stack or register variables. 3 ; stack or register variables.
4 4
5 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 | FileCheck %s 5 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 | FileCheck %s
6 6
7 declare void @use_value(i32) 7 declare void @use_value(i32)
8 8
9 ; Basic cmp/branch folding. 9 ; Basic cmp/branch folding.
10 define i32 @fold_cmp_br(i32 %arg1, i32 %arg2) { 10 define i32 @fold_cmp_br(i32 %arg1, i32 %arg2) {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 %cmp1 = icmp slt i32 %arg1_trunc, %arg2_trunc 102 %cmp1 = icmp slt i32 %arg1_trunc, %arg2_trunc
103 %result = select i1 %cmp1, i64 %arg1, i64 %arg2 103 %result = select i1 %cmp1, i64 %arg1, i64 %arg2
104 ret i64 %result 104 ret i64 %result
105 } 105 }
106 106
107 ; CHECK-LABEL: fold_cmp_select_64 107 ; CHECK-LABEL: fold_cmp_select_64
108 ; CHECK: cmp 108 ; CHECK: cmp
109 ; CHECK: cmovl 109 ; CHECK: cmovl
110 ; CHECK: cmovl 110 ; CHECK: cmovl
111 111
112 define i64 @fold_cmp_select_64_undef(i64 %arg1) {
113 entry:
114 %arg1_trunc = trunc i64 %arg1 to i32
115 %cmp1 = icmp slt i32 undef, %arg1_trunc
116 %result = select i1 %cmp1, i64 %arg1, i64 undef
117 ret i64 %result
118 }
119 ; CHECK-LABEL: fold_cmp_select_64_undef
120 ; CHECK: cmp
121 ; CHECK: cmovl
122 ; CHECK: cmovl
112 123
113 ; Cmp/select folding with intervening instructions. 124 ; Cmp/select folding with intervening instructions.
114 define i32 @fold_cmp_select_intervening_insts(i32 %arg1, i32 %arg2) { 125 define i32 @fold_cmp_select_intervening_insts(i32 %arg1, i32 %arg2) {
115 entry: 126 entry:
116 %cmp1 = icmp slt i32 %arg1, %arg2 127 %cmp1 = icmp slt i32 %arg1, %arg2
117 call void @use_value(i32 %arg1) 128 call void @use_value(i32 %arg1)
118 %result = select i1 %cmp1, i32 %arg1, i32 %arg2 129 %result = select i1 %cmp1, i32 %arg1, i32 %arg2
119 ret i32 %result 130 ret i32 %result
120 } 131 }
121 132
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 ; CHECK: cmp 205 ; CHECK: cmp
195 ; CHECK: cmovne 206 ; CHECK: cmovne
196 ; CHECK: cmp 207 ; CHECK: cmp
197 ; CHECK: cmovne 208 ; CHECK: cmovne
198 ; CHECK: cmp 209 ; CHECK: cmp
199 ; CHECK: cmove 210 ; CHECK: cmove
200 ; CHECK: movzx 211 ; CHECK: movzx
201 ; CHECK: add 212 ; CHECK: add
202 ; CHECK: add 213 ; CHECK: add
203 ; CHECK: add 214 ; CHECK: add
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX86BaseImpl.h ('k') | tests_lit/llvm2ice_tests/nacl-atomic-intrinsics.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698