Skip to content

Commit 0f869cc

Browse files
[SystemZ] Make I5 operand of R[INOX]SGB(Z)? optional (llvm#129512)
The I5 operand of the instructions in RIE-f format is optional and assumed 0 when not specified. This was not properly modeled thus far, and is corrected with this PR. In addition, assembly and disassembly tests are updated to reflect these changes
1 parent 8632605 commit 0f869cc

File tree

10 files changed

+102
-85
lines changed

10 files changed

+102
-85
lines changed

llvm/lib/Target/SystemZ/SystemZInstrFormats.td

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5210,14 +5210,18 @@ multiclass CmpSwapRSPair<string mnemonic, bits<8> rsOpcode, bits<16> rsyOpcode,
52105210
}
52115211
}
52125212

5213-
class RotateSelectRIEf<string mnemonic, bits<16> opcode, RegisterOperand cls1,
5214-
RegisterOperand cls2, bits<8> I3Or = 0, bits<8> I4Or = 0>
5215-
: InstRIEf<opcode, (outs cls1:$R1),
5213+
multiclass RotateSelectRIEf<string mnemonic, bits<16> opcode, RegisterOperand cls1,
5214+
RegisterOperand cls2, bits<8> I3Or = 0, bits<8> I4Or = 0> {
5215+
let Constraints = "$R1 = $R1src", DisableEncoding = "$R1src" in {
5216+
def "" : InstRIEf<opcode, (outs cls1:$R1),
52165217
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4,
52175218
imm32zx8:$I5),
5218-
mnemonic#"\t$R1, $R2, $I3, $I4, $I5", [], I3Or, I4Or> {
5219-
let Constraints = "$R1 = $R1src";
5220-
let DisableEncoding = "$R1src";
5219+
mnemonic#"\t$R1, $R2, $I3, $I4, $I5", [], I3Or, I4Or>;
5220+
let I5 = 0 in
5221+
def Opt : InstRIEf<opcode, (outs cls1:$R1),
5222+
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4),
5223+
mnemonic#"\t$R1, $R2, $I3, $I4", [], I3Or, I4Or>;
5224+
}
52215225
}
52225226

52235227
class PrefetchRXY<string mnemonic, bits<16> opcode, SDPatternOperator operator>
@@ -5609,11 +5613,14 @@ class CompareAliasRI<SDPatternOperator operator, RegisterOperand cls,
56095613
}
56105614

56115615
// An alias of a RotateSelectRIEf, but with different register sizes.
5612-
class RotateSelectAliasRIEf<RegisterOperand cls1, RegisterOperand cls2>
5613-
: Alias<6, (outs cls1:$R1),
5614-
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4,
5615-
imm32zx8:$I5), []> {
5616-
let Constraints = "$R1 = $R1src";
5616+
multiclass RotateSelectAliasRIEf<RegisterOperand cls1, RegisterOperand cls2> {
5617+
let Constraints = "$R1 = $R1src" in {
5618+
def "" : Alias<6, (outs cls1:$R1),
5619+
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4,
5620+
imm32zx8:$I5), []>;
5621+
def Opt : Alias<6, (outs cls1:$R1),
5622+
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4), []>;
5623+
}
56175624
}
56185625

56195626
class MemsetPseudo<DAGOperand lenop, DAGOperand byteop>

llvm/lib/Target/SystemZ/SystemZInstrInfo.td

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1556,38 +1556,38 @@ def RLLG : BinaryRSY<"rllg", 0xEB1C, shiftop<rotl>, GR64>;
15561556
// end bits (operands 2 and 3) are in the range [32, 64).
15571557
let Defs = [CC] in {
15581558
let isCodeGenOnly = 1 in
1559-
def RISBG32 : RotateSelectRIEf<"risbg", 0xEC55, GR32, GR32>;
1559+
defm RISBG32 : RotateSelectRIEf<"risbg", 0xEC55, GR32, GR32>;
15601560
let CCValues = 0xE, CompareZeroCCMask = 0xE in {
1561-
def RISBG : RotateSelectRIEf<"risbg", 0xEC55, GR64, GR64>;
1562-
def RISBGZ : RotateSelectRIEf<"risbgz", 0xEC55, GR64, GR64, 0, 128>;
1561+
defm RISBG : RotateSelectRIEf<"risbg", 0xEC55, GR64, GR64>;
1562+
defm RISBGZ : RotateSelectRIEf<"risbgz", 0xEC55, GR64, GR64, 0, 128>;
15631563
}
15641564
}
15651565

