Skip to content

Commit 749535b

Browse files
authored
[RISCV] Use tablegen HasOneUse. NFC (llvm#133974)
1 parent c8764f0 commit 749535b

File tree

2 files changed

+54
-93
lines changed

2 files changed

+54
-93
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.td

+6-6
Original file line numberDiff line numberDiff line change
@@ -1299,9 +1299,9 @@ def ext : PatFrags<(ops node:$A), [(sext node:$A), (zext node:$A)]>;
12991299

13001300
class binop_oneuse<SDPatternOperator operator>
13011301
: PatFrag<(ops node:$A, node:$B),
1302-
(operator node:$A, node:$B), [{
1303-
return N->hasOneUse();
1304-
}]>;
1302+
(operator node:$A, node:$B)> {
1303+
let HasOneUse = 1;
1304+
}
13051305

13061306
def and_oneuse : binop_oneuse<and>;
13071307
def mul_oneuse : binop_oneuse<mul>;
@@ -1315,9 +1315,9 @@ def mul_const_oneuse : PatFrag<(ops node:$A, node:$B),
13151315

13161316
class unop_oneuse<SDPatternOperator operator>
13171317
: PatFrag<(ops node:$A),
1318-
(operator node:$A), [{
1319-
return N->hasOneUse();
1320-
}]>;
1318+
(operator node:$A)> {
1319+
let HasOneUse = 1;
1320+
}
13211321

13221322
def sext_oneuse : unop_oneuse<sext>;
13231323
def zext_oneuse : unop_oneuse<zext>;

llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

+48-87
Original file line numberDiff line numberDiff line change
@@ -492,101 +492,62 @@ def SDTRVVVecReduce : SDTypeProfile<1, 6, [
492492
SDTCisVT<6, XLenVT>
493493
]>;
494494

495-
def riscv_add_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
496-
node:$E),
497-
(riscv_add_vl node:$A, node:$B, node:$C,
498-
node:$D, node:$E), [{
499-
return N->hasOneUse();
500-
}]>;
501-
502-
def riscv_sub_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
503-
node:$E),
504-
(riscv_sub_vl node:$A, node:$B, node:$C,
505-
node:$D, node:$E), [{
506-
return N->hasOneUse();
507-
}]>;
508-
509-
def riscv_mul_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
510-
node:$E),
511-
(riscv_mul_vl node:$A, node:$B, node:$C,
512-
node:$D, node:$E), [{
513-
return N->hasOneUse();
514-
}]>;
515-
516-
def riscv_vwmul_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
495+
let HasOneUse = 1 in {
496+
def riscv_add_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
517497
node:$E),
518-
(riscv_vwmul_vl node:$A, node:$B, node:$C,
519-
node:$D, node:$E), [{
520-
return N->hasOneUse();
521-
}]>;
522-
523-
def riscv_vwmulu_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
524-
node:$E),
525-
(riscv_vwmulu_vl node:$A, node:$B, node:$C,
526-
node:$D, node:$E), [{
527-
return N->hasOneUse();
528-
}]>;
529-
530-
def riscv_vwmulsu_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
498+
(riscv_add_vl node:$A, node:$B, node:$C,
499+
node:$D, node:$E)>;
500+
def riscv_sub_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
501+
node:$E),
502+
(riscv_sub_vl node:$A, node:$B, node:$C,
503+
node:$D, node:$E)>;
504+
def riscv_mul_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
505+
node:$E),
506+
(riscv_mul_vl node:$A, node:$B, node:$C,
507+
node:$D, node:$E)>;
508+
def riscv_vwmul_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
531509
node:$E),
532-
(riscv_vwmulsu_vl node:$A, node:$B, node:$C,
533-
node:$D, node:$E), [{
534-
return N->hasOneUse();
535-
}]>;
536-
537-
def riscv_sext_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
538-
(riscv_sext_vl node:$A, node:$B, node:$C), [{
539-
return N->hasOneUse();
540-
}]>;
541-
542-
def riscv_zext_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
543-
(riscv_zext_vl node:$A, node:$B, node:$C), [{
544-
return N->hasOneUse();
545-
}]>;
546-
547-
def riscv_ext_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
548-
(riscv_ext_vl node:$A, node:$B, node:$C), [{
549-
return N->hasOneUse();
550-
}]>;
551-
552-
def riscv_fpextend_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
553-
(riscv_fpextend_vl node:$A, node:$B, node:$C), [{
554-
return N->hasOneUse();
555-
}]>;
510+
(riscv_vwmul_vl node:$A, node:$B, node:$C,
511+
node:$D, node:$E)>;
512+
def riscv_vwmulu_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
513+
node:$E),
514+
(riscv_vwmulu_vl node:$A, node:$B, node:$C,
515+
node:$D, node:$E)>;
516+
def riscv_vwmulsu_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
517+
node:$E),
518+
(riscv_vwmulsu_vl node:$A, node:$B, node:$C,
519+
node:$D, node:$E)>;
520+
def riscv_sext_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
521+
(riscv_sext_vl node:$A, node:$B, node:$C)>;
522+
def riscv_zext_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
523+
(riscv_zext_vl node:$A, node:$B, node:$C)>;
524+
def riscv_ext_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
525+
(riscv_ext_vl node:$A, node:$B, node:$C)>;
526+
def riscv_fpextend_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C),
527+
(riscv_fpextend_vl node:$A, node:$B, node:$C)>;
528+
def riscv_vfmadd_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
529+
node:$E),
530+
(riscv_vfmadd_vl node:$A, node:$B,
531+
node:$C, node:$D, node:$E)>;
532+
def riscv_vfnmadd_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
533+
node:$E),
534+
(riscv_vfnmadd_vl node:$A, node:$B,
535+
node:$C, node:$D, node:$E)>;
536+
def riscv_vfmsub_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
537+
node:$E),
538+
(riscv_vfmsub_vl node:$A, node:$B,
539+
node:$C, node:$D, node:$E)>;
540+
def riscv_vfnmsub_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
541+
node:$E),
542+
(riscv_vfnmsub_vl node:$A, node:$B,
543+
node:$C, node:$D, node:$E)>;
544+
} // HasOneUse = 1
556545

