Skip to content

Commit 51628fa

Browse files
authored
[RISCV] Sink hasPostISelHook = 1 for vector pseudos into the subclasses that set HasRoundModeOp. NFC (#114294)
1 parent c1858cd commit 51628fa

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td

+24-17
Original file line numberDiff line numberDiff line change
@@ -1074,6 +1074,7 @@ class VPseudoUnaryNoMaskRoundingMode<DAGOperand RetClass,
10741074
let HasVecPolicyOp = 1;
10751075
let HasRoundModeOp = 1;
10761076
let UsesVXRM = 0;
1077+
let hasPostISelHook = 1;
10771078
}
10781079

10791080
class VPseudoUnaryMask<VReg RetClass,
@@ -1115,6 +1116,7 @@ class VPseudoUnaryMaskRoundingMode<VReg RetClass,
11151116
let UsesMaskPolicy = 1;
11161117
let HasRoundModeOp = 1;
11171118
let UsesVXRM = 0;
1119+
let hasPostISelHook = 1;
11181120
}
11191121

11201122
class VPseudoUnaryMask_NoExcept<VReg RetClass,
@@ -1226,6 +1228,7 @@ class VPseudoBinaryNoMaskRoundingMode<VReg RetClass,
12261228
let HasVecPolicyOp = 1;
12271229
let HasRoundModeOp = 1;
12281230
let UsesVXRM = UsesVXRM_;
1231+
let hasPostISelHook = !not(UsesVXRM_);
12291232
}
12301233

12311234
class VPseudoBinaryMaskPolicyRoundingMode<VReg RetClass,
@@ -1250,6 +1253,7 @@ class VPseudoBinaryMaskPolicyRoundingMode<VReg RetClass,
12501253
let UsesMaskPolicy = 1;
12511254
let HasRoundModeOp = 1;
12521255
let UsesVXRM = UsesVXRM_;
1256+
let hasPostISelHook = !not(UsesVXRM_);
12531257
}
12541258

12551259
// Special version of VPseudoBinaryNoMask where we pretend the first source is
@@ -1297,6 +1301,7 @@ class VPseudoTiedBinaryNoMaskRoundingMode<VReg RetClass,
12971301
let IsTiedPseudo = 1;
12981302
let HasRoundModeOp = 1;
12991303
let UsesVXRM = 0;
1304+
let hasPostISelHook = 1;
13001305
}
13011306

13021307
class VPseudoIStoreNoMask<VReg StClass, VReg IdxClass, int EEW, bits<3> LMUL,
@@ -1384,6 +1389,7 @@ class VPseudoTernaryMaskPolicyRoundingMode<VReg RetClass,
13841389
let HasVecPolicyOp = 1;
13851390
let HasRoundModeOp = 1;
13861391
let UsesVXRM = 0;
1392+
let hasPostISelHook = 1;
13871393
}
13881394

13891395
// Like VPseudoBinaryMaskPolicy, but output can be V0 and there is no policy.
@@ -1454,6 +1460,7 @@ class VPseudoTiedBinaryMaskRoundingMode<VReg RetClass,
14541460
let IsTiedPseudo = 1;
14551461
let HasRoundModeOp = 1;
14561462
let UsesVXRM = 0;
1463+
let hasPostISelHook = 1;
14571464
}
14581465

14591466
class VPseudoBinaryCarry<VReg RetClass,
@@ -1554,6 +1561,7 @@ class VPseudoTernaryNoMaskWithPolicyRoundingMode<VReg RetClass,
15541561
let HasSEWOp = 1;
15551562
let HasRoundModeOp = 1;
15561563
let UsesVXRM = 0;
1564+
let hasPostISelHook = 1;
15571565
}
15581566