15661566
// On zEC12 we have a variant of RISBG that does not set CC.
15671567
let Predicates = [FeatureMiscellaneousExtensions] in {
1568-
def RISBGN : RotateSelectRIEf<"risbgn", 0xEC59, GR64, GR64>;
1569-
def RISBGNZ : RotateSelectRIEf<"risbgnz", 0xEC59, GR64, GR64, 0, 128>;
1568+
defm RISBGN : RotateSelectRIEf<"risbgn", 0xEC59, GR64, GR64>;
1569+
defm RISBGNZ : RotateSelectRIEf<"risbgnz", 0xEC59, GR64, GR64, 0, 128>;
15701570
}
15711571

15721572
// Forms of RISBG that only affect one word of the destination register.
15731573
// They do not set CC.
15741574
let Predicates = [FeatureHighWord] in {
1575-
def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
1576-
def RISBLL : RotateSelectAliasRIEf<GR32, GR32>;
1577-
def RISBLH : RotateSelectAliasRIEf<GR32, GRH32>;
1578-
def RISBHL : RotateSelectAliasRIEf<GRH32, GR32>;
1579-
def RISBHH : RotateSelectAliasRIEf<GRH32, GRH32>;
1580-
def RISBLG : RotateSelectRIEf<"risblg", 0xEC51, GR32, GR64>;
1581-
def RISBHG : RotateSelectRIEf<"risbhg", 0xEC5D, GRH32, GR64>;
1575+
def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
1576+
defm RISBLL : RotateSelectAliasRIEf<GR32, GR32>;
1577+
defm RISBLH : RotateSelectAliasRIEf<GR32, GRH32>;
1578+
defm RISBHL : RotateSelectAliasRIEf<GRH32, GR32>;
1579+
defm RISBHH : RotateSelectAliasRIEf<GRH32, GRH32>;
1580+
defm RISBLG : RotateSelectRIEf<"risblg", 0xEC51, GR32, GR64>;
1581+
defm RISBHG : RotateSelectRIEf<"risbhg", 0xEC5D, GRH32, GR64>;
15821582
}
15831583

15841584
// Rotate second operand left and perform a logical operation with selected
15851585
// bits of the first operand. The CC result only describes the selected bits,
15861586
// so isn't useful for a full comparison against zero.
15871587
let Defs = [CC] in {
1588-
def RNSBG : RotateSelectRIEf<"rnsbg", 0xEC54, GR64, GR64>;
1589-
def ROSBG : RotateSelectRIEf<"rosbg", 0xEC56, GR64, GR64>;
1590-
def RXSBG : RotateSelectRIEf<"rxsbg", 0xEC57, GR64, GR64>;
1588+
defm RNSBG : RotateSelectRIEf<"rnsbg", 0xEC54, GR64, GR64>;
1589+
defm ROSBG : RotateSelectRIEf<"rosbg", 0xEC56, GR64, GR64>;
1590+
defm RXSBG : RotateSelectRIEf<"rxsbg", 0xEC57, GR64, GR64>;
15911591
}
15921592

15931593
//===----------------------------------------------------------------------===//

llvm/lib/Target/SystemZ/SystemZScheduleZ13.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -506,13 +506,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
506506
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;
507507

508508
// Rotate and insert
509-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)$")>;
510-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)$")>;
511-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?$")>;
509+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)(Opt)?$")>;
510+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)(Opt)?$")>;
511+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?(Opt)?$")>;
512512
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBMux$")>;
513513

