We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 6f64e9e commit 9a040edCopy full SHA for 9a040ed
llvm/lib/Target/AMDGPU/SIRegisterInfo.td
@@ -88,15 +88,10 @@ class getSubRegs<int size> {
88
89
// Generates list of sequential register tuple names.
90
// E.g. RegSeq<3,2,2,"s">.ret -> [ "s[0:1]", "s[2:3]" ]
91
-class RegSeqNames<int last_reg, int stride, int size, string prefix,
92
- int start = 0> {
93
- int next = !add(start, stride);
94
- int end_reg = !add(start, size, -1);
95
- list<string> ret =
96
- !if(!le(end_reg, last_reg),
97
- !listconcat([prefix # "[" # start # ":" # end_reg # "]"],
98
- RegSeqNames<last_reg, stride, size, prefix, next>.ret),
99
- []);
+class RegSeqNames<int last_reg, int stride, int size, string prefix> {
+ defvar numtuples = !div(!sub(!add(last_reg, stride, 1), size), stride);
+ defvar range = !range(0, !mul(numtuples, stride), stride);
+ list<string> ret = !foreach(n, range, prefix # "[" # n # ":" # !add(n, size, -1) # "]");
100
}
101
102
// Generates list of dags for register tuples.
0 commit comments