@@ -241,6 +241,17 @@ class F3R_np<bits<5> opc, string OpcStr> :
241
241
!strconcat(OpcStr, " $dst, $b, $c"), []>;
242
242
// Three operand long
243
243
244
+ /// FL3R_L2RUS multiclass - Define a normal FL3R/FL2RUS pattern in one shot.
245
+ multiclass FL3R_L2RUS<bits<9> opc1, bits<9> opc2, string OpcStr,
246
+ SDNode OpNode> {
247
+ def _l3r: _FL3R<opc1, (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
248
+ !strconcat(OpcStr, " $dst, $b, $c"),
249
+ [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
250
+ def _l2rus : _FL2RUS<opc2, (outs GRRegs:$dst), (ins GRRegs:$b, i32imm:$c),
251
+ !strconcat(OpcStr, " $dst, $b, $c"),
252
+ [(set GRRegs:$dst, (OpNode GRRegs:$b, immUs:$c))]>;
253
+ }
254
+
244
255
/// FL3R_L2RUS multiclass - Define a normal FL3R/FL2RUS pattern in one shot.
245
256
multiclass FL3R_L2RBITP<bits<9> opc1, bits<9> opc2, string OpcStr,
246
257
SDNode OpNode> {
@@ -294,6 +305,14 @@ multiclass FU6_LU6_np<bits<10> opc, string OpcStr> {
294
305
def _lu6: _FLU6<opc, (outs), (ins i32imm:$a), !strconcat(OpcStr, " $a"), []>;
295
306
}
296
307
308
+ // Two operand short
309
+
310
+ class F2R_np<bits<6> opc, string OpcStr> :
311
+ _F2R<opc, (outs GRRegs:$dst), (ins GRRegs:$b),
312
+ !strconcat(OpcStr, " $dst, $b"), []>;
313
+
314
+ // Two operand long
315
+
297
316
//===----------------------------------------------------------------------===//
298
317
// Pseudo Instructions
299
318
//===----------------------------------------------------------------------===//
0 commit comments