@@ -1140,3 +1140,285 @@ body: |
11401140 SI_RETURN implicit $sgpr7, implicit $sgpr8
11411141
11421142 ...
1143+
1144+ ---
1145+ name : s_add_i32__identity_sgpr__fi_offset0__kernel
1146+ tracksRegLiveness : true
1147+ stack :
1148+ - { id: 0, size: 32, alignment: 16 }
1149+ machineFunctionInfo :
1150+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1151+ frameOffsetReg : ' $sgpr33'
1152+ stackPtrOffsetReg : ' $sgpr32'
1153+ isEntryFunction : true
1154+ body : |
1155+ bb.0:
1156+ liveins: $sgpr8
1157+
1158+ ; MUBUFW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1159+ ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1160+ ; MUBUFW64-NEXT: {{ $}}
1161+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1162+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1163+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1164+ ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1165+ ;
1166+ ; MUBUFW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1167+ ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1168+ ; MUBUFW32-NEXT: {{ $}}
1169+ ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1170+ ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1171+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1172+ ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1173+ ;
1174+ ; FLATSCRW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1175+ ; FLATSCRW64: liveins: $sgpr8
1176+ ; FLATSCRW64-NEXT: {{ $}}
1177+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1178+ ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1179+ ;
1180+ ; FLATSCRW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1181+ ; FLATSCRW32: liveins: $sgpr8
1182+ ; FLATSCRW32-NEXT: {{ $}}
1183+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1184+ ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1185+ renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1186+ SI_RETURN implicit $sgpr8
1187+
1188+ ...
1189+
1190+ ---
1191+ name : s_add_i32__fi_offset0__identity_sgpr__kernel
1192+ tracksRegLiveness : true
1193+ stack :
1194+ - { id: 0, size: 32, alignment: 16 }
1195+ machineFunctionInfo :
1196+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1197+ frameOffsetReg : ' $sgpr33'
1198+ stackPtrOffsetReg : ' $sgpr32'
1199+ isEntryFunction : true
1200+ body : |
1201+ bb.0:
1202+ liveins: $sgpr8
1203+
1204+ ; MUBUFW64-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1205+ ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1206+ ; MUBUFW64-NEXT: {{ $}}
1207+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1208+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1209+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1210+ ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1211+ ;
1212+ ; MUBUFW32-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1213+ ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1214+ ; MUBUFW32-NEXT: {{ $}}
1215+ ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1216+ ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1217+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1218+ ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1219+ ;
1220+ ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1221+ ; FLATSCRW64: liveins: $sgpr8
1222+ ; FLATSCRW64-NEXT: {{ $}}
1223+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1224+ ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1225+ ;
1226+ ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1227+ ; FLATSCRW32: liveins: $sgpr8
1228+ ; FLATSCRW32-NEXT: {{ $}}
1229+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 0, implicit-def dead $scc
1230+ ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1231+ renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1232+ SI_RETURN implicit $sgpr8
1233+
1234+ ...
1235+
1236+ ---
1237+ name : s_add_i32__identity_sgpr__fi_offset32__kernel
1238+ tracksRegLiveness : true
1239+ stack :
1240+ - { id: 0, size: 32, alignment: 16 }
1241+ - { id: 1, size: 64, alignment: 4 }
1242+ machineFunctionInfo :
1243+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1244+ frameOffsetReg : ' $sgpr33'
1245+ stackPtrOffsetReg : ' $sgpr32'
1246+ isEntryFunction : true
1247+ body : |
1248+ bb.0:
1249+ liveins: $sgpr8
1250+
1251+ ; MUBUFW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1252+ ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1253+ ; MUBUFW64-NEXT: {{ $}}
1254+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1255+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1256+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1257+ ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1258+ ;
1259+ ; MUBUFW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1260+ ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1261+ ; MUBUFW32-NEXT: {{ $}}
1262+ ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1263+ ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1264+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1265+ ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1266+ ;
1267+ ; FLATSCRW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1268+ ; FLATSCRW64: liveins: $sgpr8
1269+ ; FLATSCRW64-NEXT: {{ $}}
1270+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1271+ ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1272+ ;
1273+ ; FLATSCRW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1274+ ; FLATSCRW32: liveins: $sgpr8
1275+ ; FLATSCRW32-NEXT: {{ $}}
1276+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1277+ ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1278+ renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
1279+ SI_RETURN implicit $sgpr8
1280+
1281+ ...
1282+
1283+ ---
1284+ name : s_add_i32__fi_offset32__identity_sgpr__kernel
1285+ tracksRegLiveness : true
1286+ stack :
1287+ - { id: 0, size: 32, alignment: 16 }
1288+ - { id: 1, size: 64, alignment: 4 }
1289+ machineFunctionInfo :
1290+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1291+ frameOffsetReg : ' $sgpr33'
1292+ stackPtrOffsetReg : ' $sgpr32'
1293+ isEntryFunction : true
1294+ body : |
1295+ bb.0:
1296+ liveins: $sgpr8
1297+
1298+ ; MUBUFW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1299+ ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1300+ ; MUBUFW64-NEXT: {{ $}}
1301+ ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1302+ ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1303+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1304+ ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1305+ ;
1306+ ; MUBUFW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1307+ ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1308+ ; MUBUFW32-NEXT: {{ $}}
1309+ ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1310+ ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1311+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1312+ ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1313+ ;
1314+ ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1315+ ; FLATSCRW64: liveins: $sgpr8
1316+ ; FLATSCRW64-NEXT: {{ $}}
1317+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1318+ ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1319+ ;
1320+ ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1321+ ; FLATSCRW32: liveins: $sgpr8
1322+ ; FLATSCRW32-NEXT: {{ $}}
1323+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1324+ ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1325+ renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
1326+ SI_RETURN implicit $sgpr8
1327+
1328+ ...
1329+
1330+
1331+ ---
1332+ name : s_add_i32__identity_sgpr__fi_offset0
1333+ tracksRegLiveness : true
1334+ stack :
1335+ - { id: 0, size: 32, alignment: 16 }
1336+ machineFunctionInfo :
1337+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1338+ frameOffsetReg : ' $sgpr33'
1339+ stackPtrOffsetReg : ' $sgpr32'
1340+ body : |
1341+ bb.0:
1342+ liveins: $sgpr8
1343+
1344+ ; MUBUFW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1345+ ; MUBUFW64: liveins: $sgpr8
1346+ ; MUBUFW64-NEXT: {{ $}}
1347+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1348+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, $sgpr8, implicit-def dead $scc
1349+ ; MUBUFW64-NEXT: renamable $sgpr8 = COPY $sgpr8
1350+ ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1351+ ;
1352+ ; MUBUFW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1353+ ; MUBUFW32: liveins: $sgpr8
1354+ ; MUBUFW32-NEXT: {{ $}}
1355+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1356+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, $sgpr8, implicit-def dead $scc
1357+ ; MUBUFW32-NEXT: renamable $sgpr8 = COPY $sgpr8
1358+ ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1359+ ;
1360+ ; FLATSCRW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1361+ ; FLATSCRW64: liveins: $sgpr8
1362+ ; FLATSCRW64-NEXT: {{ $}}
1363+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr32, $sgpr8, implicit-def dead $scc
1364+ ; FLATSCRW64-NEXT: renamable $sgpr8 = COPY $sgpr8
1365+ ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1366+ ;
1367+ ; FLATSCRW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1368+ ; FLATSCRW32: liveins: $sgpr8
1369+ ; FLATSCRW32-NEXT: {{ $}}
1370+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr32, $sgpr8, implicit-def dead $scc
1371+ ; FLATSCRW32-NEXT: renamable $sgpr8 = COPY $sgpr8
1372+ ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1373+ renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1374+ SI_RETURN implicit $sgpr8
1375+
1376+ ...
1377+
1378+ ---
1379+ name : s_add_i32__fi_offset32__identity_sgpr
1380+ tracksRegLiveness : true
1381+ stack :
1382+ - { id: 0, size: 32, alignment: 16 }
1383+ - { id: 1, size: 64, alignment: 4 }
1384+ machineFunctionInfo :
1385+ scratchRSrcReg : ' $sgpr0_sgpr1_sgpr2_sgpr3'
1386+ frameOffsetReg : ' $sgpr33'
1387+ stackPtrOffsetReg : ' $sgpr32'
1388+ body : |
1389+ bb.0:
1390+ liveins: $sgpr8
1391+
1392+ ; MUBUFW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1393+ ; MUBUFW64: liveins: $sgpr8
1394+ ; MUBUFW64-NEXT: {{ $}}
1395+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1396+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, $sgpr8, implicit-def dead $scc
1397+ ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1398+ ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1399+ ;
1400+ ; MUBUFW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1401+ ; MUBUFW32: liveins: $sgpr8
1402+ ; MUBUFW32-NEXT: {{ $}}
1403+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1404+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, $sgpr8, implicit-def dead $scc
1405+ ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1406+ ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1407+ ;
1408+ ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1409+ ; FLATSCRW64: liveins: $sgpr8
1410+ ; FLATSCRW64-NEXT: {{ $}}
1411+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr32, $sgpr8, implicit-def dead $scc
1412+ ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1413+ ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1414+ ;
1415+ ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1416+ ; FLATSCRW32: liveins: $sgpr8
1417+ ; FLATSCRW32-NEXT: {{ $}}
1418+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr32, $sgpr8, implicit-def dead $scc
1419+ ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1420+ ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1421+ renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
1422+ SI_RETURN implicit $sgpr8
1423+
1424+ ...
0 commit comments