| OLD | NEW |
| 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 \ |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 | 351 |
| 352 define internal double @signed32ToDoubleConst() { | 352 define internal double @signed32ToDoubleConst() { |
| 353 entry: | 353 entry: |
| 354 %conv = sitofp i32 123 to double | 354 %conv = sitofp i32 123 to double |
| 355 ret double %conv | 355 ret double %conv |
| 356 } | 356 } |
| 357 ; CHECK-LABEL: signed32ToDoubleConst | 357 ; CHECK-LABEL: signed32ToDoubleConst |
| 358 ; CHECK: cvtsi2sd {{.*[^1]}} | 358 ; CHECK: cvtsi2sd {{.*[^1]}} |
| 359 ; CHECK: fld | 359 ; CHECK: fld |
| 360 ; ARM32-LABEL: signed32ToDoubleConst | 360 ; ARM32-LABEL: signed32ToDoubleConst |
| 361 ; ARM32-DAG: movw [[CONST:r[0-9]+]], #123 | 361 ; ARM32-DAG: mov [[CONST:r[0-9]+]], #123 |
| 362 ; ARM32-DAG: vmov [[SRC:s[0-9]+]], [[CONST]] | 362 ; ARM32-DAG: vmov [[SRC:s[0-9]+]], [[CONST]] |
| 363 ; ARM32-DAG: vcvt.f64.s32 {{d[0-9]+}}, [[SRC]] | 363 ; ARM32-DAG: vcvt.f64.s32 {{d[0-9]+}}, [[SRC]] |
| 364 | 364 |
| 365 define internal float @signed32ToFloat(i32 %a) { | 365 define internal float @signed32ToFloat(i32 %a) { |
| 366 entry: | 366 entry: |
| 367 %conv = sitofp i32 %a to float | 367 %conv = sitofp i32 %a to float |
| 368 ret float %conv | 368 ret float %conv |
| 369 } | 369 } |
| 370 ; CHECK-LABEL: signed32ToFloat | 370 ; CHECK-LABEL: signed32ToFloat |
| 371 ; CHECK: cvtsi2ss | 371 ; CHECK: cvtsi2ss |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 %conv = bitcast i64 9035768 to double | 588 %conv = bitcast i64 9035768 to double |
| 589 ret double %conv | 589 ret double %conv |
| 590 } | 590 } |
| 591 ; CHECK-LABEL: int64BitcastToDoubleConst | 591 ; CHECK-LABEL: int64BitcastToDoubleConst |
| 592 ; CHECK: mov | 592 ; CHECK: mov |
| 593 ; ARM32-LABEL: int64BitcastToDoubleConst | 593 ; ARM32-LABEL: int64BitcastToDoubleConst |
| 594 ; ARM32-DAG: movw [[REG0:r[0-9]+]], #57336 | 594 ; ARM32-DAG: movw [[REG0:r[0-9]+]], #57336 |
| 595 ; ARM32-DAG: movt [[REG0]], #137 | 595 ; ARM32-DAG: movt [[REG0]], #137 |
| 596 ; ARM32-DAG: mov [[REG1:r[0-9]+]], #0 | 596 ; ARM32-DAG: mov [[REG1:r[0-9]+]], #0 |
| 597 ; ARM32-DAG: vmov d{{[0-9]+}}, [[REG0]], [[REG1]] | 597 ; ARM32-DAG: vmov d{{[0-9]+}}, [[REG0]], [[REG1]] |
| OLD | NEW |