@@ -269,138 +269,138 @@ double check__CopyDoubleFromInt64(__int64 arg1) {
269
269
return _CopyDoubleFromInt64 (arg1 );
270
270
}
271
271
272
- // CHECK-MSCOMPAT: %[[RETVAL:.*]] = alloca double, align 8
273
272
// CHECK-MSCOMPAT: %[[ARG:.*]].addr = alloca i64, align 8
274
273
// CHECK-MSCOMPAT: store i64 %[[ARG]], ptr %[[ARG]].addr, align 8
275
274
// CHECK-MSCOMPAT: %[[VAR0:.*]] = load i64, ptr %[[ARG]].addr, align 8
276
- // CHECK-MSCOMPAT: store i64 %[[VAR0]], ptr %[[RETVAL]], align 8
277
- // CHECK-MSCOMPAT: %[[VAR1:.*]] = load double, ptr %[[RETVAL]], align 8
275
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = bitcast i64 %[[VAR0]] to double
278
276
// CHECK-MSCOMPAT: ret double %[[VAR1]]
279
277
// CHECK-LINUX: error: call to undeclared function '_CopyDoubleFromInt64'
280
278
281
279
float check__CopyFloatFromInt32 (__int32 arg1 ) {
282
280
return _CopyFloatFromInt32 (arg1 );
283
281
}
284
282
285
- // CHECK-MSCOMPAT: %[[RETVAL:.*]] = alloca float, align 4
286
283
// CHECK-MSCOMPAT: %[[ARG:.*]].addr = alloca i32, align 4
287
284
// CHECK-MSCOMPAT: store i32 %[[ARG]], ptr %[[ARG]].addr, align 4
288
285
// CHECK-MSCOMPAT: %[[VAR0:.*]] = load i32, ptr %[[ARG]].addr, align 4
289
- // CHECK-MSCOMPAT: store i32 %[[VAR0]], ptr %[[RETVAL]], align 4
290
- // CHECK-MSCOMPAT: %[[VAR1:.*]] = load float, ptr %[[RETVAL]], align 4
286
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = bitcast i32 %[[VAR0]] to float
291
287
// CHECK-MSCOMPAT: ret float %[[VAR1]]
292
288
// CHECK-LINUX: error: call to undeclared function '_CopyFloatFromInt32'
293
289
294
290
__int32 check__CopyInt32FromFloat (float arg1 ) {
295
291
return _CopyInt32FromFloat (arg1 );
296
292
}
297
293
298
- // CHECK-MSCOMPAT: %[[RETVAL:.*]] = alloca i32, align 4
299
294
// CHECK-MSCOMPAT: %[[ARG:.*]].addr = alloca float, align 4
300
295
// CHECK-MSCOMPAT: store float %[[ARG]], ptr %[[ARG]].addr, align 4
301
296
// CHECK-MSCOMPAT: %[[VAR0:.*]] = load float, ptr %[[ARG]].addr, align 4
302
- // CHECK-MSCOMPAT: store float %[[VAR0]], ptr %[[RETVAL]], align 4
303
- // CHECK-MSCOMPAT: %[[VAR1:.*]] = load i32, ptr %[[RETVAL]], align 4
297
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = bitcast float %[[VAR0]] to i32
304
298
// CHECK-MSCOMPAT: ret i32 %[[VAR1]]
305
299
// CHECK-LINUX: error: call to undeclared function '_CopyInt32FromFloat'
306
300
307
301
__int64 check__CopyInt64FromDouble (double arg1 ) {
308
302
return _CopyInt64FromDouble (arg1 );
309
303
}
310
304
311
- // CHECK-MSCOMPAT: %[[RETVAL:.*]] = alloca i64, align 8
312
305
// CHECK-MSCOMPAT: %[[ARG:.*]].addr = alloca double, align 8
313
306
// CHECK-MSCOMPAT: store double %[[ARG]], ptr %[[ARG]].addr, align 8
314
307
// CHECK-MSCOMPAT: %[[VAR0:.*]] = load double, ptr %[[ARG]].addr, align 8
315
- // CHECK-MSCOMPAT: store double %[[VAR0]], ptr %[[RETVAL]], align 8
316
- // CHECK-MSCOMPAT: %[[VAR1:.*]] = load i64, ptr %[[RETVAL]], align 8
308
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = bitcast double %[[VAR0]] to i64
317
309
// CHECK-MSCOMPAT: ret i64 %[[VAR1]]
318
310
// CHECK-LINUX: error: call to undeclared function '_CopyInt64FromDouble'
319
311
320
312
unsigned int check__CountLeadingOnes (unsigned LONG arg1 ) {
321
313
return _CountLeadingOnes (arg1 );
322
314
}
323
315
324
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i32, align 4
325
- // CHECK-MSVC: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
326
- // CHECK-MSVC: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
327
- // CHECK-MSVC: %[[VAR1:.*]] = xor i32 %[[VAR0]], -1
328
- // CHECK-MSVC: %[[VAR2:.*]] = call i32 @llvm.ctlz.i32(i32 %1, i1 false)
329
- // CHECK-MSVC: ret i32 %[[VAR2]]
316
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i32, align 4
317
+ // CHECK-MSCOMPAT: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
318
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
319
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = xor i32 %[[VAR0]], -1
320
+ // CHECK-MSCOMPAT: %[[VAR2:.*]] = call i32 @llvm.ctlz.i32(i32 %1, i1 false)
321
+ // CHECK-MSCOMPAT: ret i32 %[[VAR2]]
322
+ // CHECK-LINUX: error: call to undeclared function '_CountLeadingOnes'
330
323
331
324
unsigned int check__CountLeadingOnes64 (unsigned __int64 arg1 ) {
332
325
return _CountLeadingOnes64 (arg1 );
333
326
}
334
327
335
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i64, align 8
336
- // CHECK-MSVC: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
337
- // CHECK-MSVC: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
338
- // CHECK-MSVC: %[[VAR1:.*]] = xor i64 %[[VAR0]], -1
339
- // CHECK-MSVC: %[[VAR2:.*]] = call i64 @llvm.ctlz.i64(i64 %1, i1 false)
340
- // CHECK-MSVC: %[[VAR3:.*]] = trunc i64 %2 to i32
341
- // CHECK-MSVC: ret i32 %[[VAR3]]
328
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i64, align 8
329
+ // CHECK-MSCOMPAT: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
330
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
331
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = xor i64 %[[VAR0]], -1
332
+ // CHECK-MSCOMPAT: %[[VAR2:.*]] = call i64 @llvm.ctlz.i64(i64 %1, i1 false)
333
+ // CHECK-MSCOMPAT: %[[VAR3:.*]] = trunc i64 %2 to i32
334
+ // CHECK-MSCOMPAT: ret i32 %[[VAR3]]
335
+ // CHECK-LINUX: error: call to undeclared function '_CountLeadingOnes64'
342
336
343
337
unsigned int check__CountLeadingSigns (__int32 arg1 ) {
344
338
return _CountLeadingSigns (arg1 );
345
339
}
346
340
347
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i32, align 4
348
- // CHECK-MSVC: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
349
- // CHECK-MSVC: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
350
- // CHECK-MSVC: %[[CLS:.*]] = call i32 @llvm.aarch64.cls(i32 %[[VAR0]])
351
- // CHECK-MSVC: ret i32 %[[CLS]]
341
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i32, align 4
342
+ // CHECK-MSCOMPAT: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
343
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
344
+ // CHECK-MSCOMPAT: %[[CLS:.*]] = call i32 @llvm.aarch64.cls(i32 %[[VAR0]])
345
+ // CHECK-MSCOMPAT: ret i32 %[[CLS]]
346
+ // CHECK-LINUX: error: call to undeclared function '_CountLeadingSigns'
352
347
353
348
unsigned int check__CountLeadingSigns64 (__int64 arg1 ) {
354
349
return _CountLeadingSigns64 (arg1 );
355
350
}
356
351
357
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i64, align 8
358
- // CHECK-MSVC: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
359
- // CHECK-MSVC: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
360
- // CHECK-MSVC: %[[CLS:.*]] = call i32 @llvm.aarch64.cls64(i64 %[[VAR0]])
361
- // CHECK-MSVC: ret i32 %[[CLS]]
352
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i64, align 8
353
+ // CHECK-MSCOMPAT: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
354
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
355
+ // CHECK-MSCOMPAT: %[[CLS:.*]] = call i32 @llvm.aarch64.cls64(i64 %[[VAR0]])
356
+ // CHECK-MSCOMPAT: ret i32 %[[CLS]]
357
+ // CHECK-LINUX: error: call to undeclared function '_CountLeadingSigns64'
362
358
363
359
unsigned int check__CountLeadingZeros (__int32 arg1 ) {
364
360
return _CountLeadingZeros (arg1 );
365
361
}
366
362
367
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i32, align 4
368
- // CHECK-MSVC: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
369
- // CHECK-MSVC: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
370
- // CHECK-MSVC: %[[VAR1:.*]] = call i32 @llvm.ctlz.i32(i32 %[[VAR0]], i1 false)
371
- // CHECK-MSVC: ret i32 %[[VAR1]]
363
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i32, align 4
364
+ // CHECK-MSCOMPAT: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
365
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
366
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = call i32 @llvm.ctlz.i32(i32 %[[VAR0]], i1 false)
367
+ // CHECK-MSCOMPAT: ret i32 %[[VAR1]]
368
+ // CHECK-LINUX: error: call to undeclared function '_CountLeadingZeros'
372
369
373
370
unsigned int check__CountLeadingZeros64 (__int64 arg1 ) {
374
371
return _CountLeadingZeros64 (arg1 );
375
372
}
376
373
377
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i64, align 8
378
- // CHECK-MSVC: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
379
- // CHECK-MSVC: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
380
- // CHECK-MSVC: %[[VAR1:.*]] = call i64 @llvm.ctlz.i64(i64 %[[VAR0]], i1 false)
381
- // CHECK-MSVC: %[[VAR2:.*]] = trunc i64 %[[VAR1]] to i32
382
- // CHECK-MSVC: ret i32 %[[VAR2]]
374
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i64, align 8
375
+ // CHECK-MSCOMPAT: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
376
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
377
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = call i64 @llvm.ctlz.i64(i64 %[[VAR0]], i1 false)
378
+ // CHECK-MSCOMPAT: %[[VAR2:.*]] = trunc i64 %[[VAR1]] to i32
379
+ // CHECK-MSCOMPAT: ret i32 %[[VAR2]]
380
+ // CHECK-LINUX: error: call to undeclared function '_CountLeadingZeros64'
383
381
384
382
unsigned int check_CountOneBits (unsigned LONG arg1 ) {
385
383
return _CountOneBits (arg1 );
386
384
}
387
385
388
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i32, align 4
389
- // CHECK-MSVC: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
390
- // CHECK-MSVC: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
391
- // CHECK-MSVC: %[[VAR1:.*]] = call i32 @llvm.ctpop.i32(i32 %0)
392
- // CHECK-MSVC: ret i32 %[[VAR1]]
386
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i32, align 4
387
+ // CHECK-MSCOMPAT: store i32 %[[ARG1]], ptr %[[ARG1]].addr, align 4
388
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i32, ptr %[[ARG1]].addr, align 4
389
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = call i32 @llvm.ctpop.i32(i32 %0)
390
+ // CHECK-MSCOMPAT: ret i32 %[[VAR1]]
391
+ // CHECK-LINUX: error: call to undeclared function '_CountOneBits'
393
392
394
393
unsigned int check_CountOneBits64 (unsigned __int64 arg1 ) {
395
394
return _CountOneBits64 (arg1 );
396
395
}
397
396
398
- // CHECK-MSVC: %[[ARG1:.*]].addr = alloca i64, align 8
399
- // CHECK-MSVC: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
400
- // CHECK-MSVC: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
401
- // CHECK-MSVC: %[[VAR1:.*]] = call i64 @llvm.ctpop.i64(i64 %0)
402
- // CHECK-MSVC: %[[VAR2:.*]] = trunc i64 %1 to i32
403
- // CHECK-MSVC: ret i32 %[[VAR2]]
397
+ // CHECK-MSCOMPAT: %[[ARG1:.*]].addr = alloca i64, align 8
398
+ // CHECK-MSCOMPAT: store i64 %[[ARG1]], ptr %[[ARG1]].addr, align 8
399
+ // CHECK-MSCOMPAT: %[[VAR0:.*]] = load i64, ptr %[[ARG1]].addr, align 8
400
+ // CHECK-MSCOMPAT: %[[VAR1:.*]] = call i64 @llvm.ctpop.i64(i64 %0)
401
+ // CHECK-MSCOMPAT: %[[VAR2:.*]] = trunc i64 %1 to i32
402
+ // CHECK-MSCOMPAT: ret i32 %[[VAR2]]
403
+ // CHECK-LINUX: error: call to undeclared function '_CountOneBits64'
404
404
405
405
406
406
// CHECK-MSCOMPAT: ![[MD2]] = !{!"x18"}
0 commit comments