@@ -1341,109 +1341,3 @@ entry:
1341
1341
%call = call float %fptr (i32 poison) #7
1342
1342
ret float %call
1343
1343
}
1344
-
1345
- define float @float_return_undef_float_arg (ptr nocapture %fptr ) #6 {
1346
- ; CHECK-8M-LABEL: float_return_undef_float_arg:
1347
- ; CHECK-8M: @ %bb.0: @ %entry
1348
- ; CHECK-8M-NEXT: push {r7, lr}
1349
- ; CHECK-8M-NEXT: push.w {r4, r5, r6, r7, r8, r9, r10, r11}
1350
- ; CHECK-8M-NEXT: bic r0, r0, #1
1351
- ; CHECK-8M-NEXT: sub sp, #136
1352
- ; CHECK-8M-NEXT: vmov r12, s0
1353
- ; CHECK-8M-NEXT: vlstm sp, {d0 - d15}
1354
- ; CHECK-8M-NEXT: vmov s0, r12
1355
- ; CHECK-8M-NEXT: ldr r1, [sp, #64]
1356
- ; CHECK-8M-NEXT: bic r1, r1, #159
1357
- ; CHECK-8M-NEXT: bic r1, r1, #4026531840
1358
- ; CHECK-8M-NEXT: vmsr fpscr, r1
1359
- ; CHECK-8M-NEXT: mov r1, r0
1360
- ; CHECK-8M-NEXT: mov r2, r0
1361
- ; CHECK-8M-NEXT: mov r3, r0
1362
- ; CHECK-8M-NEXT: mov r4, r0
1363
- ; CHECK-8M-NEXT: mov r5, r0
1364
- ; CHECK-8M-NEXT: mov r6, r0
1365
- ; CHECK-8M-NEXT: mov r7, r0
1366
- ; CHECK-8M-NEXT: mov r8, r0
1367
- ; CHECK-8M-NEXT: mov r9, r0
1368
- ; CHECK-8M-NEXT: mov r10, r0
1369
- ; CHECK-8M-NEXT: mov r11, r0
1370
- ; CHECK-8M-NEXT: msr apsr_nzcvqg, r0
1371
- ; CHECK-8M-NEXT: blxns r0
1372
- ; CHECK-8M-NEXT: vmov r12, s0
1373
- ; CHECK-8M-NEXT: vlldm sp, {d0 - d15}
1374
- ; CHECK-8M-NEXT: vmov s0, r12
1375
- ; CHECK-8M-NEXT: add sp, #136
1376
- ; CHECK-8M-NEXT: pop.w {r4, r5, r6, r7, r8, r9, r10, r11}
1377
- ; CHECK-8M-NEXT: pop {r7, pc}
1378
- ;
1379
- ; CHECK-81M-LABEL: float_return_undef_float_arg:
1380
- ; CHECK-81M: @ %bb.0: @ %entry
1381
- ; CHECK-81M-NEXT: push {r7, lr}
1382
- ; CHECK-81M-NEXT: push.w {r4, r5, r6, r7, r8, r9, r10, r11}
1383
- ; CHECK-81M-NEXT: bic r0, r0, #1
1384
- ; CHECK-81M-NEXT: vpush {s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31}
1385
- ; CHECK-81M-NEXT: vscclrm {s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, vpr}
1386
- ; CHECK-81M-NEXT: vstr fpcxts, [sp, #-8]!
1387
- ; CHECK-81M-NEXT: clrm {r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, apsr}
1388
- ; CHECK-81M-NEXT: blxns r0
1389
- ; CHECK-81M-NEXT: vldr fpcxts, [sp], #8
1390
- ; CHECK-81M-NEXT: vpop {s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31}
1391
- ; CHECK-81M-NEXT: pop.w {r4, r5, r6, r7, r8, r9, r10, r11}
1392
- ; CHECK-81M-NEXT: pop {r7, pc}
1393
- entry:
1394
- %call = call float %fptr (float undef ) #7
1395
- ret float %call
1396
- }
1397
-
1398
- define float @float_return_poison_float_arg (ptr nocapture %fptr ) #6 {
1399
- ; CHECK-8M-LABEL: float_return_poison_float_arg:
1400
- ; CHECK-8M: @ %bb.0: @ %entry
1401
- ; CHECK-8M-NEXT: push {r7, lr}
1402
- ; CHECK-8M-NEXT: push.w {r4, r5, r6, r7, r8, r9, r10, r11}
1403
- ; CHECK-8M-NEXT: bic r0, r0, #1
1404
- ; CHECK-8M-NEXT: sub sp, #136
1405
- ; CHECK-8M-NEXT: vmov r12, s0
1406
- ; CHECK-8M-NEXT: vlstm sp, {d0 - d15}
1407
- ; CHECK-8M-NEXT: vmov s0, r12
1408
- ; CHECK-8M-NEXT: ldr r1, [sp, #64]
1409
- ; CHECK-8M-NEXT: bic r1, r1, #159
1410
- ; CHECK-8M-NEXT: bic r1, r1, #4026531840
1411
- ; CHECK-8M-NEXT: vmsr fpscr, r1
1412
- ; CHECK-8M-NEXT: mov r1, r0
1413
- ; CHECK-8M-NEXT: mov r2, r0
1414
- ; CHECK-8M-NEXT: mov r3, r0
1415
- ; CHECK-8M-NEXT: mov r4, r0
1416
- ; CHECK-8M-NEXT: mov r5, r0
1417
- ; CHECK-8M-NEXT: mov r6, r0
1418
- ; CHECK-8M-NEXT: mov r7, r0
1419
- ; CHECK-8M-NEXT: mov r8, r0
1420
- ; CHECK-8M-NEXT: mov r9, r0
1421
- ; CHECK-8M-NEXT: mov r10, r0
1422
- ; CHECK-8M-NEXT: mov r11, r0
1423
- ; CHECK-8M-NEXT: msr apsr_nzcvqg, r0
1424
- ; CHECK-8M-NEXT: blxns r0
1425
- ; CHECK-8M-NEXT: vmov r12, s0
1426
- ; CHECK-8M-NEXT: vlldm sp, {d0 - d15}
1427
- ; CHECK-8M-NEXT: vmov s0, r12
1428
- ; CHECK-8M-NEXT: add sp, #136
1429
- ; CHECK-8M-NEXT: pop.w {r4, r5, r6, r7, r8, r9, r10, r11}
1430
- ; CHECK-8M-NEXT: pop {r7, pc}
1431
- ;
1432
- ; CHECK-81M-LABEL: float_return_poison_float_arg:
1433
- ; CHECK-81M: @ %bb.0: @ %entry
1434
- ; CHECK-81M-NEXT: push {r7, lr}
1435
- ; CHECK-81M-NEXT: push.w {r4, r5, r6, r7, r8, r9, r10, r11}
1436
- ; CHECK-81M-NEXT: bic r0, r0, #1
1437
- ; CHECK-81M-NEXT: vpush {s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31}
1438
- ; CHECK-81M-NEXT: vscclrm {s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, vpr}
1439
- ; CHECK-81M-NEXT: vstr fpcxts, [sp, #-8]!
1440
- ; CHECK-81M-NEXT: clrm {r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, apsr}
1441
- ; CHECK-81M-NEXT: blxns r0
1442
- ; CHECK-81M-NEXT: vldr fpcxts, [sp], #8
1443
- ; CHECK-81M-NEXT: vpop {s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31}
1444
- ; CHECK-81M-NEXT: pop.w {r4, r5, r6, r7, r8, r9, r10, r11}
1445
- ; CHECK-81M-NEXT: pop {r7, pc}
1446
- entry:
1447
- %call = call float %fptr (float poison) #7
1448
- ret float %call
1449
- }
0 commit comments