OLD | NEW |
1 ; This tries to be a comprehensive test of f32 and f64 operations. | 1 ; This tries to be a comprehensive test of f32 and f64 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: %llvm2ice -O2 --verbose none %s | FileCheck %s | 6 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s |
7 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck %s | 7 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck %s |
8 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 8 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
9 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s | 9 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
10 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ | 10 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 | 398 |
399 define internal float @unsigned64ToFloat(i64 %a) { | 399 define internal float @unsigned64ToFloat(i64 %a) { |
400 entry: | 400 entry: |
401 %conv = uitofp i64 %a to float | 401 %conv = uitofp i64 %a to float |
402 ret float %conv | 402 ret float %conv |
403 } | 403 } |
404 ; CHECK-LABEL: unsigned64ToFloat | 404 ; CHECK-LABEL: unsigned64ToFloat |
405 ; CHECK: call cvtui64tof | 405 ; CHECK: call cvtui64tof |
406 ; CHECK: fstp | 406 ; CHECK: fstp |
407 | 407 |
| 408 define internal double @unsigned64ToDoubleConst() { |
| 409 entry: |
| 410 %conv = uitofp i64 12345678901234 to double |
| 411 ret double %conv |
| 412 } |
| 413 ; CHECK-LABEL: unsigned64ToDouble |
| 414 ; CHECK: push 2874 |
| 415 ; CHECK: push 1942892530 |
| 416 ; CHECK: call cvtui64tod |
| 417 ; CHECK: fstp |
| 418 |
408 define internal double @signed32ToDouble(i32 %a) { | 419 define internal double @signed32ToDouble(i32 %a) { |
409 entry: | 420 entry: |
410 %conv = sitofp i32 %a to double | 421 %conv = sitofp i32 %a to double |
411 ret double %conv | 422 ret double %conv |
412 } | 423 } |
413 ; CHECK-LABEL: signed32ToDouble | 424 ; CHECK-LABEL: signed32ToDouble |
414 ; CHECK: cvtsi2sd | 425 ; CHECK: cvtsi2sd |
415 ; CHECK: fld | 426 ; CHECK: fld |
416 | 427 |
417 define internal float @signed32ToFloat(i32 %a) { | 428 define internal float @signed32ToFloat(i32 %a) { |
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1112 %cond = select i1 %cmp, double %a, double %b | 1123 %cond = select i1 %cmp, double %a, double %b |
1113 ret double %cond | 1124 ret double %cond |
1114 } | 1125 } |
1115 ; CHECK-LABEL: selectDoubleVarVar | 1126 ; CHECK-LABEL: selectDoubleVarVar |
1116 ; CHECK: ucomisd | 1127 ; CHECK: ucomisd |
1117 ; CHECK: ja . | 1128 ; CHECK: ja . |
1118 ; CHECK: fld | 1129 ; CHECK: fld |
1119 | 1130 |
1120 ; ERRORS-NOT: ICE translation error | 1131 ; ERRORS-NOT: ICE translation error |
1121 ; DUMP-NOT: SZ | 1132 ; DUMP-NOT: SZ |
OLD | NEW |