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 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer | 6 ; TODO(jvoung): fix extra "CALLTARGETS" run. The llvm-objdump symbolizer |
7 ; doesn't know how to symbolize non-section-local functions. | 7 ; doesn't know how to symbolize non-section-local functions. |
8 ; The newer LLVM 3.6 one does work, but watch out for other bugs. | 8 ; The newer LLVM 3.6 one does work, but watch out for other bugs. |
9 | 9 |
10 ; RUN: %llvm2ice -O2 --verbose none %s \ | 10 ; RUN: %llvm2ice -O2 --verbose none %s \ |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 | 117 |
118 define internal float @addFloat(float %a, float %b) { | 118 define internal float @addFloat(float %a, float %b) { |
119 entry: | 119 entry: |
120 %add = fadd float %a, %b | 120 %add = fadd float %a, %b |
121 ret float %add | 121 ret float %add |
122 } | 122 } |
123 ; CHECK-LABEL: addFloat | 123 ; CHECK-LABEL: addFloat |
124 ; CHECK: addss | 124 ; CHECK: addss |
125 ; CHECK: fld | 125 ; CHECK: fld |
126 | 126 |
| 127 define internal float @addFloatImm(float %a) { |
| 128 entry: |
| 129 %add = fadd float %a, 1.0 |
| 130 ret float %add |
| 131 } |
| 132 ; CHECK-LABEL: addFloatImm |
| 133 ; CHECK: addss |
| 134 ; CHECK: fld |
| 135 |
127 define internal double @addDouble(double %a, double %b) { | 136 define internal double @addDouble(double %a, double %b) { |
128 entry: | 137 entry: |
129 %add = fadd double %a, %b | 138 %add = fadd double %a, %b |
130 ret double %add | 139 ret double %add |
131 } | 140 } |
132 ; CHECK-LABEL: addDouble | 141 ; CHECK-LABEL: addDouble |
133 ; CHECK: addsd | 142 ; CHECK: addsd |
134 ; CHECK: fld | 143 ; CHECK: fld |
135 | 144 |
| 145 define internal double @addDoubleImm(double %a) { |
| 146 entry: |
| 147 %add = fadd double %a, 1.0 |
| 148 ret double %add |
| 149 } |
| 150 ; CHECK-LABEL: addDoubleImm |
| 151 ; CHECK: addsd |
| 152 ; CHECK: fld |
| 153 |
| 154 |
136 define internal float @subFloat(float %a, float %b) { | 155 define internal float @subFloat(float %a, float %b) { |
137 entry: | 156 entry: |
138 %sub = fsub float %a, %b | 157 %sub = fsub float %a, %b |
139 ret float %sub | 158 ret float %sub |
140 } | 159 } |
141 ; CHECK-LABEL: subFloat | 160 ; CHECK-LABEL: subFloat |
142 ; CHECK: subss | 161 ; CHECK: subss |
143 ; CHECK: fld | 162 ; CHECK: fld |
144 | 163 |
145 define internal double @subDouble(double %a, double %b) { | 164 define internal double @subDouble(double %a, double %b) { |
(...skipping 1027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 %cond = select i1 %cmp, double %a, double %b | 1192 %cond = select i1 %cmp, double %a, double %b |
1174 ret double %cond | 1193 ret double %cond |
1175 } | 1194 } |
1176 ; CHECK-LABEL: selectDoubleVarVar | 1195 ; CHECK-LABEL: selectDoubleVarVar |
1177 ; CHECK: ucomisd | 1196 ; CHECK: ucomisd |
1178 ; CHECK: ja {{[0-9]}} | 1197 ; CHECK: ja {{[0-9]}} |
1179 ; CHECK: fld | 1198 ; CHECK: fld |
1180 | 1199 |
1181 ; ERRORS-NOT: ICE translation error | 1200 ; ERRORS-NOT: ICE translation error |
1182 ; DUMP-NOT: SZ | 1201 ; DUMP-NOT: SZ |
OLD | NEW |