514514
// Rotate and Select
515-
def : InstRW<[WLat3, WLat3, FXa2, Cracked], (instregex "R(N|O|X)SBG$")>;
515+
def : InstRW<[WLat3, WLat3, FXa2, Cracked], (instregex "R(N|O|X)SBG(Opt)?$")>;
516516

517517
//===----------------------------------------------------------------------===//
518518
// Comparison

llvm/lib/Target/SystemZ/SystemZScheduleZ14.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -516,13 +516,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
516516
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;
517517

518518
// Rotate and insert
519-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)$")>;
520-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)$")>;
521-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?$")>;
519+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)(Opt)?$")>;
520+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)(Opt)?$")>;
521+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?(Opt)?$")>;
522522
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBMux$")>;
523523

524524
// Rotate and Select
525-
def : InstRW<[WLat2, WLat2, FXa2, Cracked], (instregex "R(N|O|X)SBG$")>;
525+
def : InstRW<[WLat2, WLat2, FXa2, Cracked], (instregex "R(N|O|X)SBG(Opt)?$")>;
526526

527527
//===----------------------------------------------------------------------===//
528528
// Comparison

llvm/lib/Target/SystemZ/SystemZScheduleZ15.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,13 +531,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
531531
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;
532532

533533
// Rotate and insert
534-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)$")>;
535-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)$")>;
536-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?$")>;
534+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)(Opt)?$")>;
535+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)(Opt)?$")>;
536+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?(Opt)?$")>;
537537
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBMux$")>;
538538

539539
// Rotate and Select
540-
def : InstRW<[WLat2, WLat2, FXa2, Cracked], (instregex "R(N|O|X)SBG$")>;
540+
def : InstRW<[WLat2, WLat2, FXa2, Cracked], (instregex "R(N|O|X)SBG(Opt)?$")>;
541541

542542
//===----------------------------------------------------------------------===//
543543
// Comparison

llvm/lib/Target/SystemZ/SystemZScheduleZ16.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,13 +531,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
531531
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;
532532

533533
// Rotate and insert
534-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)$")>;
535-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)$")>;
536-
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?$")>;
534+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBH(G|H|L)(Opt)?$")>;
535+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBL(G|H|L)(Opt)?$")>;
536+
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBG(N|32)?(Z)?(Opt)?$")>;
537537
def : InstRW<[WLat1, FXa, NormalGr], (instregex "RISBMux$")>;
538538

539539
// Rotate and Select
540-
def : InstRW<[WLat2, WLat2, FXa2, Cracked], (instregex "R(N|O|X)SBG$")>;
540+
def : InstRW<[WLat2, WLat2, FXa2, Cracked], (instregex "R(N|O|X)SBG(Opt)?$")>;
541541

542542
//===----------------------------------------------------------------------===//
543543
// Comparison

llvm/lib/Target/SystemZ/SystemZScheduleZ196.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXU4, LSU, GroupAlone2],
469469
def : InstRW<[WLat2LSU, FXU, LSU, NormalGr], (instregex "RLL(G)?$")>;
470470

471471
// Rotate and insert
472-
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBH(G|H|L)$")>;
473-
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBL(G|H|L)$")>;
474-
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBG(32)?(Z)?$")>;
472+
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBH(G|H|L)(Opt)?$")>;
473+
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBL(G|H|L)(Opt)?$")>;
474+
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBG(32)?(Z)?(Opt)?$")>;
475475
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBMux$")>;
476476

477477
// Rotate and Select
478-
def : InstRW<[WLat3, WLat3, FXU2, GroupAlone], (instregex "R(N|O|X)SBG$")>;
478+
def : InstRW<[WLat3, WLat3, FXU2, GroupAlone], (instregex "R(N|O|X)SBG(Opt)?$")>;
479479

480480
//===----------------------------------------------------------------------===//
481481
// Comparison

llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,13 +480,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXU4, LSU, GroupAlone2],
480480
def : InstRW<[WLat2LSU, FXU, LSU, NormalGr], (instregex "RLL(G)?$")>;
481481

