OLD | NEW |
(Empty) | |
| 1 ; This tries to be a comprehensive test of f32 and f64 compare operations. |
| 2 ; The CHECK lines are only checking for basic instruction patterns |
| 3 ; that should be present regardless of the optimization level, so |
| 4 ; there are no special OPTM1 match lines. |
| 5 |
| 6 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 | FileCheck %s |
| 7 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 | FileCheck %s |
| 8 |
| 9 define internal float @loadFloat(i32 %a) { |
| 10 entry: |
| 11 %__1 = inttoptr i32 %a to float* |
| 12 %v0 = load float, float* %__1, align 4 |
| 13 ret float %v0 |
| 14 } |
| 15 ; CHECK-LABEL: loadFloat |
| 16 ; CHECK: movss |
| 17 ; CHECK: fld |
| 18 |
| 19 define internal double @loadDouble(i32 %a) { |
| 20 entry: |
| 21 %__1 = inttoptr i32 %a to double* |
| 22 %v0 = load double, double* %__1, align 8 |
| 23 ret double %v0 |
| 24 } |
| 25 ; CHECK-LABEL: loadDouble |
| 26 ; CHECK: movsd |
| 27 ; CHECK: fld |
| 28 |
| 29 define internal void @storeFloat(i32 %a, float %value) { |
| 30 entry: |
| 31 %__2 = inttoptr i32 %a to float* |
| 32 store float %value, float* %__2, align 4 |
| 33 ret void |
| 34 } |
| 35 ; CHECK-LABEL: storeFloat |
| 36 ; CHECK: movss |
| 37 ; CHECK: movss |
| 38 |
| 39 define internal void @storeDouble(i32 %a, double %value) { |
| 40 entry: |
| 41 %__2 = inttoptr i32 %a to double* |
| 42 store double %value, double* %__2, align 8 |
| 43 ret void |
| 44 } |
| 45 ; CHECK-LABEL: storeDouble |
| 46 ; CHECK: movsd |
| 47 ; CHECK: movsd |
| 48 |
| 49 define internal void @storeFloatConst(i32 %a) { |
| 50 entry: |
| 51 %a.asptr = inttoptr i32 %a to float* |
| 52 store float 0x3FF3AE1480000000, float* %a.asptr, align 4 |
| 53 ret void |
| 54 } |
| 55 ; CHECK-LABEL: storeFloatConst |
| 56 ; CHECK: movss |
| 57 ; CHECK: movss |
| 58 |
| 59 define internal void @storeDoubleConst(i32 %a) { |
| 60 entry: |
| 61 %a.asptr = inttoptr i32 %a to double* |
| 62 store double 1.230000e+00, double* %a.asptr, align 8 |
| 63 ret void |
| 64 } |
| 65 ; CHECK-LABEL: storeDoubleConst |
| 66 ; CHECK: movsd |
| 67 ; CHECK: movsd |
OLD | NEW |