@@ -1140,3 +1140,285 @@ body: |
1140
1140
SI_RETURN implicit $sgpr7, implicit $sgpr8
1141
1141
1142
1142
...
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