482482
// Rotate and insert
483-
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBH(G|H|L)$")>;
484-
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBL(G|H|L)$")>;
485-
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBG(N|32)?(Z)?$")>;
483+
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBH(G|H|L)(Opt)?$")>;
484+
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBL(G|H|L)(Opt)?$")>;
485+
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBG(N|32)?(Z)?(Opt)?$")>;
486486
def : InstRW<[WLat1, FXU, NormalGr], (instregex "RISBMux$")>;
487487

488488
// Rotate and Select
489-
def : InstRW<[WLat3, WLat3, FXU2, GroupAlone], (instregex "R(N|O|X)SBG$")>;
489+
def : InstRW<[WLat3, WLat3, FXU2, GroupAlone], (instregex "R(N|O|X)SBG(Opt)?$")>;
490490

491491
//===----------------------------------------------------------------------===//
492492
// Comparison

llvm/test/MC/Disassembler/SystemZ/insns.txt

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13968,22 +13968,22 @@
1396813968
# CHECK: rchp
1396913969
0xb2 0x3b 0x00 0x00
1397013970

13971-
# CHECK: risbg %r0, %r0, 0, 0, 0
13971+
# CHECK: risbg %r0, %r0, 0, 0
1397213972
0xec 0x00 0x00 0x00 0x00 0x55
1397313973

1397413974
# CHECK: risbg %r0, %r0, 0, 0, 255
1397513975
0xec 0x00 0x00 0x00 0xff 0x55
1397613976

13977-
# CHECK: risbg %r0, %r0, 0, 127, 0
13977+
# CHECK: risbg %r0, %r0, 0, 127
1397813978
0xec 0x00 0x00 0x7f 0x00 0x55
1397913979

13980-
# CHECK: risbg %r0, %r0, 255, 0, 0
13980+
# CHECK: risbg %r0, %r0, 255, 0
1398113981
0xec 0x00 0xff 0x00 0x00 0x55
1398213982

13983-
# CHECK: risbg %r0, %r15, 0, 0, 0
13983+
# CHECK: risbg %r0, %r15, 0, 0
1398413984
0xec 0x0f 0x00 0x00 0x00 0x55
1398513985

13986-
# CHECK: risbg %r15, %r0, 0, 0, 0
13986+
# CHECK: risbg %r15, %r0, 0, 0
1398713987
0xec 0xf0 0x00 0x00 0x00 0x55
1398813988

1398913989
# CHECK: risbg %r4, %r5, 6, 7, 8
@@ -13992,22 +13992,22 @@
1399213992
# CHECK: risbgz %r4, %r5, 6, 7, 8
1399313993
0xec 0x45 0x06 0x87 0x08 0x55
1399413994

13995-
# CHECK: risbgn %r0, %r0, 0, 0, 0
13995+
# CHECK: risbgn %r0, %r0, 0, 0
1399613996
0xec 0x00 0x00 0x00 0x00 0x59
1399713997

1399813998
# CHECK: risbgn %r0, %r0, 0, 0, 255
1399913999
0xec 0x00 0x00 0x00 0xff 0x59
1400014000

14001-
# CHECK: risbgn %r0, %r0, 0, 127, 0
14001+
# CHECK: risbgn %r0, %r0, 0, 127
1400214002
0xec 0x00 0x00 0x7f 0x00 0x59
1400314003

14004-
# CHECK: risbgn %r0, %r0, 255, 0, 0
14004+
# CHECK: risbgn %r0, %r0, 255, 0
1400514005
0xec 0x00 0xff 0x00 0x00 0x59
1400614006

14007-
# CHECK: risbgn %r0, %r15, 0, 0, 0
14007+
# CHECK: risbgn %r0, %r15, 0, 0
1400814008
0xec 0x0f 0x00 0x00 0x00 0x59
1400914009

14010-
# CHECK: risbgn %r15, %r0, 0, 0, 0
14010+
# CHECK: risbgn %r15, %r0, 0, 0
1401114011
0xec 0xf0 0x00 0x00 0x00 0x59
1401214012

