@@ -1155,43 +1155,37 @@ extern "C" __device__ int test_ilogb(double x) {
1155
1155
1156
1156
// DEFAULT-LABEL: @test___finitef(
1157
1157
// DEFAULT-NEXT: entry:
1158
- // DEFAULT-NEXT: [[CALL_I :%.*]] = tail call i32 @__ocml_isfinite_f32 (float noundef [[X:%.*]]) #[[ATTR14 ]]
1159
- // DEFAULT-NEXT: [[TOBOOL_I :%.*]] = icmp ne i32 [[CALL_I ]], 0
1160
- // DEFAULT-NEXT: [[CONV:%.*]] = zext i1 [[TOBOOL_I ]] to i32
1158
+ // DEFAULT-NEXT: [[TMP0 :%.*]] = tail call contract float @llvm.fabs.f32 (float [[X:%.*]]) #[[ATTR17:[0-9]+ ]]
1159
+ // DEFAULT-NEXT: [[CMPINF_I :%.*]] = fcmp contract one float [[TMP0 ]], 0x7FF0000000000000
1160
+ // DEFAULT-NEXT: [[CONV:%.*]] = zext i1 [[CMPINF_I ]] to i32
1161
1161
// DEFAULT-NEXT: ret i32 [[CONV]]
1162
1162
//
1163
1163
// FINITEONLY-LABEL: @test___finitef(
1164
1164
// FINITEONLY-NEXT: entry:
1165
- // FINITEONLY-NEXT: [[CALL_I:%.*]] = tail call i32 @__ocml_isfinite_f32(float noundef nofpclass(nan inf) [[X:%.*]]) #[[ATTR14]]
1166
- // FINITEONLY-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[CALL_I]], 0
1167
- // FINITEONLY-NEXT: [[CONV:%.*]] = zext i1 [[TOBOOL_I]] to i32
1168
- // FINITEONLY-NEXT: ret i32 [[CONV]]
1165
+ // FINITEONLY-NEXT: ret i32 1
1169
1166
//
1170
1167
extern " C" __device__ BOOL_TYPE test___finitef (float x) {
1171
1168
return __finitef (x);
1172
1169
}
1173
1170
1174
1171
// DEFAULT-LABEL: @test___finite(
1175
1172
// DEFAULT-NEXT: entry:
1176
- // DEFAULT-NEXT: [[CALL_I :%.*]] = tail call i32 @__ocml_isfinite_f64 (double noundef [[X:%.*]]) #[[ATTR14 ]]
1177
- // DEFAULT-NEXT: [[TOBOOL_I :%.*]] = icmp ne i32 [[CALL_I ]], 0
1178
- // DEFAULT-NEXT: [[CONV:%.*]] = zext i1 [[TOBOOL_I ]] to i32
1173
+ // DEFAULT-NEXT: [[TMP0 :%.*]] = tail call contract double @llvm.fabs.f64 (double [[X:%.*]]) #[[ATTR17 ]]
1174
+ // DEFAULT-NEXT: [[CMPINF_I :%.*]] = fcmp contract one double [[TMP0 ]], 0x7FF0000000000000
1175
+ // DEFAULT-NEXT: [[CONV:%.*]] = zext i1 [[CMPINF_I ]] to i32
1179
1176
// DEFAULT-NEXT: ret i32 [[CONV]]
1180
1177
//
1181
1178
// FINITEONLY-LABEL: @test___finite(
1182
1179
// FINITEONLY-NEXT: entry:
1183
- // FINITEONLY-NEXT: [[CALL_I:%.*]] = tail call i32 @__ocml_isfinite_f64(double noundef nofpclass(nan inf) [[X:%.*]]) #[[ATTR14]]
1184
- // FINITEONLY-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[CALL_I]], 0
1185
- // FINITEONLY-NEXT: [[CONV:%.*]] = zext i1 [[TOBOOL_I]] to i32
1186
- // FINITEONLY-NEXT: ret i32 [[CONV]]
1180
+ // FINITEONLY-NEXT: ret i32 1
1187
1181
//
1188
1182
extern " C" __device__ BOOL_TYPE test___finite (double x) {
1189
1183
return __finite (x);
1190
1184
}
1191
1185
1192
1186
// DEFAULT-LABEL: @test___isinff(
1193
1187
// DEFAULT-NEXT: entry:
1194
- // DEFAULT-NEXT: [[TMP0:%.*]] = tail call contract float @llvm.fabs.f32(float [[X:%.*]]) #[[ATTR17:[0-9]+ ]]
1188
+ // DEFAULT-NEXT: [[TMP0:%.*]] = tail call contract float @llvm.fabs.f32(float [[X:%.*]]) #[[ATTR17]]
1195
1189
// DEFAULT-NEXT: [[CMPINF_I:%.*]] = fcmp contract oeq float [[TMP0]], 0x7FF0000000000000
1196
1190
// DEFAULT-NEXT: [[CONV:%.*]] = zext i1 [[CMPINF_I]] to i32
1197
1191
// DEFAULT-NEXT: ret i32 [[CONV]]
0 commit comments