| 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: %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 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 9 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
| 10 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 10 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
| (...skipping 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1096 %cmp = fcmp true double %a, %b | 1096 %cmp = fcmp true double %a, %b |
| 1097 %cmp.ret_ext = zext i1 %cmp to i32 | 1097 %cmp.ret_ext = zext i1 %cmp to i32 |
| 1098 ret i32 %cmp.ret_ext | 1098 ret i32 %cmp.ret_ext |
| 1099 } | 1099 } |
| 1100 ; CHECK-LABEL: fcmpTrueDouble | 1100 ; CHECK-LABEL: fcmpTrueDouble |
| 1101 ; CHECK: mov {{.*}},0x1 | 1101 ; CHECK: mov {{.*}},0x1 |
| 1102 | 1102 |
| 1103 define internal float @loadFloat(i32 %a) { | 1103 define internal float @loadFloat(i32 %a) { |
| 1104 entry: | 1104 entry: |
| 1105 %__1 = inttoptr i32 %a to float* | 1105 %__1 = inttoptr i32 %a to float* |
| 1106 %v0 = load float* %__1, align 4 | 1106 %v0 = load float, float* %__1, align 4 |
| 1107 ret float %v0 | 1107 ret float %v0 |
| 1108 } | 1108 } |
| 1109 ; CHECK-LABEL: loadFloat | 1109 ; CHECK-LABEL: loadFloat |
| 1110 ; CHECK: movss | 1110 ; CHECK: movss |
| 1111 ; CHECK: fld | 1111 ; CHECK: fld |
| 1112 | 1112 |
| 1113 define internal double @loadDouble(i32 %a) { | 1113 define internal double @loadDouble(i32 %a) { |
| 1114 entry: | 1114 entry: |
| 1115 %__1 = inttoptr i32 %a to double* | 1115 %__1 = inttoptr i32 %a to double* |
| 1116 %v0 = load double* %__1, align 8 | 1116 %v0 = load double, double* %__1, align 8 |
| 1117 ret double %v0 | 1117 ret double %v0 |
| 1118 } | 1118 } |
| 1119 ; CHECK-LABEL: loadDouble | 1119 ; CHECK-LABEL: loadDouble |
| 1120 ; CHECK: movsd | 1120 ; CHECK: movsd |
| 1121 ; CHECK: fld | 1121 ; CHECK: fld |
| 1122 | 1122 |
| 1123 define internal void @storeFloat(i32 %a, float %value) { | 1123 define internal void @storeFloat(i32 %a, float %value) { |
| 1124 entry: | 1124 entry: |
| 1125 %__2 = inttoptr i32 %a to float* | 1125 %__2 = inttoptr i32 %a to float* |
| 1126 store float %value, float* %__2, align 4 | 1126 store float %value, float* %__2, align 4 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1174 define internal double @selectDoubleVarVar(double %a, double %b) { | 1174 define internal double @selectDoubleVarVar(double %a, double %b) { |
| 1175 entry: | 1175 entry: |
| 1176 %cmp = fcmp olt double %a, %b | 1176 %cmp = fcmp olt double %a, %b |
| 1177 %cond = select i1 %cmp, double %a, double %b | 1177 %cond = select i1 %cmp, double %a, double %b |
| 1178 ret double %cond | 1178 ret double %cond |
| 1179 } | 1179 } |
| 1180 ; CHECK-LABEL: selectDoubleVarVar | 1180 ; CHECK-LABEL: selectDoubleVarVar |
| 1181 ; CHECK: ucomisd | 1181 ; CHECK: ucomisd |
| 1182 ; CHECK: seta | 1182 ; CHECK: seta |
| 1183 ; CHECK: fld | 1183 ; CHECK: fld |
| OLD | NEW |