Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 18 additions & 11 deletions llvm/lib/Target/SystemZ/SystemZInstrFormats.td
Original file line number Diff line number Diff line change
Expand Up @@ -5210,14 +5210,18 @@ multiclass CmpSwapRSPair<string mnemonic, bits<8> rsOpcode, bits<16> rsyOpcode,
}
}

class RotateSelectRIEf<string mnemonic, bits<16> opcode, RegisterOperand cls1,
RegisterOperand cls2, bits<8> I3Or = 0, bits<8> I4Or = 0>
: InstRIEf<opcode, (outs cls1:$R1),
multiclass RotateSelectRIEf<string mnemonic, bits<16> opcode, RegisterOperand cls1,
RegisterOperand cls2, bits<8> I3Or = 0, bits<8> I4Or = 0> {
let Constraints = "$R1 = $R1src", DisableEncoding = "$R1src" in {
def "" : InstRIEf<opcode, (outs cls1:$R1),
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4,
imm32zx8:$I5),
mnemonic#"\t$R1, $R2, $I3, $I4, $I5", [], I3Or, I4Or> {
let Constraints = "$R1 = $R1src";
let DisableEncoding = "$R1src";
mnemonic#"\t$R1, $R2, $I3, $I4, $I5", [], I3Or, I4Or>;
let I5 = 0 in
def Opt : InstRIEf<opcode, (outs cls1:$R1),
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4),
mnemonic#"\t$R1, $R2, $I3, $I4", [], I3Or, I4Or>;
}
}

class PrefetchRXY<string mnemonic, bits<16> opcode, SDPatternOperator operator>
Expand Down Expand Up @@ -5609,11 +5613,14 @@ class CompareAliasRI<SDPatternOperator operator, RegisterOperand cls,
}

// An alias of a RotateSelectRIEf, but with different register sizes.
class RotateSelectAliasRIEf<RegisterOperand cls1, RegisterOperand cls2>
: Alias<6, (outs cls1:$R1),
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4,
imm32zx8:$I5), []> {
let Constraints = "$R1 = $R1src";
multiclass RotateSelectAliasRIEf<RegisterOperand cls1, RegisterOperand cls2> {
let Constraints = "$R1 = $R1src" in {
def "" : Alias<6, (outs cls1:$R1),
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4,
imm32zx8:$I5), []>;
def Opt : Alias<6, (outs cls1:$R1),
(ins cls1:$R1src, cls2:$R2, imm32zx8:$I3, imm32zx8:$I4), []>;
}
}

class MemsetPseudo<DAGOperand lenop, DAGOperand byteop>
Expand Down
30 changes: 15 additions & 15 deletions llvm/lib/Target/SystemZ/SystemZInstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -1556,38 +1556,38 @@ def RLLG : BinaryRSY<"rllg", 0xEB1C, shiftop<rotl>, GR64>;
// end bits (operands 2 and 3) are in the range [32, 64).
let Defs = [CC] in {
let isCodeGenOnly = 1 in
def RISBG32 : RotateSelectRIEf<"risbg", 0xEC55, GR32, GR32>;
defm RISBG32 : RotateSelectRIEf<"risbg", 0xEC55, GR32, GR32>;
let CCValues = 0xE, CompareZeroCCMask = 0xE in {
def RISBG : RotateSelectRIEf<"risbg", 0xEC55, GR64, GR64>;
def RISBGZ : RotateSelectRIEf<"risbgz", 0xEC55, GR64, GR64, 0, 128>;
defm RISBG : RotateSelectRIEf<"risbg", 0xEC55, GR64, GR64>;
defm RISBGZ : RotateSelectRIEf<"risbgz", 0xEC55, GR64, GR64, 0, 128>;
}
}

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