1401314013
# CHECK: risbgn %r4, %r5, 6, 7, 8
@@ -14016,43 +14016,43 @@
1401614016
# CHECK: risbgnz %r4, %r5, 6, 7, 8
1401714017
0xec 0x45 0x06 0x87 0x08 0x59
1401814018

14019-
# CHECK: risbhg %r0, %r0, 0, 0, 0
14019+
# CHECK: risbhg %r0, %r0, 0, 0
1402014020
0xec 0x00 0x00 0x00 0x00 0x5d
1402114021

1402214022
# CHECK: risbhg %r0, %r0, 0, 0, 63
1402314023
0xec 0x00 0x00 0x00 0x3f 0x5d
1402414024

14025-
# CHECK: risbhg %r0, %r0, 0, 255, 0
14025+
# CHECK: risbhg %r0, %r0, 0, 255
1402614026
0xec 0x00 0x00 0xff 0x00 0x5d
1402714027

14028-
# CHECK: risbhg %r0, %r0, 255, 0, 0
14028+
# CHECK: risbhg %r0, %r0, 255, 0
1402914029
0xec 0x00 0xff 0x00 0x00 0x5d
1403014030

14031-
# CHECK: risbhg %r0, %r15, 0, 0, 0
14031+
# CHECK: risbhg %r0, %r15, 0, 0
1403214032
0xec 0x0f 0x00 0x00 0x00 0x5d
1403314033

14034-
# CHECK: risbhg %r15, %r0, 0, 0, 0
14034+
# CHECK: risbhg %r15, %r0, 0, 0
1403514035
0xec 0xf0 0x00 0x00 0x00 0x5d
1403614036

1403714037
# CHECK: risbhg %r4, %r5, 6, 7, 8
1403814038
0xec 0x45 0x06 0x07 0x08 0x5d
1403914039

14040-
# CHECK: risblg %r0, %r0, 0, 0, 0
14040+
# CHECK: risblg %r0, %r0, 0, 0
1404114041
0xec 0x00 0x00 0x00 0x00 0x51
1404214042

1404314043
# CHECK: risblg %r0, %r0, 0, 0, 63
1404414044
0xec 0x00 0x00 0x00 0x3f 0x51
1404514045

14046-
# CHECK: risblg %r0, %r0, 0, 255, 0
14046+
# CHECK: risblg %r0, %r0, 0, 255
1404714047
0xec 0x00 0x00 0xff 0x00 0x51
1404814048

14049-
# CHECK: risblg %r0, %r0, 255, 0, 0
14049+
# CHECK: risblg %r0, %r0, 255, 0
1405014050
0xec 0x00 0xff 0x00 0x00 0x51
1405114051

14052-
# CHECK: risblg %r0, %r15, 0, 0, 0
14052+
# CHECK: risblg %r0, %r15, 0, 0
1405314053
0xec 0x0f 0x00 0x00 0x00 0x51
1405414054

14055-
# CHECK: risblg %r15, %r0, 0, 0, 0
14055+
# CHECK: risblg %r15, %r0, 0, 0
1405614056
0xec 0xf0 0x00 0x00 0x00 0x51
1405714057

1405814058
# CHECK: risblg %r4, %r5, 6, 7, 8
@@ -14130,43 +14130,43 @@
1413014130
# CHECK: rllg %r0, %r0, 524287(%r15)
1413114131
0xeb 0x00 0xff 0xff 0x7f 0x1c
1413214132

14133-
# CHECK: rnsbg %r0, %r0, 0, 0, 0
14133+
# CHECK: rnsbg %r0, %r0, 0, 0
1413414134
0xec 0x00 0x00 0x00 0x00 0x54
1413514135

1413614136
# CHECK: rnsbg %r0, %r0, 0, 0, 63
1413714137
0xec 0x00 0x00 0x00 0x3f 0x54
1413814138

14139-
# CHECK: rnsbg %r0, %r0, 0, 255, 0
14139+
# CHECK: rnsbg %r0, %r0, 0, 255
1414014140
0xec 0x00 0x00 0xff 0x00 0x54
1414114141

