| 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=target_ARM32 --command %p2i --filetype=obj --disassemble \ |
| 10 ; RUN: --target arm32 -i %s --args -O2 --skip-unimplemented \ | 10 ; RUN: --target arm32 -i %s --args -O2 \ |
| 11 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \ | 11 ; RUN: | %if --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=target_ARM32 --command %p2i --filetype=obj --disassemble \ |
| 15 ; RUN: --target arm32 -i %s --args -Om1 --skip-unimplemented \ | 15 ; RUN: --target arm32 -i %s --args -Om1 \ |
| 16 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \ | 16 ; RUN: | %if --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 \ | 19 ; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \ |
| 20 ; RUN: --filetype=asm --target mips32 -i %s --args -Om1 --skip-unimplemented \ | 20 ; RUN: --filetype=asm --target mips32 -i %s --args -Om1 --skip-unimplemented \ |
| 21 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ | 21 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ |
| 22 ; RUN: --check-prefix=MIPS32 | 22 ; RUN: --check-prefix=MIPS32 |
| 23 | 23 |
| 24 ; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \ | 24 ; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \ |
| 25 ; RUN: --filetype=asm --target mips32 -i %s --args -O2 --skip-unimplemented \ | 25 ; RUN: --filetype=asm --target mips32 -i %s --args -O2 --skip-unimplemented \ |
| 26 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ | 26 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 ; MIPS32O2: trunc.w.d | 128 ; MIPS32O2: trunc.w.d |
| 129 | 129 |
| 130 define internal i32 @doubleToSigned32Const() { | 130 define internal i32 @doubleToSigned32Const() { |
| 131 entry: | 131 entry: |
| 132 %conv = fptosi double 867.5309 to i32 | 132 %conv = fptosi double 867.5309 to i32 |
| 133 ret i32 %conv | 133 ret i32 %conv |
| 134 } | 134 } |
| 135 ; CHECK-LABEL: doubleToSigned32Const | 135 ; CHECK-LABEL: doubleToSigned32Const |
| 136 ; CHECK: cvttsd2si | 136 ; CHECK: cvttsd2si |
| 137 ; ARM32-LABEL: doubleToSigned32Const | 137 ; ARM32-LABEL: doubleToSigned32Const |
| 138 ; ARM32-DAG: movw [[ADDR:r[0-9]+]], #:lower16:.L$ | 138 ; ARM32-DAG: movw [[ADDR:r[0-9]+]], #{{.*_MOVW_}} |
| 139 ; ARM32-DAG: movt [[ADDR]], #:upper16:.L$ | 139 ; ARM32-DAG: movt [[ADDR]], #{{.*_MOVT_}} |
| 140 ; ARM32-DAG: vldr [[DREG:d[0-9]+]], {{\[}}[[ADDR]]{{\]}} | 140 ; ARM32-DAG: vldr [[DREG:d[0-9]+]], {{\[}}[[ADDR]]{{\]}} |
| 141 ; ARM32-DAG: vcvt.s32.f64 [[REG:s[0-9]+]], [[DREG]] | 141 ; ARM32-DAG: vcvt.s32.f64 [[REG:s[0-9]+]], [[DREG]] |
| 142 ; ARM32-DAF: vmov {{r[0-9]+}}, [[REG]] | 142 ; ARM32-DAF: vmov {{r[0-9]+}}, [[REG]] |
| 143 ; MIPS32-LABEL: doubleToSigned32Const | 143 ; MIPS32-LABEL: doubleToSigned32Const |
| 144 ; MIPS32: lui | 144 ; MIPS32: lui |
| 145 ; MIPS32: ldc1 | 145 ; MIPS32: ldc1 |
| 146 ; MIPS32: trunc.w.d | 146 ; MIPS32: trunc.w.d |
| 147 ; MIPS32O2-LABEL: doubleToSigned32Const | 147 ; MIPS32O2-LABEL: doubleToSigned32Const |
| 148 ; MIPS32O2: lui | 148 ; MIPS32O2: lui |
| 149 ; MIPS32O2: ldc1 | 149 ; MIPS32O2: ldc1 |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 ; CHECK-LABEL: int64BitcastToDoubleConst | 788 ; CHECK-LABEL: int64BitcastToDoubleConst |
| 789 ; CHECK: mov | 789 ; CHECK: mov |
| 790 ; ARM32-LABEL: int64BitcastToDoubleConst | 790 ; ARM32-LABEL: int64BitcastToDoubleConst |
| 791 ; ARM32-DAG: movw [[REG0:r[0-9]+]], #57336 | 791 ; ARM32-DAG: movw [[REG0:r[0-9]+]], #57336 |
| 792 ; ARM32-DAG: movt [[REG0]], #137 | 792 ; ARM32-DAG: movt [[REG0]], #137 |
| 793 ; ARM32-DAG: mov [[REG1:r[0-9]+]], #0 | 793 ; ARM32-DAG: mov [[REG1:r[0-9]+]], #0 |
| 794 ; ARM32-DAG: vmov d{{[0-9]+}}, [[REG0]], [[REG1]] | 794 ; ARM32-DAG: vmov d{{[0-9]+}}, [[REG0]], [[REG1]] |
| 795 ; MIPS32-LABEL: int64BitcastToDoubleConst | 795 ; MIPS32-LABEL: int64BitcastToDoubleConst |
| 796 ; MIPS32: ldc1 | 796 ; MIPS32: ldc1 |
| 797 ; MIPS32O2-LABEL: int64BitcastToDoubleConst | 797 ; MIPS32O2-LABEL: int64BitcastToDoubleConst |
| OLD | NEW |