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

Side by Side Diff: tests_lit/llvm2ice_tests/address-mode-opt.ll

Issue 2124973005: Selectively invert ICMP operands for better address optimization (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Address Comments Created 4 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') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; This file checks support for address mode optimization. 1 ; This file checks support for address mode optimization.
2 2
3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \
4 ; RUN: -allow-externally-defined-symbols | FileCheck %s 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s
5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 -mattr=sse4.1 \ 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 -mattr=sse4.1 \
6 ; RUN: -allow-externally-defined-symbols | FileCheck --check-prefix=SSE41 %s 6 ; RUN: -allow-externally-defined-symbols | FileCheck --check-prefix=SSE41 %s
7 7
8 define internal float @load_arg_plus_200000(float* %arg) { 8 define internal float @load_arg_plus_200000(float* %arg) {
9 entry: 9 entry:
10 %arg.int = ptrtoint float* %arg to i32 10 %arg.int = ptrtoint float* %arg to i32
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 %arg.int = ptrtoint float* %arg to i32 180 %arg.int = ptrtoint float* %arg to i32
181 %shl1 = shl i32 %arg.int, 2 181 %shl1 = shl i32 %arg.int, 2
182 %addr.int = or i32 -1, %shl1 182 %addr.int = or i32 -1, %shl1
183 %addr.ptr = inttoptr i32 %addr.int to float* 183 %addr.ptr = inttoptr i32 %addr.int to float*
184 %addr.load = load float, float* %addr.ptr, align 4 184 %addr.load = load float, float* %addr.ptr, align 4
185 ret float %addr.load 185 ret float %addr.load
186 ; CHECK-LABEL: or_add_boundary_check_2 186 ; CHECK-LABEL: or_add_boundary_check_2
187 ; CHECK: or 187 ; CHECK: or
188 ; CHECK-NOT: movss xmm{{[0-9]+}},DWORD PTR [{{e..}}*4+0xFFFF] 188 ; CHECK-NOT: movss xmm{{[0-9]+}},DWORD PTR [{{e..}}*4+0xFFFF]
189 } 189 }
190
191 define internal void @invert_icmp(i32* %arg1, i32* %arg2) {
192 entry:
193 %addr.other = load i32, i32* %arg2, align 1
194 br label %next
195 next:
196 %addr.load = load i32, i32* %arg1, align 1
197 %cond = icmp slt i32 %addr.load, %addr.other
198 br i1 %cond, label %if.then, label %if.else
199 if.then:
200 ret void
201 if.else:
202 ret void
203 ; CHECK-LABEL: invert_icmp
204 ; CHECK: cmp {{e..}},DWORD PTR [{{e..}}]
205 ; CHECK: jle
206 }
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX86BaseImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698