// Forms of RISBG that only affect one word of the destination register.
// They do not set CC.
let Predicates = [FeatureHighWord] in {
def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
def RISBLL : RotateSelectAliasRIEf<GR32, GR32>;
def RISBLH : RotateSelectAliasRIEf<GR32, GRH32>;
def RISBHL : RotateSelectAliasRIEf<GRH32, GR32>;
def RISBHH : RotateSelectAliasRIEf<GRH32, GRH32>;
def RISBLG : RotateSelectRIEf<"risblg", 0xEC51, GR32, GR64>;
def RISBHG : RotateSelectRIEf<"risbhg", 0xEC5D, GRH32, GR64>;
def RISBMux : RotateSelectRIEfPseudo<GRX32, GRX32>;
defm RISBLL : RotateSelectAliasRIEf<GR32, GR32>;
defm RISBLH : RotateSelectAliasRIEf<GR32, GRH32>;
defm RISBHL : RotateSelectAliasRIEf<GRH32, GR32>;
defm RISBHH : RotateSelectAliasRIEf<GRH32, GRH32>;
defm RISBLG : RotateSelectRIEf<"risblg", 0xEC51, GR32, GR64>;
defm RISBHG : RotateSelectRIEf<"risbhg", 0xEC5D, GRH32, GR64>;
}

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

//===----------------------------------------------------------------------===//
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
Original file line number Diff line number Diff line change
Expand Up @@ -506,13 +506,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;

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

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

//===----------------------------------------------------------------------===//
// Comparison
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SystemZ/SystemZScheduleZ14.td
Original file line number Diff line number Diff line change
Expand Up @@ -516,13 +516,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;

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

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

//===----------------------------------------------------------------------===//
// Comparison
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SystemZ/SystemZScheduleZ15.td
Original file line number Diff line number Diff line change
Expand Up @@ -531,13 +531,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;

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

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

//===----------------------------------------------------------------------===//
// Comparison
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SystemZ/SystemZScheduleZ16.td
Original file line number Diff line number Diff line change
Expand Up @@ -531,13 +531,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXa4, LSU, GroupAlone2],
def : InstRW<[WLat2LSU, FXa, LSU, NormalGr], (instregex "RLL(G)?$")>;

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

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

//===----------------------------------------------------------------------===//
// Comparison
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
Original file line number Diff line number Diff line change
Expand Up @@ -469,13 +469,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXU4, LSU, GroupAlone2],
def : InstRW<[WLat2LSU, FXU, LSU, NormalGr], (instregex "RLL(G)?$")>;

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

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

//===----------------------------------------------------------------------===//
// Comparison
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
Original file line number Diff line number Diff line change
Expand Up @@ -480,13 +480,13 @@ def : InstRW<[WLat5LSU, WLat5LSU, FXU4, LSU, GroupAlone2],
def : InstRW<[WLat2LSU, FXU, LSU, NormalGr], (instregex "RLL(G)?$")>;

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

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

//===----------------------------------------------------------------------===//
// Comparison
Expand Down
70 changes: 35 additions & 35 deletions llvm/test/MC/Disassembler/SystemZ/insns.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13968,22 +13968,22 @@
# CHECK: rchp
0xb2 0x3b 0x00 0x00

# CHECK: risbg %r0, %r0, 0, 0, 0
# CHECK: risbg %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x55

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

# CHECK: risbg %r0, %r0, 0, 127, 0
# CHECK: risbg %r0, %r0, 0, 127
0xec 0x00 0x00 0x7f 0x00 0x55

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

# CHECK: risbg %r0, %r15, 0, 0, 0
# CHECK: risbg %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x55

# CHECK: risbg %r15, %r0, 0, 0, 0
# CHECK: risbg %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x55

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

# CHECK: risbgn %r0, %r0, 0, 0, 0
# CHECK: risbgn %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x59

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

# CHECK: risbgn %r0, %r0, 0, 127, 0
# CHECK: risbgn %r0, %r0, 0, 127
0xec 0x00 0x00 0x7f 0x00 0x59

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

# CHECK: risbgn %r0, %r15, 0, 0, 0
# CHECK: risbgn %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x59

# CHECK: risbgn %r15, %r0, 0, 0, 0
# CHECK: risbgn %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x59

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

# CHECK: risbhg %r0, %r0, 0, 0, 0
# CHECK: risbhg %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x5d

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

