From 628886b1d21955954098188c9a2e25e61d175799 Mon Sep 17 00:00:00 2001 From: Venkatraman Govindaraju Date: Sat, 1 Mar 2014 22:03:07 +0000 Subject: [PATCH] [SparcV9] Add support for parsing branch instructions with prediction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202602 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Sparc/InstPrinter/SparcInstPrinter.cpp | 4 + .../Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp | 24 +- lib/Target/Sparc/SparcCodeEmitter.cpp | 8 + lib/Target/Sparc/SparcInstr64Bit.td | 14 +- lib/Target/Sparc/SparcInstrAliases.td | 71 ++ lib/Target/Sparc/SparcInstrFormats.td | 14 +- lib/Target/Sparc/SparcInstrInfo.td | 67 +- test/MC/Sparc/sparc64-ctrl-instructions.s | 878 ++++++++++++++++++ 8 files changed, 1035 insertions(+), 45 deletions(-) diff --git a/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp b/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp index 41db5798724..f887b945a36 100644 --- a/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp +++ b/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp @@ -118,6 +118,10 @@ void SparcInstPrinter::printCCOperand(const MCInst *MI, int opNum, default: break; case SP::FBCOND: case SP::FBCONDA: + case SP::BPFCC: + case SP::BPFCCA: + case SP::BPFCCNT: + case SP::BPFCCANT: case SP::MOVFCCrr: case SP::MOVFCCri: case SP::FMOVS_FCC: diff --git a/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp b/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp index 16310d50243..96665ef2454 100644 --- a/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp +++ b/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp @@ -61,7 +61,9 @@ public: unsigned getBranchTargetOpValue(const MCInst &MI, unsigned OpNo, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const; - + unsigned getBranchPredTargetOpValue(const MCInst &MI, unsigned OpNo, + SmallVectorImpl &Fixups, + const MCSubtargetInfo &STI) const; }; } // end anonymous namespace @@ -173,13 +175,23 @@ getBranchTargetOpValue(const MCInst &MI, unsigned OpNo, if (MO.isReg() || MO.isImm()) return getMachineOpValue(MI, MO, Fixups, STI); - Sparc::Fixups fixup = Sparc::fixup_sparc_br22; - if (MI.getOpcode() == SP::BPXCC) - fixup = Sparc::fixup_sparc_br19; - Fixups.push_back(MCFixup::Create(0, MO.getExpr(), - (MCFixupKind)fixup)); + (MCFixupKind)Sparc::fixup_sparc_br22)); return 0; } +unsigned SparcMCCodeEmitter:: +getBranchPredTargetOpValue(const MCInst &MI, unsigned OpNo, + SmallVectorImpl &Fixups, + const MCSubtargetInfo &STI) const { + const MCOperand &MO = MI.getOperand(OpNo); + if (MO.isReg() || MO.isImm()) + return getMachineOpValue(MI, MO, Fixups, STI); + + Fixups.push_back(MCFixup::Create(0, MO.getExpr(), + (MCFixupKind)Sparc::fixup_sparc_br19)); + return 0; +} + + #include "SparcGenMCCodeEmitter.inc" diff --git a/lib/Target/Sparc/SparcCodeEmitter.cpp b/lib/Target/Sparc/SparcCodeEmitter.cpp index b7b2182fc21..6b5e4bf0f5b 100644 --- a/lib/Target/Sparc/SparcCodeEmitter.cpp +++ b/lib/Target/Sparc/SparcCodeEmitter.cpp @@ -76,6 +76,8 @@ private: unsigned) const; unsigned getBranchTargetOpValue(const MachineInstr &MI, unsigned) const; + unsigned getBranchPredTargetOpValue(const MachineInstr &MI, + unsigned) const; void emitWord(unsigned Word); @@ -198,6 +200,12 @@ unsigned SparcCodeEmitter::getBranchTargetOpValue(const MachineInstr &MI, return getMachineOpValue(MI, MO); } +unsigned SparcCodeEmitter::getBranchPredTargetOpValue(const MachineInstr &MI, + unsigned opIdx) const { + const MachineOperand MO = MI.getOperand(opIdx); + return getMachineOpValue(MI, MO); +} + unsigned SparcCodeEmitter::getRelocation(const MachineInstr &MI, const MachineOperand &MO) const { diff --git a/lib/Target/Sparc/SparcInstr64Bit.td b/lib/Target/Sparc/SparcInstr64Bit.td index 77b394dd7c9..9807c8d9217 100644 --- a/lib/Target/Sparc/SparcInstr64Bit.td +++ b/lib/Target/Sparc/SparcInstr64Bit.td @@ -297,14 +297,6 @@ def : Pat<(store (i64 0), ADDRri:$dst), (STXri ADDRri:$dst, (i64 G0))>; // 64-bit Conditionals. //===----------------------------------------------------------------------===// -// Conditional branch class on %xcc: -class XBranchSP pattern> - : F2_3<0b001, 0b10, (outs), ins, asmstr, pattern> { - let isBranch = 1; - let isTerminator = 1; - let hasDelaySlot = 1; -} - // // Flag-setting instructions like subcc and addcc set both icc and xcc flags. // The icc flags correspond to the 32-bit result, and the xcc are for the @@ -315,10 +307,8 @@ class XBranchSP pattern> let Predicates = [Is64Bit] in { -let Uses = [ICC] in -def BPXCC : XBranchSP<(ins brtarget:$imm19, CCOp:$cond), - "b$cond %xcc, $imm19", - [(SPbrxcc bb:$imm19, imm:$cond)]>; +let Uses = [ICC], cc = 0b10 in + defm BPX : IPredBranch<"%xcc", [(SPbrxcc bb:$imm19, imm:$cond)]>; // Conditional moves on %xcc. let Uses = [ICC], Constraints = "$f = $rd" in { diff --git a/lib/Target/Sparc/SparcInstrAliases.td b/lib/Target/Sparc/SparcInstrAliases.td index cee1c04a05c..2fc6b7120f8 100644 --- a/lib/Target/Sparc/SparcInstrAliases.td +++ b/lib/Target/Sparc/SparcInstrAliases.td @@ -50,10 +50,55 @@ multiclass int_cond_alias { def : InstAlias; + // b %icc, $imm + def : InstAlias, Requires<[HasV9]>; + + // b,pt %icc, $imm + def : InstAlias, Requires<[HasV9]>; + + // b,a %icc, $imm + def : InstAlias, Requires<[HasV9]>; + + // b,a,pt %icc, $imm + def : InstAlias, Requires<[HasV9]>; + + // b,pn %icc, $imm + def : InstAlias, Requires<[HasV9]>; + + // b,a,pn %icc, $imm + def : InstAlias, Requires<[HasV9]>; + // b %xcc, $imm def : InstAlias, Requires<[Is64Bit]>; + // b,pt %xcc, $imm + def : InstAlias, Requires<[Is64Bit]>; + + // b,a %xcc, $imm + def : InstAlias, Requires<[Is64Bit]>; + + // b,a,pt %xcc, $imm + def : InstAlias, Requires<[Is64Bit]>; + + // b,pn %xcc, $imm + def : InstAlias, Requires<[Is64Bit]>; + + // b,a,pn %xcc, $imm + def : InstAlias, Requires<[Is64Bit]>; + + defm : cond_mov_alias, Requires<[HasV9]>; @@ -84,6 +129,30 @@ multiclass fp_cond_alias { def : InstAlias; + // fb %fcc0, $imm + def : InstAlias, Requires<[HasV9]>; + + // fb,pt %fcc0, $imm + def : InstAlias, Requires<[HasV9]>; + + // fb,a %fcc0, $imm + def : InstAlias, Requires<[HasV9]>; + + // fb,a,pt %fcc0, $imm + def : InstAlias, Requires<[HasV9]>; + + // fb,pn %fcc0, $imm + def : InstAlias, Requires<[HasV9]>; + + // fb,a,pn %fcc0, $imm + def : InstAlias, Requires<[HasV9]>; + defm : cond_mov_alias, Requires<[HasV9]>; @@ -111,6 +180,8 @@ defm : int_cond_alias<"neg", 0b0110>; defm : int_cond_alias<"vc", 0b1111>; defm : int_cond_alias<"vs", 0b0111>; +defm : fp_cond_alias<"a", 0b0000>; +defm : fp_cond_alias<"n", 0b1000>; defm : fp_cond_alias<"u", 0b0111>; defm : fp_cond_alias<"g", 0b0110>; defm : fp_cond_alias<"ug", 0b0101>; diff --git a/lib/Target/Sparc/SparcInstrFormats.td b/lib/Target/Sparc/SparcInstrFormats.td index 97b6498c947..761ff15d04f 100644 --- a/lib/Target/Sparc/SparcInstrFormats.td +++ b/lib/Target/Sparc/SparcInstrFormats.td @@ -60,23 +60,19 @@ class F2_2 op2Val, bit annul, dag outs, dag ins, string asmstr, let Inst{28-25} = cond; } -class F2_3 op2Val, bits<2> ccVal, dag outs, dag ins, string asmstr, - list pattern> - : InstSP { - bit annul; +class F2_3 op2Val, bit annul, bit pred, + dag outs, dag ins, string asmstr, list pattern> + : InstSP { + bits<2> cc; bits<4> cond; - bit pred; bits<19> imm19; let op = 0; // op = 0 - bit annul = 0; // currently unused - let pred = 1; // default is predict taken - let Inst{29} = annul; let Inst{28-25} = cond; let Inst{24-22} = op2Val; - let Inst{21-20} = ccVal; + let Inst{21-20} = cc; let Inst{19} = pred; let Inst{18-0} = imm19; } diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index da1dfb5bde8..dec9c294766 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -105,6 +105,10 @@ def brtarget : Operand { let EncoderMethod = "getBranchTargetOpValue"; } +def bprtarget : Operand { + let EncoderMethod = "getBranchPredTargetOpValue"; +} + def calltarget : Operand { let EncoderMethod = "getCallTargetOpValue"; let DecoderMethod = "DecodeCall"; @@ -562,22 +566,36 @@ class BranchAlways pattern> let cond = 8 in def BA : BranchAlways<(ins brtarget:$imm22), "ba $imm22", [(br bb:$imm22)]>; + +let isBranch = 1, isTerminator = 1, hasDelaySlot = 1 in { + // conditional branch class: class BranchSP pattern> - : F2_2<0b010, 0, (outs), ins, asmstr, pattern> { - let isBranch = 1; - let isTerminator = 1; - let hasDelaySlot = 1; -} + : F2_2<0b010, 0, (outs), ins, asmstr, pattern>; // conditional branch with annul class: class BranchSPA pattern> - : F2_2<0b010, 1, (outs), ins, asmstr, pattern> { - let isBranch = 1; - let isTerminator = 1; - let hasDelaySlot = 1; + : F2_2<0b010, 1, (outs), ins, asmstr, pattern>; + +// Conditional branch class on %icc|%xcc with predication: +multiclass IPredBranch CCPattern> { + def CC : F2_3<0b001, 0, 1, (outs), (ins bprtarget:$imm19, CCOp:$cond), + !strconcat("b$cond ", !strconcat(regstr, ", $imm19")), + CCPattern>; + def CCA : F2_3<0b001, 1, 1, (outs), (ins bprtarget:$imm19, CCOp:$cond), + !strconcat("b$cond,a ", !strconcat(regstr, ", $imm19")), + []>; + def CCNT : F2_3<0b001, 0, 0, (outs), (ins bprtarget:$imm19, CCOp:$cond), + !strconcat("b$cond,pn ", !strconcat(regstr, ", $imm19")), + []>; + def CCANT : F2_3<0b001, 1, 0, (outs), (ins bprtarget:$imm19, CCOp:$cond), + !strconcat("b$cond,a,pn ", !strconcat(regstr, ", $imm19")), + []>; } +} // let isBranch = 1, isTerminator = 1, hasDelaySlot = 1 + + // Indirect branch instructions. let isTerminator = 1, isBarrier = 1, hasDelaySlot = 1, isBranch =1, isIndirectBranch = 1, rd = 0, isCodeGenOnly = 1 in { @@ -597,25 +615,35 @@ let Uses = [ICC] in { [(SPbricc bb:$imm22, imm:$cond)]>; def BCONDA : BranchSPA<(ins brtarget:$imm22, CCOp:$cond), "b$cond,a $imm22", []>; + + let Predicates = [HasV9], cc = 0b00 in + defm BPI : IPredBranch<"%icc", []>; } // Section B.22 - Branch on Floating-point Condition Codes Instructions, p. 121 +let isBranch = 1, isTerminator = 1, hasDelaySlot = 1 in { + // floating-point conditional branch class: class FPBranchSP pattern> - : F2_2<0b110, 0, (outs), ins, asmstr, pattern> { - let isBranch = 1; - let isTerminator = 1; - let hasDelaySlot = 1; -} + : F2_2<0b110, 0, (outs), ins, asmstr, pattern>; // floating-point conditional branch with annul class: class FPBranchSPA pattern> - : F2_2<0b110, 1, (outs), ins, asmstr, pattern> { - let isBranch = 1; - let isTerminator = 1; - let hasDelaySlot = 1; + : F2_2<0b110, 1, (outs), ins, asmstr, pattern>; + +// Conditional branch class on %fcc0-%fcc3 with predication: +multiclass FPredBranch { + def CC : F2_3<0b101, 0, 1, (outs), (ins bprtarget:$imm19, CCOp:$cond), + "fb$cond %fcc0, $imm19", []>; + def CCA : F2_3<0b101, 1, 1, (outs), (ins bprtarget:$imm19, CCOp:$cond), + "fb$cond,a %fcc0, $imm19", []>; + def CCNT : F2_3<0b101, 0, 0, (outs), (ins bprtarget:$imm19, CCOp:$cond), + "fb$cond,pn %fcc0, $imm19", []>; + def CCANT : F2_3<0b101, 1, 0, (outs), (ins bprtarget:$imm19, CCOp:$cond), + "fb$cond,a,pn %fcc0, $imm19", []>; } +} // let isBranch = 1, isTerminator = 1, hasDelaySlot = 1 let Uses = [FCC] in { def FBCOND : FPBranchSP<(ins brtarget:$imm22, CCOp:$cond), @@ -623,6 +651,9 @@ let Uses = [FCC] in { [(SPbrfcc bb:$imm22, imm:$cond)]>; def FBCONDA : FPBranchSPA<(ins brtarget:$imm22, CCOp:$cond), "fb$cond,a $imm22", []>; + + let Predicates = [HasV9], cc = 0b00 in + defm BPF : FPredBranch; } // Section B.24 - Call and Link Instruction, p. 125 diff --git a/test/MC/Sparc/sparc64-ctrl-instructions.s b/test/MC/Sparc/sparc64-ctrl-instructions.s index 5d525efd732..0ea7716afb7 100644 --- a/test/MC/Sparc/sparc64-ctrl-instructions.s +++ b/test/MC/Sparc/sparc64-ctrl-instructions.s @@ -233,3 +233,881 @@ fmovsule %fcc0, %f1, %f2 fmovso %fcc0, %f1, %f2 + ! CHECK: bne,a %icc, .BB0 ! encoding: [0x32,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,a %icc, .BB0 + + ! CHECK: be,a %icc, .BB0 ! encoding: [0x22,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,a %icc, .BB0 + + ! CHECK: bg,a %icc, .BB0 ! encoding: [0x34,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,a %icc, .BB0 + + ! CHECK: ble,a %icc, .BB0 ! encoding: [0x24,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,a %icc, .BB0 + + ! CHECK: bge,a %icc, .BB0 ! encoding: [0x36,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,a %icc, .BB0 + + ! CHECK: bl,a %icc, .BB0 ! encoding: [0x26,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,a %icc, .BB0 + + ! CHECK: bgu,a %icc, .BB0 ! encoding: [0x38,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,a %icc, .BB0 + + ! CHECK: bleu,a %icc, .BB0 ! encoding: [0x28,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,a %icc, .BB0 + + ! CHECK: bcc,a %icc, .BB0 ! encoding: [0x3a,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,a %icc, .BB0 + + ! CHECK: bcs,a %icc, .BB0 ! encoding: [0x2a,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,a %icc, .BB0 + + ! CHECK: bpos,a %icc, .BB0 ! encoding: [0x3c,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,a %icc, .BB0 + + ! CHECK: bneg,a %icc, .BB0 ! encoding: [0x2c,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,a %icc, .BB0 + + ! CHECK: bvc,a %icc, .BB0 ! encoding: [0x3e,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,a %icc, .BB0 + + ! CHECK: bvs,a %icc, .BB0 ! encoding: [0x2e,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,a %icc, .BB0 + + ! CHECK: bne,pn %icc, .BB0 ! encoding: [0x12,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,pn %icc, .BB0 + + ! CHECK: be,pn %icc, .BB0 ! encoding: [0x02,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,pn %icc, .BB0 + + ! CHECK: bg,pn %icc, .BB0 ! encoding: [0x14,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,pn %icc, .BB0 + + ! CHECK: ble,pn %icc, .BB0 ! encoding: [0x04,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,pn %icc, .BB0 + + ! CHECK: bge,pn %icc, .BB0 ! encoding: [0x16,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,pn %icc, .BB0 + + ! CHECK: bl,pn %icc, .BB0 ! encoding: [0x06,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,pn %icc, .BB0 + + ! CHECK: bgu,pn %icc, .BB0 ! encoding: [0x18,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,pn %icc, .BB0 + + ! CHECK: bleu,pn %icc, .BB0 ! encoding: [0x08,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,pn %icc, .BB0 + + ! CHECK: bcc,pn %icc, .BB0 ! encoding: [0x1a,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,pn %icc, .BB0 + + ! CHECK: bcs,pn %icc, .BB0 ! encoding: [0x0a,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,pn %icc, .BB0 + + ! CHECK: bpos,pn %icc, .BB0 ! encoding: [0x1c,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,pn %icc, .BB0 + + ! CHECK: bneg,pn %icc, .BB0 ! encoding: [0x0c,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,pn %icc, .BB0 + + ! CHECK: bvc,pn %icc, .BB0 ! encoding: [0x1e,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,pn %icc, .BB0 + + ! CHECK: bvs,pn %icc, .BB0 ! encoding: [0x0e,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,pn %icc, .BB0 + + ! CHECK: bne,a,pn %icc, .BB0 ! encoding: [0x32,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,a,pn %icc, .BB0 + + ! CHECK: be,a,pn %icc, .BB0 ! encoding: [0x22,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,a,pn %icc, .BB0 + + ! CHECK: bg,a,pn %icc, .BB0 ! encoding: [0x34,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,a,pn %icc, .BB0 + + ! CHECK: ble,a,pn %icc, .BB0 ! encoding: [0x24,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,a,pn %icc, .BB0 + + ! CHECK: bge,a,pn %icc, .BB0 ! encoding: [0x36,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,a,pn %icc, .BB0 + + ! CHECK: bl,a,pn %icc, .BB0 ! encoding: [0x26,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,a,pn %icc, .BB0 + + ! CHECK: bgu,a,pn %icc, .BB0 ! encoding: [0x38,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,a,pn %icc, .BB0 + + ! CHECK: bleu,a,pn %icc, .BB0 ! encoding: [0x28,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,a,pn %icc, .BB0 + + ! CHECK: bcc,a,pn %icc, .BB0 ! encoding: [0x3a,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,a,pn %icc, .BB0 + + ! CHECK: bcs,a,pn %icc, .BB0 ! encoding: [0x2a,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,a,pn %icc, .BB0 + + ! CHECK: bpos,a,pn %icc, .BB0 ! encoding: [0x3c,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,a,pn %icc, .BB0 + + ! CHECK: bneg,a,pn %icc, .BB0 ! encoding: [0x2c,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,a,pn %icc, .BB0 + + ! CHECK: bvc,a,pn %icc, .BB0 ! encoding: [0x3e,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,a,pn %icc, .BB0 + + ! CHECK: bvs,a,pn %icc, .BB0 ! encoding: [0x2e,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,a,pn %icc, .BB0 + + ! CHECK: bne %icc, .BB0 ! encoding: [0x12,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,pt %icc, .BB0 + + ! CHECK: be %icc, .BB0 ! encoding: [0x02,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,pt %icc, .BB0 + + ! CHECK: bg %icc, .BB0 ! encoding: [0x14,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,pt %icc, .BB0 + + ! CHECK: ble %icc, .BB0 ! encoding: [0x04,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,pt %icc, .BB0 + + ! CHECK: bge %icc, .BB0 ! encoding: [0x16,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,pt %icc, .BB0 + + ! CHECK: bl %icc, .BB0 ! encoding: [0x06,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,pt %icc, .BB0 + + ! CHECK: bgu %icc, .BB0 ! encoding: [0x18,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,pt %icc, .BB0 + + ! CHECK: bleu %icc, .BB0 ! encoding: [0x08,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,pt %icc, .BB0 + + ! CHECK: bcc %icc, .BB0 ! encoding: [0x1a,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,pt %icc, .BB0 + + ! CHECK: bcs %icc, .BB0 ! encoding: [0x0a,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,pt %icc, .BB0 + + ! CHECK: bpos %icc, .BB0 ! encoding: [0x1c,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,pt %icc, .BB0 + + ! CHECK: bneg %icc, .BB0 ! encoding: [0x0c,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,pt %icc, .BB0 + + ! CHECK: bvc %icc, .BB0 ! encoding: [0x1e,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,pt %icc, .BB0 + + ! CHECK: bvs %icc, .BB0 ! encoding: [0x0e,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,pt %icc, .BB0 + + ! CHECK: bne,a %icc, .BB0 ! encoding: [0x32,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,a,pt %icc, .BB0 + + ! CHECK: be,a %icc, .BB0 ! encoding: [0x22,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,a,pt %icc, .BB0 + + ! CHECK: bg,a %icc, .BB0 ! encoding: [0x34,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,a,pt %icc, .BB0 + + ! CHECK: ble,a %icc, .BB0 ! encoding: [0x24,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,a,pt %icc, .BB0 + + ! CHECK: bge,a %icc, .BB0 ! encoding: [0x36,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,a,pt %icc, .BB0 + + ! CHECK: bl,a %icc, .BB0 ! encoding: [0x26,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,a,pt %icc, .BB0 + + ! CHECK: bgu,a %icc, .BB0 ! encoding: [0x38,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,a,pt %icc, .BB0 + + ! CHECK: bleu,a %icc, .BB0 ! encoding: [0x28,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,a,pt %icc, .BB0 + + ! CHECK: bcc,a %icc, .BB0 ! encoding: [0x3a,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,a,pt %icc, .BB0 + + ! CHECK: bcs,a %icc, .BB0 ! encoding: [0x2a,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,a,pt %icc, .BB0 + + ! CHECK: bpos,a %icc, .BB0 ! encoding: [0x3c,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,a,pt %icc, .BB0 + + + ! CHECK: bne,a %xcc, .BB0 ! encoding: [0x32,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,a %xcc, .BB0 + + ! CHECK: be,a %xcc, .BB0 ! encoding: [0x22,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,a %xcc, .BB0 + + ! CHECK: bg,a %xcc, .BB0 ! encoding: [0x34,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,a %xcc, .BB0 + + ! CHECK: ble,a %xcc, .BB0 ! encoding: [0x24,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,a %xcc, .BB0 + + ! CHECK: bge,a %xcc, .BB0 ! encoding: [0x36,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,a %xcc, .BB0 + + ! CHECK: bl,a %xcc, .BB0 ! encoding: [0x26,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,a %xcc, .BB0 + + ! CHECK: bgu,a %xcc, .BB0 ! encoding: [0x38,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,a %xcc, .BB0 + + ! CHECK: bleu,a %xcc, .BB0 ! encoding: [0x28,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,a %xcc, .BB0 + + ! CHECK: bcc,a %xcc, .BB0 ! encoding: [0x3a,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,a %xcc, .BB0 + + ! CHECK: bcs,a %xcc, .BB0 ! encoding: [0x2a,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,a %xcc, .BB0 + + ! CHECK: bpos,a %xcc, .BB0 ! encoding: [0x3c,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,a %xcc, .BB0 + + ! CHECK: bneg,a %xcc, .BB0 ! encoding: [0x2c,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,a %xcc, .BB0 + + ! CHECK: bvc,a %xcc, .BB0 ! encoding: [0x3e,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,a %xcc, .BB0 + + ! CHECK: bvs,a %xcc, .BB0 ! encoding: [0x2e,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,a %xcc, .BB0 + + ! CHECK: bne,pn %xcc, .BB0 ! encoding: [0x12,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,pn %xcc, .BB0 + + ! CHECK: be,pn %xcc, .BB0 ! encoding: [0x02,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,pn %xcc, .BB0 + + ! CHECK: bg,pn %xcc, .BB0 ! encoding: [0x14,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,pn %xcc, .BB0 + + ! CHECK: ble,pn %xcc, .BB0 ! encoding: [0x04,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,pn %xcc, .BB0 + + ! CHECK: bge,pn %xcc, .BB0 ! encoding: [0x16,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,pn %xcc, .BB0 + + ! CHECK: bl,pn %xcc, .BB0 ! encoding: [0x06,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,pn %xcc, .BB0 + + ! CHECK: bgu,pn %xcc, .BB0 ! encoding: [0x18,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,pn %xcc, .BB0 + + ! CHECK: bleu,pn %xcc, .BB0 ! encoding: [0x08,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,pn %xcc, .BB0 + + ! CHECK: bcc,pn %xcc, .BB0 ! encoding: [0x1a,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,pn %xcc, .BB0 + + ! CHECK: bcs,pn %xcc, .BB0 ! encoding: [0x0a,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,pn %xcc, .BB0 + + ! CHECK: bpos,pn %xcc, .BB0 ! encoding: [0x1c,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,pn %xcc, .BB0 + + ! CHECK: bneg,pn %xcc, .BB0 ! encoding: [0x0c,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,pn %xcc, .BB0 + + ! CHECK: bvc,pn %xcc, .BB0 ! encoding: [0x1e,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,pn %xcc, .BB0 + + ! CHECK: bvs,pn %xcc, .BB0 ! encoding: [0x0e,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,pn %xcc, .BB0 + + ! CHECK: bne,a,pn %xcc, .BB0 ! encoding: [0x32,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,a,pn %xcc, .BB0 + + ! CHECK: be,a,pn %xcc, .BB0 ! encoding: [0x22,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,a,pn %xcc, .BB0 + + ! CHECK: bg,a,pn %xcc, .BB0 ! encoding: [0x34,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,a,pn %xcc, .BB0 + + ! CHECK: ble,a,pn %xcc, .BB0 ! encoding: [0x24,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,a,pn %xcc, .BB0 + + ! CHECK: bge,a,pn %xcc, .BB0 ! encoding: [0x36,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,a,pn %xcc, .BB0 + + ! CHECK: bl,a,pn %xcc, .BB0 ! encoding: [0x26,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,a,pn %xcc, .BB0 + + ! CHECK: bgu,a,pn %xcc, .BB0 ! encoding: [0x38,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,a,pn %xcc, .BB0 + + ! CHECK: bleu,a,pn %xcc, .BB0 ! encoding: [0x28,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,a,pn %xcc, .BB0 + + ! CHECK: bcc,a,pn %xcc, .BB0 ! encoding: [0x3a,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,a,pn %xcc, .BB0 + + ! CHECK: bcs,a,pn %xcc, .BB0 ! encoding: [0x2a,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,a,pn %xcc, .BB0 + + ! CHECK: bpos,a,pn %xcc, .BB0 ! encoding: [0x3c,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,a,pn %xcc, .BB0 + + ! CHECK: bneg,a,pn %xcc, .BB0 ! encoding: [0x2c,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,a,pn %xcc, .BB0 + + ! CHECK: bvc,a,pn %xcc, .BB0 ! encoding: [0x3e,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,a,pn %xcc, .BB0 + + ! CHECK: bvs,a,pn %xcc, .BB0 ! encoding: [0x2e,0b01100AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,a,pn %xcc, .BB0 + + ! CHECK: bne %xcc, .BB0 ! encoding: [0x12,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,pt %xcc, .BB0 + + ! CHECK: be %xcc, .BB0 ! encoding: [0x02,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,pt %xcc, .BB0 + + ! CHECK: bg %xcc, .BB0 ! encoding: [0x14,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,pt %xcc, .BB0 + + ! CHECK: ble %xcc, .BB0 ! encoding: [0x04,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,pt %xcc, .BB0 + + ! CHECK: bge %xcc, .BB0 ! encoding: [0x16,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,pt %xcc, .BB0 + + ! CHECK: bl %xcc, .BB0 ! encoding: [0x06,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,pt %xcc, .BB0 + + ! CHECK: bgu %xcc, .BB0 ! encoding: [0x18,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,pt %xcc, .BB0 + + ! CHECK: bleu %xcc, .BB0 ! encoding: [0x08,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,pt %xcc, .BB0 + + ! CHECK: bcc %xcc, .BB0 ! encoding: [0x1a,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,pt %xcc, .BB0 + + ! CHECK: bcs %xcc, .BB0 ! encoding: [0x0a,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,pt %xcc, .BB0 + + ! CHECK: bpos %xcc, .BB0 ! encoding: [0x1c,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,pt %xcc, .BB0 + + ! CHECK: bneg %xcc, .BB0 ! encoding: [0x0c,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bneg,pt %xcc, .BB0 + + ! CHECK: bvc %xcc, .BB0 ! encoding: [0x1e,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvc,pt %xcc, .BB0 + + ! CHECK: bvs %xcc, .BB0 ! encoding: [0x0e,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bvs,pt %xcc, .BB0 + + ! CHECK: bne,a %xcc, .BB0 ! encoding: [0x32,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bne,a,pt %xcc, .BB0 + + ! CHECK: be,a %xcc, .BB0 ! encoding: [0x22,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + be,a,pt %xcc, .BB0 + + ! CHECK: bg,a %xcc, .BB0 ! encoding: [0x34,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bg,a,pt %xcc, .BB0 + + ! CHECK: ble,a %xcc, .BB0 ! encoding: [0x24,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + ble,a,pt %xcc, .BB0 + + ! CHECK: bge,a %xcc, .BB0 ! encoding: [0x36,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bge,a,pt %xcc, .BB0 + + ! CHECK: bl,a %xcc, .BB0 ! encoding: [0x26,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bl,a,pt %xcc, .BB0 + + ! CHECK: bgu,a %xcc, .BB0 ! encoding: [0x38,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bgu,a,pt %xcc, .BB0 + + ! CHECK: bleu,a %xcc, .BB0 ! encoding: [0x28,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bleu,a,pt %xcc, .BB0 + + ! CHECK: bcc,a %xcc, .BB0 ! encoding: [0x3a,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcc,a,pt %xcc, .BB0 + + ! CHECK: bcs,a %xcc, .BB0 ! encoding: [0x2a,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bcs,a,pt %xcc, .BB0 + + ! CHECK: bpos,a %xcc, .BB0 ! encoding: [0x3c,0b01101AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + bpos,a,pt %xcc, .BB0 + + ! CHECK: fbu %fcc0, .BB0 ! encoding: [0x0f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbu %fcc0, .BB0 + + ! CHECK: fbg %fcc0, .BB0 ! encoding: [0x0d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbg %fcc0, .BB0 + ! CHECK: fbug %fcc0, .BB0 ! encoding: [0x0b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbug %fcc0, .BB0 + + ! CHECK: fbl %fcc0, .BB0 ! encoding: [0x09,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbl %fcc0, .BB0 + + ! CHECK: fbul %fcc0, .BB0 ! encoding: [0x07,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbul %fcc0, .BB0 + + ! CHECK: fblg %fcc0, .BB0 ! encoding: [0x05,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fblg %fcc0, .BB0 + + ! CHECK: fbne %fcc0, .BB0 ! encoding: [0x03,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbne %fcc0, .BB0 + + ! CHECK: fbe %fcc0, .BB0 ! encoding: [0x13,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbe %fcc0, .BB0 + + ! CHECK: fbue %fcc0, .BB0 ! encoding: [0x15,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbue %fcc0, .BB0 + + ! CHECK: fbge %fcc0, .BB0 ! encoding: [0x17,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbge %fcc0, .BB0 + + ! CHECK: fbuge %fcc0, .BB0 ! encoding: [0x19,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbuge %fcc0, .BB0 + + ! CHECK: fble %fcc0, .BB0 ! encoding: [0x1b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fble %fcc0, .BB0 + + ! CHECK: fbule %fcc0, .BB0 ! encoding: [0x1d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbule %fcc0, .BB0 + + ! CHECK: fbo %fcc0, .BB0 ! encoding: [0x1f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo %fcc0, .BB0 + + ! CHECK: fbu %fcc0, .BB0 ! encoding: [0x0f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbu,pt %fcc0, .BB0 + + ! CHECK: fbg %fcc0, .BB0 ! encoding: [0x0d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbg,pt %fcc0, .BB0 + ! CHECK: fbug %fcc0, .BB0 ! encoding: [0x0b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbug,pt %fcc0, .BB0 + + ! CHECK: fbl %fcc0, .BB0 ! encoding: [0x09,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbl,pt %fcc0, .BB0 + + ! CHECK: fbul %fcc0, .BB0 ! encoding: [0x07,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbul,pt %fcc0, .BB0 + + ! CHECK: fblg %fcc0, .BB0 ! encoding: [0x05,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fblg,pt %fcc0, .BB0 + + ! CHECK: fbne %fcc0, .BB0 ! encoding: [0x03,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbne,pt %fcc0, .BB0 + + ! CHECK: fbe %fcc0, .BB0 ! encoding: [0x13,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbe,pt %fcc0, .BB0 + + ! CHECK: fbue %fcc0, .BB0 ! encoding: [0x15,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbue,pt %fcc0, .BB0 + + ! CHECK: fbge %fcc0, .BB0 ! encoding: [0x17,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbge,pt %fcc0, .BB0 + + ! CHECK: fbuge %fcc0, .BB0 ! encoding: [0x19,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbuge,pt %fcc0, .BB0 + + ! CHECK: fble %fcc0, .BB0 ! encoding: [0x1b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fble,pt %fcc0, .BB0 + + ! CHECK: fbule %fcc0, .BB0 ! encoding: [0x1d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbule,pt %fcc0, .BB0 + + ! CHECK: fbo %fcc0, .BB0 ! encoding: [0x1f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,pt %fcc0, .BB0 + + + ! CHECK: fbo,a %fcc0, .BB0 ! encoding: [0x3f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,a %fcc0, .BB0 + + ! CHECK: fbu,a %fcc0, .BB0 ! encoding: [0x2f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbu,a %fcc0, .BB0 + + ! CHECK: fbg,a %fcc0, .BB0 ! encoding: [0x2d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbg,a %fcc0, .BB0 + ! CHECK: fbug,a %fcc0, .BB0 ! encoding: [0x2b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbug,a %fcc0, .BB0 + + ! CHECK: fbl,a %fcc0, .BB0 ! encoding: [0x29,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbl,a %fcc0, .BB0 + + ! CHECK: fbul,a %fcc0, .BB0 ! encoding: [0x27,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbul,a %fcc0, .BB0 + + ! CHECK: fblg,a %fcc0, .BB0 ! encoding: [0x25,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fblg,a %fcc0, .BB0 + + ! CHECK: fbne,a %fcc0, .BB0 ! encoding: [0x23,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbne,a %fcc0, .BB0 + + ! CHECK: fbe,a %fcc0, .BB0 ! encoding: [0x33,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbe,a %fcc0, .BB0 + + ! CHECK: fbue,a %fcc0, .BB0 ! encoding: [0x35,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbue,a %fcc0, .BB0 + + ! CHECK: fbge,a %fcc0, .BB0 ! encoding: [0x37,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbge,a %fcc0, .BB0 + + ! CHECK: fbuge,a %fcc0, .BB0 ! encoding: [0x39,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbuge,a %fcc0, .BB0 + + ! CHECK: fble,a %fcc0, .BB0 ! encoding: [0x3b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fble,a %fcc0, .BB0 + + ! CHECK: fbule,a %fcc0, .BB0 ! encoding: [0x3d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbule,a %fcc0, .BB0 + + ! CHECK: fbo,a %fcc0, .BB0 ! encoding: [0x3f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,a %fcc0, .BB0 + + ! CHECK: fbo,a %fcc0, .BB0 ! encoding: [0x3f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,a %fcc0, .BB0 + + ! CHECK: fbu,a %fcc0, .BB0 ! encoding: [0x2f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbu,a,pt %fcc0, .BB0 + + ! CHECK: fbg,a %fcc0, .BB0 ! encoding: [0x2d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbg,a,pt %fcc0, .BB0 + + ! CHECK: fbug,a %fcc0, .BB0 ! encoding: [0x2b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbug,a,pt %fcc0, .BB0 + + ! CHECK: fbl,a %fcc0, .BB0 ! encoding: [0x29,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbl,a,pt %fcc0, .BB0 + + ! CHECK: fbul,a %fcc0, .BB0 ! encoding: [0x27,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbul,a,pt %fcc0, .BB0 + + ! CHECK: fblg,a %fcc0, .BB0 ! encoding: [0x25,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fblg,a,pt %fcc0, .BB0 + + ! CHECK: fbne,a %fcc0, .BB0 ! encoding: [0x23,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbne,a,pt %fcc0, .BB0 + + ! CHECK: fbe,a %fcc0, .BB0 ! encoding: [0x33,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbe,a,pt %fcc0, .BB0 + + ! CHECK: fbue,a %fcc0, .BB0 ! encoding: [0x35,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbue,a,pt %fcc0, .BB0 + + ! CHECK: fbge,a %fcc0, .BB0 ! encoding: [0x37,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbge,a,pt %fcc0, .BB0 + + ! CHECK: fbuge,a %fcc0, .BB0 ! encoding: [0x39,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbuge,a,pt %fcc0, .BB0 + + ! CHECK: fble,a %fcc0, .BB0 ! encoding: [0x3b,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fble,a,pt %fcc0, .BB0 + + ! CHECK: fbule,a %fcc0, .BB0 ! encoding: [0x3d,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbule,a,pt %fcc0, .BB0 + + ! CHECK: fbo,a %fcc0, .BB0 ! encoding: [0x3f,0b01001AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,a,pt %fcc0, .BB0 + + ! CHECK: fbu,pn %fcc0, .BB0 ! encoding: [0x0f,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbu,pn %fcc0, .BB0 + + ! CHECK: fbg,pn %fcc0, .BB0 ! encoding: [0x0d,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbg,pn %fcc0, .BB0 + ! CHECK: fbug,pn %fcc0, .BB0 ! encoding: [0x0b,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbug,pn %fcc0, .BB0 + + ! CHECK: fbl,pn %fcc0, .BB0 ! encoding: [0x09,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbl,pn %fcc0, .BB0 + + ! CHECK: fbul,pn %fcc0, .BB0 ! encoding: [0x07,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbul,pn %fcc0, .BB0 + + ! CHECK: fblg,pn %fcc0, .BB0 ! encoding: [0x05,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fblg,pn %fcc0, .BB0 + + ! CHECK: fbne,pn %fcc0, .BB0 ! encoding: [0x03,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbne,pn %fcc0, .BB0 + + ! CHECK: fbe,pn %fcc0, .BB0 ! encoding: [0x13,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbe,pn %fcc0, .BB0 + + ! CHECK: fbue,pn %fcc0, .BB0 ! encoding: [0x15,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbue,pn %fcc0, .BB0 + + ! CHECK: fbge,pn %fcc0, .BB0 ! encoding: [0x17,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbge,pn %fcc0, .BB0 + + ! CHECK: fbuge,pn %fcc0, .BB0 ! encoding: [0x19,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbuge,pn %fcc0, .BB0 + + ! CHECK: fble,pn %fcc0, .BB0 ! encoding: [0x1b,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fble,pn %fcc0, .BB0 + + ! CHECK: fbule,pn %fcc0, .BB0 ! encoding: [0x1d,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbule,pn %fcc0, .BB0 + + ! CHECK: fbo,pn %fcc0, .BB0 ! encoding: [0x1f,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,pn %fcc0, .BB0 + + ! CHECK: fbu,a,pn %fcc0, .BB0 ! encoding: [0x2f,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbu,a,pn %fcc0, .BB0 + + ! CHECK: fbg,a,pn %fcc0, .BB0 ! encoding: [0x2d,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbg,a,pn %fcc0, .BB0 + + ! CHECK: fbug,a,pn %fcc0, .BB0 ! encoding: [0x2b,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbug,a,pn %fcc0, .BB0 + + ! CHECK: fbl,a,pn %fcc0, .BB0 ! encoding: [0x29,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbl,a,pn %fcc0, .BB0 + + ! CHECK: fbul,a,pn %fcc0, .BB0 ! encoding: [0x27,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbul,a,pn %fcc0, .BB0 + + ! CHECK: fblg,a,pn %fcc0, .BB0 ! encoding: [0x25,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fblg,a,pn %fcc0, .BB0 + + ! CHECK: fbne,a,pn %fcc0, .BB0 ! encoding: [0x23,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbne,a,pn %fcc0, .BB0 + + ! CHECK: fbe,a,pn %fcc0, .BB0 ! encoding: [0x33,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbe,a,pn %fcc0, .BB0 + + ! CHECK: fbue,a,pn %fcc0, .BB0 ! encoding: [0x35,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbue,a,pn %fcc0, .BB0 + + ! CHECK: fbge,a,pn %fcc0, .BB0 ! encoding: [0x37,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbge,a,pn %fcc0, .BB0 + + ! CHECK: fbuge,a,pn %fcc0, .BB0 ! encoding: [0x39,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbuge,a,pn %fcc0, .BB0 + + ! CHECK: fble,a,pn %fcc0, .BB0 ! encoding: [0x3b,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fble,a,pn %fcc0, .BB0 + + ! CHECK: fbule,a,pn %fcc0, .BB0 ! encoding: [0x3d,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbule,a,pn %fcc0, .BB0 + + ! CHECK: fbo,a,pn %fcc0, .BB0 ! encoding: [0x3f,0b01000AAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19 + fbo,a,pn %fcc0, .BB0 +