@@ -1341,109 +1341,3 @@ entry:
13411341 %call = call float %fptr (i32 poison) #7
13421342 ret float %call
13431343}
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