# CHECK: risbhg %r0, %r0, 0, 255, 0
# CHECK: risbhg %r0, %r0, 0, 255
0xec 0x00 0x00 0xff 0x00 0x5d

# CHECK: risbhg %r0, %r0, 255, 0, 0
# CHECK: risbhg %r0, %r0, 255, 0
0xec 0x00 0xff 0x00 0x00 0x5d

# CHECK: risbhg %r0, %r15, 0, 0, 0
# CHECK: risbhg %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x5d

# CHECK: risbhg %r15, %r0, 0, 0, 0
# CHECK: risbhg %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x5d

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

# CHECK: risblg %r0, %r0, 0, 0, 0
# CHECK: risblg %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x51

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

# CHECK: risblg %r0, %r0, 0, 255, 0
# CHECK: risblg %r0, %r0, 0, 255
0xec 0x00 0x00 0xff 0x00 0x51

# CHECK: risblg %r0, %r0, 255, 0, 0
# CHECK: risblg %r0, %r0, 255, 0
0xec 0x00 0xff 0x00 0x00 0x51

# CHECK: risblg %r0, %r15, 0, 0, 0
# CHECK: risblg %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x51

# CHECK: risblg %r15, %r0, 0, 0, 0
# CHECK: risblg %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x51

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

# CHECK: rnsbg %r0, %r0, 0, 0, 0
# CHECK: rnsbg %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x54

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

# CHECK: rnsbg %r0, %r0, 0, 255, 0
# CHECK: rnsbg %r0, %r0, 0, 255
0xec 0x00 0x00 0xff 0x00 0x54

# CHECK: rnsbg %r0, %r0, 255, 0, 0
# CHECK: rnsbg %r0, %r0, 255, 0
0xec 0x00 0xff 0x00 0x00 0x54

# CHECK: rnsbg %r0, %r15, 0, 0, 0
# CHECK: rnsbg %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x54

# CHECK: rnsbg %r15, %r0, 0, 0, 0
# CHECK: rnsbg %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x54

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

# CHECK: rosbg %r0, %r0, 0, 0, 0
# CHECK: rosbg %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x56

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

# CHECK: rosbg %r0, %r0, 0, 255, 0
# CHECK: rosbg %r0, %r0, 0, 255
0xec 0x00 0x00 0xff 0x00 0x56

# CHECK: rosbg %r0, %r0, 255, 0, 0
# CHECK: rosbg %r0, %r0, 255, 0
0xec 0x00 0xff 0x00 0x00 0x56

# CHECK: rosbg %r0, %r15, 0, 0, 0
# CHECK: rosbg %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x56

# CHECK: rosbg %r15, %r0, 0, 0, 0
# CHECK: rosbg %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x56

# CHECK: rosbg %r4, %r5, 6, 7, 8
Expand Down Expand Up @@ -14259,22 +14259,22 @@
# CHECK: rsch
0xb2 0x38 0x00 0x00

# CHECK: rxsbg %r0, %r0, 0, 0, 0
# CHECK: rxsbg %r0, %r0, 0, 0
0xec 0x00 0x00 0x00 0x00 0x57

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

# CHECK: rxsbg %r0, %r0, 0, 255, 0
# CHECK: rxsbg %r0, %r0, 0, 255
0xec 0x00 0x00 0xff 0x00 0x57

# CHECK: rxsbg %r0, %r0, 255, 0, 0
# CHECK: rxsbg %r0, %r0, 255, 0
0xec 0x00 0xff 0x00 0x00 0x57

# CHECK: rxsbg %r0, %r15, 0, 0, 0
# CHECK: rxsbg %r0, %r15, 0, 0
0xec 0x0f 0x00 0x00 0x00 0x57

# CHECK: rxsbg %r15, %r0, 0, 0, 0
# CHECK: rxsbg %r15, %r0, 0, 0
0xec 0xf0 0x00 0x00 0x00 0x57

# CHECK: rxsbg %r4, %r5, 6, 7, 8
Expand Down
Loading