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

Side by Side Diff: tests_lit/llvm2ice_tests/fp.convert.ll

Issue 2316933002: [SubZero] Implement GP to/from FP moves for MIPS (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addressed review comments Created 4 years, 3 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
OLDNEW
1 ; This tries to be a comprehensive test of f32 and f64 convert operations. 1 ; This tries to be a comprehensive test of f32 and f64 convert operations.
2 ; The CHECK lines are only checking for basic instruction patterns 2 ; The CHECK lines are only checking for basic instruction patterns
3 ; that should be present regardless of the optimization level, so 3 ; that should be present regardless of the optimization level, so
4 ; there are no special OPTM1 match lines. 4 ; there are no special OPTM1 match lines.
5 5
6 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 | FileCheck %s 6 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 | FileCheck %s
7 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 | FileCheck %s 7 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 | FileCheck %s
8 8
9 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ 9 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \
10 ; RUN: --target arm32 -i %s --args -O2 --skip-unimplemented \ 10 ; RUN: --target arm32 -i %s --args -O2 --skip-unimplemented \
11 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \ 11 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \
12 ; RUN: --check-prefix=ARM32 12 ; RUN: --check-prefix=ARM32
13 13
14 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ 14 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \
15 ; RUN: --target arm32 -i %s --args -Om1 --skip-unimplemented \ 15 ; RUN: --target arm32 -i %s --args -Om1 --skip-unimplemented \
16 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \ 16 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \
17 ; RUN: --check-prefix=ARM32 17 ; RUN: --check-prefix=ARM32
18 18
19 ; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \
20 ; RUN: --filetype=asm --target mips32 -i %s --args -O2 --skip-unimplemented \
21 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \
22 ; RUN: --check-prefix=MIPS32
23
19 define internal float @fptrunc(double %a) { 24 define internal float @fptrunc(double %a) {
20 entry: 25 entry:
21 %conv = fptrunc double %a to float 26 %conv = fptrunc double %a to float
22 ret float %conv 27 ret float %conv
23 } 28 }
24 ; CHECK-LABEL: fptrunc 29 ; CHECK-LABEL: fptrunc
25 ; CHECK: cvtsd2ss 30 ; CHECK: cvtsd2ss
26 ; CHECK: fld 31 ; CHECK: fld
27 ; ARM32-LABEL: fptrunc 32 ; ARM32-LABEL: fptrunc
28 ; ARM32: vcvt.f32.f64 {{s[0-9]+}}, {{d[0-9]+}} 33 ; ARM32: vcvt.f32.f64 {{s[0-9]+}}, {{d[0-9]+}}
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 define internal i32 @floatToSigned32(float %a) { 111 define internal i32 @floatToSigned32(float %a) {
107 entry: 112 entry:
108 %conv = fptosi float %a to i32 113 %conv = fptosi float %a to i32
109 ret i32 %conv 114 ret i32 %conv
110 } 115 }
111 ; CHECK-LABEL: floatToSigned32 116 ; CHECK-LABEL: floatToSigned32
112 ; CHECK: cvttss2si 117 ; CHECK: cvttss2si
113 ; ARM32-LABEL: floatToSigned32 118 ; ARM32-LABEL: floatToSigned32
114 ; ARM32-DAG: vcvt.s32.f32 [[REG:s[0-9]+]], {{s[0-9]+}} 119 ; ARM32-DAG: vcvt.s32.f32 [[REG:s[0-9]+]], {{s[0-9]+}}
115 ; ARM32-DAG: vmov {{r[0-9]+}}, [[REG]] 120 ; ARM32-DAG: vmov {{r[0-9]+}}, [[REG]]
121 ; MIPS32-LABEL: floatToSigned32
122 ; MIPS32: trunc.w.s $f12, $f12
123 ; MIPS32: mfc1 $v0, $f12
116 124
117 define internal i32 @doubleToUnsigned32(double %a) { 125 define internal i32 @doubleToUnsigned32(double %a) {
118 entry: 126 entry:
119 %conv = fptoui double %a to i32 127 %conv = fptoui double %a to i32
120 ret i32 %conv 128 ret i32 %conv
121 } 129 }
122 ; CHECK-LABEL: doubleToUnsigned32 130 ; CHECK-LABEL: doubleToUnsigned32
123 ; CHECK: call {{.*}} R_{{.*}} __Sz_fptoui_f64_i32 131 ; CHECK: call {{.*}} R_{{.*}} __Sz_fptoui_f64_i32
124 ; ARM32-LABEL: doubleToUnsigned32 132 ; ARM32-LABEL: doubleToUnsigned32
125 ; ARM32-DAG: vcvt.u32.f64 [[REG:s[0-9]+]], {{d[0-9]+}} 133 ; ARM32-DAG: vcvt.u32.f64 [[REG:s[0-9]+]], {{d[0-9]+}}
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 entry: 374 entry:
367 %conv = sitofp i32 %a to float 375 %conv = sitofp i32 %a to float
368 ret float %conv 376 ret float %conv
369 } 377 }
370 ; CHECK-LABEL: signed32ToFloat 378 ; CHECK-LABEL: signed32ToFloat
371 ; CHECK: cvtsi2ss 379 ; CHECK: cvtsi2ss
372 ; CHECK: fld 380 ; CHECK: fld
373 ; ARM32-LABEL: signed32ToFloat 381 ; ARM32-LABEL: signed32ToFloat
374 ; ARM32-DAG: vmov [[SRC:s[0-9]+]], {{r[0-9]+}} 382 ; ARM32-DAG: vmov [[SRC:s[0-9]+]], {{r[0-9]+}}
375 ; ARM32-DAG: vcvt.f32.s32 {{s[0-9]+}}, [[SRC]] 383 ; ARM32-DAG: vcvt.f32.s32 {{s[0-9]+}}, [[SRC]]
384 ; MIPS32-LABEL: signed32ToFloat
385 ; MIPS32: mtc1 $a0, $f0
386 ; MIPS32: cvt.s.w $f0, $f0
376 387
377 define internal double @unsigned32ToDouble(i32 %a) { 388 define internal double @unsigned32ToDouble(i32 %a) {
378 entry: 389 entry:
379 %conv = uitofp i32 %a to double 390 %conv = uitofp i32 %a to double
380 ret double %conv 391 ret double %conv
381 } 392 }
382 ; CHECK-LABEL: unsigned32ToDouble 393 ; CHECK-LABEL: unsigned32ToDouble
383 ; CHECK: call {{.*}} R_{{.*}} __Sz_uitofp_i32_f64 394 ; CHECK: call {{.*}} R_{{.*}} __Sz_uitofp_i32_f64
384 ; CHECK: fstp QWORD 395 ; CHECK: fstp QWORD
385 ; ARM32-LABEL: unsigned32ToDouble 396 ; ARM32-LABEL: unsigned32ToDouble
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 %conv = bitcast i64 9035768 to double 599 %conv = bitcast i64 9035768 to double
589 ret double %conv 600 ret double %conv
590 } 601 }
591 ; CHECK-LABEL: int64BitcastToDoubleConst 602 ; CHECK-LABEL: int64BitcastToDoubleConst
592 ; CHECK: mov 603 ; CHECK: mov
593 ; ARM32-LABEL: int64BitcastToDoubleConst 604 ; ARM32-LABEL: int64BitcastToDoubleConst
594 ; ARM32-DAG: movw [[REG0:r[0-9]+]], #57336 605 ; ARM32-DAG: movw [[REG0:r[0-9]+]], #57336
595 ; ARM32-DAG: movt [[REG0]], #137 606 ; ARM32-DAG: movt [[REG0]], #137
596 ; ARM32-DAG: mov [[REG1:r[0-9]+]], #0 607 ; ARM32-DAG: mov [[REG1:r[0-9]+]], #0
597 ; ARM32-DAG: vmov d{{[0-9]+}}, [[REG0]], [[REG1]] 608 ; ARM32-DAG: vmov d{{[0-9]+}}, [[REG0]], [[REG1]]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698