@@ -1238,6 +1238,7 @@ class VPseudoBinaryNoMaskRoundingMode<VReg RetClass,
1238
1238
RISCVVPseudo {
1239
1239
let mayLoad = 0;
1240
1240
let mayStore = 0;
1241
+ let hasSideEffects = 0;
1241
1242
let Constraints = !interleave([Constraint, "$rd = $passthru"], ",");
1242
1243
let TargetOverlapConstraintType = TargetConstraintType;
1243
1244
let HasVLOp = 1;
@@ -1262,6 +1263,7 @@ class VPseudoBinaryMaskPolicyRoundingMode<VReg RetClass,
1262
1263
RISCVVPseudo {
1263
1264
let mayLoad = 0;
1264
1265
let mayStore = 0;
1266
+ let hasSideEffects = 0;
1265
1267
let Constraints = !interleave([Constraint, "$rd = $passthru"], ",");
1266
1268
let TargetOverlapConstraintType = TargetConstraintType;
1267
1269
let HasVLOp = 1;
@@ -6405,7 +6407,7 @@ defm PseudoVFRSUB : VPseudoVALU_VF_RM;
6405
6407
//===----------------------------------------------------------------------===//
6406
6408
// 13.3. Vector Widening Floating-Point Add/Subtract Instructions
6407
6409
//===----------------------------------------------------------------------===//
6408
- let mayRaiseFPException = true, hasSideEffects = 0 in {
6410
+ let mayRaiseFPException = true in {
6409
6411
defm PseudoVFWADD : VPseudoVFWALU_VV_VF_RM;
6410
6412
defm PseudoVFWSUB : VPseudoVFWALU_VV_VF_RM;
6411
6413
defm PseudoVFWADD : VPseudoVFWALU_WV_WF_RM;
@@ -6415,7 +6417,7 @@ defm PseudoVFWSUB : VPseudoVFWALU_WV_WF_RM;
6415
6417
//===----------------------------------------------------------------------===//
6416
6418
// 13.4. Vector Single-Width Floating-Point Multiply/Divide Instructions
6417
6419
//===----------------------------------------------------------------------===//
6418
- let mayRaiseFPException = true, hasSideEffects = 0 in {
6420
+ let mayRaiseFPException = true in {
6419
6421
defm PseudoVFMUL : VPseudoVFMUL_VV_VF_RM;
6420
6422
defm PseudoVFDIV : VPseudoVFDIV_VV_VF_RM;
6421
6423
defm PseudoVFRDIV : VPseudoVFRDIV_VF_RM;
@@ -6424,14 +6426,14 @@ defm PseudoVFRDIV : VPseudoVFRDIV_VF_RM;
6424
6426
//===----------------------------------------------------------------------===//
6425
6427
// 13.5. Vector Widening Floating-Point Multiply
6426
6428
//===----------------------------------------------------------------------===//
6427
- let mayRaiseFPException = true, hasSideEffects = 0 in {
6429
+ let mayRaiseFPException = true in {
6428
6430
defm PseudoVFWMUL : VPseudoVWMUL_VV_VF_RM;
6429
6431
}
6430
6432
6431
6433
//===----------------------------------------------------------------------===//
6432
6434
// 13.6. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
6433
6435
//===----------------------------------------------------------------------===//
6434
- let mayRaiseFPException = true, hasSideEffects = 0 in {
6436
+ let mayRaiseFPException = true in {
6435
6437
defm PseudoVFMACC : VPseudoVMAC_VV_VF_AAXA_RM;
6436
6438
defm PseudoVFNMACC : VPseudoVMAC_VV_VF_AAXA_RM;
6437
6439
defm PseudoVFMSAC : VPseudoVMAC_VV_VF_AAXA_RM;
@@ -6445,7 +6447,7 @@ defm PseudoVFNMSUB : VPseudoVMAC_VV_VF_AAXA_RM;
6445
6447
//===----------------------------------------------------------------------===//
6446
6448
// 13.7. Vector Widening Floating-Point Fused Multiply-Add Instructions
6447
6449
//===----------------------------------------------------------------------===//
6448
- let mayRaiseFPException = true, hasSideEffects = 0 in {
6450
+ let mayRaiseFPException = true in {
6449
6451
defm PseudoVFWMACC : VPseudoVWMAC_VV_VF_RM;
6450
6452
defm PseudoVFWNMACC : VPseudoVWMAC_VV_VF_RM;
6451
6453
defm PseudoVFWMSAC : VPseudoVWMAC_VV_VF_RM;
@@ -6457,7 +6459,7 @@ defm PseudoVFWMACCBF16 : VPseudoVWMAC_VV_VF_BF_RM;
6457
6459
//===----------------------------------------------------------------------===//
6458
6460
// 13.8. Vector Floating-Point Square-Root Instruction
6459
6461
//===----------------------------------------------------------------------===//
6460
- let mayRaiseFPException = true, hasSideEffects = 0 in
6462
+ let mayRaiseFPException = true in
6461
6463
defm PseudoVFSQRT : VPseudoVSQR_V_RM;
6462
6464
6463
6465
//===----------------------------------------------------------------------===//
@@ -6469,7 +6471,7 @@ defm PseudoVFRSQRT7 : VPseudoVRCP_V;
6469
6471
//===----------------------------------------------------------------------===//
6470
6472
// 13.10. Vector Floating-Point Reciprocal Estimate Instruction
6471
6473
//===----------------------------------------------------------------------===//
6472
- let mayRaiseFPException = true, hasSideEffects = 0 in
6474
+ let mayRaiseFPException = true in
6473
6475
defm PseudoVFREC7 : VPseudoVRCP_V_RM;
6474
6476
6475
6477
//===----------------------------------------------------------------------===//
@@ -6519,29 +6521,23 @@ defm PseudoVFMV_V : VPseudoVMV_F;
6519
6521
// 13.17. Single-Width Floating-Point/Integer Type-Convert Instructions
6520
6522
//===----------------------------------------------------------------------===//
6521
6523
let mayRaiseFPException = true in {
6522
- let hasSideEffects = 0 in {
6523
6524
defm PseudoVFCVT_XU_F : VPseudoVCVTI_V_RM;
6524
6525
defm PseudoVFCVT_X_F : VPseudoVCVTI_V_RM;
6525
- }
6526
6526
6527
6527
defm PseudoVFCVT_RTZ_XU_F : VPseudoVCVTI_V;
6528
6528
defm PseudoVFCVT_RTZ_X_F : VPseudoVCVTI_V;
6529
6529
6530
6530
defm PseudoVFROUND_NOEXCEPT : VPseudoVFROUND_NOEXCEPT_V;
6531
- let hasSideEffects = 0 in {
6532
6531
defm PseudoVFCVT_F_XU : VPseudoVCVTF_V_RM;
6533
6532
defm PseudoVFCVT_F_X : VPseudoVCVTF_V_RM;
6534
- }
6535
6533
} // mayRaiseFPException = true
6536
6534
6537
6535
//===----------------------------------------------------------------------===//
6538
6536
// 13.18. Widening Floating-Point/Integer Type-Convert Instructions
6539
6537
//===----------------------------------------------------------------------===//
6540
6538
let mayRaiseFPException = true in {
6541
- let hasSideEffects = 0 in {
6542
6539
defm PseudoVFWCVT_XU_F : VPseudoVWCVTI_V_RM;
6543
6540
defm PseudoVFWCVT_X_F : VPseudoVWCVTI_V_RM;
6544
- }
6545
6541
6546
6542
defm PseudoVFWCVT_RTZ_XU_F : VPseudoVWCVTI_V;
6547
6543
defm PseudoVFWCVT_RTZ_X_F : VPseudoVWCVTI_V;
@@ -6557,23 +6553,17 @@ defm PseudoVFWCVTBF16_F_F : VPseudoVWCVTD_V;
6557
6553
// 13.19. Narrowing Floating-Point/Integer Type-Convert Instructions
6558
6554
//===----------------------------------------------------------------------===//
6559
6555
let mayRaiseFPException = true in {
6560
- let hasSideEffects = 0 in {
6561
6556
defm PseudoVFNCVT_XU_F : VPseudoVNCVTI_W_RM;
6562
6557
defm PseudoVFNCVT_X_F : VPseudoVNCVTI_W_RM;
6563
- }
6564
6558
6565
6559
defm PseudoVFNCVT_RTZ_XU_F : VPseudoVNCVTI_W;
6566
6560
defm PseudoVFNCVT_RTZ_X_F : VPseudoVNCVTI_W;
6567
6561
6568
- let hasSideEffects = 0 in {
6569
6562
defm PseudoVFNCVT_F_XU : VPseudoVNCVTF_W_RM;
6570
6563
defm PseudoVFNCVT_F_X : VPseudoVNCVTF_W_RM;
6571
- }
6572
6564
6573
- let hasSideEffects = 0 in {
6574
6565
defm PseudoVFNCVT_F_F : VPseudoVNCVTD_W_RM;
6575
6566
defm PseudoVFNCVTBF16_F_F : VPseudoVNCVTD_W_RM;
6576
- }
6577
6567
6578
6568
defm PseudoVFNCVT_ROD_F_F : VPseudoVNCVTD_W;
6579
6569
} // mayRaiseFPException = true
@@ -6609,19 +6599,17 @@ let Predicates = [HasVInstructionsAnyF] in {
6609
6599
//===----------------------------------------------------------------------===//
6610
6600
// 14.3. Vector Single-Width Floating-Point Reduction Instructions
6611
6601
//===----------------------------------------------------------------------===//
6612
- let mayRaiseFPException = true, hasSideEffects = 0 in {
6602
+ let mayRaiseFPException = true in {
6613
6603
defm PseudoVFREDOSUM : VPseudoVFREDO_VS_RM;
6614
6604
defm PseudoVFREDUSUM : VPseudoVFRED_VS_RM;
6615
- }
6616
- let mayRaiseFPException = true in {
6617
6605
defm PseudoVFREDMIN : VPseudoVFREDMINMAX_VS;
6618
6606
defm PseudoVFREDMAX : VPseudoVFREDMINMAX_VS;
6619
6607
}
6620
6608
6621
6609
//===----------------------------------------------------------------------===//
6622
6610
// 14.4. Vector Widening Floating-Point Reduction Instructions
6623
6611
//===----------------------------------------------------------------------===//
6624
- let IsRVVWideningReduction = 1, hasSideEffects = 0, mayRaiseFPException = true in {
6612
+ let IsRVVWideningReduction = 1, mayRaiseFPException = true in {
6625
6613
defm PseudoVFWREDUSUM : VPseudoVFWRED_VS_RM;
6626
6614
defm PseudoVFWREDOSUM : VPseudoVFWREDO_VS_RM;
6627
6615
}
0 commit comments