15591567
class VPseudoUSSegLoadNoMask<VReg RetClass,
@@ -6352,7 +6360,7 @@ let Predicates = [HasVInstructionsAnyF] in {
63526360
//===----------------------------------------------------------------------===//
63536361
// 13.2. Vector Single-Width Floating-Point Add/Subtract Instructions
63546362
//===----------------------------------------------------------------------===//
6355-
let mayRaiseFPException = true, hasPostISelHook = 1 in {
6363+
let mayRaiseFPException = true in {
63566364
defm PseudoVFADD : VPseudoVALU_VV_VF_RM;
63576365
defm PseudoVFSUB : VPseudoVALU_VV_VF_RM;
63586366
defm PseudoVFRSUB : VPseudoVALU_VF_RM;
@@ -6361,7 +6369,7 @@ defm PseudoVFRSUB : VPseudoVALU_VF_RM;
63616369
//===----------------------------------------------------------------------===//
63626370
// 13.3. Vector Widening Floating-Point Add/Subtract Instructions
63636371
//===----------------------------------------------------------------------===//
6364-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in {
6372+
let mayRaiseFPException = true, hasSideEffects = 0 in {
63656373
defm PseudoVFWADD : VPseudoVFWALU_VV_VF_RM;
63666374
defm PseudoVFWSUB : VPseudoVFWALU_VV_VF_RM;
63676375
defm PseudoVFWADD : VPseudoVFWALU_WV_WF_RM;
@@ -6371,7 +6379,7 @@ defm PseudoVFWSUB : VPseudoVFWALU_WV_WF_RM;
63716379
//===----------------------------------------------------------------------===//
63726380
// 13.4. Vector Single-Width Floating-Point Multiply/Divide Instructions
63736381
//===----------------------------------------------------------------------===//
6374-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in {
6382+
let mayRaiseFPException = true, hasSideEffects = 0 in {
63756383
defm PseudoVFMUL : VPseudoVFMUL_VV_VF_RM;
63766384
defm PseudoVFDIV : VPseudoVFDIV_VV_VF_RM;
63776385
defm PseudoVFRDIV : VPseudoVFRDIV_VF_RM;
@@ -6380,14 +6388,14 @@ defm PseudoVFRDIV : VPseudoVFRDIV_VF_RM;
63806388
//===----------------------------------------------------------------------===//
63816389
// 13.5. Vector Widening Floating-Point Multiply
63826390
//===----------------------------------------------------------------------===//
6383-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in {
6391+
let mayRaiseFPException = true, hasSideEffects = 0 in {
63846392
defm PseudoVFWMUL : VPseudoVWMUL_VV_VF_RM;
63856393
}
63866394

63876395
//===----------------------------------------------------------------------===//
63886396
// 13.6. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
63896397
//===----------------------------------------------------------------------===//
6390-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in {
6398+
let mayRaiseFPException = true, hasSideEffects = 0 in {
63916399
defm PseudoVFMACC : VPseudoVMAC_VV_VF_AAXA_RM;
63926400
defm PseudoVFNMACC : VPseudoVMAC_VV_VF_AAXA_RM;
63936401
defm PseudoVFMSAC : VPseudoVMAC_VV_VF_AAXA_RM;
@@ -6401,7 +6409,7 @@ defm PseudoVFNMSUB : VPseudoVMAC_VV_VF_AAXA_RM;
64016409
//===----------------------------------------------------------------------===//
64026410
// 13.7. Vector Widening Floating-Point Fused Multiply-Add Instructions
64036411
//===----------------------------------------------------------------------===//
6404-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in {
6412+
let mayRaiseFPException = true, hasSideEffects = 0 in {
64056413
defm PseudoVFWMACC : VPseudoVWMAC_VV_VF_RM;
64066414
defm PseudoVFWNMACC : VPseudoVWMAC_VV_VF_RM;
64076415
defm PseudoVFWMSAC : VPseudoVWMAC_VV_VF_RM;
@@ -6413,7 +6421,7 @@ defm PseudoVFWMACCBF16 : VPseudoVWMAC_VV_VF_BF_RM;
64136421
//===----------------------------------------------------------------------===//
64146422
// 13.8. Vector Floating-Point Square-Root Instruction
64156423
//===----------------------------------------------------------------------===//
6416-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in
6424+
let mayRaiseFPException = true, hasSideEffects = 0 in
64176425
defm PseudoVFSQRT : VPseudoVSQR_V_RM;
64186426

64196427
//===----------------------------------------------------------------------===//
@@ -6425,7 +6433,7 @@ defm PseudoVFRSQRT7 : VPseudoVRCP_V;
64256433
//===----------------------------------------------------------------------===//
64266434
// 13.10. Vector Floating-Point Reciprocal Estimate Instruction
64276435
//===----------------------------------------------------------------------===//
6428-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in
6436+
let mayRaiseFPException = true, hasSideEffects = 0 in
64296437
defm PseudoVFREC7 : VPseudoVRCP_V_RM;
64306438

64316439
//===----------------------------------------------------------------------===//
@@ -6475,7 +6483,7 @@ defm PseudoVFMV_V : VPseudoVMV_F;
64756483
// 13.17. Single-Width Floating-Point/Integer Type-Convert Instructions
64766484
//===----------------------------------------------------------------------===//
64776485
let mayRaiseFPException = true in {
6478-
let hasSideEffects = 0, hasPostISelHook = 1 in {
6486+
let hasSideEffects = 0 in {
64796487
defm PseudoVFCVT_XU_F : VPseudoVCVTI_V_RM;
64806488
defm PseudoVFCVT_X_F : VPseudoVCVTI_V_RM;
64816489
}
@@ -6484,7 +6492,7 @@ defm PseudoVFCVT_RTZ_XU_F : VPseudoVCVTI_V;
64846492
defm PseudoVFCVT_RTZ_X_F : VPseudoVCVTI_V;
64856493

64866494
defm PseudoVFROUND_NOEXCEPT : VPseudoVFROUND_NOEXCEPT_V;
6487-
let hasSideEffects = 0, hasPostISelHook = 1 in {
6495+
let hasSideEffects = 0 in {
64886496
defm PseudoVFCVT_F_XU : VPseudoVCVTF_V_RM;
64896497
defm PseudoVFCVT_F_X : VPseudoVCVTF_V_RM;
64906498
}
@@ -6494,7 +6502,7 @@ defm PseudoVFCVT_F_X : VPseudoVCVTF_V_RM;
64946502
// 13.18. Widening Floating-Point/Integer Type-Convert Instructions
64956503
//===----------------------------------------------------------------------===//
64966504
let mayRaiseFPException = true in {
6497-
let hasSideEffects = 0, hasPostISelHook = 1 in {
6505+
let hasSideEffects = 0 in {
64986506
defm PseudoVFWCVT_XU_F : VPseudoVWCVTI_V_RM;
64996507
defm PseudoVFWCVT_X_F : VPseudoVWCVTI_V_RM;
65006508
}
@@ -6513,20 +6521,20 @@ defm PseudoVFWCVTBF16_F_F : VPseudoVWCVTD_V;
65136521
// 13.19. Narrowing Floating-Point/Integer Type-Convert Instructions
65146522
//===----------------------------------------------------------------------===//
65156523
let mayRaiseFPException = true in {
6516-
let hasSideEffects = 0, hasPostISelHook = 1 in {
6524+
let hasSideEffects = 0 in {
65176525
defm PseudoVFNCVT_XU_F : VPseudoVNCVTI_W_RM;
65186526
defm PseudoVFNCVT_X_F : VPseudoVNCVTI_W_RM;
65196527
}
65206528

65216529
defm PseudoVFNCVT_RTZ_XU_F : VPseudoVNCVTI_W;
65226530
defm PseudoVFNCVT_RTZ_X_F : VPseudoVNCVTI_W;
65236531

6524-
let hasSideEffects = 0, hasPostISelHook = 1 in {
6532+
let hasSideEffects = 0 in {
65256533
defm PseudoVFNCVT_F_XU : VPseudoVNCVTF_W_RM;
65266534
defm PseudoVFNCVT_F_X : VPseudoVNCVTF_W_RM;
65276535
}
65286536

6529-
let hasSideEffects = 0, hasPostISelHook = 1 in {
6537+
let hasSideEffects = 0 in {
65306538
defm PseudoVFNCVT_F_F : VPseudoVNCVTD_W_RM;
65316539
defm PseudoVFNCVTBF16_F_F : VPseudoVNCVTD_W_RM;
65326540
}
@@ -6565,7 +6573,7 @@ let Predicates = [HasVInstructionsAnyF] in {
65656573
//===----------------------------------------------------------------------===//
65666574
// 14.3. Vector Single-Width Floating-Point Reduction Instructions
65676575
//===----------------------------------------------------------------------===//
6568-
let mayRaiseFPException = true, hasSideEffects = 0, hasPostISelHook = 1 in {
6576+
let mayRaiseFPException = true, hasSideEffects = 0 in {
65696577
defm PseudoVFREDOSUM : VPseudoVFREDO_VS_RM;
65706578
defm PseudoVFREDUSUM : VPseudoVFRED_VS_RM;
65716579
}
@@ -6577,8 +6585,7 @@ defm PseudoVFREDMAX : VPseudoVFREDMINMAX_VS;
65776585
//===----------------------------------------------------------------------===//
65786586
// 14.4. Vector Widening Floating-Point Reduction Instructions
65796587
//===----------------------------------------------------------------------===//
6580-
let IsRVVWideningReduction = 1, hasSideEffects = 0, mayRaiseFPException = true,
6581-
hasPostISelHook = 1 in {
6588+
let IsRVVWideningReduction = 1, hasSideEffects = 0, mayRaiseFPException = true in {
65826589
defm PseudoVFWREDUSUM : VPseudoVFWRED_VS_RM;
65836590
defm PseudoVFWREDOSUM : VPseudoVFWREDO_VS_RM;
65846591
}

0 commit comments

Comments
 (0)