14142-
# CHECK: rnsbg %r0, %r0, 255, 0, 0
14142+
# CHECK: rnsbg %r0, %r0, 255, 0
1414314143
0xec 0x00 0xff 0x00 0x00 0x54
1414414144

14145-
# CHECK: rnsbg %r0, %r15, 0, 0, 0
14145+
# CHECK: rnsbg %r0, %r15, 0, 0
1414614146
0xec 0x0f 0x00 0x00 0x00 0x54
1414714147

14148-
# CHECK: rnsbg %r15, %r0, 0, 0, 0
14148+
# CHECK: rnsbg %r15, %r0, 0, 0
1414914149
0xec 0xf0 0x00 0x00 0x00 0x54
1415014150

1415114151
# CHECK: rnsbg %r4, %r5, 6, 7, 8
1415214152
0xec 0x45 0x06 0x07 0x08 0x54
1415314153

14154-
# CHECK: rosbg %r0, %r0, 0, 0, 0
14154+
# CHECK: rosbg %r0, %r0, 0, 0
1415514155
0xec 0x00 0x00 0x00 0x00 0x56
1415614156

1415714157
# CHECK: rosbg %r0, %r0, 0, 0, 63
1415814158
0xec 0x00 0x00 0x00 0x3f 0x56
1415914159

14160-
# CHECK: rosbg %r0, %r0, 0, 255, 0
14160+
# CHECK: rosbg %r0, %r0, 0, 255
1416114161
0xec 0x00 0x00 0xff 0x00 0x56
1416214162

14163-
# CHECK: rosbg %r0, %r0, 255, 0, 0
14163+
# CHECK: rosbg %r0, %r0, 255, 0
1416414164
0xec 0x00 0xff 0x00 0x00 0x56
1416514165

14166-
# CHECK: rosbg %r0, %r15, 0, 0, 0
14166+
# CHECK: rosbg %r0, %r15, 0, 0
1416714167
0xec 0x0f 0x00 0x00 0x00 0x56
1416814168

14169-
# CHECK: rosbg %r15, %r0, 0, 0, 0
14169+
# CHECK: rosbg %r15, %r0, 0, 0
1417014170
0xec 0xf0 0x00 0x00 0x00 0x56
1417114171

1417214172
# CHECK: rosbg %r4, %r5, 6, 7, 8
@@ -14259,22 +14259,22 @@
1425914259
# CHECK: rsch
1426014260
0xb2 0x38 0x00 0x00
1426114261

14262-
# CHECK: rxsbg %r0, %r0, 0, 0, 0
14262+
# CHECK: rxsbg %r0, %r0, 0, 0
1426314263
0xec 0x00 0x00 0x00 0x00 0x57
1426414264

1426514265
# CHECK: rxsbg %r0, %r0, 0, 0, 63
1426614266
0xec 0x00 0x00 0x00 0x3f 0x57
1426714267

14268-
# CHECK: rxsbg %r0, %r0, 0, 255, 0
14268+
# CHECK: rxsbg %r0, %r0, 0, 255
1426914269
0xec 0x00 0x00 0xff 0x00 0x57
1427014270

14271-
# CHECK: rxsbg %r0, %r0, 255, 0, 0
14271+
# CHECK: rxsbg %r0, %r0, 255, 0
1427214272
0xec 0x00 0xff 0x00 0x00 0x57
1427314273

14274-
# CHECK: rxsbg %r0, %r15, 0, 0, 0
14274+
# CHECK: rxsbg %r0, %r15, 0, 0
1427514275
0xec 0x0f 0x00 0x00 0x00 0x57
1427614276

14277-
# CHECK: rxsbg %r15, %r0, 0, 0, 0
14277+
# CHECK: rxsbg %r15, %r0, 0, 0
1427814278
0xec 0xf0 0x00 0x00 0x00 0x57
1427914279

1428014280
# CHECK: rxsbg %r4, %r5, 6, 7, 8

0 commit comments

Comments
 (0)