557546
def riscv_fpextend_vl_sameuser : PatFrag<(ops node:$A, node:$B, node:$C),
558547
(riscv_fpextend_vl node:$A, node:$B, node:$C), [{
559548
return !N->use_empty() && all_equal(N->users());
560549
}]>;
561550

562-
def riscv_vfmadd_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
563-
node:$E),
564-
(riscv_vfmadd_vl node:$A, node:$B,
565-
node:$C, node:$D, node:$E), [{
566-
return N->hasOneUse();
567-
}]>;
568-
569-
def riscv_vfnmadd_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
570-
node:$E),
571-
(riscv_vfnmadd_vl node:$A, node:$B,
572-
node:$C, node:$D, node:$E), [{
573-
return N->hasOneUse();
574-
}]>;
575-
576-
def riscv_vfmsub_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
577-
node:$E),
578-
(riscv_vfmsub_vl node:$A, node:$B,
579-
node:$C, node:$D, node:$E), [{
580-
return N->hasOneUse();
581-
}]>;
582-
583-
def riscv_vfnmsub_vl_oneuse : PatFrag<(ops node:$A, node:$B, node:$C, node:$D,
584-
node:$E),
585-
(riscv_vfnmsub_vl node:$A, node:$B,
586-
node:$C, node:$D, node:$E), [{
587-
return N->hasOneUse();
588-
}]>;
589-
590551
foreach kind = ["ADD", "UMAX", "SMAX", "UMIN", "SMIN", "AND", "OR", "XOR",
591552
"FADD", "SEQ_FADD", "FMIN", "FMAX"] in
592553
def rvv_vecreduce_#kind#_vl : SDNode<"RISCVISD::VECREDUCE_"#kind#"_VL", SDTRVVVecReduce>;

0 commit comments

Comments
 (0)