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

Side by Side Diff: tests_lit/llvm2ice_tests/nacl-other-intrinsics.ll

Issue 1022123004: Subzero: Fix lowering of the fabs() intrinsic. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 9 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/IceTargetLoweringX8632.cpp ('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 tests the NaCl intrinsics not related to atomic operations. 1 ; This tests the NaCl intrinsics not related to atomic operations.
2 2
3 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 -sandbox \ 3 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 -sandbox \
4 ; RUN: | FileCheck %s 4 ; RUN: | FileCheck %s
5 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -Om1 -sandbox \ 5 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -Om1 -sandbox \
6 ; RUN: | FileCheck %s 6 ; RUN: | FileCheck %s
7 7
8 ; Do another run w/ O2 and a different check-prefix (otherwise O2 and Om1 8 ; Do another run w/ O2 and a different check-prefix (otherwise O2 and Om1
9 ; share the same "CHECK" prefix). This separate run helps check that 9 ; share the same "CHECK" prefix). This separate run helps check that
10 ; some code is optimized out. 10 ; some code is optimized out.
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 ; CHECKO2REM-NOT: sqrtsd 272 ; CHECKO2REM-NOT: sqrtsd
273 273
274 define float @test_fabs_float(float %x) { 274 define float @test_fabs_float(float %x) {
275 entry: 275 entry:
276 %r = call float @llvm.fabs.f32(float %x) 276 %r = call float @llvm.fabs.f32(float %x)
277 %r2 = call float @llvm.fabs.f32(float %r) 277 %r2 = call float @llvm.fabs.f32(float %r)
278 %r3 = call float @llvm.fabs.f32(float -0.0) 278 %r3 = call float @llvm.fabs.f32(float -0.0)
279 %r4 = fadd float %r2, %r3 279 %r4 = fadd float %r2, %r3
280 ret float %r4 280 ret float %r4
281 } 281 }
282 ;;; Specially check that the pand instruction doesn't try to operate on a 32-bit
283 ;;; (f32) memory operand, and instead uses two xmm registers.
282 ; CHECK-LABEL: test_fabs_float 284 ; CHECK-LABEL: test_fabs_float
283 ; CHECK: pcmpeqd 285 ; CHECK: pcmpeqd
284 ; CHECK: psrld 286 ; CHECK: psrld
285 ; CHECK: pand 287 ; CHECK: pand {{.*}}xmm{{.*}}xmm
286 ; CHECK: pcmpeqd 288 ; CHECK: pcmpeqd
287 ; CHECK: psrld 289 ; CHECK: psrld
288 ; CHECK: pand 290 ; CHECK: pand {{.*}}xmm{{.*}}xmm
289 ; CHECK: pcmpeqd 291 ; CHECK: pcmpeqd
290 ; CHECK: psrld 292 ; CHECK: psrld
291 ; CHECK: pand 293 ; CHECK: pand {{.*}}xmm{{.*}}xmm
292 294
293 define double @test_fabs_double(double %x) { 295 define double @test_fabs_double(double %x) {
294 entry: 296 entry:
295 %r = call double @llvm.fabs.f64(double %x) 297 %r = call double @llvm.fabs.f64(double %x)
296 %r2 = call double @llvm.fabs.f64(double %r) 298 %r2 = call double @llvm.fabs.f64(double %r)
297 %r3 = call double @llvm.fabs.f64(double -0.0) 299 %r3 = call double @llvm.fabs.f64(double -0.0)
298 %r4 = fadd double %r2, %r3 300 %r4 = fadd double %r2, %r3
299 ret double %r4 301 ret double %r4
300 } 302 }
303 ;;; Specially check that the pand instruction doesn't try to operate on a 64-bit
304 ;;; (f64) memory operand, and instead uses two xmm registers.
301 ; CHECK-LABEL: test_fabs_double 305 ; CHECK-LABEL: test_fabs_double
302 ; CHECK: pcmpeqd 306 ; CHECK: pcmpeqd
303 ; CHECK: psrlq 307 ; CHECK: psrlq
304 ; CHECK: pand 308 ; CHECK: pand {{.*}}xmm{{.*}}xmm
305 ; CHECK: pcmpeqd 309 ; CHECK: pcmpeqd
306 ; CHECK: psrlq 310 ; CHECK: psrlq
307 ; CHECK: pand 311 ; CHECK: pand {{.*}}xmm{{.*}}xmm
308 ; CHECK: pcmpeqd 312 ; CHECK: pcmpeqd
309 ; CHECK: psrlq 313 ; CHECK: psrlq
310 ; CHECK: pand 314 ; CHECK: pand {{.*}}xmm{{.*}}xmm
311 315
312 define <4 x float> @test_fabs_v4f32(<4 x float> %x) { 316 define <4 x float> @test_fabs_v4f32(<4 x float> %x) {
313 entry: 317 entry:
314 %r = call <4 x float> @llvm.fabs.v4f32(<4 x float> %x) 318 %r = call <4 x float> @llvm.fabs.v4f32(<4 x float> %x)
315 %r2 = call <4 x float> @llvm.fabs.v4f32(<4 x float> %r) 319 %r2 = call <4 x float> @llvm.fabs.v4f32(<4 x float> %r)
316 %r3 = call <4 x float> @llvm.fabs.v4f32(<4 x float> undef) 320 %r3 = call <4 x float> @llvm.fabs.v4f32(<4 x float> undef)
317 %r4 = fadd <4 x float> %r2, %r3 321 %r4 = fadd <4 x float> %r2, %r3
318 ret <4 x float> %r4 322 ret <4 x float> %r4
319 } 323 }
320 ; CHECK-LABEL: test_fabs_v4f32 324 ; CHECK-LABEL: test_fabs_v4f32
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 537
534 call void @llvm.stackrestore(i8* %sp1) 538 call void @llvm.stackrestore(i8* %sp1)
535 ret void 539 ret void
536 } 540 }
537 ; CHECK-LABEL: test_stacksave_multiple 541 ; CHECK-LABEL: test_stacksave_multiple
538 ; At least 3 copies of esp, but probably more from having to do the allocas. 542 ; At least 3 copies of esp, but probably more from having to do the allocas.
539 ; CHECK: mov {{.*}},esp 543 ; CHECK: mov {{.*}},esp
540 ; CHECK: mov {{.*}},esp 544 ; CHECK: mov {{.*}},esp
541 ; CHECK: mov {{.*}},esp 545 ; CHECK: mov {{.*}},esp
542 ; CHECK: mov esp,{{.*}} 546 ; CHECK: mov esp,{{.*}}
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698