[PowerPC] Generate little-endian object files

As a first step towards real little-endian code generation, this patch
changes the PowerPC MC layer to actually generate little-endian object
files.  This involves passing the little-endian flag through the various
layers, including down to createELFObjectWriter so we actually get basic
little-endian ELF objects, emitting instructions in little-endian order,
and handling fixups and relocations as appropriate for little-endian.

The bulk of the patch is to update most test cases in test/MC/PowerPC
to verify both big- and little-endian encodings.  (The only test cases
*not* updated are those that create actual big-endian ABI code, like
the TLS tests.)

Note that while the object files are now little-endian, the generated
code itself is not yet updated, in particular, it still does not adhere
to the ELFv2 ABI.

llvm-svn: 204634
This commit is contained in:
Ulrich Weigand 2014-03-24 18:16:09 +00:00
parent 5c65065605
commit cae3a17a21
24 changed files with 6426 additions and 4098 deletions

View File

@ -71,14 +71,16 @@ static unsigned getFixupKindNumBytes(unsigned Kind) {
namespace {
class PPCAsmBackend : public MCAsmBackend {
const Target &TheTarget;
const Target &TheTarget;
bool IsLittleEndian;
public:
PPCAsmBackend(const Target &T) : MCAsmBackend(), TheTarget(T) {}
PPCAsmBackend(const Target &T, bool isLittle) : MCAsmBackend(), TheTarget(T),
IsLittleEndian(isLittle) {}
unsigned getNumFixupKinds() const { return PPC::NumTargetFixupKinds; }
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const {
const static MCFixupKindInfo Infos[PPC::NumTargetFixupKinds] = {
const static MCFixupKindInfo InfosBE[PPC::NumTargetFixupKinds] = {
// name offset bits flags
{ "fixup_ppc_br24", 6, 24, MCFixupKindInfo::FKF_IsPCRel },
{ "fixup_ppc_brcond14", 16, 14, MCFixupKindInfo::FKF_IsPCRel },
@ -88,13 +90,23 @@ public:
{ "fixup_ppc_half16ds", 0, 14, 0 },
{ "fixup_ppc_nofixup", 0, 0, 0 }
};
const static MCFixupKindInfo InfosLE[PPC::NumTargetFixupKinds] = {
// name offset bits flags
{ "fixup_ppc_br24", 2, 24, MCFixupKindInfo::FKF_IsPCRel },
{ "fixup_ppc_brcond14", 2, 14, MCFixupKindInfo::FKF_IsPCRel },
{ "fixup_ppc_br24abs", 2, 24, 0 },
{ "fixup_ppc_brcond14abs", 2, 14, 0 },
{ "fixup_ppc_half16", 0, 16, 0 },
{ "fixup_ppc_half16ds", 2, 14, 0 },
{ "fixup_ppc_nofixup", 0, 0, 0 }
};
if (Kind < FirstTargetFixupKind)
return MCAsmBackend::getFixupKindInfo(Kind);
assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() &&
"Invalid kind!");
return Infos[Kind - FirstTargetFixupKind];
return (IsLittleEndian? InfosLE : InfosBE)[Kind - FirstTargetFixupKind];
}
void applyFixup(const MCFixup &Fixup, char *Data, unsigned DataSize,
@ -108,8 +120,10 @@ public:
// For each byte of the fragment that the fixup touches, mask in the bits
// from the fixup value. The Value has been "split up" into the appropriate
// bitfields above.
for (unsigned i = 0; i != NumBytes; ++i)
Data[Offset + i] |= uint8_t((Value >> ((NumBytes - i - 1)*8)) & 0xff);
for (unsigned i = 0; i != NumBytes; ++i) {
unsigned Idx = IsLittleEndian ? i : (NumBytes - 1 - i);
Data[Offset + i] |= uint8_t((Value >> (Idx * 8)) & 0xff);
}
}
bool mayNeedRelaxation(const MCInst &Inst) const {
@ -152,6 +166,10 @@ public:
assert(Name == "ppc32" && "Unknown target name!");
return 4;
}
bool isLittleEndian() const {
return IsLittleEndian;
}
};
} // end anonymous namespace
@ -160,7 +178,7 @@ public:
namespace {
class DarwinPPCAsmBackend : public PPCAsmBackend {
public:
DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T) { }
DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, false) { }
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
bool is64 = getPointerSize() == 8;
@ -175,13 +193,13 @@ namespace {
class ELFPPCAsmBackend : public PPCAsmBackend {
uint8_t OSABI;
public:
ELFPPCAsmBackend(const Target &T, uint8_t OSABI) :
PPCAsmBackend(T), OSABI(OSABI) { }
ELFPPCAsmBackend(const Target &T, bool IsLittleEndian, uint8_t OSABI) :
PPCAsmBackend(T, IsLittleEndian), OSABI(OSABI) { }
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
bool is64 = getPointerSize() == 8;
return createPPCELFObjectWriter(OS, is64, OSABI);
return createPPCELFObjectWriter(OS, is64, isLittleEndian(), OSABI);
}
};
@ -194,5 +212,6 @@ MCAsmBackend *llvm::createPPCAsmBackend(const Target &T,
return new DarwinPPCAsmBackend(T);
uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(Triple(TT).getOS());
return new ELFPPCAsmBackend(T, OSABI);
bool IsLittleEndian = Triple(TT).getArch() == Triple::ppc64le;
return new ELFPPCAsmBackend(T, IsLittleEndian, OSABI);
}

View File

@ -439,7 +439,8 @@ const MCSymbol *PPCELFObjectWriter::undefinedExplicitRelSym(const MCValue &Targe
MCObjectWriter *llvm::createPPCELFObjectWriter(raw_ostream &OS,
bool Is64Bit,
bool IsLittleEndian,
uint8_t OSABI) {
MCELFObjectTargetWriter *MOTW = new PPCELFObjectWriter(Is64Bit, OSABI);
return createELFObjectWriter(MOTW, OS, /*IsLittleEndian=*/false);
return createELFObjectWriter(MOTW, OS, IsLittleEndian);
}

View File

@ -48,7 +48,7 @@ PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit, const Triple& T) {
if (is64Bit) {
PointerSize = CalleeSaveStackSlotSize = 8;
}
IsLittleEndian = false;
IsLittleEndian = T.getArch() == Triple::ppc64le;
// ".comm align is in bytes but .align is pow-2."
AlignmentIsInBytes = false;

View File

@ -35,10 +35,11 @@ class PPCMCCodeEmitter : public MCCodeEmitter {
const MCInstrInfo &MCII;
const MCContext &CTX;
bool IsLittleEndian;
public:
PPCMCCodeEmitter(const MCInstrInfo &mcii, MCContext &ctx)
: MCII(mcii), CTX(ctx) {
PPCMCCodeEmitter(const MCInstrInfo &mcii, MCContext &ctx, bool isLittle)
: MCII(mcii), CTX(ctx), IsLittleEndian(isLittle) {
}
~PPCMCCodeEmitter() {}
@ -98,12 +99,19 @@ public:
uint64_t Bits = getBinaryCodeForInstr(MI, Fixups, STI);
// Output the constant in big endian byte order.
// Output the constant in big/little endian byte order.
unsigned Size = Desc.getSize();
int ShiftValue = (Size * 8) - 8;
for (unsigned i = 0; i != Size; ++i) {
OS << (char)(Bits >> ShiftValue);
Bits <<= 8;
if (IsLittleEndian) {
for (unsigned i = 0; i != Size; ++i) {
OS << (char)Bits;
Bits >>= 8;
}
} else {
int ShiftValue = (Size * 8) - 8;
for (unsigned i = 0; i != Size; ++i) {
OS << (char)(Bits >> ShiftValue);
Bits <<= 8;
}
}
++MCNumEmitted; // Keep track of the # of mi's emitted.
@ -117,7 +125,9 @@ MCCodeEmitter *llvm::createPPCMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) {
return new PPCMCCodeEmitter(MCII, Ctx);
Triple TT(STI.getTargetTriple());
bool IsLittleEndian = TT.getArch() == Triple::ppc64le;
return new PPCMCCodeEmitter(MCII, Ctx, IsLittleEndian);
}
unsigned PPCMCCodeEmitter::
@ -178,7 +188,7 @@ unsigned PPCMCCodeEmitter::getImm16Encoding(const MCInst &MI, unsigned OpNo,
if (MO.isReg() || MO.isImm()) return getMachineOpValue(MI, MO, Fixups, STI);
// Add a fixup for the immediate field.
Fixups.push_back(MCFixup::Create(2, MO.getExpr(),
Fixups.push_back(MCFixup::Create(IsLittleEndian? 0 : 2, MO.getExpr(),
(MCFixupKind)PPC::fixup_ppc_half16));
return 0;
}
@ -196,7 +206,7 @@ unsigned PPCMCCodeEmitter::getMemRIEncoding(const MCInst &MI, unsigned OpNo,
return (getMachineOpValue(MI, MO, Fixups, STI) & 0xFFFF) | RegBits;
// Add a fixup for the displacement field.
Fixups.push_back(MCFixup::Create(2, MO.getExpr(),
Fixups.push_back(MCFixup::Create(IsLittleEndian? 0 : 2, MO.getExpr(),
(MCFixupKind)PPC::fixup_ppc_half16));
return RegBits;
}
@ -215,7 +225,7 @@ unsigned PPCMCCodeEmitter::getMemRIXEncoding(const MCInst &MI, unsigned OpNo,
return ((getMachineOpValue(MI, MO, Fixups, STI) >> 2) & 0x3FFF) | RegBits;
// Add a fixup for the displacement field.
Fixups.push_back(MCFixup::Create(2, MO.getExpr(),
Fixups.push_back(MCFixup::Create(IsLittleEndian? 0 : 2, MO.getExpr(),
(MCFixupKind)PPC::fixup_ppc_half16ds));
return RegBits;
}

View File

@ -46,6 +46,7 @@ MCAsmBackend *createPPCAsmBackend(const Target &T, const MCRegisterInfo &MRI,
/// createPPCELFObjectWriter - Construct an PPC ELF object writer.
MCObjectWriter *createPPCELFObjectWriter(raw_ostream &OS,
bool Is64Bit,
bool IsLittleEndian,
uint8_t OSABI);
/// createPPCELFObjectWriter - Construct a PPC Mach-O object writer.
MCObjectWriter *createPPCMachObjectWriter(raw_ostream &OS, bool Is64Bit,

View File

@ -1,4 +1,5 @@
# RUN: llvm-mc -triple powerpc64-unknown-linux-gnu -mcpu=pwr7 -show-encoding < %s 2>&1 | FileCheck %s
# RUN: llvm-mc -triple powerpc64le-unknown-linux-gnu -mcpu=pwr7 -show-encoding < %s 2>&1 | FileCheck %s
# RUN: llvm-mc -triple powerpc-unknown-linux-gnu -mcpu=601 -show-encoding < %s 2>&1 | FileCheck -check-prefix=CHECK-OLD %s
mftb 3

View File

@ -3,6 +3,8 @@
# RUN: llvm-readobj -s -sd | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -s -sd | FileCheck %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -s -sd | FileCheck %s
.data
.llong 0

View File

@ -1,5 +1,6 @@
# RUN: llvm-mc -triple powerpc-unknown-unknown %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown %s
# For now, the only thing we check is that the .machine directive
# is accepted without syntax error.

View File

@ -1,5 +1,6 @@
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck %s
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck %s
# RUN: llvm-mc -filetype=obj -triple=powerpc-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux-gnu %s | llvm-readobj -s -sd - | FileCheck -check-prefix=CHECK-LE %s
blr
.p2align 3
@ -8,5 +9,6 @@ blr
.byte 0x42
.p2align 2
# CHECK: 0000: 4E800020 60000000 4E800020 42000000
# CHECK-BE: 0000: 4E800020 60000000 4E800020 42000000
# CHECK-LE: 0000: 2000804E 00000060 2000804E 42000000

View File

@ -3,6 +3,8 @@
# RUN: llvm-readobj -s -sd | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -s -sd | FileCheck %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -s -sd | FileCheck %s
.data
.word 0

View File

@ -1,82 +1,107 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# Cache management instruction
# CHECK: icbi 2, 3 # encoding: [0x7c,0x02,0x1f,0xac]
icbi 2, 3
# CHECK-BE: icbi 2, 3 # encoding: [0x7c,0x02,0x1f,0xac]
# CHECK-LE: icbi 2, 3 # encoding: [0xac,0x1f,0x02,0x7c]
icbi 2, 3
# FIXME: dcbt 2, 3, 10
# CHECK: dcbt 2, 3 # encoding: [0x7c,0x02,0x1a,0x2c]
dcbt 2, 3
# FIXME: dcbtst 2, 3, 10
# CHECK: dcbtst 2, 3 # encoding: [0x7c,0x02,0x19,0xec]
dcbtst 2, 3
# CHECK: dcbz 2, 3 # encoding: [0x7c,0x02,0x1f,0xec]
dcbz 2, 3
# CHECK: dcbst 2, 3 # encoding: [0x7c,0x02,0x18,0x6c]
dcbst 2, 3
# FIXME: dcbf 2, 3, 1
# FIXME: dcbt 2, 3, 10
# CHECK-BE: dcbt 2, 3 # encoding: [0x7c,0x02,0x1a,0x2c]
# CHECK-LE: dcbt 2, 3 # encoding: [0x2c,0x1a,0x02,0x7c]
dcbt 2, 3
# FIXME: dcbtst 2, 3, 10
# CHECK-BE: dcbtst 2, 3 # encoding: [0x7c,0x02,0x19,0xec]
# CHECK-LE: dcbtst 2, 3 # encoding: [0xec,0x19,0x02,0x7c]
dcbtst 2, 3
# CHECK-BE: dcbz 2, 3 # encoding: [0x7c,0x02,0x1f,0xec]
# CHECK-LE: dcbz 2, 3 # encoding: [0xec,0x1f,0x02,0x7c]
dcbz 2, 3
# CHECK-BE: dcbst 2, 3 # encoding: [0x7c,0x02,0x18,0x6c]
# CHECK-LE: dcbst 2, 3 # encoding: [0x6c,0x18,0x02,0x7c]
dcbst 2, 3
# FIXME: dcbf 2, 3, 1
# Synchronization instructions
# CHECK: isync # encoding: [0x4c,0x00,0x01,0x2c]
isync
# CHECK-BE: isync # encoding: [0x4c,0x00,0x01,0x2c]
# CHECK-LE: isync # encoding: [0x2c,0x01,0x00,0x4c]
isync
# FIXME: lbarx 2, 3, 4, 1
# FIXME: lharx 2, 3, 4, 1
# FIXME: lwarx 2, 3, 4, 1
# FIXME: ldarx 2, 3, 4, 1
# FIXME: lbarx 2, 3, 4, 1
# FIXME: lharx 2, 3, 4, 1
# FIXME: lwarx 2, 3, 4, 1
# FIXME: ldarx 2, 3, 4, 1
# FIXME: stbcx. 2, 3, 4
# FIXME: sthcx. 2, 3, 4
# CHECK: stwcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x2d]
stwcx. 2, 3, 4
# CHECK: stdcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0xad]
stdcx. 2, 3, 4
# FIXME: stbcx. 2, 3, 4
# FIXME: sthcx. 2, 3, 4
# CHECK-BE: stwcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x2d]
# CHECK-LE: stwcx. 2, 3, 4 # encoding: [0x2d,0x21,0x43,0x7c]
stwcx. 2, 3, 4
# CHECK-BE: stdcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0xad]
# CHECK-LE: stdcx. 2, 3, 4 # encoding: [0xad,0x21,0x43,0x7c]
stdcx. 2, 3, 4
# CHECK: sync 2 # encoding: [0x7c,0x40,0x04,0xac]
sync 2
# CHECK: eieio # encoding: [0x7c,0x00,0x06,0xac]
eieio
# CHECK: wait 2 # encoding: [0x7c,0x40,0x00,0x7c]
wait 2
# CHECK-BE: sync 2 # encoding: [0x7c,0x40,0x04,0xac]
# CHECK-LE: sync 2 # encoding: [0xac,0x04,0x40,0x7c]
sync 2
# CHECK-BE: eieio # encoding: [0x7c,0x00,0x06,0xac]
# CHECK-LE: eieio # encoding: [0xac,0x06,0x00,0x7c]
eieio
# CHECK-BE: wait 2 # encoding: [0x7c,0x40,0x00,0x7c]
# CHECK-LE: wait 2 # encoding: [0x7c,0x00,0x40,0x7c]
wait 2
# Extended mnemonics
# CHECK: dcbf 2, 3 # encoding: [0x7c,0x02,0x18,0xac]
dcbf 2, 3
# FIXME: dcbfl 2, 3
# CHECK-BE: dcbf 2, 3 # encoding: [0x7c,0x02,0x18,0xac]
# CHECK-LE: dcbf 2, 3 # encoding: [0xac,0x18,0x02,0x7c]
dcbf 2, 3
# FIXME: dcbfl 2, 3
# FIXME: lbarx 2, 3, 4
# FIXME: lharx 2, 3, 4
# CHECK: lwarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x28]
lwarx 2, 3, 4
# CHECK: ldarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xa8]
ldarx 2, 3, 4
# FIXME: lbarx 2, 3, 4
# FIXME: lharx 2, 3, 4
# CHECK-BE: lwarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x28]
# CHECK-LE: lwarx 2, 3, 4 # encoding: [0x28,0x20,0x43,0x7c]
lwarx 2, 3, 4
# CHECK-BE: ldarx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xa8]
# CHECK-LE: ldarx 2, 3, 4 # encoding: [0xa8,0x20,0x43,0x7c]
ldarx 2, 3, 4
# CHECK: sync 0 # encoding: [0x7c,0x00,0x04,0xac]
sync
# CHECK: sync 0 # encoding: [0x7c,0x00,0x04,0xac]
msync
# CHECK: sync 1 # encoding: [0x7c,0x20,0x04,0xac]
lwsync
# CHECK: sync 2 # encoding: [0x7c,0x40,0x04,0xac]
ptesync
# CHECK-BE: sync 0 # encoding: [0x7c,0x00,0x04,0xac]
# CHECK-LE: sync 0 # encoding: [0xac,0x04,0x00,0x7c]
sync
# CHECK-BE: sync 0 # encoding: [0x7c,0x00,0x04,0xac]
# CHECK-LE: sync 0 # encoding: [0xac,0x04,0x00,0x7c]
msync
# CHECK-BE: sync 1 # encoding: [0x7c,0x20,0x04,0xac]
# CHECK-LE: sync 1 # encoding: [0xac,0x04,0x20,0x7c]
lwsync
# CHECK-BE: sync 2 # encoding: [0x7c,0x40,0x04,0xac]
# CHECK-LE: sync 2 # encoding: [0xac,0x04,0x40,0x7c]
ptesync
# CHECK: wait 0 # encoding: [0x7c,0x00,0x00,0x7c]
wait
# CHECK: wait 1 # encoding: [0x7c,0x20,0x00,0x7c]
waitrsv
# CHECK: wait 2 # encoding: [0x7c,0x40,0x00,0x7c]
waitimpl
# CHECK-BE: wait 0 # encoding: [0x7c,0x00,0x00,0x7c]
# CHECK-LE: wait 0 # encoding: [0x7c,0x00,0x00,0x7c]
wait
# CHECK-BE: wait 1 # encoding: [0x7c,0x20,0x00,0x7c]
# CHECK-LE: wait 1 # encoding: [0x7c,0x00,0x20,0x7c]
waitrsv
# CHECK-BE: wait 2 # encoding: [0x7c,0x40,0x00,0x7c]
# CHECK-LE: wait 2 # encoding: [0x7c,0x00,0x40,0x7c]
waitimpl
# Time base instructions
# CHECK: mftb 2, 123 # encoding: [0x7c,0x5b,0x1a,0xe6]
mftb 2, 123
# CHECK: mftb 2, 268 # encoding: [0x7c,0x4c,0x42,0xe6]
mftb 2
# CHECK: mftb 2, 269 # encoding: [0x7c,0x4d,0x42,0xe6]
mftbu 2
# CHECK-BE: mftb 2, 123 # encoding: [0x7c,0x5b,0x1a,0xe6]
# CHECK-LE: mftb 2, 123 # encoding: [0xe6,0x1a,0x5b,0x7c]
mftb 2, 123
# CHECK-BE: mftb 2, 268 # encoding: [0x7c,0x4c,0x42,0xe6]
# CHECK-LE: mftb 2, 268 # encoding: [0xe6,0x42,0x4c,0x7c]
mftb 2
# CHECK-BE: mftb 2, 269 # encoding: [0x7c,0x4d,0x42,0xe6]
# CHECK-LE: mftb 2, 269 # encoding: [0xe6,0x42,0x4d,0x7c]
mftbu 2

View File

@ -1,107 +1,143 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# CHECK: mtmsr 4, 0 # encoding: [0x7c,0x80,0x01,0x24]
mtmsr %r4
# CHECK-BE: mtmsr 4, 0 # encoding: [0x7c,0x80,0x01,0x24]
# CHECK-LE: mtmsr 4, 0 # encoding: [0x24,0x01,0x80,0x7c]
mtmsr %r4
# CHECK: mtmsr 4, 1 # encoding: [0x7c,0x81,0x01,0x24]
mtmsr %r4, 1
# CHECK-BE: mtmsr 4, 1 # encoding: [0x7c,0x81,0x01,0x24]
# CHECK-LE: mtmsr 4, 1 # encoding: [0x24,0x01,0x81,0x7c]
mtmsr %r4, 1
# CHECK: mfmsr 4 # encoding: [0x7c,0x80,0x00,0xa6]
mfmsr %r4
# CHECK-BE: mfmsr 4 # encoding: [0x7c,0x80,0x00,0xa6]
# CHECK-LE: mfmsr 4 # encoding: [0xa6,0x00,0x80,0x7c]
mfmsr %r4
# CHECK: mtmsrd 4, 0 # encoding: [0x7c,0x80,0x01,0x64]
mtmsrd %r4
# CHECK-BE: mtmsrd 4, 0 # encoding: [0x7c,0x80,0x01,0x64]
# CHECK-LE: mtmsrd 4, 0 # encoding: [0x64,0x01,0x80,0x7c]
mtmsrd %r4
# CHECK: mtmsrd 4, 1 # encoding: [0x7c,0x81,0x01,0x64]
mtmsrd %r4, 1
# CHECK-BE: mtmsrd 4, 1 # encoding: [0x7c,0x81,0x01,0x64]
# CHECK-LE: mtmsrd 4, 1 # encoding: [0x64,0x01,0x81,0x7c]
mtmsrd %r4, 1
# CHECK: mfspr 4, 272 # encoding: [0x7c,0x90,0x42,0xa6]
mfsprg %r4, 0
# CHECK-BE: mfspr 4, 272 # encoding: [0x7c,0x90,0x42,0xa6]
# CHECK-LE: mfspr 4, 272 # encoding: [0xa6,0x42,0x90,0x7c]
mfsprg %r4, 0
# CHECK: mfspr 4, 273 # encoding: [0x7c,0x91,0x42,0xa6]
mfsprg %r4, 1
# CHECK-BE: mfspr 4, 273 # encoding: [0x7c,0x91,0x42,0xa6]
# CHECK-LE: mfspr 4, 273 # encoding: [0xa6,0x42,0x91,0x7c]
mfsprg %r4, 1
# CHECK: mfspr 4, 274 # encoding: [0x7c,0x92,0x42,0xa6]
mfsprg %r4, 2
# CHECK-BE: mfspr 4, 274 # encoding: [0x7c,0x92,0x42,0xa6]
# CHECK-LE: mfspr 4, 274 # encoding: [0xa6,0x42,0x92,0x7c]
mfsprg %r4, 2
# CHECK: mfspr 4, 275 # encoding: [0x7c,0x93,0x42,0xa6]
mfsprg %r4, 3
# CHECK-BE: mfspr 4, 275 # encoding: [0x7c,0x93,0x42,0xa6]
# CHECK-LE: mfspr 4, 275 # encoding: [0xa6,0x42,0x93,0x7c]
mfsprg %r4, 3
# CHECK: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
mtsprg 0, %r4
# CHECK-BE: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
# CHECK-LE: mtspr 272, 4 # encoding: [0xa6,0x43,0x90,0x7c]
mtsprg 0, %r4
# CHECK: mtspr 273, 4 # encoding: [0x7c,0x91,0x43,0xa6]
mtsprg 1, %r4
# CHECK-BE: mtspr 273, 4 # encoding: [0x7c,0x91,0x43,0xa6]
# CHECK-LE: mtspr 273, 4 # encoding: [0xa6,0x43,0x91,0x7c]
mtsprg 1, %r4
# CHECK: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
mtsprg 2, %r4
# CHECK-BE: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
# CHECK-LE: mtspr 274, 4 # encoding: [0xa6,0x43,0x92,0x7c]
mtsprg 2, %r4
# CHECK: mtspr 275, 4 # encoding: [0x7c,0x93,0x43,0xa6]
mtsprg 3, %r4
# CHECK-BE: mtspr 275, 4 # encoding: [0x7c,0x93,0x43,0xa6]
# CHECK-LE: mtspr 275, 4 # encoding: [0xa6,0x43,0x93,0x7c]
mtsprg 3, %r4
# CHECK: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
mtsprg0 %r4
# CHECK-BE: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
# CHECK-LE: mtspr 272, 4 # encoding: [0xa6,0x43,0x90,0x7c]
mtsprg0 %r4
# CHECK: mtspr 273, 4 # encoding: [0x7c,0x91,0x43,0xa6]
mtsprg1 %r4
# CHECK-BE: mtspr 273, 4 # encoding: [0x7c,0x91,0x43,0xa6]
# CHECK-LE: mtspr 273, 4 # encoding: [0xa6,0x43,0x91,0x7c]
mtsprg1 %r4
# CHECK: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
mtsprg2 %r4
# CHECK-BE: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
# CHECK-LE: mtspr 274, 4 # encoding: [0xa6,0x43,0x92,0x7c]
mtsprg2 %r4
# CHECK: mtspr 275, 4 # encoding: [0x7c,0x93,0x43,0xa6]
mtsprg3 %r4
# CHECK-BE: mtspr 275, 4 # encoding: [0x7c,0x93,0x43,0xa6]
# CHECK-LE: mtspr 275, 4 # encoding: [0xa6,0x43,0x93,0x7c]
mtsprg3 %r4
# CHECK: mtspr 280, 4 # encoding: [0x7c,0x98,0x43,0xa6]
mtasr %r4
# CHECK-BE: mtspr 280, 4 # encoding: [0x7c,0x98,0x43,0xa6]
# CHECK-LE: mtspr 280, 4 # encoding: [0xa6,0x43,0x98,0x7c]
mtasr %r4
# CHECK: mfspr 4, 22 # encoding: [0x7c,0x96,0x02,0xa6]
mfdec %r4
# CHECK-BE: mfspr 4, 22 # encoding: [0x7c,0x96,0x02,0xa6]
# CHECK-LE: mfspr 4, 22 # encoding: [0xa6,0x02,0x96,0x7c]
mfdec %r4
# CHECK: mtspr 22, 4 # encoding: [0x7c,0x96,0x03,0xa6]
mtdec %r4
# CHECK-BE: mtspr 22, 4 # encoding: [0x7c,0x96,0x03,0xa6]
# CHECK-LE: mtspr 22, 4 # encoding: [0xa6,0x03,0x96,0x7c]
mtdec %r4
# CHECK: mfspr 4, 287 # encoding: [0x7c,0x9f,0x42,0xa6]
mfpvr %r4
# CHECK-BE: mfspr 4, 287 # encoding: [0x7c,0x9f,0x42,0xa6]
# CHECK-LE: mfspr 4, 287 # encoding: [0xa6,0x42,0x9f,0x7c]
mfpvr %r4
# CHECK: mfspr 4, 25 # encoding: [0x7c,0x99,0x02,0xa6]
mfsdr1 %r4
# CHECK-BE: mfspr 4, 25 # encoding: [0x7c,0x99,0x02,0xa6]
# CHECK-LE: mfspr 4, 25 # encoding: [0xa6,0x02,0x99,0x7c]
mfsdr1 %r4
# CHECK: mtspr 25, 4 # encoding: [0x7c,0x99,0x03,0xa6]
mtsdr1 %r4
# CHECK-BE: mtspr 25, 4 # encoding: [0x7c,0x99,0x03,0xa6]
# CHECK-LE: mtspr 25, 4 # encoding: [0xa6,0x03,0x99,0x7c]
mtsdr1 %r4
# CHECK: mfspr 4, 26 # encoding: [0x7c,0x9a,0x02,0xa6]
mfsrr0 %r4
# CHECK-BE: mfspr 4, 26 # encoding: [0x7c,0x9a,0x02,0xa6]
# CHECK-LE: mfspr 4, 26 # encoding: [0xa6,0x02,0x9a,0x7c]
mfsrr0 %r4
# CHECK: mtspr 26, 4 # encoding: [0x7c,0x9a,0x03,0xa6]
mtsrr0 %r4
# CHECK-BE: mtspr 26, 4 # encoding: [0x7c,0x9a,0x03,0xa6]
# CHECK-LE: mtspr 26, 4 # encoding: [0xa6,0x03,0x9a,0x7c]
mtsrr0 %r4
# CHECK: mfspr 4, 27 # encoding: [0x7c,0x9b,0x02,0xa6]
mfsrr1 %r4
# CHECK-BE: mfspr 4, 27 # encoding: [0x7c,0x9b,0x02,0xa6]
# CHECK-LE: mfspr 4, 27 # encoding: [0xa6,0x02,0x9b,0x7c]
mfsrr1 %r4
# CHECK: mtspr 27, 4 # encoding: [0x7c,0x9b,0x03,0xa6]
mtsrr1 %r4
# CHECK-BE: mtspr 27, 4 # encoding: [0x7c,0x9b,0x03,0xa6]
# CHECK-LE: mtspr 27, 4 # encoding: [0xa6,0x03,0x9b,0x7c]
mtsrr1 %r4
# CHECK: slbie 4 # encoding: [0x7c,0x00,0x23,0x64]
slbie %r4
# CHECK-BE: slbie 4 # encoding: [0x7c,0x00,0x23,0x64]
# CHECK-LE: slbie 4 # encoding: [0x64,0x23,0x00,0x7c]
slbie %r4
# CHECK: slbmte 4, 5 # encoding: [0x7c,0x80,0x2b,0x24]
slbmte %r4, %r5
# CHECK-BE: slbmte 4, 5 # encoding: [0x7c,0x80,0x2b,0x24]
# CHECK-LE: slbmte 4, 5 # encoding: [0x24,0x2b,0x80,0x7c]
slbmte %r4, %r5
# CHECK: slbmfee 4, 5 # encoding: [0x7c,0x80,0x2f,0x26]
slbmfee %r4, %r5
# CHECK-BE: slbmfee 4, 5 # encoding: [0x7c,0x80,0x2f,0x26]
# CHECK-LE: slbmfee 4, 5 # encoding: [0x26,0x2f,0x80,0x7c]
slbmfee %r4, %r5
# CHECK: slbia # encoding: [0x7c,0x00,0x03,0xe4]
slbia
# CHECK-BE: slbia # encoding: [0x7c,0x00,0x03,0xe4]
# CHECK-LE: slbia # encoding: [0xe4,0x03,0x00,0x7c]
slbia
# CHECK: tlbsync # encoding: [0x7c,0x00,0x04,0x6c]
tlbsync
# CHECK-BE: tlbsync # encoding: [0x7c,0x00,0x04,0x6c]
# CHECK-LE: tlbsync # encoding: [0x6c,0x04,0x00,0x7c]
tlbsync
# CHECK: tlbiel 4 # encoding: [0x7c,0x00,0x22,0x24]
tlbiel %r4
# CHECK-BE: tlbiel 4 # encoding: [0x7c,0x00,0x22,0x24]
# CHECK-LE: tlbiel 4 # encoding: [0x24,0x22,0x00,0x7c]
tlbiel %r4
# CHECK: tlbie 4,0 # encoding: [0x7c,0x00,0x22,0x64]
tlbie %r4, 0
# CHECK-BE: tlbie 4,0 # encoding: [0x7c,0x00,0x22,0x64]
# CHECK-LE: tlbie 4,0 # encoding: [0x64,0x22,0x00,0x7c]
tlbie %r4, 0
# CHECK: tlbie 4,0 # encoding: [0x7c,0x00,0x22,0x64]
tlbie %r4
# CHECK-BE: tlbie 4,0 # encoding: [0x7c,0x00,0x22,0x64]
# CHECK-LE: tlbie 4,0 # encoding: [0x64,0x22,0x00,0x7c]
tlbie %r4

File diff suppressed because it is too large Load Diff

View File

@ -1,269 +1,379 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# Floating-point facility
# Floating-point load instructions
# CHECK: lfs 2, 128(4) # encoding: [0xc0,0x44,0x00,0x80]
lfs 2, 128(4)
# CHECK: lfsx 2, 3, 4 # encoding: [0x7c,0x43,0x24,0x2e]
lfsx 2, 3, 4
# CHECK: lfsu 2, 128(4) # encoding: [0xc4,0x44,0x00,0x80]
lfsu 2, 128(4)
# CHECK: lfsux 2, 3, 4 # encoding: [0x7c,0x43,0x24,0x6e]
lfsux 2, 3, 4
# CHECK: lfd 2, 128(4) # encoding: [0xc8,0x44,0x00,0x80]
lfd 2, 128(4)
# CHECK: lfdx 2, 3, 4 # encoding: [0x7c,0x43,0x24,0xae]
lfdx 2, 3, 4
# CHECK: lfdu 2, 128(4) # encoding: [0xcc,0x44,0x00,0x80]
lfdu 2, 128(4)
# CHECK: lfdux 2, 3, 4 # encoding: [0x7c,0x43,0x24,0xee]
lfdux 2, 3, 4
# CHECK: lfiwax 2, 3, 4 # encoding: [0x7c,0x43,0x26,0xae]
lfiwax 2, 3, 4
# CHECK: lfiwzx 2, 3, 4 # encoding: [0x7c,0x43,0x26,0xee]
lfiwzx 2, 3, 4
# CHECK-BE: lfs 2, 128(4) # encoding: [0xc0,0x44,0x00,0x80]
# CHECK-LE: lfs 2, 128(4) # encoding: [0x80,0x00,0x44,0xc0]
lfs 2, 128(4)
# CHECK-BE: lfsx 2, 3, 4 # encoding: [0x7c,0x43,0x24,0x2e]
# CHECK-LE: lfsx 2, 3, 4 # encoding: [0x2e,0x24,0x43,0x7c]
lfsx 2, 3, 4
# CHECK-BE: lfsu 2, 128(4) # encoding: [0xc4,0x44,0x00,0x80]
# CHECK-LE: lfsu 2, 128(4) # encoding: [0x80,0x00,0x44,0xc4]
lfsu 2, 128(4)
# CHECK-BE: lfsux 2, 3, 4 # encoding: [0x7c,0x43,0x24,0x6e]
# CHECK-LE: lfsux 2, 3, 4 # encoding: [0x6e,0x24,0x43,0x7c]
lfsux 2, 3, 4
# CHECK-BE: lfd 2, 128(4) # encoding: [0xc8,0x44,0x00,0x80]
# CHECK-LE: lfd 2, 128(4) # encoding: [0x80,0x00,0x44,0xc8]
lfd 2, 128(4)
# CHECK-BE: lfdx 2, 3, 4 # encoding: [0x7c,0x43,0x24,0xae]
# CHECK-LE: lfdx 2, 3, 4 # encoding: [0xae,0x24,0x43,0x7c]
lfdx 2, 3, 4
# CHECK-BE: lfdu 2, 128(4) # encoding: [0xcc,0x44,0x00,0x80]
# CHECK-LE: lfdu 2, 128(4) # encoding: [0x80,0x00,0x44,0xcc]
lfdu 2, 128(4)
# CHECK-BE: lfdux 2, 3, 4 # encoding: [0x7c,0x43,0x24,0xee]
# CHECK-LE: lfdux 2, 3, 4 # encoding: [0xee,0x24,0x43,0x7c]
lfdux 2, 3, 4
# CHECK-BE: lfiwax 2, 3, 4 # encoding: [0x7c,0x43,0x26,0xae]
# CHECK-LE: lfiwax 2, 3, 4 # encoding: [0xae,0x26,0x43,0x7c]
lfiwax 2, 3, 4
# CHECK-BE: lfiwzx 2, 3, 4 # encoding: [0x7c,0x43,0x26,0xee]
# CHECK-LE: lfiwzx 2, 3, 4 # encoding: [0xee,0x26,0x43,0x7c]
lfiwzx 2, 3, 4
# Floating-point store instructions
# CHECK: stfs 2, 128(4) # encoding: [0xd0,0x44,0x00,0x80]
stfs 2, 128(4)
# CHECK: stfsx 2, 3, 4 # encoding: [0x7c,0x43,0x25,0x2e]
stfsx 2, 3, 4
# CHECK: stfsu 2, 128(4) # encoding: [0xd4,0x44,0x00,0x80]
stfsu 2, 128(4)
# CHECK: stfsux 2, 3, 4 # encoding: [0x7c,0x43,0x25,0x6e]
stfsux 2, 3, 4
# CHECK: stfd 2, 128(4) # encoding: [0xd8,0x44,0x00,0x80]
stfd 2, 128(4)
# CHECK: stfdx 2, 3, 4 # encoding: [0x7c,0x43,0x25,0xae]
stfdx 2, 3, 4
# CHECK: stfdu 2, 128(4) # encoding: [0xdc,0x44,0x00,0x80]
stfdu 2, 128(4)
# CHECK: stfdux 2, 3, 4 # encoding: [0x7c,0x43,0x25,0xee]
stfdux 2, 3, 4
# CHECK: stfiwx 2, 3, 4 # encoding: [0x7c,0x43,0x27,0xae]
stfiwx 2, 3, 4
# CHECK-BE: stfs 2, 128(4) # encoding: [0xd0,0x44,0x00,0x80]
# CHECK-LE: stfs 2, 128(4) # encoding: [0x80,0x00,0x44,0xd0]
stfs 2, 128(4)
# CHECK-BE: stfsx 2, 3, 4 # encoding: [0x7c,0x43,0x25,0x2e]
# CHECK-LE: stfsx 2, 3, 4 # encoding: [0x2e,0x25,0x43,0x7c]
stfsx 2, 3, 4
# CHECK-BE: stfsu 2, 128(4) # encoding: [0xd4,0x44,0x00,0x80]
# CHECK-LE: stfsu 2, 128(4) # encoding: [0x80,0x00,0x44,0xd4]
stfsu 2, 128(4)
# CHECK-BE: stfsux 2, 3, 4 # encoding: [0x7c,0x43,0x25,0x6e]
# CHECK-LE: stfsux 2, 3, 4 # encoding: [0x6e,0x25,0x43,0x7c]
stfsux 2, 3, 4
# CHECK-BE: stfd 2, 128(4) # encoding: [0xd8,0x44,0x00,0x80]
# CHECK-LE: stfd 2, 128(4) # encoding: [0x80,0x00,0x44,0xd8]
stfd 2, 128(4)
# CHECK-BE: stfdx 2, 3, 4 # encoding: [0x7c,0x43,0x25,0xae]
# CHECK-LE: stfdx 2, 3, 4 # encoding: [0xae,0x25,0x43,0x7c]
stfdx 2, 3, 4
# CHECK-BE: stfdu 2, 128(4) # encoding: [0xdc,0x44,0x00,0x80]
# CHECK-LE: stfdu 2, 128(4) # encoding: [0x80,0x00,0x44,0xdc]
stfdu 2, 128(4)
# CHECK-BE: stfdux 2, 3, 4 # encoding: [0x7c,0x43,0x25,0xee]
# CHECK-LE: stfdux 2, 3, 4 # encoding: [0xee,0x25,0x43,0x7c]
stfdux 2, 3, 4
# CHECK-BE: stfiwx 2, 3, 4 # encoding: [0x7c,0x43,0x27,0xae]
# CHECK-LE: stfiwx 2, 3, 4 # encoding: [0xae,0x27,0x43,0x7c]
stfiwx 2, 3, 4
# Floating-point move instructions
# CHECK: fmr 2, 3 # encoding: [0xfc,0x40,0x18,0x90]
fmr 2, 3
# CHECK: fmr. 2, 3 # encoding: [0xfc,0x40,0x18,0x91]
fmr. 2, 3
# CHECK: fneg 2, 3 # encoding: [0xfc,0x40,0x18,0x50]
fneg 2, 3
# CHECK: fneg. 2, 3 # encoding: [0xfc,0x40,0x18,0x51]
fneg. 2, 3
# CHECK: fabs 2, 3 # encoding: [0xfc,0x40,0x1a,0x10]
fabs 2, 3
# CHECK: fabs. 2, 3 # encoding: [0xfc,0x40,0x1a,0x11]
fabs. 2, 3
# CHECK: fnabs 2, 3 # encoding: [0xfc,0x40,0x19,0x10]
fnabs 2, 3
# CHECK: fnabs. 2, 3 # encoding: [0xfc,0x40,0x19,0x11]
fnabs. 2, 3
# CHECK: fcpsgn 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x10]
fcpsgn 2, 3, 4
# CHECK: fcpsgn. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x11]
fcpsgn. 2, 3, 4
# CHECK-BE: fmr 2, 3 # encoding: [0xfc,0x40,0x18,0x90]
# CHECK-LE: fmr 2, 3 # encoding: [0x90,0x18,0x40,0xfc]
fmr 2, 3
# CHECK-BE: fmr. 2, 3 # encoding: [0xfc,0x40,0x18,0x91]
# CHECK-LE: fmr. 2, 3 # encoding: [0x91,0x18,0x40,0xfc]
fmr. 2, 3
# CHECK-BE: fneg 2, 3 # encoding: [0xfc,0x40,0x18,0x50]
# CHECK-LE: fneg 2, 3 # encoding: [0x50,0x18,0x40,0xfc]
fneg 2, 3
# CHECK-BE: fneg. 2, 3 # encoding: [0xfc,0x40,0x18,0x51]
# CHECK-LE: fneg. 2, 3 # encoding: [0x51,0x18,0x40,0xfc]
fneg. 2, 3
# CHECK-BE: fabs 2, 3 # encoding: [0xfc,0x40,0x1a,0x10]
# CHECK-LE: fabs 2, 3 # encoding: [0x10,0x1a,0x40,0xfc]
fabs 2, 3
# CHECK-BE: fabs. 2, 3 # encoding: [0xfc,0x40,0x1a,0x11]
# CHECK-LE: fabs. 2, 3 # encoding: [0x11,0x1a,0x40,0xfc]
fabs. 2, 3
# CHECK-BE: fnabs 2, 3 # encoding: [0xfc,0x40,0x19,0x10]
# CHECK-LE: fnabs 2, 3 # encoding: [0x10,0x19,0x40,0xfc]
fnabs 2, 3
# CHECK-BE: fnabs. 2, 3 # encoding: [0xfc,0x40,0x19,0x11]
# CHECK-LE: fnabs. 2, 3 # encoding: [0x11,0x19,0x40,0xfc]
fnabs. 2, 3
# CHECK-BE: fcpsgn 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x10]
# CHECK-LE: fcpsgn 2, 3, 4 # encoding: [0x10,0x20,0x43,0xfc]
fcpsgn 2, 3, 4
# CHECK-BE: fcpsgn. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x11]
# CHECK-LE: fcpsgn. 2, 3, 4 # encoding: [0x11,0x20,0x43,0xfc]
fcpsgn. 2, 3, 4
# Floating-point arithmetic instructions
# CHECK: fadd 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2a]
fadd 2, 3, 4
# CHECK: fadd. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2b]
fadd. 2, 3, 4
# CHECK: fadds 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2a]
fadds 2, 3, 4
# CHECK: fadds. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2b]
fadds. 2, 3, 4
# CHECK: fsub 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x28]
fsub 2, 3, 4
# CHECK: fsub. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x29]
fsub. 2, 3, 4
# CHECK: fsubs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x28]
fsubs 2, 3, 4
# CHECK: fsubs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x29]
fsubs. 2, 3, 4
# CHECK-BE: fadd 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2a]
# CHECK-LE: fadd 2, 3, 4 # encoding: [0x2a,0x20,0x43,0xfc]
fadd 2, 3, 4
# CHECK-BE: fadd. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2b]
# CHECK-LE: fadd. 2, 3, 4 # encoding: [0x2b,0x20,0x43,0xfc]
fadd. 2, 3, 4
# CHECK-BE: fadds 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2a]
# CHECK-LE: fadds 2, 3, 4 # encoding: [0x2a,0x20,0x43,0xec]
fadds 2, 3, 4
# CHECK-BE: fadds. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2b]
# CHECK-LE: fadds. 2, 3, 4 # encoding: [0x2b,0x20,0x43,0xec]
fadds. 2, 3, 4
# CHECK-BE: fsub 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x28]
# CHECK-LE: fsub 2, 3, 4 # encoding: [0x28,0x20,0x43,0xfc]
fsub 2, 3, 4
# CHECK-BE: fsub. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x29]
# CHECK-LE: fsub. 2, 3, 4 # encoding: [0x29,0x20,0x43,0xfc]
fsub. 2, 3, 4
# CHECK-BE: fsubs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x28]
# CHECK-LE: fsubs 2, 3, 4 # encoding: [0x28,0x20,0x43,0xec]
fsubs 2, 3, 4
# CHECK-BE: fsubs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x29]
# CHECK-LE: fsubs. 2, 3, 4 # encoding: [0x29,0x20,0x43,0xec]
fsubs. 2, 3, 4
# CHECK: fmul 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x32]
fmul 2, 3, 4
# CHECK: fmul. 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x33]
fmul. 2, 3, 4
# CHECK: fmuls 2, 3, 4 # encoding: [0xec,0x43,0x01,0x32]
fmuls 2, 3, 4
# CHECK: fmuls. 2, 3, 4 # encoding: [0xec,0x43,0x01,0x33]
fmuls. 2, 3, 4
# CHECK: fdiv 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x24]
fdiv 2, 3, 4
# CHECK: fdiv. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x25]
fdiv. 2, 3, 4
# CHECK: fdivs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x24]
fdivs 2, 3, 4
# CHECK: fdivs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x25]
fdivs. 2, 3, 4
# CHECK: fsqrt 2, 3 # encoding: [0xfc,0x40,0x18,0x2c]
fsqrt 2, 3
# CHECK: fsqrt. 2, 3 # encoding: [0xfc,0x40,0x18,0x2d]
fsqrt. 2, 3
# CHECK: fsqrts 2, 3 # encoding: [0xec,0x40,0x18,0x2c]
fsqrts 2, 3
# CHECK: fsqrts. 2, 3 # encoding: [0xec,0x40,0x18,0x2d]
fsqrts. 2, 3
# CHECK-BE: fmul 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x32]
# CHECK-LE: fmul 2, 3, 4 # encoding: [0x32,0x01,0x43,0xfc]
fmul 2, 3, 4
# CHECK-BE: fmul. 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x33]
# CHECK-LE: fmul. 2, 3, 4 # encoding: [0x33,0x01,0x43,0xfc]
fmul. 2, 3, 4
# CHECK-BE: fmuls 2, 3, 4 # encoding: [0xec,0x43,0x01,0x32]
# CHECK-LE: fmuls 2, 3, 4 # encoding: [0x32,0x01,0x43,0xec]
fmuls 2, 3, 4
# CHECK-BE: fmuls. 2, 3, 4 # encoding: [0xec,0x43,0x01,0x33]
# CHECK-LE: fmuls. 2, 3, 4 # encoding: [0x33,0x01,0x43,0xec]
fmuls. 2, 3, 4
# CHECK-BE: fdiv 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x24]
# CHECK-LE: fdiv 2, 3, 4 # encoding: [0x24,0x20,0x43,0xfc]
fdiv 2, 3, 4
# CHECK-BE: fdiv. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x25]
# CHECK-LE: fdiv. 2, 3, 4 # encoding: [0x25,0x20,0x43,0xfc]
fdiv. 2, 3, 4
# CHECK-BE: fdivs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x24]
# CHECK-LE: fdivs 2, 3, 4 # encoding: [0x24,0x20,0x43,0xec]
fdivs 2, 3, 4
# CHECK-BE: fdivs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x25]
# CHECK-LE: fdivs. 2, 3, 4 # encoding: [0x25,0x20,0x43,0xec]
fdivs. 2, 3, 4
# CHECK-BE: fsqrt 2, 3 # encoding: [0xfc,0x40,0x18,0x2c]
# CHECK-LE: fsqrt 2, 3 # encoding: [0x2c,0x18,0x40,0xfc]
fsqrt 2, 3
# CHECK-BE: fsqrt. 2, 3 # encoding: [0xfc,0x40,0x18,0x2d]
# CHECK-LE: fsqrt. 2, 3 # encoding: [0x2d,0x18,0x40,0xfc]
fsqrt. 2, 3
# CHECK-BE: fsqrts 2, 3 # encoding: [0xec,0x40,0x18,0x2c]
# CHECK-LE: fsqrts 2, 3 # encoding: [0x2c,0x18,0x40,0xec]
fsqrts 2, 3
# CHECK-BE: fsqrts. 2, 3 # encoding: [0xec,0x40,0x18,0x2d]
# CHECK-LE: fsqrts. 2, 3 # encoding: [0x2d,0x18,0x40,0xec]
fsqrts. 2, 3
# CHECK: fre 2, 3 # encoding: [0xfc,0x40,0x18,0x30]
fre 2, 3
# CHECK: fre. 2, 3 # encoding: [0xfc,0x40,0x18,0x31]
fre. 2, 3
# CHECK: fres 2, 3 # encoding: [0xec,0x40,0x18,0x30]
fres 2, 3
# CHECK: fres. 2, 3 # encoding: [0xec,0x40,0x18,0x31]
fres. 2, 3
# CHECK: frsqrte 2, 3 # encoding: [0xfc,0x40,0x18,0x34]
frsqrte 2, 3
# CHECK: frsqrte. 2, 3 # encoding: [0xfc,0x40,0x18,0x35]
frsqrte. 2, 3
# CHECK: frsqrtes 2, 3 # encoding: [0xec,0x40,0x18,0x34]
frsqrtes 2, 3
# CHECK: frsqrtes. 2, 3 # encoding: [0xec,0x40,0x18,0x35]
frsqrtes. 2, 3
# FIXME: ftdiv 2, 3, 4
# FIXME: ftsqrt 2, 3, 4
# CHECK-BE: fre 2, 3 # encoding: [0xfc,0x40,0x18,0x30]
# CHECK-LE: fre 2, 3 # encoding: [0x30,0x18,0x40,0xfc]
fre 2, 3
# CHECK-BE: fre. 2, 3 # encoding: [0xfc,0x40,0x18,0x31]
# CHECK-LE: fre. 2, 3 # encoding: [0x31,0x18,0x40,0xfc]
fre. 2, 3
# CHECK-BE: fres 2, 3 # encoding: [0xec,0x40,0x18,0x30]
# CHECK-LE: fres 2, 3 # encoding: [0x30,0x18,0x40,0xec]
fres 2, 3
# CHECK-BE: fres. 2, 3 # encoding: [0xec,0x40,0x18,0x31]
# CHECK-LE: fres. 2, 3 # encoding: [0x31,0x18,0x40,0xec]
fres. 2, 3
# CHECK-BE: frsqrte 2, 3 # encoding: [0xfc,0x40,0x18,0x34]
# CHECK-LE: frsqrte 2, 3 # encoding: [0x34,0x18,0x40,0xfc]
frsqrte 2, 3
# CHECK-BE: frsqrte. 2, 3 # encoding: [0xfc,0x40,0x18,0x35]
# CHECK-LE: frsqrte. 2, 3 # encoding: [0x35,0x18,0x40,0xfc]
frsqrte. 2, 3
# CHECK-BE: frsqrtes 2, 3 # encoding: [0xec,0x40,0x18,0x34]
# CHECK-LE: frsqrtes 2, 3 # encoding: [0x34,0x18,0x40,0xec]
frsqrtes 2, 3
# CHECK-BE: frsqrtes. 2, 3 # encoding: [0xec,0x40,0x18,0x35]
# CHECK-LE: frsqrtes. 2, 3 # encoding: [0x35,0x18,0x40,0xec]
frsqrtes. 2, 3
# FIXME: ftdiv 2, 3, 4
# FIXME: ftsqrt 2, 3, 4
# CHECK: fmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3a]
fmadd 2, 3, 4, 5
# CHECK: fmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3b]
fmadd. 2, 3, 4, 5
# CHECK: fmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3a]
fmadds 2, 3, 4, 5
# CHECK: fmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3b]
fmadds. 2, 3, 4, 5
# CHECK: fmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x38]
fmsub 2, 3, 4, 5
# CHECK: fmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x39]
fmsub. 2, 3, 4, 5
# CHECK: fmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x38]
fmsubs 2, 3, 4, 5
# CHECK: fmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x39]
fmsubs. 2, 3, 4, 5
# CHECK: fnmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3e]
fnmadd 2, 3, 4, 5
# CHECK: fnmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3f]
fnmadd. 2, 3, 4, 5
# CHECK: fnmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3e]
fnmadds 2, 3, 4, 5
# CHECK: fnmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3f]
fnmadds. 2, 3, 4, 5
# CHECK: fnmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3c]
fnmsub 2, 3, 4, 5
# CHECK: fnmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3d]
fnmsub. 2, 3, 4, 5
# CHECK: fnmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3c]
fnmsubs 2, 3, 4, 5
# CHECK: fnmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3d]
fnmsubs. 2, 3, 4, 5
# CHECK-BE: fmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3a]
# CHECK-LE: fmadd 2, 3, 4, 5 # encoding: [0x3a,0x29,0x43,0xfc]
fmadd 2, 3, 4, 5
# CHECK-BE: fmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3b]
# CHECK-LE: fmadd. 2, 3, 4, 5 # encoding: [0x3b,0x29,0x43,0xfc]
fmadd. 2, 3, 4, 5
# CHECK-BE: fmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3a]
# CHECK-LE: fmadds 2, 3, 4, 5 # encoding: [0x3a,0x29,0x43,0xec]
fmadds 2, 3, 4, 5
# CHECK-BE: fmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3b]
# CHECK-LE: fmadds. 2, 3, 4, 5 # encoding: [0x3b,0x29,0x43,0xec]
fmadds. 2, 3, 4, 5
# CHECK-BE: fmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x38]
# CHECK-LE: fmsub 2, 3, 4, 5 # encoding: [0x38,0x29,0x43,0xfc]
fmsub 2, 3, 4, 5
# CHECK-BE: fmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x39]
# CHECK-LE: fmsub. 2, 3, 4, 5 # encoding: [0x39,0x29,0x43,0xfc]
fmsub. 2, 3, 4, 5
# CHECK-BE: fmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x38]
# CHECK-LE: fmsubs 2, 3, 4, 5 # encoding: [0x38,0x29,0x43,0xec]
fmsubs 2, 3, 4, 5
# CHECK-BE: fmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x39]
# CHECK-LE: fmsubs. 2, 3, 4, 5 # encoding: [0x39,0x29,0x43,0xec]
fmsubs. 2, 3, 4, 5
# CHECK-BE: fnmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3e]
# CHECK-LE: fnmadd 2, 3, 4, 5 # encoding: [0x3e,0x29,0x43,0xfc]
fnmadd 2, 3, 4, 5
# CHECK-BE: fnmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3f]
# CHECK-LE: fnmadd. 2, 3, 4, 5 # encoding: [0x3f,0x29,0x43,0xfc]
fnmadd. 2, 3, 4, 5
# CHECK-BE: fnmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3e]
# CHECK-LE: fnmadds 2, 3, 4, 5 # encoding: [0x3e,0x29,0x43,0xec]
fnmadds 2, 3, 4, 5
# CHECK-BE: fnmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3f]
# CHECK-LE: fnmadds. 2, 3, 4, 5 # encoding: [0x3f,0x29,0x43,0xec]
fnmadds. 2, 3, 4, 5
# CHECK-BE: fnmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3c]
# CHECK-LE: fnmsub 2, 3, 4, 5 # encoding: [0x3c,0x29,0x43,0xfc]
fnmsub 2, 3, 4, 5
# CHECK-BE: fnmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3d]
# CHECK-LE: fnmsub. 2, 3, 4, 5 # encoding: [0x3d,0x29,0x43,0xfc]
fnmsub. 2, 3, 4, 5
# CHECK-BE: fnmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3c]
# CHECK-LE: fnmsubs 2, 3, 4, 5 # encoding: [0x3c,0x29,0x43,0xec]
fnmsubs 2, 3, 4, 5
# CHECK-BE: fnmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3d]
# CHECK-LE: fnmsubs. 2, 3, 4, 5 # encoding: [0x3d,0x29,0x43,0xec]
fnmsubs. 2, 3, 4, 5
# Floating-point rounding and conversion instructions
# CHECK: frsp 2, 3 # encoding: [0xfc,0x40,0x18,0x18]
frsp 2, 3
# CHECK: frsp. 2, 3 # encoding: [0xfc,0x40,0x18,0x19]
frsp. 2, 3
# CHECK-BE: frsp 2, 3 # encoding: [0xfc,0x40,0x18,0x18]
# CHECK-LE: frsp 2, 3 # encoding: [0x18,0x18,0x40,0xfc]
frsp 2, 3
# CHECK-BE: frsp. 2, 3 # encoding: [0xfc,0x40,0x18,0x19]
# CHECK-LE: frsp. 2, 3 # encoding: [0x19,0x18,0x40,0xfc]
frsp. 2, 3
# CHECK: fctid 2, 3 # encoding: [0xfc,0x40,0x1e,0x5c]
fctid 2, 3
# CHECK: fctid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5d]
fctid. 2, 3
# CHECK: fctidz 2, 3 # encoding: [0xfc,0x40,0x1e,0x5e]
fctidz 2, 3
# CHECK: fctidz. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5f]
fctidz. 2, 3
# FIXME: fctidu 2, 3
# FIXME: fctidu. 2, 3
# CHECK: fctiduz 2, 3 # encoding: [0xfc,0x40,0x1f,0x5e]
fctiduz 2, 3
# CHECK: fctiduz. 2, 3 # encoding: [0xfc,0x40,0x1f,0x5f]
fctiduz. 2, 3
# CHECK: fctiw 2, 3 # encoding: [0xfc,0x40,0x18,0x1c]
fctiw 2, 3
# CHECK: fctiw. 2, 3 # encoding: [0xfc,0x40,0x18,0x1d]
fctiw. 2, 3
# CHECK: fctiwz 2, 3 # encoding: [0xfc,0x40,0x18,0x1e]
fctiwz 2, 3
# CHECK: fctiwz. 2, 3 # encoding: [0xfc,0x40,0x18,0x1f]
fctiwz. 2, 3
# FIXME: fctiwu 2, 3
# FIXME: fctiwu. 2, 3
# CHECK: fctiwuz 2, 3 # encoding: [0xfc,0x40,0x19,0x1e]
fctiwuz 2, 3
# CHECK: fctiwuz. 2, 3 # encoding: [0xfc,0x40,0x19,0x1f]
fctiwuz. 2, 3
# CHECK: fcfid 2, 3 # encoding: [0xfc,0x40,0x1e,0x9c]
fcfid 2, 3
# CHECK: fcfid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x9d]
fcfid. 2, 3
# CHECK: fcfidu 2, 3 # encoding: [0xfc,0x40,0x1f,0x9c]
fcfidu 2, 3
# CHECK: fcfidu. 2, 3 # encoding: [0xfc,0x40,0x1f,0x9d]
fcfidu. 2, 3
# CHECK: fcfids 2, 3 # encoding: [0xec,0x40,0x1e,0x9c]
fcfids 2, 3
# CHECK: fcfids. 2, 3 # encoding: [0xec,0x40,0x1e,0x9d]
fcfids. 2, 3
# CHECK: fcfidus 2, 3 # encoding: [0xec,0x40,0x1f,0x9c]
fcfidus 2, 3
# CHECK: fcfidus. 2, 3 # encoding: [0xec,0x40,0x1f,0x9d]
fcfidus. 2, 3
# CHECK: frin 2, 3 # encoding: [0xfc,0x40,0x1b,0x10]
frin 2, 3
# CHECK: frin. 2, 3 # encoding: [0xfc,0x40,0x1b,0x11]
frin. 2, 3
# CHECK: frip 2, 3 # encoding: [0xfc,0x40,0x1b,0x90]
frip 2, 3
# CHECK: frip. 2, 3 # encoding: [0xfc,0x40,0x1b,0x91]
frip. 2, 3
# CHECK: friz 2, 3 # encoding: [0xfc,0x40,0x1b,0x50]
friz 2, 3
# CHECK: friz. 2, 3 # encoding: [0xfc,0x40,0x1b,0x51]
friz. 2, 3
# CHECK: frim 2, 3 # encoding: [0xfc,0x40,0x1b,0xd0]
frim 2, 3
# CHECK: frim. 2, 3 # encoding: [0xfc,0x40,0x1b,0xd1]
frim. 2, 3
# CHECK-BE: fctid 2, 3 # encoding: [0xfc,0x40,0x1e,0x5c]
# CHECK-LE: fctid 2, 3 # encoding: [0x5c,0x1e,0x40,0xfc]
fctid 2, 3
# CHECK-BE: fctid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5d]
# CHECK-LE: fctid. 2, 3 # encoding: [0x5d,0x1e,0x40,0xfc]
fctid. 2, 3
# CHECK-BE: fctidz 2, 3 # encoding: [0xfc,0x40,0x1e,0x5e]
# CHECK-LE: fctidz 2, 3 # encoding: [0x5e,0x1e,0x40,0xfc]
fctidz 2, 3
# CHECK-BE: fctidz. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5f]
# CHECK-LE: fctidz. 2, 3 # encoding: [0x5f,0x1e,0x40,0xfc]
fctidz. 2, 3
# FIXME: fctidu 2, 3
# FIXME: fctidu. 2, 3
# CHECK-BE: fctiduz 2, 3 # encoding: [0xfc,0x40,0x1f,0x5e]
# CHECK-LE: fctiduz 2, 3 # encoding: [0x5e,0x1f,0x40,0xfc]
fctiduz 2, 3
# CHECK-BE: fctiduz. 2, 3 # encoding: [0xfc,0x40,0x1f,0x5f]
# CHECK-LE: fctiduz. 2, 3 # encoding: [0x5f,0x1f,0x40,0xfc]
fctiduz. 2, 3
# CHECK-BE: fctiw 2, 3 # encoding: [0xfc,0x40,0x18,0x1c]
# CHECK-LE: fctiw 2, 3 # encoding: [0x1c,0x18,0x40,0xfc]
fctiw 2, 3
# CHECK-BE: fctiw. 2, 3 # encoding: [0xfc,0x40,0x18,0x1d]
# CHECK-LE: fctiw. 2, 3 # encoding: [0x1d,0x18,0x40,0xfc]
fctiw. 2, 3
# CHECK-BE: fctiwz 2, 3 # encoding: [0xfc,0x40,0x18,0x1e]
# CHECK-LE: fctiwz 2, 3 # encoding: [0x1e,0x18,0x40,0xfc]
fctiwz 2, 3
# CHECK-BE: fctiwz. 2, 3 # encoding: [0xfc,0x40,0x18,0x1f]
# CHECK-LE: fctiwz. 2, 3 # encoding: [0x1f,0x18,0x40,0xfc]
fctiwz. 2, 3
# FIXME: fctiwu 2, 3
# FIXME: fctiwu. 2, 3
# CHECK-BE: fctiwuz 2, 3 # encoding: [0xfc,0x40,0x19,0x1e]
# CHECK-LE: fctiwuz 2, 3 # encoding: [0x1e,0x19,0x40,0xfc]
fctiwuz 2, 3
# CHECK-BE: fctiwuz. 2, 3 # encoding: [0xfc,0x40,0x19,0x1f]
# CHECK-LE: fctiwuz. 2, 3 # encoding: [0x1f,0x19,0x40,0xfc]
fctiwuz. 2, 3
# CHECK-BE: fcfid 2, 3 # encoding: [0xfc,0x40,0x1e,0x9c]
# CHECK-LE: fcfid 2, 3 # encoding: [0x9c,0x1e,0x40,0xfc]
fcfid 2, 3
# CHECK-BE: fcfid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x9d]
# CHECK-LE: fcfid. 2, 3 # encoding: [0x9d,0x1e,0x40,0xfc]
fcfid. 2, 3
# CHECK-BE: fcfidu 2, 3 # encoding: [0xfc,0x40,0x1f,0x9c]
# CHECK-LE: fcfidu 2, 3 # encoding: [0x9c,0x1f,0x40,0xfc]
fcfidu 2, 3
# CHECK-BE: fcfidu. 2, 3 # encoding: [0xfc,0x40,0x1f,0x9d]
# CHECK-LE: fcfidu. 2, 3 # encoding: [0x9d,0x1f,0x40,0xfc]
fcfidu. 2, 3
# CHECK-BE: fcfids 2, 3 # encoding: [0xec,0x40,0x1e,0x9c]
# CHECK-LE: fcfids 2, 3 # encoding: [0x9c,0x1e,0x40,0xec]
fcfids 2, 3
# CHECK-BE: fcfids. 2, 3 # encoding: [0xec,0x40,0x1e,0x9d]
# CHECK-LE: fcfids. 2, 3 # encoding: [0x9d,0x1e,0x40,0xec]
fcfids. 2, 3
# CHECK-BE: fcfidus 2, 3 # encoding: [0xec,0x40,0x1f,0x9c]
# CHECK-LE: fcfidus 2, 3 # encoding: [0x9c,0x1f,0x40,0xec]
fcfidus 2, 3
# CHECK-BE: fcfidus. 2, 3 # encoding: [0xec,0x40,0x1f,0x9d]
# CHECK-LE: fcfidus. 2, 3 # encoding: [0x9d,0x1f,0x40,0xec]
fcfidus. 2, 3
# CHECK-BE: frin 2, 3 # encoding: [0xfc,0x40,0x1b,0x10]
# CHECK-LE: frin 2, 3 # encoding: [0x10,0x1b,0x40,0xfc]
frin 2, 3
# CHECK-BE: frin. 2, 3 # encoding: [0xfc,0x40,0x1b,0x11]
# CHECK-LE: frin. 2, 3 # encoding: [0x11,0x1b,0x40,0xfc]
frin. 2, 3
# CHECK-BE: frip 2, 3 # encoding: [0xfc,0x40,0x1b,0x90]
# CHECK-LE: frip 2, 3 # encoding: [0x90,0x1b,0x40,0xfc]
frip 2, 3
# CHECK-BE: frip. 2, 3 # encoding: [0xfc,0x40,0x1b,0x91]
# CHECK-LE: frip. 2, 3 # encoding: [0x91,0x1b,0x40,0xfc]
frip. 2, 3
# CHECK-BE: friz 2, 3 # encoding: [0xfc,0x40,0x1b,0x50]
# CHECK-LE: friz 2, 3 # encoding: [0x50,0x1b,0x40,0xfc]
friz 2, 3
# CHECK-BE: friz. 2, 3 # encoding: [0xfc,0x40,0x1b,0x51]
# CHECK-LE: friz. 2, 3 # encoding: [0x51,0x1b,0x40,0xfc]
friz. 2, 3
# CHECK-BE: frim 2, 3 # encoding: [0xfc,0x40,0x1b,0xd0]
# CHECK-LE: frim 2, 3 # encoding: [0xd0,0x1b,0x40,0xfc]
frim 2, 3
# CHECK-BE: frim. 2, 3 # encoding: [0xfc,0x40,0x1b,0xd1]
# CHECK-LE: frim. 2, 3 # encoding: [0xd1,0x1b,0x40,0xfc]
frim. 2, 3
# Floating-point compare instructions
# CHECK: fcmpu 2, 3, 4 # encoding: [0xfd,0x03,0x20,0x00]
fcmpu 2, 3, 4
# FIXME: fcmpo 2, 3, 4
# CHECK-BE: fcmpu 2, 3, 4 # encoding: [0xfd,0x03,0x20,0x00]
# CHECK-LE: fcmpu 2, 3, 4 # encoding: [0x00,0x20,0x03,0xfd]
fcmpu 2, 3, 4
# FIXME: fcmpo 2, 3, 4
# Floating-point select instruction
# CHECK: fsel 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2e]
fsel 2, 3, 4, 5
# CHECK: fsel. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2f]
fsel. 2, 3, 4, 5
# CHECK-BE: fsel 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2e]
# CHECK-LE: fsel 2, 3, 4, 5 # encoding: [0x2e,0x29,0x43,0xfc]
fsel 2, 3, 4, 5
# CHECK-BE: fsel. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2f]
# CHECK-LE: fsel. 2, 3, 4, 5 # encoding: [0x2f,0x29,0x43,0xfc]
fsel. 2, 3, 4, 5
# Floating-point status and control register instructions
# CHECK: mffs 2 # encoding: [0xfc,0x40,0x04,0x8e]
mffs 2
# FIXME: mffs. 2
# CHECK-BE: mffs 2 # encoding: [0xfc,0x40,0x04,0x8e]
# CHECK-LE: mffs 2 # encoding: [0x8e,0x04,0x40,0xfc]
mffs 2
# FIXME: mffs. 2
# FIXME: mcrfs 2, 3
# FIXME: mcrfs 2, 3
# FIXME: mtfsfi 2, 3, 1
# FIXME: mtfsfi. 2, 3, 1
# FIXME: mtfsf 2, 3, 1, 1
# FIXME: mtfsf. 2, 3, 1, 1
# FIXME: mtfsfi 2, 3, 1
# FIXME: mtfsfi. 2, 3, 1
# FIXME: mtfsf 2, 3, 1, 1
# FIXME: mtfsf. 2, 3, 1, 1
# CHECK: mtfsb0 31 # encoding: [0xff,0xe0,0x00,0x8c]
mtfsb0 31
# FIXME: mtfsb0. 31
# CHECK: mtfsb1 31 # encoding: [0xff,0xe0,0x00,0x4c]
mtfsb1 31
# FIXME: mtfsb1. 31
# CHECK-BE: mtfsb0 31 # encoding: [0xff,0xe0,0x00,0x8c]
# CHECK-LE: mtfsb0 31 # encoding: [0x8c,0x00,0xe0,0xff]
mtfsb0 31
# FIXME: mtfsb0. 31
# CHECK-BE: mtfsb1 31 # encoding: [0xff,0xe0,0x00,0x4c]
# CHECK-LE: mtfsb1 31 # encoding: [0x4c,0x00,0xe0,0xff]
mtfsb1 31
# FIXME: mtfsb1. 31

View File

@ -1,384 +1,554 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# Vector facility
# Vector storage access instructions
# CHECK: lvebx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x0e]
lvebx 2, 3, 4
# CHECK: lvehx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x4e]
lvehx 2, 3, 4
# CHECK: lvewx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x8e]
lvewx 2, 3, 4
# CHECK: lvx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xce]
lvx 2, 3, 4
# CHECK: lvxl 2, 3, 4 # encoding: [0x7c,0x43,0x22,0xce]
lvxl 2, 3, 4
# CHECK: stvebx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x0e]
stvebx 2, 3, 4
# CHECK: stvehx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x4e]
stvehx 2, 3, 4
# CHECK: stvewx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x8e]
stvewx 2, 3, 4
# CHECK: stvx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0xce]
stvx 2, 3, 4
# CHECK: stvxl 2, 3, 4 # encoding: [0x7c,0x43,0x23,0xce]
stvxl 2, 3, 4
# CHECK: lvsl 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x0c]
lvsl 2, 3, 4
# CHECK: lvsr 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x4c]
lvsr 2, 3, 4
# CHECK-BE: lvebx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x0e]
# CHECK-LE: lvebx 2, 3, 4 # encoding: [0x0e,0x20,0x43,0x7c]
lvebx 2, 3, 4
# CHECK-BE: lvehx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x4e]
# CHECK-LE: lvehx 2, 3, 4 # encoding: [0x4e,0x20,0x43,0x7c]
lvehx 2, 3, 4
# CHECK-BE: lvewx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x8e]
# CHECK-LE: lvewx 2, 3, 4 # encoding: [0x8e,0x20,0x43,0x7c]
lvewx 2, 3, 4
# CHECK-BE: lvx 2, 3, 4 # encoding: [0x7c,0x43,0x20,0xce]
# CHECK-LE: lvx 2, 3, 4 # encoding: [0xce,0x20,0x43,0x7c]
lvx 2, 3, 4
# CHECK-BE: lvxl 2, 3, 4 # encoding: [0x7c,0x43,0x22,0xce]
# CHECK-LE: lvxl 2, 3, 4 # encoding: [0xce,0x22,0x43,0x7c]
lvxl 2, 3, 4
# CHECK-BE: stvebx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x0e]
# CHECK-LE: stvebx 2, 3, 4 # encoding: [0x0e,0x21,0x43,0x7c]
stvebx 2, 3, 4
# CHECK-BE: stvehx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x4e]
# CHECK-LE: stvehx 2, 3, 4 # encoding: [0x4e,0x21,0x43,0x7c]
stvehx 2, 3, 4
# CHECK-BE: stvewx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x8e]
# CHECK-LE: stvewx 2, 3, 4 # encoding: [0x8e,0x21,0x43,0x7c]
stvewx 2, 3, 4
# CHECK-BE: stvx 2, 3, 4 # encoding: [0x7c,0x43,0x21,0xce]
# CHECK-LE: stvx 2, 3, 4 # encoding: [0xce,0x21,0x43,0x7c]
stvx 2, 3, 4
# CHECK-BE: stvxl 2, 3, 4 # encoding: [0x7c,0x43,0x23,0xce]
# CHECK-LE: stvxl 2, 3, 4 # encoding: [0xce,0x23,0x43,0x7c]
stvxl 2, 3, 4
# CHECK-BE: lvsl 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x0c]
# CHECK-LE: lvsl 2, 3, 4 # encoding: [0x0c,0x20,0x43,0x7c]
lvsl 2, 3, 4
# CHECK-BE: lvsr 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x4c]
# CHECK-LE: lvsr 2, 3, 4 # encoding: [0x4c,0x20,0x43,0x7c]
lvsr 2, 3, 4
# Vector permute and formatting instructions
# CHECK: vpkpx 2, 3, 4 # encoding: [0x10,0x43,0x23,0x0e]
vpkpx 2, 3, 4
# CHECK: vpkshss 2, 3, 4 # encoding: [0x10,0x43,0x21,0x8e]
vpkshss 2, 3, 4
# CHECK: vpkshus 2, 3, 4 # encoding: [0x10,0x43,0x21,0x0e]
vpkshus 2, 3, 4
# CHECK: vpkswss 2, 3, 4 # encoding: [0x10,0x43,0x21,0xce]
vpkswss 2, 3, 4
# CHECK: vpkswus 2, 3, 4 # encoding: [0x10,0x43,0x21,0x4e]
vpkswus 2, 3, 4
# CHECK: vpkuhum 2, 3, 4 # encoding: [0x10,0x43,0x20,0x0e]
vpkuhum 2, 3, 4
# CHECK: vpkuhus 2, 3, 4 # encoding: [0x10,0x43,0x20,0x8e]
vpkuhus 2, 3, 4
# CHECK: vpkuwum 2, 3, 4 # encoding: [0x10,0x43,0x20,0x4e]
vpkuwum 2, 3, 4
# CHECK: vpkuwus 2, 3, 4 # encoding: [0x10,0x43,0x20,0xce]
vpkuwus 2, 3, 4
# CHECK-BE: vpkpx 2, 3, 4 # encoding: [0x10,0x43,0x23,0x0e]
# CHECK-LE: vpkpx 2, 3, 4 # encoding: [0x0e,0x23,0x43,0x10]
vpkpx 2, 3, 4
# CHECK-BE: vpkshss 2, 3, 4 # encoding: [0x10,0x43,0x21,0x8e]
# CHECK-LE: vpkshss 2, 3, 4 # encoding: [0x8e,0x21,0x43,0x10]
vpkshss 2, 3, 4
# CHECK-BE: vpkshus 2, 3, 4 # encoding: [0x10,0x43,0x21,0x0e]
# CHECK-LE: vpkshus 2, 3, 4 # encoding: [0x0e,0x21,0x43,0x10]
vpkshus 2, 3, 4
# CHECK-BE: vpkswss 2, 3, 4 # encoding: [0x10,0x43,0x21,0xce]
# CHECK-LE: vpkswss 2, 3, 4 # encoding: [0xce,0x21,0x43,0x10]
vpkswss 2, 3, 4
# CHECK-BE: vpkswus 2, 3, 4 # encoding: [0x10,0x43,0x21,0x4e]
# CHECK-LE: vpkswus 2, 3, 4 # encoding: [0x4e,0x21,0x43,0x10]
vpkswus 2, 3, 4
# CHECK-BE: vpkuhum 2, 3, 4 # encoding: [0x10,0x43,0x20,0x0e]
# CHECK-LE: vpkuhum 2, 3, 4 # encoding: [0x0e,0x20,0x43,0x10]
vpkuhum 2, 3, 4
# CHECK-BE: vpkuhus 2, 3, 4 # encoding: [0x10,0x43,0x20,0x8e]
# CHECK-LE: vpkuhus 2, 3, 4 # encoding: [0x8e,0x20,0x43,0x10]
vpkuhus 2, 3, 4
# CHECK-BE: vpkuwum 2, 3, 4 # encoding: [0x10,0x43,0x20,0x4e]
# CHECK-LE: vpkuwum 2, 3, 4 # encoding: [0x4e,0x20,0x43,0x10]
vpkuwum 2, 3, 4
# CHECK-BE: vpkuwus 2, 3, 4 # encoding: [0x10,0x43,0x20,0xce]
# CHECK-LE: vpkuwus 2, 3, 4 # encoding: [0xce,0x20,0x43,0x10]
vpkuwus 2, 3, 4
# CHECK: vupkhpx 2, 3 # encoding: [0x10,0x40,0x1b,0x4e]
vupkhpx 2, 3
# CHECK: vupkhsb 2, 3 # encoding: [0x10,0x40,0x1a,0x0e]
vupkhsb 2, 3
# CHECK: vupkhsh 2, 3 # encoding: [0x10,0x40,0x1a,0x4e]
vupkhsh 2, 3
# CHECK: vupklpx 2, 3 # encoding: [0x10,0x40,0x1b,0xce]
vupklpx 2, 3
# CHECK: vupklsb 2, 3 # encoding: [0x10,0x40,0x1a,0x8e]
vupklsb 2, 3
# CHECK: vupklsh 2, 3 # encoding: [0x10,0x40,0x1a,0xce]
vupklsh 2, 3
# CHECK-BE: vupkhpx 2, 3 # encoding: [0x10,0x40,0x1b,0x4e]
# CHECK-LE: vupkhpx 2, 3 # encoding: [0x4e,0x1b,0x40,0x10]
vupkhpx 2, 3
# CHECK-BE: vupkhsb 2, 3 # encoding: [0x10,0x40,0x1a,0x0e]
# CHECK-LE: vupkhsb 2, 3 # encoding: [0x0e,0x1a,0x40,0x10]
vupkhsb 2, 3
# CHECK-BE: vupkhsh 2, 3 # encoding: [0x10,0x40,0x1a,0x4e]
# CHECK-LE: vupkhsh 2, 3 # encoding: [0x4e,0x1a,0x40,0x10]
vupkhsh 2, 3
# CHECK-BE: vupklpx 2, 3 # encoding: [0x10,0x40,0x1b,0xce]
# CHECK-LE: vupklpx 2, 3 # encoding: [0xce,0x1b,0x40,0x10]
vupklpx 2, 3
# CHECK-BE: vupklsb 2, 3 # encoding: [0x10,0x40,0x1a,0x8e]
# CHECK-LE: vupklsb 2, 3 # encoding: [0x8e,0x1a,0x40,0x10]
vupklsb 2, 3
# CHECK-BE: vupklsh 2, 3 # encoding: [0x10,0x40,0x1a,0xce]
# CHECK-LE: vupklsh 2, 3 # encoding: [0xce,0x1a,0x40,0x10]
vupklsh 2, 3
# CHECK: vmrghb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x0c]
vmrghb 2, 3, 4
# CHECK: vmrghh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x4c]
vmrghh 2, 3, 4
# CHECK: vmrghw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x8c]
vmrghw 2, 3, 4
# CHECK: vmrglb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x0c]
vmrglb 2, 3, 4
# CHECK: vmrglh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x4c]
vmrglh 2, 3, 4
# CHECK: vmrglw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x8c]
vmrglw 2, 3, 4
# CHECK-BE: vmrghb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x0c]
# CHECK-LE: vmrghb 2, 3, 4 # encoding: [0x0c,0x20,0x43,0x10]
vmrghb 2, 3, 4
# CHECK-BE: vmrghh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x4c]
# CHECK-LE: vmrghh 2, 3, 4 # encoding: [0x4c,0x20,0x43,0x10]
vmrghh 2, 3, 4
# CHECK-BE: vmrghw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x8c]
# CHECK-LE: vmrghw 2, 3, 4 # encoding: [0x8c,0x20,0x43,0x10]
vmrghw 2, 3, 4
# CHECK-BE: vmrglb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x0c]
# CHECK-LE: vmrglb 2, 3, 4 # encoding: [0x0c,0x21,0x43,0x10]
vmrglb 2, 3, 4
# CHECK-BE: vmrglh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x4c]
# CHECK-LE: vmrglh 2, 3, 4 # encoding: [0x4c,0x21,0x43,0x10]
vmrglh 2, 3, 4
# CHECK-BE: vmrglw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x8c]
# CHECK-LE: vmrglw 2, 3, 4 # encoding: [0x8c,0x21,0x43,0x10]
vmrglw 2, 3, 4
# CHECK: vspltb 2, 3, 1 # encoding: [0x10,0x41,0x1a,0x0c]
vspltb 2, 3, 1
# CHECK: vsplth 2, 3, 1 # encoding: [0x10,0x41,0x1a,0x4c]
vsplth 2, 3, 1
# CHECK: vspltw 2, 3, 1 # encoding: [0x10,0x41,0x1a,0x8c]
vspltw 2, 3, 1
# CHECK: vspltisb 2, 3 # encoding: [0x10,0x43,0x03,0x0c]
vspltisb 2, 3
# CHECK: vspltish 2, 3 # encoding: [0x10,0x43,0x03,0x4c]
vspltish 2, 3
# CHECK: vspltisw 2, 3 # encoding: [0x10,0x43,0x03,0x8c]
vspltisw 2, 3
# CHECK-BE: vspltb 2, 3, 1 # encoding: [0x10,0x41,0x1a,0x0c]
# CHECK-LE: vspltb 2, 3, 1 # encoding: [0x0c,0x1a,0x41,0x10]
vspltb 2, 3, 1
# CHECK-BE: vsplth 2, 3, 1 # encoding: [0x10,0x41,0x1a,0x4c]
# CHECK-LE: vsplth 2, 3, 1 # encoding: [0x4c,0x1a,0x41,0x10]
vsplth 2, 3, 1
# CHECK-BE: vspltw 2, 3, 1 # encoding: [0x10,0x41,0x1a,0x8c]
# CHECK-LE: vspltw 2, 3, 1 # encoding: [0x8c,0x1a,0x41,0x10]
vspltw 2, 3, 1
# CHECK-BE: vspltisb 2, 3 # encoding: [0x10,0x43,0x03,0x0c]
# CHECK-LE: vspltisb 2, 3 # encoding: [0x0c,0x03,0x43,0x10]
vspltisb 2, 3
# CHECK-BE: vspltish 2, 3 # encoding: [0x10,0x43,0x03,0x4c]
# CHECK-LE: vspltish 2, 3 # encoding: [0x4c,0x03,0x43,0x10]
vspltish 2, 3
# CHECK-BE: vspltisw 2, 3 # encoding: [0x10,0x43,0x03,0x8c]
# CHECK-LE: vspltisw 2, 3 # encoding: [0x8c,0x03,0x43,0x10]
vspltisw 2, 3
# CHECK: vperm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x6b]
vperm 2, 3, 4, 5
# CHECK: vsel 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x6a]
vsel 2, 3, 4, 5
# CHECK-BE: vperm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x6b]
# CHECK-LE: vperm 2, 3, 4, 5 # encoding: [0x6b,0x21,0x43,0x10]
vperm 2, 3, 4, 5
# CHECK-BE: vsel 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x6a]
# CHECK-LE: vsel 2, 3, 4, 5 # encoding: [0x6a,0x21,0x43,0x10]
vsel 2, 3, 4, 5
# CHECK: vsl 2, 3, 4 # encoding: [0x10,0x43,0x21,0xc4]
vsl 2, 3, 4
# CHECK: vsldoi 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x6c]
vsldoi 2, 3, 4, 5
# CHECK: vslo 2, 3, 4 # encoding: [0x10,0x43,0x24,0x0c]
vslo 2, 3, 4
# CHECK: vsr 2, 3, 4 # encoding: [0x10,0x43,0x22,0xc4]
vsr 2, 3, 4
# CHECK: vsro 2, 3, 4 # encoding: [0x10,0x43,0x24,0x4c]
vsro 2, 3, 4
# CHECK-BE: vsl 2, 3, 4 # encoding: [0x10,0x43,0x21,0xc4]
# CHECK-LE: vsl 2, 3, 4 # encoding: [0xc4,0x21,0x43,0x10]
vsl 2, 3, 4
# CHECK-BE: vsldoi 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x6c]
# CHECK-LE: vsldoi 2, 3, 4, 5 # encoding: [0x6c,0x21,0x43,0x10]
vsldoi 2, 3, 4, 5
# CHECK-BE: vslo 2, 3, 4 # encoding: [0x10,0x43,0x24,0x0c]
# CHECK-LE: vslo 2, 3, 4 # encoding: [0x0c,0x24,0x43,0x10]
vslo 2, 3, 4
# CHECK-BE: vsr 2, 3, 4 # encoding: [0x10,0x43,0x22,0xc4]
# CHECK-LE: vsr 2, 3, 4 # encoding: [0xc4,0x22,0x43,0x10]
vsr 2, 3, 4
# CHECK-BE: vsro 2, 3, 4 # encoding: [0x10,0x43,0x24,0x4c]
# CHECK-LE: vsro 2, 3, 4 # encoding: [0x4c,0x24,0x43,0x10]
vsro 2, 3, 4
# Vector integer arithmetic instructions
# CHECK: vaddcuw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x80]
vaddcuw 2, 3, 4
# CHECK: vaddsbs 2, 3, 4 # encoding: [0x10,0x43,0x23,0x00]
vaddsbs 2, 3, 4
# CHECK: vaddshs 2, 3, 4 # encoding: [0x10,0x43,0x23,0x40]
vaddshs 2, 3, 4
# CHECK: vaddsws 2, 3, 4 # encoding: [0x10,0x43,0x23,0x80]
vaddsws 2, 3, 4
# CHECK: vaddubm 2, 3, 4 # encoding: [0x10,0x43,0x20,0x00]
vaddubm 2, 3, 4
# CHECK: vadduhm 2, 3, 4 # encoding: [0x10,0x43,0x20,0x40]
vadduhm 2, 3, 4
# CHECK: vadduwm 2, 3, 4 # encoding: [0x10,0x43,0x20,0x80]
vadduwm 2, 3, 4
# CHECK: vaddubs 2, 3, 4 # encoding: [0x10,0x43,0x22,0x00]
vaddubs 2, 3, 4
# CHECK: vadduhs 2, 3, 4 # encoding: [0x10,0x43,0x22,0x40]
vadduhs 2, 3, 4
# CHECK: vadduws 2, 3, 4 # encoding: [0x10,0x43,0x22,0x80]
vadduws 2, 3, 4
# CHECK-BE: vaddcuw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x80]
# CHECK-LE: vaddcuw 2, 3, 4 # encoding: [0x80,0x21,0x43,0x10]
vaddcuw 2, 3, 4
# CHECK-BE: vaddsbs 2, 3, 4 # encoding: [0x10,0x43,0x23,0x00]
# CHECK-LE: vaddsbs 2, 3, 4 # encoding: [0x00,0x23,0x43,0x10]
vaddsbs 2, 3, 4
# CHECK-BE: vaddshs 2, 3, 4 # encoding: [0x10,0x43,0x23,0x40]
# CHECK-LE: vaddshs 2, 3, 4 # encoding: [0x40,0x23,0x43,0x10]
vaddshs 2, 3, 4
# CHECK-BE: vaddsws 2, 3, 4 # encoding: [0x10,0x43,0x23,0x80]
# CHECK-LE: vaddsws 2, 3, 4 # encoding: [0x80,0x23,0x43,0x10]
vaddsws 2, 3, 4
# CHECK-BE: vaddubm 2, 3, 4 # encoding: [0x10,0x43,0x20,0x00]
# CHECK-LE: vaddubm 2, 3, 4 # encoding: [0x00,0x20,0x43,0x10]
vaddubm 2, 3, 4
# CHECK-BE: vadduhm 2, 3, 4 # encoding: [0x10,0x43,0x20,0x40]
# CHECK-LE: vadduhm 2, 3, 4 # encoding: [0x40,0x20,0x43,0x10]
vadduhm 2, 3, 4
# CHECK-BE: vadduwm 2, 3, 4 # encoding: [0x10,0x43,0x20,0x80]
# CHECK-LE: vadduwm 2, 3, 4 # encoding: [0x80,0x20,0x43,0x10]
vadduwm 2, 3, 4
# CHECK-BE: vaddubs 2, 3, 4 # encoding: [0x10,0x43,0x22,0x00]
# CHECK-LE: vaddubs 2, 3, 4 # encoding: [0x00,0x22,0x43,0x10]
vaddubs 2, 3, 4
# CHECK-BE: vadduhs 2, 3, 4 # encoding: [0x10,0x43,0x22,0x40]
# CHECK-LE: vadduhs 2, 3, 4 # encoding: [0x40,0x22,0x43,0x10]
vadduhs 2, 3, 4
# CHECK-BE: vadduws 2, 3, 4 # encoding: [0x10,0x43,0x22,0x80]
# CHECK-LE: vadduws 2, 3, 4 # encoding: [0x80,0x22,0x43,0x10]
vadduws 2, 3, 4
# CHECK: vsubcuw 2, 3, 4 # encoding: [0x10,0x43,0x25,0x80]
vsubcuw 2, 3, 4
# CHECK: vsubsbs 2, 3, 4 # encoding: [0x10,0x43,0x27,0x00]
vsubsbs 2, 3, 4
# CHECK: vsubshs 2, 3, 4 # encoding: [0x10,0x43,0x27,0x40]
vsubshs 2, 3, 4
# CHECK: vsubsws 2, 3, 4 # encoding: [0x10,0x43,0x27,0x80]
vsubsws 2, 3, 4
# CHECK: vsububm 2, 3, 4 # encoding: [0x10,0x43,0x24,0x00]
vsububm 2, 3, 4
# CHECK: vsubuhm 2, 3, 4 # encoding: [0x10,0x43,0x24,0x40]
vsubuhm 2, 3, 4
# CHECK: vsubuwm 2, 3, 4 # encoding: [0x10,0x43,0x24,0x80]
vsubuwm 2, 3, 4
# CHECK: vsububs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x00]
vsububs 2, 3, 4
# CHECK: vsubuhs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x40]
vsubuhs 2, 3, 4
# CHECK: vsubuws 2, 3, 4 # encoding: [0x10,0x43,0x26,0x80]
vsubuws 2, 3, 4
# CHECK-BE: vsubcuw 2, 3, 4 # encoding: [0x10,0x43,0x25,0x80]
# CHECK-LE: vsubcuw 2, 3, 4 # encoding: [0x80,0x25,0x43,0x10]
vsubcuw 2, 3, 4
# CHECK-BE: vsubsbs 2, 3, 4 # encoding: [0x10,0x43,0x27,0x00]
# CHECK-LE: vsubsbs 2, 3, 4 # encoding: [0x00,0x27,0x43,0x10]
vsubsbs 2, 3, 4
# CHECK-BE: vsubshs 2, 3, 4 # encoding: [0x10,0x43,0x27,0x40]
# CHECK-LE: vsubshs 2, 3, 4 # encoding: [0x40,0x27,0x43,0x10]
vsubshs 2, 3, 4
# CHECK-BE: vsubsws 2, 3, 4 # encoding: [0x10,0x43,0x27,0x80]
# CHECK-LE: vsubsws 2, 3, 4 # encoding: [0x80,0x27,0x43,0x10]
vsubsws 2, 3, 4
# CHECK-BE: vsububm 2, 3, 4 # encoding: [0x10,0x43,0x24,0x00]
# CHECK-LE: vsububm 2, 3, 4 # encoding: [0x00,0x24,0x43,0x10]
vsububm 2, 3, 4
# CHECK-BE: vsubuhm 2, 3, 4 # encoding: [0x10,0x43,0x24,0x40]
# CHECK-LE: vsubuhm 2, 3, 4 # encoding: [0x40,0x24,0x43,0x10]
vsubuhm 2, 3, 4
# CHECK-BE: vsubuwm 2, 3, 4 # encoding: [0x10,0x43,0x24,0x80]
# CHECK-LE: vsubuwm 2, 3, 4 # encoding: [0x80,0x24,0x43,0x10]
vsubuwm 2, 3, 4
# CHECK-BE: vsububs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x00]
# CHECK-LE: vsububs 2, 3, 4 # encoding: [0x00,0x26,0x43,0x10]
vsububs 2, 3, 4
# CHECK-BE: vsubuhs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x40]
# CHECK-LE: vsubuhs 2, 3, 4 # encoding: [0x40,0x26,0x43,0x10]
vsubuhs 2, 3, 4
# CHECK-BE: vsubuws 2, 3, 4 # encoding: [0x10,0x43,0x26,0x80]
# CHECK-LE: vsubuws 2, 3, 4 # encoding: [0x80,0x26,0x43,0x10]
vsubuws 2, 3, 4
# CHECK: vmulesb 2, 3, 4 # encoding: [0x10,0x43,0x23,0x08]
vmulesb 2, 3, 4
# CHECK: vmulesh 2, 3, 4 # encoding: [0x10,0x43,0x23,0x48]
vmulesh 2, 3, 4
# CHECK: vmuleub 2, 3, 4 # encoding: [0x10,0x43,0x22,0x08]
vmuleub 2, 3, 4
# CHECK: vmuleuh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x48]
vmuleuh 2, 3, 4
# CHECK: vmulosb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x08]
vmulosb 2, 3, 4
# CHECK: vmulosh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x48]
vmulosh 2, 3, 4
# CHECK: vmuloub 2, 3, 4 # encoding: [0x10,0x43,0x20,0x08]
vmuloub 2, 3, 4
# CHECK: vmulouh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x48]
vmulouh 2, 3, 4
# CHECK-BE: vmulesb 2, 3, 4 # encoding: [0x10,0x43,0x23,0x08]
# CHECK-LE: vmulesb 2, 3, 4 # encoding: [0x08,0x23,0x43,0x10]
vmulesb 2, 3, 4
# CHECK-BE: vmulesh 2, 3, 4 # encoding: [0x10,0x43,0x23,0x48]
# CHECK-LE: vmulesh 2, 3, 4 # encoding: [0x48,0x23,0x43,0x10]
vmulesh 2, 3, 4
# CHECK-BE: vmuleub 2, 3, 4 # encoding: [0x10,0x43,0x22,0x08]
# CHECK-LE: vmuleub 2, 3, 4 # encoding: [0x08,0x22,0x43,0x10]
vmuleub 2, 3, 4
# CHECK-BE: vmuleuh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x48]
# CHECK-LE: vmuleuh 2, 3, 4 # encoding: [0x48,0x22,0x43,0x10]
vmuleuh 2, 3, 4
# CHECK-BE: vmulosb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x08]
# CHECK-LE: vmulosb 2, 3, 4 # encoding: [0x08,0x21,0x43,0x10]
vmulosb 2, 3, 4
# CHECK-BE: vmulosh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x48]
# CHECK-LE: vmulosh 2, 3, 4 # encoding: [0x48,0x21,0x43,0x10]
vmulosh 2, 3, 4
# CHECK-BE: vmuloub 2, 3, 4 # encoding: [0x10,0x43,0x20,0x08]
# CHECK-LE: vmuloub 2, 3, 4 # encoding: [0x08,0x20,0x43,0x10]
vmuloub 2, 3, 4
# CHECK-BE: vmulouh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x48]
# CHECK-LE: vmulouh 2, 3, 4 # encoding: [0x48,0x20,0x43,0x10]
vmulouh 2, 3, 4
# CHECK: vmhaddshs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x60]
vmhaddshs 2, 3, 4, 5
# CHECK: vmhraddshs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x61]
vmhraddshs 2, 3, 4, 5
# CHECK: vmladduhm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x62]
vmladduhm 2, 3, 4, 5
# CHECK: vmsumubm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x64]
vmsumubm 2, 3, 4, 5
# CHECK: vmsummbm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x65]
vmsummbm 2, 3, 4, 5
# CHECK: vmsumshm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x68]
vmsumshm 2, 3, 4, 5
# CHECK: vmsumshs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x69]
vmsumshs 2, 3, 4, 5
# CHECK: vmsumuhm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x66]
vmsumuhm 2, 3, 4, 5
# CHECK: vmsumuhs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x67]
vmsumuhs 2, 3, 4, 5
# CHECK-BE: vmhaddshs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x60]
# CHECK-LE: vmhaddshs 2, 3, 4, 5 # encoding: [0x60,0x21,0x43,0x10]
vmhaddshs 2, 3, 4, 5
# CHECK-BE: vmhraddshs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x61]
# CHECK-LE: vmhraddshs 2, 3, 4, 5 # encoding: [0x61,0x21,0x43,0x10]
vmhraddshs 2, 3, 4, 5
# CHECK-BE: vmladduhm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x62]
# CHECK-LE: vmladduhm 2, 3, 4, 5 # encoding: [0x62,0x21,0x43,0x10]
vmladduhm 2, 3, 4, 5
# CHECK-BE: vmsumubm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x64]
# CHECK-LE: vmsumubm 2, 3, 4, 5 # encoding: [0x64,0x21,0x43,0x10]
vmsumubm 2, 3, 4, 5
# CHECK-BE: vmsummbm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x65]
# CHECK-LE: vmsummbm 2, 3, 4, 5 # encoding: [0x65,0x21,0x43,0x10]
vmsummbm 2, 3, 4, 5
# CHECK-BE: vmsumshm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x68]
# CHECK-LE: vmsumshm 2, 3, 4, 5 # encoding: [0x68,0x21,0x43,0x10]
vmsumshm 2, 3, 4, 5
# CHECK-BE: vmsumshs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x69]
# CHECK-LE: vmsumshs 2, 3, 4, 5 # encoding: [0x69,0x21,0x43,0x10]
vmsumshs 2, 3, 4, 5
# CHECK-BE: vmsumuhm 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x66]
# CHECK-LE: vmsumuhm 2, 3, 4, 5 # encoding: [0x66,0x21,0x43,0x10]
vmsumuhm 2, 3, 4, 5
# CHECK-BE: vmsumuhs 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x67]
# CHECK-LE: vmsumuhs 2, 3, 4, 5 # encoding: [0x67,0x21,0x43,0x10]
vmsumuhs 2, 3, 4, 5
# CHECK: vsumsws 2, 3, 4 # encoding: [0x10,0x43,0x27,0x88]
vsumsws 2, 3, 4
# CHECK: vsum2sws 2, 3, 4 # encoding: [0x10,0x43,0x26,0x88]
vsum2sws 2, 3, 4
# CHECK: vsum4sbs 2, 3, 4 # encoding: [0x10,0x43,0x27,0x08]
vsum4sbs 2, 3, 4
# CHECK: vsum4shs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x48]
vsum4shs 2, 3, 4
# CHECK: vsum4ubs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x08]
vsum4ubs 2, 3, 4
# CHECK-BE: vsumsws 2, 3, 4 # encoding: [0x10,0x43,0x27,0x88]
# CHECK-LE: vsumsws 2, 3, 4 # encoding: [0x88,0x27,0x43,0x10]
vsumsws 2, 3, 4
# CHECK-BE: vsum2sws 2, 3, 4 # encoding: [0x10,0x43,0x26,0x88]
# CHECK-LE: vsum2sws 2, 3, 4 # encoding: [0x88,0x26,0x43,0x10]
vsum2sws 2, 3, 4
# CHECK-BE: vsum4sbs 2, 3, 4 # encoding: [0x10,0x43,0x27,0x08]
# CHECK-LE: vsum4sbs 2, 3, 4 # encoding: [0x08,0x27,0x43,0x10]
vsum4sbs 2, 3, 4
# CHECK-BE: vsum4shs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x48]
# CHECK-LE: vsum4shs 2, 3, 4 # encoding: [0x48,0x26,0x43,0x10]
vsum4shs 2, 3, 4
# CHECK-BE: vsum4ubs 2, 3, 4 # encoding: [0x10,0x43,0x26,0x08]
# CHECK-LE: vsum4ubs 2, 3, 4 # encoding: [0x08,0x26,0x43,0x10]
vsum4ubs 2, 3, 4
# CHECK: vavgsb 2, 3, 4 # encoding: [0x10,0x43,0x25,0x02]
vavgsb 2, 3, 4
# CHECK: vavgsh 2, 3, 4 # encoding: [0x10,0x43,0x25,0x42]
vavgsh 2, 3, 4
# CHECK: vavgsw 2, 3, 4 # encoding: [0x10,0x43,0x25,0x82]
vavgsw 2, 3, 4
# CHECK: vavgub 2, 3, 4 # encoding: [0x10,0x43,0x24,0x02]
vavgub 2, 3, 4
# CHECK: vavguh 2, 3, 4 # encoding: [0x10,0x43,0x24,0x42]
vavguh 2, 3, 4
# CHECK: vavguw 2, 3, 4 # encoding: [0x10,0x43,0x24,0x82]
vavguw 2, 3, 4
# CHECK-BE: vavgsb 2, 3, 4 # encoding: [0x10,0x43,0x25,0x02]
# CHECK-LE: vavgsb 2, 3, 4 # encoding: [0x02,0x25,0x43,0x10]
vavgsb 2, 3, 4
# CHECK-BE: vavgsh 2, 3, 4 # encoding: [0x10,0x43,0x25,0x42]
# CHECK-LE: vavgsh 2, 3, 4 # encoding: [0x42,0x25,0x43,0x10]
vavgsh 2, 3, 4
# CHECK-BE: vavgsw 2, 3, 4 # encoding: [0x10,0x43,0x25,0x82]
# CHECK-LE: vavgsw 2, 3, 4 # encoding: [0x82,0x25,0x43,0x10]
vavgsw 2, 3, 4
# CHECK-BE: vavgub 2, 3, 4 # encoding: [0x10,0x43,0x24,0x02]
# CHECK-LE: vavgub 2, 3, 4 # encoding: [0x02,0x24,0x43,0x10]
vavgub 2, 3, 4
# CHECK-BE: vavguh 2, 3, 4 # encoding: [0x10,0x43,0x24,0x42]
# CHECK-LE: vavguh 2, 3, 4 # encoding: [0x42,0x24,0x43,0x10]
vavguh 2, 3, 4
# CHECK-BE: vavguw 2, 3, 4 # encoding: [0x10,0x43,0x24,0x82]
# CHECK-LE: vavguw 2, 3, 4 # encoding: [0x82,0x24,0x43,0x10]
vavguw 2, 3, 4
# CHECK: vmaxsb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x02]
vmaxsb 2, 3, 4
# CHECK: vmaxsh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x42]
vmaxsh 2, 3, 4
# CHECK: vmaxsw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x82]
vmaxsw 2, 3, 4
# CHECK: vmaxub 2, 3, 4 # encoding: [0x10,0x43,0x20,0x02]
vmaxub 2, 3, 4
# CHECK: vmaxuh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x42]
vmaxuh 2, 3, 4
# CHECK: vmaxuw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x82]
vmaxuw 2, 3, 4
# CHECK-BE: vmaxsb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x02]
# CHECK-LE: vmaxsb 2, 3, 4 # encoding: [0x02,0x21,0x43,0x10]
vmaxsb 2, 3, 4
# CHECK-BE: vmaxsh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x42]
# CHECK-LE: vmaxsh 2, 3, 4 # encoding: [0x42,0x21,0x43,0x10]
vmaxsh 2, 3, 4
# CHECK-BE: vmaxsw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x82]
# CHECK-LE: vmaxsw 2, 3, 4 # encoding: [0x82,0x21,0x43,0x10]
vmaxsw 2, 3, 4
# CHECK-BE: vmaxub 2, 3, 4 # encoding: [0x10,0x43,0x20,0x02]
# CHECK-LE: vmaxub 2, 3, 4 # encoding: [0x02,0x20,0x43,0x10]
vmaxub 2, 3, 4
# CHECK-BE: vmaxuh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x42]
# CHECK-LE: vmaxuh 2, 3, 4 # encoding: [0x42,0x20,0x43,0x10]
vmaxuh 2, 3, 4
# CHECK-BE: vmaxuw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x82]
# CHECK-LE: vmaxuw 2, 3, 4 # encoding: [0x82,0x20,0x43,0x10]
vmaxuw 2, 3, 4
# CHECK: vminsb 2, 3, 4 # encoding: [0x10,0x43,0x23,0x02]
vminsb 2, 3, 4
# CHECK: vminsh 2, 3, 4 # encoding: [0x10,0x43,0x23,0x42]
vminsh 2, 3, 4
# CHECK: vminsw 2, 3, 4 # encoding: [0x10,0x43,0x23,0x82]
vminsw 2, 3, 4
# CHECK: vminub 2, 3, 4 # encoding: [0x10,0x43,0x22,0x02]
vminub 2, 3, 4
# CHECK: vminuh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x42]
vminuh 2, 3, 4
# CHECK: vminuw 2, 3, 4 # encoding: [0x10,0x43,0x22,0x82]
vminuw 2, 3, 4
# CHECK-BE: vminsb 2, 3, 4 # encoding: [0x10,0x43,0x23,0x02]
# CHECK-LE: vminsb 2, 3, 4 # encoding: [0x02,0x23,0x43,0x10]
vminsb 2, 3, 4
# CHECK-BE: vminsh 2, 3, 4 # encoding: [0x10,0x43,0x23,0x42]
# CHECK-LE: vminsh 2, 3, 4 # encoding: [0x42,0x23,0x43,0x10]
vminsh 2, 3, 4
# CHECK-BE: vminsw 2, 3, 4 # encoding: [0x10,0x43,0x23,0x82]
# CHECK-LE: vminsw 2, 3, 4 # encoding: [0x82,0x23,0x43,0x10]
vminsw 2, 3, 4
# CHECK-BE: vminub 2, 3, 4 # encoding: [0x10,0x43,0x22,0x02]
# CHECK-LE: vminub 2, 3, 4 # encoding: [0x02,0x22,0x43,0x10]
vminub 2, 3, 4
# CHECK-BE: vminuh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x42]
# CHECK-LE: vminuh 2, 3, 4 # encoding: [0x42,0x22,0x43,0x10]
vminuh 2, 3, 4
# CHECK-BE: vminuw 2, 3, 4 # encoding: [0x10,0x43,0x22,0x82]
# CHECK-LE: vminuw 2, 3, 4 # encoding: [0x82,0x22,0x43,0x10]
vminuw 2, 3, 4
# Vector integer compare instructions
# CHECK: vcmpequb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x06]
vcmpequb 2, 3, 4
# CHECK: vcmpequb. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x06]
vcmpequb. 2, 3, 4
# CHECK: vcmpequh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x46]
vcmpequh 2, 3, 4
# CHECK: vcmpequh. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x46]
vcmpequh. 2, 3, 4
# CHECK: vcmpequw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x86]
vcmpequw 2, 3, 4
# CHECK: vcmpequw. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x86]
vcmpequw. 2, 3, 4
# CHECK: vcmpgtsb 2, 3, 4 # encoding: [0x10,0x43,0x23,0x06]
vcmpgtsb 2, 3, 4
# CHECK: vcmpgtsb. 2, 3, 4 # encoding: [0x10,0x43,0x27,0x06]
vcmpgtsb. 2, 3, 4
# CHECK: vcmpgtsh 2, 3, 4 # encoding: [0x10,0x43,0x23,0x46]
vcmpgtsh 2, 3, 4
# CHECK: vcmpgtsh. 2, 3, 4 # encoding: [0x10,0x43,0x27,0x46]
vcmpgtsh. 2, 3, 4
# CHECK: vcmpgtsw 2, 3, 4 # encoding: [0x10,0x43,0x23,0x86]
vcmpgtsw 2, 3, 4
# CHECK: vcmpgtsw. 2, 3, 4 # encoding: [0x10,0x43,0x27,0x86]
vcmpgtsw. 2, 3, 4
# CHECK: vcmpgtub 2, 3, 4 # encoding: [0x10,0x43,0x22,0x06]
vcmpgtub 2, 3, 4
# CHECK: vcmpgtub. 2, 3, 4 # encoding: [0x10,0x43,0x26,0x06]
vcmpgtub. 2, 3, 4
# CHECK: vcmpgtuh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x46]
vcmpgtuh 2, 3, 4
# CHECK: vcmpgtuh. 2, 3, 4 # encoding: [0x10,0x43,0x26,0x46]
vcmpgtuh. 2, 3, 4
# CHECK: vcmpgtuw 2, 3, 4 # encoding: [0x10,0x43,0x22,0x86]
vcmpgtuw 2, 3, 4
# CHECK: vcmpgtuw. 2, 3, 4 # encoding: [0x10,0x43,0x26,0x86]
vcmpgtuw. 2, 3, 4
# CHECK-BE: vcmpequb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x06]
# CHECK-LE: vcmpequb 2, 3, 4 # encoding: [0x06,0x20,0x43,0x10]
vcmpequb 2, 3, 4
# CHECK-BE: vcmpequb. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x06]
# CHECK-LE: vcmpequb. 2, 3, 4 # encoding: [0x06,0x24,0x43,0x10]
vcmpequb. 2, 3, 4
# CHECK-BE: vcmpequh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x46]
# CHECK-LE: vcmpequh 2, 3, 4 # encoding: [0x46,0x20,0x43,0x10]
vcmpequh 2, 3, 4
# CHECK-BE: vcmpequh. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x46]
# CHECK-LE: vcmpequh. 2, 3, 4 # encoding: [0x46,0x24,0x43,0x10]
vcmpequh. 2, 3, 4
# CHECK-BE: vcmpequw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x86]
# CHECK-LE: vcmpequw 2, 3, 4 # encoding: [0x86,0x20,0x43,0x10]
vcmpequw 2, 3, 4
# CHECK-BE: vcmpequw. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x86]
# CHECK-LE: vcmpequw. 2, 3, 4 # encoding: [0x86,0x24,0x43,0x10]
vcmpequw. 2, 3, 4
# CHECK-BE: vcmpgtsb 2, 3, 4 # encoding: [0x10,0x43,0x23,0x06]
# CHECK-LE: vcmpgtsb 2, 3, 4 # encoding: [0x06,0x23,0x43,0x10]
vcmpgtsb 2, 3, 4
# CHECK-BE: vcmpgtsb. 2, 3, 4 # encoding: [0x10,0x43,0x27,0x06]
# CHECK-LE: vcmpgtsb. 2, 3, 4 # encoding: [0x06,0x27,0x43,0x10]
vcmpgtsb. 2, 3, 4
# CHECK-BE: vcmpgtsh 2, 3, 4 # encoding: [0x10,0x43,0x23,0x46]
# CHECK-LE: vcmpgtsh 2, 3, 4 # encoding: [0x46,0x23,0x43,0x10]
vcmpgtsh 2, 3, 4
# CHECK-BE: vcmpgtsh. 2, 3, 4 # encoding: [0x10,0x43,0x27,0x46]
# CHECK-LE: vcmpgtsh. 2, 3, 4 # encoding: [0x46,0x27,0x43,0x10]
vcmpgtsh. 2, 3, 4
# CHECK-BE: vcmpgtsw 2, 3, 4 # encoding: [0x10,0x43,0x23,0x86]
# CHECK-LE: vcmpgtsw 2, 3, 4 # encoding: [0x86,0x23,0x43,0x10]
vcmpgtsw 2, 3, 4
# CHECK-BE: vcmpgtsw. 2, 3, 4 # encoding: [0x10,0x43,0x27,0x86]
# CHECK-LE: vcmpgtsw. 2, 3, 4 # encoding: [0x86,0x27,0x43,0x10]
vcmpgtsw. 2, 3, 4
# CHECK-BE: vcmpgtub 2, 3, 4 # encoding: [0x10,0x43,0x22,0x06]
# CHECK-LE: vcmpgtub 2, 3, 4 # encoding: [0x06,0x22,0x43,0x10]
vcmpgtub 2, 3, 4
# CHECK-BE: vcmpgtub. 2, 3, 4 # encoding: [0x10,0x43,0x26,0x06]
# CHECK-LE: vcmpgtub. 2, 3, 4 # encoding: [0x06,0x26,0x43,0x10]
vcmpgtub. 2, 3, 4
# CHECK-BE: vcmpgtuh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x46]
# CHECK-LE: vcmpgtuh 2, 3, 4 # encoding: [0x46,0x22,0x43,0x10]
vcmpgtuh 2, 3, 4
# CHECK-BE: vcmpgtuh. 2, 3, 4 # encoding: [0x10,0x43,0x26,0x46]
# CHECK-LE: vcmpgtuh. 2, 3, 4 # encoding: [0x46,0x26,0x43,0x10]
vcmpgtuh. 2, 3, 4
# CHECK-BE: vcmpgtuw 2, 3, 4 # encoding: [0x10,0x43,0x22,0x86]
# CHECK-LE: vcmpgtuw 2, 3, 4 # encoding: [0x86,0x22,0x43,0x10]
vcmpgtuw 2, 3, 4
# CHECK-BE: vcmpgtuw. 2, 3, 4 # encoding: [0x10,0x43,0x26,0x86]
# CHECK-LE: vcmpgtuw. 2, 3, 4 # encoding: [0x86,0x26,0x43,0x10]
vcmpgtuw. 2, 3, 4
# Vector integer logical instructions
# CHECK: vand 2, 3, 4 # encoding: [0x10,0x43,0x24,0x04]
vand 2, 3, 4
# CHECK: vandc 2, 3, 4 # encoding: [0x10,0x43,0x24,0x44]
vandc 2, 3, 4
# CHECK: vnor 2, 3, 4 # encoding: [0x10,0x43,0x25,0x04]
vnor 2, 3, 4
# CHECK: vor 2, 3, 4 # encoding: [0x10,0x43,0x24,0x84]
vor 2, 3, 4
# CHECK: vxor 2, 3, 4 # encoding: [0x10,0x43,0x24,0xc4]
vxor 2, 3, 4
# CHECK-BE: vand 2, 3, 4 # encoding: [0x10,0x43,0x24,0x04]
# CHECK-LE: vand 2, 3, 4 # encoding: [0x04,0x24,0x43,0x10]
vand 2, 3, 4
# CHECK-BE: vandc 2, 3, 4 # encoding: [0x10,0x43,0x24,0x44]
# CHECK-LE: vandc 2, 3, 4 # encoding: [0x44,0x24,0x43,0x10]
vandc 2, 3, 4
# CHECK-BE: vnor 2, 3, 4 # encoding: [0x10,0x43,0x25,0x04]
# CHECK-LE: vnor 2, 3, 4 # encoding: [0x04,0x25,0x43,0x10]
vnor 2, 3, 4
# CHECK-BE: vor 2, 3, 4 # encoding: [0x10,0x43,0x24,0x84]
# CHECK-LE: vor 2, 3, 4 # encoding: [0x84,0x24,0x43,0x10]
vor 2, 3, 4
# CHECK-BE: vxor 2, 3, 4 # encoding: [0x10,0x43,0x24,0xc4]
# CHECK-LE: vxor 2, 3, 4 # encoding: [0xc4,0x24,0x43,0x10]
vxor 2, 3, 4
# Vector integer rotate and shift instructions
# CHECK: vrlb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x04]
vrlb 2, 3, 4
# CHECK: vrlh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x44]
vrlh 2, 3, 4
# CHECK: vrlw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x84]
vrlw 2, 3, 4
# CHECK-BE: vrlb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x04]
# CHECK-LE: vrlb 2, 3, 4 # encoding: [0x04,0x20,0x43,0x10]
vrlb 2, 3, 4
# CHECK-BE: vrlh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x44]
# CHECK-LE: vrlh 2, 3, 4 # encoding: [0x44,0x20,0x43,0x10]
vrlh 2, 3, 4
# CHECK-BE: vrlw 2, 3, 4 # encoding: [0x10,0x43,0x20,0x84]
# CHECK-LE: vrlw 2, 3, 4 # encoding: [0x84,0x20,0x43,0x10]
vrlw 2, 3, 4
# CHECK: vslb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x04]
vslb 2, 3, 4
# CHECK: vslh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x44]
vslh 2, 3, 4
# CHECK: vslw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x84]
vslw 2, 3, 4
# CHECK: vsrb 2, 3, 4 # encoding: [0x10,0x43,0x22,0x04]
vsrb 2, 3, 4
# CHECK: vsrh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x44]
vsrh 2, 3, 4
# CHECK: vsrw 2, 3, 4 # encoding: [0x10,0x43,0x22,0x84]
vsrw 2, 3, 4
# CHECK: vsrab 2, 3, 4 # encoding: [0x10,0x43,0x23,0x04]
vsrab 2, 3, 4
# CHECK: vsrah 2, 3, 4 # encoding: [0x10,0x43,0x23,0x44]
vsrah 2, 3, 4
# CHECK: vsraw 2, 3, 4 # encoding: [0x10,0x43,0x23,0x84]
vsraw 2, 3, 4
# CHECK-BE: vslb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x04]
# CHECK-LE: vslb 2, 3, 4 # encoding: [0x04,0x21,0x43,0x10]
vslb 2, 3, 4
# CHECK-BE: vslh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x44]
# CHECK-LE: vslh 2, 3, 4 # encoding: [0x44,0x21,0x43,0x10]
vslh 2, 3, 4
# CHECK-BE: vslw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x84]
# CHECK-LE: vslw 2, 3, 4 # encoding: [0x84,0x21,0x43,0x10]
vslw 2, 3, 4
# CHECK-BE: vsrb 2, 3, 4 # encoding: [0x10,0x43,0x22,0x04]
# CHECK-LE: vsrb 2, 3, 4 # encoding: [0x04,0x22,0x43,0x10]
vsrb 2, 3, 4
# CHECK-BE: vsrh 2, 3, 4 # encoding: [0x10,0x43,0x22,0x44]
# CHECK-LE: vsrh 2, 3, 4 # encoding: [0x44,0x22,0x43,0x10]
vsrh 2, 3, 4
# CHECK-BE: vsrw 2, 3, 4 # encoding: [0x10,0x43,0x22,0x84]
# CHECK-LE: vsrw 2, 3, 4 # encoding: [0x84,0x22,0x43,0x10]
vsrw 2, 3, 4
# CHECK-BE: vsrab 2, 3, 4 # encoding: [0x10,0x43,0x23,0x04]
# CHECK-LE: vsrab 2, 3, 4 # encoding: [0x04,0x23,0x43,0x10]
vsrab 2, 3, 4
# CHECK-BE: vsrah 2, 3, 4 # encoding: [0x10,0x43,0x23,0x44]
# CHECK-LE: vsrah 2, 3, 4 # encoding: [0x44,0x23,0x43,0x10]
vsrah 2, 3, 4
# CHECK-BE: vsraw 2, 3, 4 # encoding: [0x10,0x43,0x23,0x84]
# CHECK-LE: vsraw 2, 3, 4 # encoding: [0x84,0x23,0x43,0x10]
vsraw 2, 3, 4
# Vector floating-point instructions
# CHECK: vaddfp 2, 3, 4 # encoding: [0x10,0x43,0x20,0x0a]
vaddfp 2, 3, 4
# CHECK: vsubfp 2, 3, 4 # encoding: [0x10,0x43,0x20,0x4a]
vsubfp 2, 3, 4
# CHECK: vmaddfp 2, 3, 4, 5 # encoding: [0x10,0x43,0x29,0x2e]
vmaddfp 2, 3, 4, 5
# CHECK: vnmsubfp 2, 3, 4, 5 # encoding: [0x10,0x43,0x29,0x2f]
vnmsubfp 2, 3, 4, 5
# CHECK-BE: vaddfp 2, 3, 4 # encoding: [0x10,0x43,0x20,0x0a]
# CHECK-LE: vaddfp 2, 3, 4 # encoding: [0x0a,0x20,0x43,0x10]
vaddfp 2, 3, 4
# CHECK-BE: vsubfp 2, 3, 4 # encoding: [0x10,0x43,0x20,0x4a]
# CHECK-LE: vsubfp 2, 3, 4 # encoding: [0x4a,0x20,0x43,0x10]
vsubfp 2, 3, 4
# CHECK-BE: vmaddfp 2, 3, 4, 5 # encoding: [0x10,0x43,0x29,0x2e]
# CHECK-LE: vmaddfp 2, 3, 4, 5 # encoding: [0x2e,0x29,0x43,0x10]
vmaddfp 2, 3, 4, 5
# CHECK-BE: vnmsubfp 2, 3, 4, 5 # encoding: [0x10,0x43,0x29,0x2f]
# CHECK-LE: vnmsubfp 2, 3, 4, 5 # encoding: [0x2f,0x29,0x43,0x10]
vnmsubfp 2, 3, 4, 5
# CHECK: vmaxfp 2, 3, 4 # encoding: [0x10,0x43,0x24,0x0a]
vmaxfp 2, 3, 4
# CHECK: vminfp 2, 3, 4 # encoding: [0x10,0x43,0x24,0x4a]
vminfp 2, 3, 4
# CHECK-BE: vmaxfp 2, 3, 4 # encoding: [0x10,0x43,0x24,0x0a]
# CHECK-LE: vmaxfp 2, 3, 4 # encoding: [0x0a,0x24,0x43,0x10]
vmaxfp 2, 3, 4
# CHECK-BE: vminfp 2, 3, 4 # encoding: [0x10,0x43,0x24,0x4a]
# CHECK-LE: vminfp 2, 3, 4 # encoding: [0x4a,0x24,0x43,0x10]
vminfp 2, 3, 4
# CHECK: vctsxs 2, 3, 4 # encoding: [0x10,0x44,0x1b,0xca]
vctsxs 2, 3, 4
# CHECK: vctuxs 2, 3, 4 # encoding: [0x10,0x44,0x1b,0x8a]
vctuxs 2, 3, 4
# CHECK: vcfsx 2, 3, 4 # encoding: [0x10,0x44,0x1b,0x4a]
vcfsx 2, 3, 4
# CHECK: vcfux 2, 3, 4 # encoding: [0x10,0x44,0x1b,0x0a]
vcfux 2, 3, 4
# CHECK: vrfim 2, 3 # encoding: [0x10,0x40,0x1a,0xca]
vrfim 2, 3
# CHECK: vrfin 2, 3 # encoding: [0x10,0x40,0x1a,0x0a]
vrfin 2, 3
# CHECK: vrfip 2, 3 # encoding: [0x10,0x40,0x1a,0x8a]
vrfip 2, 3
# CHECK: vrfiz 2, 3 # encoding: [0x10,0x40,0x1a,0x4a]
vrfiz 2, 3
# CHECK-BE: vctsxs 2, 3, 4 # encoding: [0x10,0x44,0x1b,0xca]
# CHECK-LE: vctsxs 2, 3, 4 # encoding: [0xca,0x1b,0x44,0x10]
vctsxs 2, 3, 4
# CHECK-BE: vctuxs 2, 3, 4 # encoding: [0x10,0x44,0x1b,0x8a]
# CHECK-LE: vctuxs 2, 3, 4 # encoding: [0x8a,0x1b,0x44,0x10]
vctuxs 2, 3, 4
# CHECK-BE: vcfsx 2, 3, 4 # encoding: [0x10,0x44,0x1b,0x4a]
# CHECK-LE: vcfsx 2, 3, 4 # encoding: [0x4a,0x1b,0x44,0x10]
vcfsx 2, 3, 4
# CHECK-BE: vcfux 2, 3, 4 # encoding: [0x10,0x44,0x1b,0x0a]
# CHECK-LE: vcfux 2, 3, 4 # encoding: [0x0a,0x1b,0x44,0x10]
vcfux 2, 3, 4
# CHECK-BE: vrfim 2, 3 # encoding: [0x10,0x40,0x1a,0xca]
# CHECK-LE: vrfim 2, 3 # encoding: [0xca,0x1a,0x40,0x10]
vrfim 2, 3
# CHECK-BE: vrfin 2, 3 # encoding: [0x10,0x40,0x1a,0x0a]
# CHECK-LE: vrfin 2, 3 # encoding: [0x0a,0x1a,0x40,0x10]
vrfin 2, 3
# CHECK-BE: vrfip 2, 3 # encoding: [0x10,0x40,0x1a,0x8a]
# CHECK-LE: vrfip 2, 3 # encoding: [0x8a,0x1a,0x40,0x10]
vrfip 2, 3
# CHECK-BE: vrfiz 2, 3 # encoding: [0x10,0x40,0x1a,0x4a]
# CHECK-LE: vrfiz 2, 3 # encoding: [0x4a,0x1a,0x40,0x10]
vrfiz 2, 3
# CHECK: vcmpbfp 2, 3, 4 # encoding: [0x10,0x43,0x23,0xc6]
vcmpbfp 2, 3, 4
# CHECK: vcmpbfp. 2, 3, 4 # encoding: [0x10,0x43,0x27,0xc6]
vcmpbfp. 2, 3, 4
# CHECK: vcmpeqfp 2, 3, 4 # encoding: [0x10,0x43,0x20,0xc6]
vcmpeqfp 2, 3, 4
# CHECK: vcmpeqfp. 2, 3, 4 # encoding: [0x10,0x43,0x24,0xc6]
vcmpeqfp. 2, 3, 4
# CHECK: vcmpgefp 2, 3, 4 # encoding: [0x10,0x43,0x21,0xc6]
vcmpgefp 2, 3, 4
# CHECK: vcmpgefp. 2, 3, 4 # encoding: [0x10,0x43,0x25,0xc6]
vcmpgefp. 2, 3, 4
# CHECK: vcmpgtfp 2, 3, 4 # encoding: [0x10,0x43,0x22,0xc6]
vcmpgtfp 2, 3, 4
# CHECK: vcmpgtfp. 2, 3, 4 # encoding: [0x10,0x43,0x26,0xc6]
vcmpgtfp. 2, 3, 4
# CHECK-BE: vcmpbfp 2, 3, 4 # encoding: [0x10,0x43,0x23,0xc6]
# CHECK-LE: vcmpbfp 2, 3, 4 # encoding: [0xc6,0x23,0x43,0x10]
vcmpbfp 2, 3, 4
# CHECK-BE: vcmpbfp. 2, 3, 4 # encoding: [0x10,0x43,0x27,0xc6]
# CHECK-LE: vcmpbfp. 2, 3, 4 # encoding: [0xc6,0x27,0x43,0x10]
vcmpbfp. 2, 3, 4
# CHECK-BE: vcmpeqfp 2, 3, 4 # encoding: [0x10,0x43,0x20,0xc6]
# CHECK-LE: vcmpeqfp 2, 3, 4 # encoding: [0xc6,0x20,0x43,0x10]
vcmpeqfp 2, 3, 4
# CHECK-BE: vcmpeqfp. 2, 3, 4 # encoding: [0x10,0x43,0x24,0xc6]
# CHECK-LE: vcmpeqfp. 2, 3, 4 # encoding: [0xc6,0x24,0x43,0x10]
vcmpeqfp. 2, 3, 4
# CHECK-BE: vcmpgefp 2, 3, 4 # encoding: [0x10,0x43,0x21,0xc6]
# CHECK-LE: vcmpgefp 2, 3, 4 # encoding: [0xc6,0x21,0x43,0x10]
vcmpgefp 2, 3, 4
# CHECK-BE: vcmpgefp. 2, 3, 4 # encoding: [0x10,0x43,0x25,0xc6]
# CHECK-LE: vcmpgefp. 2, 3, 4 # encoding: [0xc6,0x25,0x43,0x10]
vcmpgefp. 2, 3, 4
# CHECK-BE: vcmpgtfp 2, 3, 4 # encoding: [0x10,0x43,0x22,0xc6]
# CHECK-LE: vcmpgtfp 2, 3, 4 # encoding: [0xc6,0x22,0x43,0x10]
vcmpgtfp 2, 3, 4
# CHECK-BE: vcmpgtfp. 2, 3, 4 # encoding: [0x10,0x43,0x26,0xc6]
# CHECK-LE: vcmpgtfp. 2, 3, 4 # encoding: [0xc6,0x26,0x43,0x10]
vcmpgtfp. 2, 3, 4
# CHECK: vexptefp 2, 3 # encoding: [0x10,0x40,0x19,0x8a]
vexptefp 2, 3
# CHECK: vlogefp 2, 3 # encoding: [0x10,0x40,0x19,0xca]
vlogefp 2, 3
# CHECK: vrefp 2, 3 # encoding: [0x10,0x40,0x19,0x0a]
vrefp 2, 3
# CHECK: vrsqrtefp 2, 3 # encoding: [0x10,0x40,0x19,0x4a]
vrsqrtefp 2, 3
# CHECK-BE: vexptefp 2, 3 # encoding: [0x10,0x40,0x19,0x8a]
# CHECK-LE: vexptefp 2, 3 # encoding: [0x8a,0x19,0x40,0x10]
vexptefp 2, 3
# CHECK-BE: vlogefp 2, 3 # encoding: [0x10,0x40,0x19,0xca]
# CHECK-LE: vlogefp 2, 3 # encoding: [0xca,0x19,0x40,0x10]
vlogefp 2, 3
# CHECK-BE: vrefp 2, 3 # encoding: [0x10,0x40,0x19,0x0a]
# CHECK-LE: vrefp 2, 3 # encoding: [0x0a,0x19,0x40,0x10]
vrefp 2, 3
# CHECK-BE: vrsqrtefp 2, 3 # encoding: [0x10,0x40,0x19,0x4a]
# CHECK-LE: vrsqrtefp 2, 3 # encoding: [0x4a,0x19,0x40,0x10]
vrsqrtefp 2, 3
# Vector status and control register instructions
# CHECK: mtvscr 2 # encoding: [0x10,0x00,0x16,0x44]
mtvscr 2
# CHECK: mfvscr 2 # encoding: [0x10,0x40,0x06,0x04]
mfvscr 2
# CHECK-BE: mtvscr 2 # encoding: [0x10,0x00,0x16,0x44]
# CHECK-LE: mtvscr 2 # encoding: [0x44,0x16,0x00,0x10]
mtvscr 2
# CHECK-BE: mfvscr 2 # encoding: [0x10,0x40,0x06,0x04]
# CHECK-LE: mfvscr 2 # encoding: [0x04,0x06,0x40,0x10]
mfvscr 2

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,8 @@
# RUN: not llvm-mc -triple powerpc64-unknown-unknown < %s 2> %t
# RUN: FileCheck < %t %s
# RUN: not llvm-mc -triple powerpc64le-unknown-unknown < %s 2> %t
# RUN: FileCheck < %t %s
# Register operands

View File

@ -1,6 +1,8 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -s -sd | FileCheck %s
# RUN: llvm-readobj -s -sd | FileCheck -check-prefix=CHECK -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -s -sd | FileCheck -check-prefix=CHECK -check-prefix=CHECK-LE %s
# This checks that fixups that can be resolved within the same
# object file are applied correctly.
@ -72,10 +74,14 @@ addis 1, 1, target7@highesta
# CHECK-NEXT: AddressAlignment: 4
# CHECK-NEXT: EntrySize: 0
# CHECK-NEXT: SectionData (
# CHECK-NEXT: 0000: 38211234 3C211234 38215678 3C211234
# CHECK-NEXT: 0010: 38214444 3C211111 38218001 3C211001
# CHECK-NEXT: 0020: 38210008 3C210000 38214321 3C214321
# CHECK-NEXT: 0030: 3821FFFF 3C211234 38210000 3C211235
# CHECK-BE-NEXT: 0000: 38211234 3C211234 38215678 3C211234
# CHECK-LE-NEXT: 0000: 34122138 3412213C 78562138 3412213C
# CHECK-BE-NEXT: 0010: 38214444 3C211111 38218001 3C211001
# CHECK-LE-NEXT: 0010: 44442138 1111213C 01802138 0110213C
# CHECK-BE-NEXT: 0020: 38210008 3C210000 38214321 3C214321
# CHECK-LE-NEXT: 0020: 08002138 0000213C 21432138 2143213C
# CHECK-BE-NEXT: 0030: 3821FFFF 3C211234 38210000 3C211235
# CHECK-LE-NEXT: 0030: FFFF2138 3412213C 00002138 3512213C
# CHECK-NEXT: )
# CHECK-NEXT: }
@ -94,7 +100,8 @@ addis 1, 1, target7@highesta
# CHECK-NEXT: AddressAlignment: 4
# CHECK-NEXT: EntrySize: 0
# CHECK-NEXT: SectionData (
# CHECK-NEXT: 0000: 12345678 9ABCDEF0 87654321 BEEF42
# CHECK-BE-NEXT: 0000: 12345678 9ABCDEF0 87654321 BEEF42
# CHECK-LE-NEXT: 0000: F0DEBC9A 78563412 21436587 EFBE42
# CHECK-NEXT: )
# CHECK-NEXT: }

View File

@ -1,46 +1,70 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -r | FileCheck %s -check-prefix=CHECK-REL
# RUN: llvm-readobj -r | FileCheck %s -check-prefix=CHECK-BE-REL
# RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
# RUN: llvm-readobj -r | FileCheck %s -check-prefix=CHECK-LE-REL
# GOT references must result in explicit relocations
# even if the target symbol is local.
target:
# CHECK: addi 4, 3, target@GOT # encoding: [0x38,0x83,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target@GOT, kind: fixup_ppc_half16
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16 target 0x0
addi 4, 3, target@got
# CHECK-BE: addi 4, 3, target@GOT # encoding: [0x38,0x83,A,A]
# CHECK-LE: addi 4, 3, target@GOT # encoding: [A,A,0x83,0x38]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@GOT, kind: fixup_ppc_half16
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@GOT, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16 target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16 target 0x0
addi 4, 3, target@got
# CHECK: ld 1, target@GOT(2) # encoding: [0xe8,0x22,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 2, value: target@GOT, kind: fixup_ppc_half16ds
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_DS target 0x0
ld 1, target@got(2)
# CHECK-BE: ld 1, target@GOT(2) # encoding: [0xe8,0x22,A,0bAAAAAA00]
# CHECK-LE: ld 1, target@GOT(2) # encoding: [0bAAAAAA00,A,0x22,0xe8]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@GOT, kind: fixup_ppc_half16ds
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@GOT, kind: fixup_ppc_half16ds
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_DS target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16_DS target 0x0
ld 1, target@got(2)
# CHECK: addis 3, 2, target@got@ha # encoding: [0x3c,0x62,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target@got@ha, kind: fixup_ppc_half16
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_HA target 0x0
addis 3, 2, target@got@ha
# CHECK-BE: addis 3, 2, target@got@ha # encoding: [0x3c,0x62,A,A]
# CHECK-LE: addis 3, 2, target@got@ha # encoding: [A,A,0x62,0x3c]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@got@ha, kind: fixup_ppc_half16
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@got@ha, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_HA target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16_HA target 0x0
addis 3, 2, target@got@ha
# CHECK: addi 4, 3, target@got@l # encoding: [0x38,0x83,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target@got@l, kind: fixup_ppc_half16
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_LO target 0x0
addi 4, 3, target@got@l
# CHECK-BE: addi 4, 3, target@got@l # encoding: [0x38,0x83,A,A]
# CHECK-LE: addi 4, 3, target@got@l # encoding: [A,A,0x83,0x38]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@got@l, kind: fixup_ppc_half16
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@got@l, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_LO target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16_LO target 0x0
addi 4, 3, target@got@l
# CHECK: addis 3, 2, target@got@h # encoding: [0x3c,0x62,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target@got@h, kind: fixup_ppc_half16
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_HI target 0x0
addis 3, 2, target@got@h
# CHECK-BE: addis 3, 2, target@got@h # encoding: [0x3c,0x62,A,A]
# CHECK-LE: addis 3, 2, target@got@h # encoding: [A,A,0x62,0x3c]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@got@h, kind: fixup_ppc_half16
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@got@h, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_HI target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16_HI target 0x0
addis 3, 2, target@got@h
# CHECK: lwz 1, target@got@l(3) # encoding: [0x80,0x23,A,A]
# CHECK-NEXT: # fixup A - offset: 2, value: target@got@l, kind: fixup_ppc_half16
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_LO target 0x0
lwz 1, target@got@l(3)
# CHECK-BE: lwz 1, target@got@l(3) # encoding: [0x80,0x23,A,A]
# CHECK-LE: lwz 1, target@got@l(3) # encoding: [A,A,0x23,0x80]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@got@l, kind: fixup_ppc_half16
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@got@l, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_LO target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16_LO target 0x0
lwz 1, target@got@l(3)
# CHECK: ld 1, target@got@l(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
# CHECK-NEXT: # fixup A - offset: 2, value: target@got@l, kind: fixup_ppc_half16ds
# CHECK-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_LO_DS target 0x0
ld 1, target@got@l(3)
# CHECK-BE: ld 1, target@got@l(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
# CHECK-LE: ld 1, target@got@l(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@got@l, kind: fixup_ppc_half16ds
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@got@l, kind: fixup_ppc_half16ds
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_GOT16_LO_DS target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_GOT16_LO_DS target 0x0
ld 1, target@got@l(3)

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,11 @@
# RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj -relocation-model=static %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=STATIC
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=STATIC -check-prefix=STATIC-BE
# RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj -relocation-model=pic %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=PIC
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=PIC -check-prefix=PIC-BE
# RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj -relocation-model=static %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=STATIC -check-prefix=STATIC-LE
# RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj -relocation-model=pic %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=PIC -check-prefix=PIC-LE
.cfi_startproc
nop
@ -23,9 +27,12 @@
# STATIC-NEXT: Relocations [
# STATIC-NEXT: ]
# STATIC-NEXT: SectionData (
# STATIC-NEXT: 0000: 00000010 00000000 017A5200 04784101
# STATIC-NEXT: 0010: 1B0C0100 00000010 00000018 00000000
# STATIC-NEXT: 0020: 00000004 00000000
# STATIC-BE-NEXT: 0000: 00000010 00000000 017A5200 04784101
# STATIC-LE-NEXT: 0000: 10000000 00000000 017A5200 04784101
# STATIC-BE-NEXT: 0010: 1B0C0100 00000010 00000018 00000000
# STATIC-LE-NEXT: 0010: 1B0C0100 10000000 18000000 00000000
# STATIC-BE-NEXT: 0020: 00000004 00000000
# STATIC-LE-NEXT: 0020: 04000000 00000000
# STATIC-NEXT: )
# STATIC-NEXT: }
@ -61,9 +68,12 @@
# PIC-NEXT: Relocations [
# PIC-NEXT: ]
# PIC-NEXT: SectionData (
# PIC-NEXT: 0000: 00000010 00000000 017A5200 04784101
# PIC-NEXT: 0010: 1B0C0100 00000010 00000018 00000000
# PIC-NEXT: 0020: 00000004 00000000
# PIC-BE-NEXT: 0000: 00000010 00000000 017A5200 04784101
# PIC-LE-NEXT: 0000: 10000000 00000000 017A5200 04784101
# PIC-BE-NEXT: 0010: 1B0C0100 00000010 00000018 00000000
# PIC-LE-NEXT: 0010: 1B0C0100 10000000 18000000 00000000
# PIC-BE-NEXT: 0020: 00000004 00000000
# PIC-LE-NEXT: 0020: 04000000 00000000
# PIC-NEXT: )
# PIC-NEXT: }

View File

@ -1,122 +1,158 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# Register operands
# CHECK: add 1, 2, 3 # encoding: [0x7c,0x22,0x1a,0x14]
add 1, 2, 3
# CHECK-BE: add 1, 2, 3 # encoding: [0x7c,0x22,0x1a,0x14]
# CHECK-LE: add 1, 2, 3 # encoding: [0x14,0x1a,0x22,0x7c]
add 1, 2, 3
# CHECK: add 1, 2, 3 # encoding: [0x7c,0x22,0x1a,0x14]
add %r1, %r2, %r3
# CHECK-BE: add 1, 2, 3 # encoding: [0x7c,0x22,0x1a,0x14]
# CHECK-LE: add 1, 2, 3 # encoding: [0x14,0x1a,0x22,0x7c]
add %r1, %r2, %r3
# CHECK: add 0, 0, 0 # encoding: [0x7c,0x00,0x02,0x14]
add 0, 0, 0
# CHECK-BE: add 0, 0, 0 # encoding: [0x7c,0x00,0x02,0x14]
# CHECK-LE: add 0, 0, 0 # encoding: [0x14,0x02,0x00,0x7c]
add 0, 0, 0
# CHECK: add 31, 31, 31 # encoding: [0x7f,0xff,0xfa,0x14]
add 31, 31, 31
# CHECK-BE: add 31, 31, 31 # encoding: [0x7f,0xff,0xfa,0x14]
# CHECK-LE: add 31, 31, 31 # encoding: [0x14,0xfa,0xff,0x7f]
add 31, 31, 31
# CHECK: addi 1, 0, 0 # encoding: [0x38,0x20,0x00,0x00]
addi 1, 0, 0
# CHECK-BE: addi 1, 0, 0 # encoding: [0x38,0x20,0x00,0x00]
# CHECK-LE: addi 1, 0, 0 # encoding: [0x00,0x00,0x20,0x38]
addi 1, 0, 0
# CHECK: addi 1, 0, 0 # encoding: [0x38,0x20,0x00,0x00]
addi 1, %r0, 0
# CHECK-BE: addi 1, 0, 0 # encoding: [0x38,0x20,0x00,0x00]
# CHECK-LE: addi 1, 0, 0 # encoding: [0x00,0x00,0x20,0x38]
addi 1, %r0, 0
# Signed 16-bit immediate operands
# CHECK: addi 1, 2, 0 # encoding: [0x38,0x22,0x00,0x00]
addi 1, 2, 0
# CHECK-BE: addi 1, 2, 0 # encoding: [0x38,0x22,0x00,0x00]
# CHECK-LE: addi 1, 2, 0 # encoding: [0x00,0x00,0x22,0x38]
addi 1, 2, 0
# CHECK: addi 1, 0, -32768 # encoding: [0x38,0x20,0x80,0x00]
addi 1, 0, -32768
# CHECK-BE: addi 1, 0, -32768 # encoding: [0x38,0x20,0x80,0x00]
# CHECK-LE: addi 1, 0, -32768 # encoding: [0x00,0x80,0x20,0x38]
addi 1, 0, -32768
# CHECK: addi 1, 0, 32767 # encoding: [0x38,0x20,0x7f,0xff]
addi 1, 0, 32767
# CHECK-BE: addi 1, 0, 32767 # encoding: [0x38,0x20,0x7f,0xff]
# CHECK-LE: addi 1, 0, 32767 # encoding: [0xff,0x7f,0x20,0x38]
addi 1, 0, 32767
# Unsigned 16-bit immediate operands
# CHECK: ori 1, 2, 0 # encoding: [0x60,0x41,0x00,0x00]
ori 1, 2, 0
# CHECK-BE: ori 1, 2, 0 # encoding: [0x60,0x41,0x00,0x00]
# CHECK-LE: ori 1, 2, 0 # encoding: [0x00,0x00,0x41,0x60]
ori 1, 2, 0
# CHECK: ori 1, 2, 65535 # encoding: [0x60,0x41,0xff,0xff]
ori 1, 2, 65535
# CHECK-BE: ori 1, 2, 65535 # encoding: [0x60,0x41,0xff,0xff]
# CHECK-LE: ori 1, 2, 65535 # encoding: [0xff,0xff,0x41,0x60]
ori 1, 2, 65535
# Signed 16-bit immediate operands (extended range for addis)
# CHECK: addis 1, 0, 0 # encoding: [0x3c,0x20,0x00,0x00]
addis 1, 0, -65536
# CHECK-BE: addis 1, 0, 0 # encoding: [0x3c,0x20,0x00,0x00]
# CHECK-LE: addis 1, 0, 0 # encoding: [0x00,0x00,0x20,0x3c]
addis 1, 0, -65536
# CHECK: addis 1, 0, -1 # encoding: [0x3c,0x20,0xff,0xff]
addis 1, 0, 65535
# CHECK-BE: addis 1, 0, -1 # encoding: [0x3c,0x20,0xff,0xff]
# CHECK-LE: addis 1, 0, -1 # encoding: [0xff,0xff,0x20,0x3c]
addis 1, 0, 65535
# D-Form memory operands
# CHECK: lwz 1, 0(0) # encoding: [0x80,0x20,0x00,0x00]
lwz 1, 0(0)
# CHECK-BE: lwz 1, 0(0) # encoding: [0x80,0x20,0x00,0x00]
# CHECK-LE: lwz 1, 0(0) # encoding: [0x00,0x00,0x20,0x80]
lwz 1, 0(0)
# CHECK: lwz 1, 0(0) # encoding: [0x80,0x20,0x00,0x00]
lwz 1, 0(%r0)
# CHECK-BE: lwz 1, 0(0) # encoding: [0x80,0x20,0x00,0x00]
# CHECK-LE: lwz 1, 0(0) # encoding: [0x00,0x00,0x20,0x80]
lwz 1, 0(%r0)
# CHECK: lwz 1, 0(31) # encoding: [0x80,0x3f,0x00,0x00]
lwz 1, 0(31)
# CHECK-BE: lwz 1, 0(31) # encoding: [0x80,0x3f,0x00,0x00]
# CHECK-LE: lwz 1, 0(31) # encoding: [0x00,0x00,0x3f,0x80]
lwz 1, 0(31)
# CHECK: lwz 1, 0(31) # encoding: [0x80,0x3f,0x00,0x00]
lwz 1, 0(%r31)
# CHECK-BE: lwz 1, 0(31) # encoding: [0x80,0x3f,0x00,0x00]
# CHECK-LE: lwz 1, 0(31) # encoding: [0x00,0x00,0x3f,0x80]
lwz 1, 0(%r31)
# CHECK: lwz 1, -32768(2) # encoding: [0x80,0x22,0x80,0x00]
lwz 1, -32768(2)
# CHECK-BE: lwz 1, -32768(2) # encoding: [0x80,0x22,0x80,0x00]
# CHECK-LE: lwz 1, -32768(2) # encoding: [0x00,0x80,0x22,0x80]
lwz 1, -32768(2)
# CHECK: lwz 1, 32767(2) # encoding: [0x80,0x22,0x7f,0xff]
lwz 1, 32767(2)
# CHECK-BE: lwz 1, 32767(2) # encoding: [0x80,0x22,0x7f,0xff]
# CHECK-LE: lwz 1, 32767(2) # encoding: [0xff,0x7f,0x22,0x80]
lwz 1, 32767(2)
# CHECK: ld 1, 0(0) # encoding: [0xe8,0x20,0x00,0x00]
ld 1, 0(0)
# CHECK-BE: ld 1, 0(0) # encoding: [0xe8,0x20,0x00,0x00]
# CHECK-LE: ld 1, 0(0) # encoding: [0x00,0x00,0x20,0xe8]
ld 1, 0(0)
# CHECK: ld 1, 0(0) # encoding: [0xe8,0x20,0x00,0x00]
ld 1, 0(%r0)
# CHECK-BE: ld 1, 0(0) # encoding: [0xe8,0x20,0x00,0x00]
# CHECK-LE: ld 1, 0(0) # encoding: [0x00,0x00,0x20,0xe8]
ld 1, 0(%r0)
# CHECK: ld 1, 0(31) # encoding: [0xe8,0x3f,0x00,0x00]
ld 1, 0(31)
# CHECK-BE: ld 1, 0(31) # encoding: [0xe8,0x3f,0x00,0x00]
# CHECK-LE: ld 1, 0(31) # encoding: [0x00,0x00,0x3f,0xe8]
ld 1, 0(31)
# CHECK: ld 1, 0(31) # encoding: [0xe8,0x3f,0x00,0x00]
ld 1, 0(%r31)
# CHECK-BE: ld 1, 0(31) # encoding: [0xe8,0x3f,0x00,0x00]
# CHECK-LE: ld 1, 0(31) # encoding: [0x00,0x00,0x3f,0xe8]
ld 1, 0(%r31)
# CHECK: ld 1, -32768(2) # encoding: [0xe8,0x22,0x80,0x00]
ld 1, -32768(2)
# CHECK-BE: ld 1, -32768(2) # encoding: [0xe8,0x22,0x80,0x00]
# CHECK-LE: ld 1, -32768(2) # encoding: [0x00,0x80,0x22,0xe8]
ld 1, -32768(2)
# CHECK: ld 1, 32764(2) # encoding: [0xe8,0x22,0x7f,0xfc]
ld 1, 32764(2)
# CHECK-BE: ld 1, 32764(2) # encoding: [0xe8,0x22,0x7f,0xfc]
# CHECK-LE: ld 1, 32764(2) # encoding: [0xfc,0x7f,0x22,0xe8]
ld 1, 32764(2)
# CHECK: ld 1, 4(2) # encoding: [0xe8,0x22,0x00,0x04]
ld 1, 4(2)
# CHECK-BE: ld 1, 4(2) # encoding: [0xe8,0x22,0x00,0x04]
# CHECK-LE: ld 1, 4(2) # encoding: [0x04,0x00,0x22,0xe8]
ld 1, 4(2)
# CHECK: ld 1, -4(2) # encoding: [0xe8,0x22,0xff,0xfc]
ld 1, -4(2)
# CHECK-BE: ld 1, -4(2) # encoding: [0xe8,0x22,0xff,0xfc]
# CHECK-LE: ld 1, -4(2) # encoding: [0xfc,0xff,0x22,0xe8]
ld 1, -4(2)
# Immediate branch operands
# CHECK: b .+1024 # encoding: [0x48,0x00,0x04,0x00]
b 1024
# CHECK-BE: b .+1024 # encoding: [0x48,0x00,0x04,0x00]
# CHECK-LE: b .+1024 # encoding: [0x00,0x04,0x00,0x48]
b 1024
# CHECK: ba 1024 # encoding: [0x48,0x00,0x04,0x02]
ba 1024
# CHECK-BE: ba 1024 # encoding: [0x48,0x00,0x04,0x02]
# CHECK-LE: ba 1024 # encoding: [0x02,0x04,0x00,0x48]
ba 1024
# CHECK: beq 0, .+1024 # encoding: [0x41,0x82,0x04,0x00]
beq 1024
# CHECK-BE: beq 0, .+1024 # encoding: [0x41,0x82,0x04,0x00]
# CHECK-LE: beq 0, .+1024 # encoding: [0x00,0x04,0x82,0x41]
beq 1024
# CHECK: beqa 0, 1024 # encoding: [0x41,0x82,0x04,0x02]
beqa 1024
# CHECK-BE: beqa 0, 1024 # encoding: [0x41,0x82,0x04,0x02]
# CHECK-LE: beqa 0, 1024 # encoding: [0x02,0x04,0x82,0x41]
beqa 1024
# CHECK: # encoding: [0x42,0x9f,A,0bAAAAAA01]
bcl 20, 31, $+4
# CHECK-BE: # encoding: [0x42,0x9f,A,0bAAAAAA01]
# CHECK-LE: # encoding: [0bAAAAAA01,A,0x9f,0x42]
bcl 20, 31, $+4
# CHECK: # encoding: [0x42,0x00,A,0bAAAAAA00]
bdnz $-8
# CHECK-BE: # encoding: [0x42,0x00,A,0bAAAAAA00]
# CHECK-LE: # encoding: [0bAAAAAA00,A,0x00,0x42]
bdnz $-8
# CHECK: andi. 0, 3, 32767 # encoding: [0x70,0x60,0x7f,0xff]
andi. %r0,%r3,~0x8000@l
# CHECK-BE: andi. 0, 3, 32767 # encoding: [0x70,0x60,0x7f,0xff]
# CHECK-LE: andi. 0, 3, 32767 # encoding: [0xff,0x7f,0x60,0x70]
andi. %r0,%r3,~0x8000@l
# CHECK: andi. 0, 3, 0 # encoding: [0x70,0x60,0x00,0x00]
andi. %r0,%r3,!0x8000@l
# CHECK-BE: andi. 0, 3, 0 # encoding: [0x70,0x60,0x00,0x00]
# CHECK-LE: andi. 0, 3, 0 # encoding: [0x00,0x00,0x60,0x70]
andi. %r0,%r3,!0x8000@l

View File

@ -1,4 +1,5 @@
# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64le-unknown-unknown --show-encoding %s | FileCheck %s
#CHECK: .cfi_startproc
#CHECK: .cfi_offset r0, 0

View File

@ -1,298 +1,447 @@
# RUN: llvm-mc -triple powerpc64-unknown-linux-gnu --show-encoding %s | FileCheck %s
# RUN: llvm-mc -triple powerpc64-unknown-linux-gnu --show-encoding %s | FileCheck -check-prefix=CHECK-BE %s
# RUN: llvm-mc -triple powerpc64le-unknown-linux-gnu --show-encoding %s | FileCheck -check-prefix=CHECK-LE %s
# CHECK: lxsdx 7, 5, 31 # encoding: [0x7c,0xe5,0xfc,0x98]
lxsdx 7, 5, 31
# CHECK: lxvd2x 7, 5, 31 # encoding: [0x7c,0xe5,0xfe,0x98]
lxvd2x 7, 5, 31
# CHECK: lxvdsx 7, 5, 31 # encoding: [0x7c,0xe5,0xfa,0x98]
lxvdsx 7, 5, 31
# CHECK: lxvw4x 7, 5, 31 # encoding: [0x7c,0xe5,0xfe,0x18]
lxvw4x 7, 5, 31
# CHECK: stxsdx 8, 5, 31 # encoding: [0x7d,0x05,0xfd,0x98]
stxsdx 8, 5, 31
# CHECK: stxvd2x 8, 5, 31 # encoding: [0x7d,0x05,0xff,0x98]
stxvd2x 8, 5, 31
# CHECK: stxvw4x 8, 5, 31 # encoding: [0x7d,0x05,0xff,0x18]
stxvw4x 8, 5, 31
# CHECK: xsabsdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0x64]
xsabsdp 7, 27
# CHECK: xsadddp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x04]
xsadddp 7, 63, 27
# CHECK: xscmpodp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0x5c]
xscmpodp 6, 63, 27
# CHECK: xscmpudp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0x1c]
xscmpudp 6, 63, 27
# CHECK: xscpsgndp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x84]
xscpsgndp 7, 63, 27
# CHECK: xscvdpsp 7, 27 # encoding: [0xf0,0xe0,0xdc,0x24]
xscvdpsp 7, 27
# CHECK: xscvdpsxds 7, 27 # encoding: [0xf0,0xe0,0xdd,0x60]
xscvdpsxds 7, 27
# CHECK: xscvdpsxws 7, 27 # encoding: [0xf0,0xe0,0xd9,0x60]
xscvdpsxws 7, 27
# CHECK: xscvdpuxds 7, 27 # encoding: [0xf0,0xe0,0xdd,0x20]
xscvdpuxds 7, 27
# CHECK: xscvdpuxws 7, 27 # encoding: [0xf0,0xe0,0xd9,0x20]
xscvdpuxws 7, 27
# CHECK: xscvspdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0x24]
xscvspdp 7, 27
# CHECK: xscvsxddp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xe0]
xscvsxddp 7, 27
# CHECK: xscvuxddp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xa0]
xscvuxddp 7, 27
# CHECK: xsdivdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0xc4]
xsdivdp 7, 63, 27
# CHECK: xsmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x0c]
xsmaddadp 7, 63, 27
# CHECK: xsmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x4c]
xsmaddmdp 7, 63, 27
# CHECK: xsmaxdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x04]
xsmaxdp 7, 63, 27
# CHECK: xsmindp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x44]
xsmindp 7, 63, 27
# CHECK: xsmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x8c]
xsmsubadp 7, 63, 27
# CHECK: xsmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0xcc]
xsmsubmdp 7, 63, 27
# CHECK: xsmuldp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x84]
xsmuldp 7, 63, 27
# CHECK: xsnabsdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xa4]
xsnabsdp 7, 27
# CHECK: xsnegdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xe4]
xsnegdp 7, 27
# CHECK: xsnmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x0c]
xsnmaddadp 7, 63, 27
# CHECK: xsnmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x4c]
xsnmaddmdp 7, 63, 27
# CHECK: xsnmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x8c]
xsnmsubadp 7, 63, 27
# CHECK: xsnmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0xcc]
xsnmsubmdp 7, 63, 27
# CHECK: xsrdpi 7, 27 # encoding: [0xf0,0xe0,0xd9,0x24]
xsrdpi 7, 27
# CHECK: xsrdpic 7, 27 # encoding: [0xf0,0xe0,0xd9,0xac]
xsrdpic 7, 27
# CHECK: xsrdpim 7, 27 # encoding: [0xf0,0xe0,0xd9,0xe4]
xsrdpim 7, 27
# CHECK: xsrdpip 7, 27 # encoding: [0xf0,0xe0,0xd9,0xa4]
xsrdpip 7, 27
# CHECK: xsrdpiz 7, 27 # encoding: [0xf0,0xe0,0xd9,0x64]
xsrdpiz 7, 27
# CHECK: xsredp 7, 27 # encoding: [0xf0,0xe0,0xd9,0x68]
xsredp 7, 27
# CHECK: xsrsqrtedp 7, 27 # encoding: [0xf0,0xe0,0xd9,0x28]
xsrsqrtedp 7, 27
# CHECK: xssqrtdp 7, 27 # encoding: [0xf0,0xe0,0xd9,0x2c]
xssqrtdp 7, 27
# CHECK: xssubdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x44]
xssubdp 7, 63, 27
# CHECK: xstdivdp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0xec]
xstdivdp 6, 63, 27
# CHECK: xstsqrtdp 6, 27 # encoding: [0xf3,0x00,0xd9,0xa8]
xstsqrtdp 6, 27
# CHECK: xvabsdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0x64]
xvabsdp 7, 27
# CHECK: xvabssp 7, 27 # encoding: [0xf0,0xe0,0xde,0x64]
xvabssp 7, 27
# CHECK: xvadddp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x04]
xvadddp 7, 63, 27
# CHECK: xvaddsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x04]
xvaddsp 7, 63, 27
# CHECK: xvcmpeqdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x1c]
xvcmpeqdp 7, 63, 27
# CHECK: xvcmpeqdp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x1c]
xvcmpeqdp. 7, 63, 27
# CHECK: xvcmpeqsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x1c]
xvcmpeqsp 7, 63, 27
# CHECK: xvcmpeqsp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x1c]
xvcmpeqsp. 7, 63, 27
# CHECK: xvcmpgedp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x9c]
xvcmpgedp 7, 63, 27
# CHECK: xvcmpgedp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x9c]
xvcmpgedp. 7, 63, 27
# CHECK: xvcmpgesp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x9c]
xvcmpgesp 7, 63, 27
# CHECK: xvcmpgesp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x9c]
xvcmpgesp. 7, 63, 27
# CHECK: xvcmpgtdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x5c]
xvcmpgtdp 7, 63, 27
# CHECK: xvcmpgtdp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x5c]
xvcmpgtdp. 7, 63, 27
# CHECK: xvcmpgtsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x5c]
xvcmpgtsp 7, 63, 27
# CHECK: xvcmpgtsp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x5c]
xvcmpgtsp. 7, 63, 27
# CHECK: xvcpsgndp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x84]
xvcpsgndp 7, 63, 27
# CHECK: xvcpsgnsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x84]
xvcpsgnsp 7, 63, 27
# CHECK: xvcvdpsp 7, 27 # encoding: [0xf0,0xe0,0xde,0x24]
xvcvdpsp 7, 27
# CHECK: xvcvdpsxds 7, 27 # encoding: [0xf0,0xe0,0xdf,0x60]
xvcvdpsxds 7, 27
# CHECK: xvcvdpsxws 7, 27 # encoding: [0xf0,0xe0,0xdb,0x60]
xvcvdpsxws 7, 27
# CHECK: xvcvdpuxds 7, 27 # encoding: [0xf0,0xe0,0xdf,0x20]
xvcvdpuxds 7, 27
# CHECK: xvcvdpuxws 7, 27 # encoding: [0xf0,0xe0,0xdb,0x20]
xvcvdpuxws 7, 27
# CHECK: xvcvspdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0x24]
xvcvspdp 7, 27
# CHECK: xvcvspsxds 7, 27 # encoding: [0xf0,0xe0,0xde,0x60]
xvcvspsxds 7, 27
# CHECK: xvcvspsxws 7, 27 # encoding: [0xf0,0xe0,0xda,0x60]
xvcvspsxws 7, 27
# CHECK: xvcvspuxds 7, 27 # encoding: [0xf0,0xe0,0xde,0x20]
xvcvspuxds 7, 27
# CHECK: xvcvspuxws 7, 27 # encoding: [0xf0,0xe0,0xda,0x20]
xvcvspuxws 7, 27
# CHECK: xvcvsxddp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xe0]
xvcvsxddp 7, 27
# CHECK: xvcvsxdsp 7, 27 # encoding: [0xf0,0xe0,0xde,0xe0]
xvcvsxdsp 7, 27
# CHECK: xvcvsxwdp 7, 27 # encoding: [0xf0,0xe0,0xdb,0xe0]
xvcvsxwdp 7, 27
# CHECK: xvcvsxwsp 7, 27 # encoding: [0xf0,0xe0,0xda,0xe0]
xvcvsxwsp 7, 27
# CHECK: xvcvuxddp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xa0]
xvcvuxddp 7, 27
# CHECK: xvcvuxdsp 7, 27 # encoding: [0xf0,0xe0,0xde,0xa0]
xvcvuxdsp 7, 27
# CHECK: xvcvuxwdp 7, 27 # encoding: [0xf0,0xe0,0xdb,0xa0]
xvcvuxwdp 7, 27
# CHECK: xvcvuxwsp 7, 27 # encoding: [0xf0,0xe0,0xda,0xa0]
xvcvuxwsp 7, 27
# CHECK: xvdivdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0xc4]
xvdivdp 7, 63, 27
# CHECK: xvdivsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0xc4]
xvdivsp 7, 63, 27
# CHECK: xvmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x0c]
xvmaddadp 7, 63, 27
# CHECK: xvmaddasp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x0c]
xvmaddasp 7, 63, 27
# CHECK: xvmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x4c]
xvmaddmdp 7, 63, 27
# CHECK: xvmaddmsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x4c]
xvmaddmsp 7, 63, 27
# CHECK: xvmaxdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x04]
xvmaxdp 7, 63, 27
# CHECK: xvmaxsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x04]
xvmaxsp 7, 63, 27
# CHECK: xvmindp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x44]
xvmindp 7, 63, 27
# CHECK: xvminsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x44]
xvminsp 7, 63, 27
# CHECK: xvcpsgndp 7, 63, 63 # encoding: [0xf0,0xff,0xff,0x86]
xvmovdp 7, 63
# CHECK: xvcpsgnsp 7, 63, 63 # encoding: [0xf0,0xff,0xfe,0x86]
xvmovsp 7, 63
# CHECK: xvmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x8c]
xvmsubadp 7, 63, 27
# CHECK: xvmsubasp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x8c]
xvmsubasp 7, 63, 27
# CHECK: xvmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0xcc]
xvmsubmdp 7, 63, 27
# CHECK: xvmsubmsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0xcc]
xvmsubmsp 7, 63, 27
# CHECK: xvmuldp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x84]
xvmuldp 7, 63, 27
# CHECK: xvmulsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x84]
xvmulsp 7, 63, 27
# CHECK: xvnabsdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xa4]
xvnabsdp 7, 27
# CHECK: xvnabssp 7, 27 # encoding: [0xf0,0xe0,0xde,0xa4]
xvnabssp 7, 27
# CHECK: xvnegdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xe4]
xvnegdp 7, 27
# CHECK: xvnegsp 7, 27 # encoding: [0xf0,0xe0,0xde,0xe4]
xvnegsp 7, 27
# CHECK: xvnmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x0c]
xvnmaddadp 7, 63, 27
# CHECK: xvnmaddasp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x0c]
xvnmaddasp 7, 63, 27
# CHECK: xvnmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x4c]
xvnmaddmdp 7, 63, 27
# CHECK: xvnmaddmsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x4c]
xvnmaddmsp 7, 63, 27
# CHECK: xvnmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x8c]
xvnmsubadp 7, 63, 27
# CHECK: xvnmsubasp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x8c]
xvnmsubasp 7, 63, 27
# CHECK: xvnmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0xcc]
xvnmsubmdp 7, 63, 27
# CHECK: xvnmsubmsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0xcc]
xvnmsubmsp 7, 63, 27
# CHECK: xvrdpi 7, 27 # encoding: [0xf0,0xe0,0xdb,0x24]
xvrdpi 7, 27
# CHECK: xvrdpic 7, 27 # encoding: [0xf0,0xe0,0xdb,0xac]
xvrdpic 7, 27
# CHECK: xvrdpim 7, 27 # encoding: [0xf0,0xe0,0xdb,0xe4]
xvrdpim 7, 27
# CHECK: xvrdpip 7, 27 # encoding: [0xf0,0xe0,0xdb,0xa4]
xvrdpip 7, 27
# CHECK: xvrdpiz 7, 27 # encoding: [0xf0,0xe0,0xdb,0x64]
xvrdpiz 7, 27
# CHECK: xvredp 7, 27 # encoding: [0xf0,0xe0,0xdb,0x68]
xvredp 7, 27
# CHECK: xvresp 7, 27 # encoding: [0xf0,0xe0,0xda,0x68]
xvresp 7, 27
# CHECK: xvrspi 7, 27 # encoding: [0xf0,0xe0,0xda,0x24]
xvrspi 7, 27
# CHECK: xvrspic 7, 27 # encoding: [0xf0,0xe0,0xda,0xac]
xvrspic 7, 27
# CHECK: xvrspim 7, 27 # encoding: [0xf0,0xe0,0xda,0xe4]
xvrspim 7, 27
# CHECK: xvrspip 7, 27 # encoding: [0xf0,0xe0,0xda,0xa4]
xvrspip 7, 27
# CHECK: xvrspiz 7, 27 # encoding: [0xf0,0xe0,0xda,0x64]
xvrspiz 7, 27
# CHECK: xvrsqrtedp 7, 27 # encoding: [0xf0,0xe0,0xdb,0x28]
xvrsqrtedp 7, 27
# CHECK: xvrsqrtesp 7, 27 # encoding: [0xf0,0xe0,0xda,0x28]
xvrsqrtesp 7, 27
# CHECK: xvsqrtdp 7, 27 # encoding: [0xf0,0xe0,0xdb,0x2c]
xvsqrtdp 7, 27
# CHECK: xvsqrtsp 7, 27 # encoding: [0xf0,0xe0,0xda,0x2c]
xvsqrtsp 7, 27
# CHECK: xvsubdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x44]
xvsubdp 7, 63, 27
# CHECK: xvsubsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x44]
xvsubsp 7, 63, 27
# CHECK: xvtdivdp 6, 63, 27 # encoding: [0xf3,0x1f,0xdb,0xec]
xvtdivdp 6, 63, 27
# CHECK: xvtdivsp 6, 63, 27 # encoding: [0xf3,0x1f,0xda,0xec]
xvtdivsp 6, 63, 27
# CHECK: xvtsqrtdp 6, 27 # encoding: [0xf3,0x00,0xdb,0xa8]
xvtsqrtdp 6, 27
# CHECK: xvtsqrtsp 6, 27 # encoding: [0xf3,0x00,0xda,0xa8]
xvtsqrtsp 6, 27
# CHECK: xxland 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x14]
xxland 7, 63, 27
# CHECK: xxlandc 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x54]
xxlandc 7, 63, 27
# CHECK: xxlnor 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x14]
xxlnor 7, 63, 27
# CHECK: xxlor 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x94]
xxlor 7, 63, 27
# CHECK: xxlxor 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0xd4]
xxlxor 7, 63, 27
# CHECK: xxpermdi 7, 63, 27, 0 # encoding: [0xf0,0xff,0xd8,0x54]
xxmrghd 7, 63, 27
# CHECK: xxmrghw 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x94]
xxmrghw 7, 63, 27
# CHECK: xxpermdi 7, 63, 27, 3 # encoding: [0xf0,0xff,0xdb,0x54]
xxmrgld 7, 63, 27
# CHECK: xxmrglw 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x94]
xxmrglw 7, 63, 27
# CHECK: xxpermdi 7, 63, 27, 2 # encoding: [0xf0,0xff,0xda,0x54]
xxpermdi 7, 63, 27, 2
# CHECK: xxsel 7, 63, 27, 14 # encoding: [0xf0,0xff,0xdb,0xb4]
xxsel 7, 63, 27, 14
# CHECK: xxsldwi 7, 63, 27, 1 # encoding: [0xf0,0xff,0xd9,0x14]
xxsldwi 7, 63, 27, 1
# CHECK: xxpermdi 7, 63, 63, 3 # encoding: [0xf0,0xff,0xfb,0x56]
xxspltd 7, 63, 1
# CHECK: xxspltw 7, 27, 3 # encoding: [0xf0,0xe3,0xda,0x90]
xxspltw 7, 27, 3
# CHECK: xxpermdi 7, 63, 63, 2 # encoding: [0xf0,0xff,0xfa,0x56]
xxswapd 7, 63
# CHECK-BE: lxsdx 7, 5, 31 # encoding: [0x7c,0xe5,0xfc,0x98]
# CHECK-LE: lxsdx 7, 5, 31 # encoding: [0x98,0xfc,0xe5,0x7c]
lxsdx 7, 5, 31
# CHECK-BE: lxvd2x 7, 5, 31 # encoding: [0x7c,0xe5,0xfe,0x98]
# CHECK-LE: lxvd2x 7, 5, 31 # encoding: [0x98,0xfe,0xe5,0x7c]
lxvd2x 7, 5, 31
# CHECK-BE: lxvdsx 7, 5, 31 # encoding: [0x7c,0xe5,0xfa,0x98]
# CHECK-LE: lxvdsx 7, 5, 31 # encoding: [0x98,0xfa,0xe5,0x7c]
lxvdsx 7, 5, 31
# CHECK-BE: lxvw4x 7, 5, 31 # encoding: [0x7c,0xe5,0xfe,0x18]
# CHECK-LE: lxvw4x 7, 5, 31 # encoding: [0x18,0xfe,0xe5,0x7c]
lxvw4x 7, 5, 31
# CHECK-BE: stxsdx 8, 5, 31 # encoding: [0x7d,0x05,0xfd,0x98]
# CHECK-LE: stxsdx 8, 5, 31 # encoding: [0x98,0xfd,0x05,0x7d]
stxsdx 8, 5, 31
# CHECK-BE: stxvd2x 8, 5, 31 # encoding: [0x7d,0x05,0xff,0x98]
# CHECK-LE: stxvd2x 8, 5, 31 # encoding: [0x98,0xff,0x05,0x7d]
stxvd2x 8, 5, 31
# CHECK-BE: stxvw4x 8, 5, 31 # encoding: [0x7d,0x05,0xff,0x18]
# CHECK-LE: stxvw4x 8, 5, 31 # encoding: [0x18,0xff,0x05,0x7d]
stxvw4x 8, 5, 31
# CHECK-BE: xsabsdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0x64]
# CHECK-LE: xsabsdp 7, 27 # encoding: [0x64,0xdd,0xe0,0xf0]
xsabsdp 7, 27
# CHECK-BE: xsadddp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x04]
# CHECK-LE: xsadddp 7, 63, 27 # encoding: [0x04,0xd9,0xff,0xf0]
xsadddp 7, 63, 27
# CHECK-BE: xscmpodp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0x5c]
# CHECK-LE: xscmpodp 6, 63, 27 # encoding: [0x5c,0xd9,0x1f,0xf3]
xscmpodp 6, 63, 27
# CHECK-BE: xscmpudp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0x1c]
# CHECK-LE: xscmpudp 6, 63, 27 # encoding: [0x1c,0xd9,0x1f,0xf3]
xscmpudp 6, 63, 27
# CHECK-BE: xscpsgndp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x84]
# CHECK-LE: xscpsgndp 7, 63, 27 # encoding: [0x84,0xdd,0xff,0xf0]
xscpsgndp 7, 63, 27
# CHECK-BE: xscvdpsp 7, 27 # encoding: [0xf0,0xe0,0xdc,0x24]
# CHECK-LE: xscvdpsp 7, 27 # encoding: [0x24,0xdc,0xe0,0xf0]
xscvdpsp 7, 27
# CHECK-BE: xscvdpsxds 7, 27 # encoding: [0xf0,0xe0,0xdd,0x60]
# CHECK-LE: xscvdpsxds 7, 27 # encoding: [0x60,0xdd,0xe0,0xf0]
xscvdpsxds 7, 27
# CHECK-BE: xscvdpsxws 7, 27 # encoding: [0xf0,0xe0,0xd9,0x60]
# CHECK-LE: xscvdpsxws 7, 27 # encoding: [0x60,0xd9,0xe0,0xf0]
xscvdpsxws 7, 27
# CHECK-BE: xscvdpuxds 7, 27 # encoding: [0xf0,0xe0,0xdd,0x20]
# CHECK-LE: xscvdpuxds 7, 27 # encoding: [0x20,0xdd,0xe0,0xf0]
xscvdpuxds 7, 27
# CHECK-BE: xscvdpuxws 7, 27 # encoding: [0xf0,0xe0,0xd9,0x20]
# CHECK-LE: xscvdpuxws 7, 27 # encoding: [0x20,0xd9,0xe0,0xf0]
xscvdpuxws 7, 27
# CHECK-BE: xscvspdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0x24]
# CHECK-LE: xscvspdp 7, 27 # encoding: [0x24,0xdd,0xe0,0xf0]
xscvspdp 7, 27
# CHECK-BE: xscvsxddp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xe0]
# CHECK-LE: xscvsxddp 7, 27 # encoding: [0xe0,0xdd,0xe0,0xf0]
xscvsxddp 7, 27
# CHECK-BE: xscvuxddp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xa0]
# CHECK-LE: xscvuxddp 7, 27 # encoding: [0xa0,0xdd,0xe0,0xf0]
xscvuxddp 7, 27
# CHECK-BE: xsdivdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0xc4]
# CHECK-LE: xsdivdp 7, 63, 27 # encoding: [0xc4,0xd9,0xff,0xf0]
xsdivdp 7, 63, 27
# CHECK-BE: xsmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x0c]
# CHECK-LE: xsmaddadp 7, 63, 27 # encoding: [0x0c,0xd9,0xff,0xf0]
xsmaddadp 7, 63, 27
# CHECK-BE: xsmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x4c]
# CHECK-LE: xsmaddmdp 7, 63, 27 # encoding: [0x4c,0xd9,0xff,0xf0]
xsmaddmdp 7, 63, 27
# CHECK-BE: xsmaxdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x04]
# CHECK-LE: xsmaxdp 7, 63, 27 # encoding: [0x04,0xdd,0xff,0xf0]
xsmaxdp 7, 63, 27
# CHECK-BE: xsmindp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x44]
# CHECK-LE: xsmindp 7, 63, 27 # encoding: [0x44,0xdd,0xff,0xf0]
xsmindp 7, 63, 27
# CHECK-BE: xsmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x8c]
# CHECK-LE: xsmsubadp 7, 63, 27 # encoding: [0x8c,0xd9,0xff,0xf0]
xsmsubadp 7, 63, 27
# CHECK-BE: xsmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0xcc]
# CHECK-LE: xsmsubmdp 7, 63, 27 # encoding: [0xcc,0xd9,0xff,0xf0]
xsmsubmdp 7, 63, 27
# CHECK-BE: xsmuldp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x84]
# CHECK-LE: xsmuldp 7, 63, 27 # encoding: [0x84,0xd9,0xff,0xf0]
xsmuldp 7, 63, 27
# CHECK-BE: xsnabsdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xa4]
# CHECK-LE: xsnabsdp 7, 27 # encoding: [0xa4,0xdd,0xe0,0xf0]
xsnabsdp 7, 27
# CHECK-BE: xsnegdp 7, 27 # encoding: [0xf0,0xe0,0xdd,0xe4]
# CHECK-LE: xsnegdp 7, 27 # encoding: [0xe4,0xdd,0xe0,0xf0]
xsnegdp 7, 27
# CHECK-BE: xsnmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x0c]
# CHECK-LE: xsnmaddadp 7, 63, 27 # encoding: [0x0c,0xdd,0xff,0xf0]
xsnmaddadp 7, 63, 27
# CHECK-BE: xsnmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x4c]
# CHECK-LE: xsnmaddmdp 7, 63, 27 # encoding: [0x4c,0xdd,0xff,0xf0]
xsnmaddmdp 7, 63, 27
# CHECK-BE: xsnmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x8c]
# CHECK-LE: xsnmsubadp 7, 63, 27 # encoding: [0x8c,0xdd,0xff,0xf0]
xsnmsubadp 7, 63, 27
# CHECK-BE: xsnmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0xcc]
# CHECK-LE: xsnmsubmdp 7, 63, 27 # encoding: [0xcc,0xdd,0xff,0xf0]
xsnmsubmdp 7, 63, 27
# CHECK-BE: xsrdpi 7, 27 # encoding: [0xf0,0xe0,0xd9,0x24]
# CHECK-LE: xsrdpi 7, 27 # encoding: [0x24,0xd9,0xe0,0xf0]
xsrdpi 7, 27
# CHECK-BE: xsrdpic 7, 27 # encoding: [0xf0,0xe0,0xd9,0xac]
# CHECK-LE: xsrdpic 7, 27 # encoding: [0xac,0xd9,0xe0,0xf0]
xsrdpic 7, 27
# CHECK-BE: xsrdpim 7, 27 # encoding: [0xf0,0xe0,0xd9,0xe4]
# CHECK-LE: xsrdpim 7, 27 # encoding: [0xe4,0xd9,0xe0,0xf0]
xsrdpim 7, 27
# CHECK-BE: xsrdpip 7, 27 # encoding: [0xf0,0xe0,0xd9,0xa4]
# CHECK-LE: xsrdpip 7, 27 # encoding: [0xa4,0xd9,0xe0,0xf0]
xsrdpip 7, 27
# CHECK-BE: xsrdpiz 7, 27 # encoding: [0xf0,0xe0,0xd9,0x64]
# CHECK-LE: xsrdpiz 7, 27 # encoding: [0x64,0xd9,0xe0,0xf0]
xsrdpiz 7, 27
# CHECK-BE: xsredp 7, 27 # encoding: [0xf0,0xe0,0xd9,0x68]
# CHECK-LE: xsredp 7, 27 # encoding: [0x68,0xd9,0xe0,0xf0]
xsredp 7, 27
# CHECK-BE: xsrsqrtedp 7, 27 # encoding: [0xf0,0xe0,0xd9,0x28]
# CHECK-LE: xsrsqrtedp 7, 27 # encoding: [0x28,0xd9,0xe0,0xf0]
xsrsqrtedp 7, 27
# CHECK-BE: xssqrtdp 7, 27 # encoding: [0xf0,0xe0,0xd9,0x2c]
# CHECK-LE: xssqrtdp 7, 27 # encoding: [0x2c,0xd9,0xe0,0xf0]
xssqrtdp 7, 27
# CHECK-BE: xssubdp 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x44]
# CHECK-LE: xssubdp 7, 63, 27 # encoding: [0x44,0xd9,0xff,0xf0]
xssubdp 7, 63, 27
# CHECK-BE: xstdivdp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0xec]
# CHECK-LE: xstdivdp 6, 63, 27 # encoding: [0xec,0xd9,0x1f,0xf3]
xstdivdp 6, 63, 27
# CHECK-BE: xstsqrtdp 6, 27 # encoding: [0xf3,0x00,0xd9,0xa8]
# CHECK-LE: xstsqrtdp 6, 27 # encoding: [0xa8,0xd9,0x00,0xf3]
xstsqrtdp 6, 27
# CHECK-BE: xvabsdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0x64]
# CHECK-LE: xvabsdp 7, 27 # encoding: [0x64,0xdf,0xe0,0xf0]
xvabsdp 7, 27
# CHECK-BE: xvabssp 7, 27 # encoding: [0xf0,0xe0,0xde,0x64]
# CHECK-LE: xvabssp 7, 27 # encoding: [0x64,0xde,0xe0,0xf0]
xvabssp 7, 27
# CHECK-BE: xvadddp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x04]
# CHECK-LE: xvadddp 7, 63, 27 # encoding: [0x04,0xdb,0xff,0xf0]
xvadddp 7, 63, 27
# CHECK-BE: xvaddsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x04]
# CHECK-LE: xvaddsp 7, 63, 27 # encoding: [0x04,0xda,0xff,0xf0]
xvaddsp 7, 63, 27
# CHECK-BE: xvcmpeqdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x1c]
# CHECK-LE: xvcmpeqdp 7, 63, 27 # encoding: [0x1c,0xdb,0xff,0xf0]
xvcmpeqdp 7, 63, 27
# CHECK-BE: xvcmpeqdp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x1c]
# CHECK-LE: xvcmpeqdp. 7, 63, 27 # encoding: [0x1c,0xdf,0xff,0xf0]
xvcmpeqdp. 7, 63, 27
# CHECK-BE: xvcmpeqsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x1c]
# CHECK-LE: xvcmpeqsp 7, 63, 27 # encoding: [0x1c,0xda,0xff,0xf0]
xvcmpeqsp 7, 63, 27
# CHECK-BE: xvcmpeqsp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x1c]
# CHECK-LE: xvcmpeqsp. 7, 63, 27 # encoding: [0x1c,0xde,0xff,0xf0]
xvcmpeqsp. 7, 63, 27
# CHECK-BE: xvcmpgedp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x9c]
# CHECK-LE: xvcmpgedp 7, 63, 27 # encoding: [0x9c,0xdb,0xff,0xf0]
xvcmpgedp 7, 63, 27
# CHECK-BE: xvcmpgedp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x9c]
# CHECK-LE: xvcmpgedp. 7, 63, 27 # encoding: [0x9c,0xdf,0xff,0xf0]
xvcmpgedp. 7, 63, 27
# CHECK-BE: xvcmpgesp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x9c]
# CHECK-LE: xvcmpgesp 7, 63, 27 # encoding: [0x9c,0xda,0xff,0xf0]
xvcmpgesp 7, 63, 27
# CHECK-BE: xvcmpgesp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x9c]
# CHECK-LE: xvcmpgesp. 7, 63, 27 # encoding: [0x9c,0xde,0xff,0xf0]
xvcmpgesp. 7, 63, 27
# CHECK-BE: xvcmpgtdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x5c]
# CHECK-LE: xvcmpgtdp 7, 63, 27 # encoding: [0x5c,0xdb,0xff,0xf0]
xvcmpgtdp 7, 63, 27
# CHECK-BE: xvcmpgtdp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x5c]
# CHECK-LE: xvcmpgtdp. 7, 63, 27 # encoding: [0x5c,0xdf,0xff,0xf0]
xvcmpgtdp. 7, 63, 27
# CHECK-BE: xvcmpgtsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x5c]
# CHECK-LE: xvcmpgtsp 7, 63, 27 # encoding: [0x5c,0xda,0xff,0xf0]
xvcmpgtsp 7, 63, 27
# CHECK-BE: xvcmpgtsp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x5c]
# CHECK-LE: xvcmpgtsp. 7, 63, 27 # encoding: [0x5c,0xde,0xff,0xf0]
xvcmpgtsp. 7, 63, 27
# CHECK-BE: xvcpsgndp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x84]
# CHECK-LE: xvcpsgndp 7, 63, 27 # encoding: [0x84,0xdf,0xff,0xf0]
xvcpsgndp 7, 63, 27
# CHECK-BE: xvcpsgnsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x84]
# CHECK-LE: xvcpsgnsp 7, 63, 27 # encoding: [0x84,0xde,0xff,0xf0]
xvcpsgnsp 7, 63, 27
# CHECK-BE: xvcvdpsp 7, 27 # encoding: [0xf0,0xe0,0xde,0x24]
# CHECK-LE: xvcvdpsp 7, 27 # encoding: [0x24,0xde,0xe0,0xf0]
xvcvdpsp 7, 27
# CHECK-BE: xvcvdpsxds 7, 27 # encoding: [0xf0,0xe0,0xdf,0x60]
# CHECK-LE: xvcvdpsxds 7, 27 # encoding: [0x60,0xdf,0xe0,0xf0]
xvcvdpsxds 7, 27
# CHECK-BE: xvcvdpsxws 7, 27 # encoding: [0xf0,0xe0,0xdb,0x60]
# CHECK-LE: xvcvdpsxws 7, 27 # encoding: [0x60,0xdb,0xe0,0xf0]
xvcvdpsxws 7, 27
# CHECK-BE: xvcvdpuxds 7, 27 # encoding: [0xf0,0xe0,0xdf,0x20]
# CHECK-LE: xvcvdpuxds 7, 27 # encoding: [0x20,0xdf,0xe0,0xf0]
xvcvdpuxds 7, 27
# CHECK-BE: xvcvdpuxws 7, 27 # encoding: [0xf0,0xe0,0xdb,0x20]
# CHECK-LE: xvcvdpuxws 7, 27 # encoding: [0x20,0xdb,0xe0,0xf0]
xvcvdpuxws 7, 27
# CHECK-BE: xvcvspdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0x24]
# CHECK-LE: xvcvspdp 7, 27 # encoding: [0x24,0xdf,0xe0,0xf0]
xvcvspdp 7, 27
# CHECK-BE: xvcvspsxds 7, 27 # encoding: [0xf0,0xe0,0xde,0x60]
# CHECK-LE: xvcvspsxds 7, 27 # encoding: [0x60,0xde,0xe0,0xf0]
xvcvspsxds 7, 27
# CHECK-BE: xvcvspsxws 7, 27 # encoding: [0xf0,0xe0,0xda,0x60]
# CHECK-LE: xvcvspsxws 7, 27 # encoding: [0x60,0xda,0xe0,0xf0]
xvcvspsxws 7, 27
# CHECK-BE: xvcvspuxds 7, 27 # encoding: [0xf0,0xe0,0xde,0x20]
# CHECK-LE: xvcvspuxds 7, 27 # encoding: [0x20,0xde,0xe0,0xf0]
xvcvspuxds 7, 27
# CHECK-BE: xvcvspuxws 7, 27 # encoding: [0xf0,0xe0,0xda,0x20]
# CHECK-LE: xvcvspuxws 7, 27 # encoding: [0x20,0xda,0xe0,0xf0]
xvcvspuxws 7, 27
# CHECK-BE: xvcvsxddp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xe0]
# CHECK-LE: xvcvsxddp 7, 27 # encoding: [0xe0,0xdf,0xe0,0xf0]
xvcvsxddp 7, 27
# CHECK-BE: xvcvsxdsp 7, 27 # encoding: [0xf0,0xe0,0xde,0xe0]
# CHECK-LE: xvcvsxdsp 7, 27 # encoding: [0xe0,0xde,0xe0,0xf0]
xvcvsxdsp 7, 27
# CHECK-BE: xvcvsxwdp 7, 27 # encoding: [0xf0,0xe0,0xdb,0xe0]
# CHECK-LE: xvcvsxwdp 7, 27 # encoding: [0xe0,0xdb,0xe0,0xf0]
xvcvsxwdp 7, 27
# CHECK-BE: xvcvsxwsp 7, 27 # encoding: [0xf0,0xe0,0xda,0xe0]
# CHECK-LE: xvcvsxwsp 7, 27 # encoding: [0xe0,0xda,0xe0,0xf0]
xvcvsxwsp 7, 27
# CHECK-BE: xvcvuxddp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xa0]
# CHECK-LE: xvcvuxddp 7, 27 # encoding: [0xa0,0xdf,0xe0,0xf0]
xvcvuxddp 7, 27
# CHECK-BE: xvcvuxdsp 7, 27 # encoding: [0xf0,0xe0,0xde,0xa0]
# CHECK-LE: xvcvuxdsp 7, 27 # encoding: [0xa0,0xde,0xe0,0xf0]
xvcvuxdsp 7, 27
# CHECK-BE: xvcvuxwdp 7, 27 # encoding: [0xf0,0xe0,0xdb,0xa0]
# CHECK-LE: xvcvuxwdp 7, 27 # encoding: [0xa0,0xdb,0xe0,0xf0]
xvcvuxwdp 7, 27
# CHECK-BE: xvcvuxwsp 7, 27 # encoding: [0xf0,0xe0,0xda,0xa0]
# CHECK-LE: xvcvuxwsp 7, 27 # encoding: [0xa0,0xda,0xe0,0xf0]
xvcvuxwsp 7, 27
# CHECK-BE: xvdivdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0xc4]
# CHECK-LE: xvdivdp 7, 63, 27 # encoding: [0xc4,0xdb,0xff,0xf0]
xvdivdp 7, 63, 27
# CHECK-BE: xvdivsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0xc4]
# CHECK-LE: xvdivsp 7, 63, 27 # encoding: [0xc4,0xda,0xff,0xf0]
xvdivsp 7, 63, 27
# CHECK-BE: xvmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x0c]
# CHECK-LE: xvmaddadp 7, 63, 27 # encoding: [0x0c,0xdb,0xff,0xf0]
xvmaddadp 7, 63, 27
# CHECK-BE: xvmaddasp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x0c]
# CHECK-LE: xvmaddasp 7, 63, 27 # encoding: [0x0c,0xda,0xff,0xf0]
xvmaddasp 7, 63, 27
# CHECK-BE: xvmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x4c]
# CHECK-LE: xvmaddmdp 7, 63, 27 # encoding: [0x4c,0xdb,0xff,0xf0]
xvmaddmdp 7, 63, 27
# CHECK-BE: xvmaddmsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x4c]
# CHECK-LE: xvmaddmsp 7, 63, 27 # encoding: [0x4c,0xda,0xff,0xf0]
xvmaddmsp 7, 63, 27
# CHECK-BE: xvmaxdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x04]
# CHECK-LE: xvmaxdp 7, 63, 27 # encoding: [0x04,0xdf,0xff,0xf0]
xvmaxdp 7, 63, 27
# CHECK-BE: xvmaxsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x04]
# CHECK-LE: xvmaxsp 7, 63, 27 # encoding: [0x04,0xde,0xff,0xf0]
xvmaxsp 7, 63, 27
# CHECK-BE: xvmindp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x44]
# CHECK-LE: xvmindp 7, 63, 27 # encoding: [0x44,0xdf,0xff,0xf0]
xvmindp 7, 63, 27
# CHECK-BE: xvminsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x44]
# CHECK-LE: xvminsp 7, 63, 27 # encoding: [0x44,0xde,0xff,0xf0]
xvminsp 7, 63, 27
# CHECK-BE: xvcpsgndp 7, 63, 63 # encoding: [0xf0,0xff,0xff,0x86]
# CHECK-LE: xvcpsgndp 7, 63, 63 # encoding: [0x86,0xff,0xff,0xf0]
xvmovdp 7, 63
# CHECK-BE: xvcpsgnsp 7, 63, 63 # encoding: [0xf0,0xff,0xfe,0x86]
# CHECK-LE: xvcpsgnsp 7, 63, 63 # encoding: [0x86,0xfe,0xff,0xf0]
xvmovsp 7, 63
# CHECK-BE: xvmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x8c]
# CHECK-LE: xvmsubadp 7, 63, 27 # encoding: [0x8c,0xdb,0xff,0xf0]
xvmsubadp 7, 63, 27
# CHECK-BE: xvmsubasp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x8c]
# CHECK-LE: xvmsubasp 7, 63, 27 # encoding: [0x8c,0xda,0xff,0xf0]
xvmsubasp 7, 63, 27
# CHECK-BE: xvmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0xcc]
# CHECK-LE: xvmsubmdp 7, 63, 27 # encoding: [0xcc,0xdb,0xff,0xf0]
xvmsubmdp 7, 63, 27
# CHECK-BE: xvmsubmsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0xcc]
# CHECK-LE: xvmsubmsp 7, 63, 27 # encoding: [0xcc,0xda,0xff,0xf0]
xvmsubmsp 7, 63, 27
# CHECK-BE: xvmuldp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x84]
# CHECK-LE: xvmuldp 7, 63, 27 # encoding: [0x84,0xdb,0xff,0xf0]
xvmuldp 7, 63, 27
# CHECK-BE: xvmulsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x84]
# CHECK-LE: xvmulsp 7, 63, 27 # encoding: [0x84,0xda,0xff,0xf0]
xvmulsp 7, 63, 27
# CHECK-BE: xvnabsdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xa4]
# CHECK-LE: xvnabsdp 7, 27 # encoding: [0xa4,0xdf,0xe0,0xf0]
xvnabsdp 7, 27
# CHECK-BE: xvnabssp 7, 27 # encoding: [0xf0,0xe0,0xde,0xa4]
# CHECK-LE: xvnabssp 7, 27 # encoding: [0xa4,0xde,0xe0,0xf0]
xvnabssp 7, 27
# CHECK-BE: xvnegdp 7, 27 # encoding: [0xf0,0xe0,0xdf,0xe4]
# CHECK-LE: xvnegdp 7, 27 # encoding: [0xe4,0xdf,0xe0,0xf0]
xvnegdp 7, 27
# CHECK-BE: xvnegsp 7, 27 # encoding: [0xf0,0xe0,0xde,0xe4]
# CHECK-LE: xvnegsp 7, 27 # encoding: [0xe4,0xde,0xe0,0xf0]
xvnegsp 7, 27
# CHECK-BE: xvnmaddadp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x0c]
# CHECK-LE: xvnmaddadp 7, 63, 27 # encoding: [0x0c,0xdf,0xff,0xf0]
xvnmaddadp 7, 63, 27
# CHECK-BE: xvnmaddasp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x0c]
# CHECK-LE: xvnmaddasp 7, 63, 27 # encoding: [0x0c,0xde,0xff,0xf0]
xvnmaddasp 7, 63, 27
# CHECK-BE: xvnmaddmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x4c]
# CHECK-LE: xvnmaddmdp 7, 63, 27 # encoding: [0x4c,0xdf,0xff,0xf0]
xvnmaddmdp 7, 63, 27
# CHECK-BE: xvnmaddmsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x4c]
# CHECK-LE: xvnmaddmsp 7, 63, 27 # encoding: [0x4c,0xde,0xff,0xf0]
xvnmaddmsp 7, 63, 27
# CHECK-BE: xvnmsubadp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0x8c]
# CHECK-LE: xvnmsubadp 7, 63, 27 # encoding: [0x8c,0xdf,0xff,0xf0]
xvnmsubadp 7, 63, 27
# CHECK-BE: xvnmsubasp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0x8c]
# CHECK-LE: xvnmsubasp 7, 63, 27 # encoding: [0x8c,0xde,0xff,0xf0]
xvnmsubasp 7, 63, 27
# CHECK-BE: xvnmsubmdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0xcc]
# CHECK-LE: xvnmsubmdp 7, 63, 27 # encoding: [0xcc,0xdf,0xff,0xf0]
xvnmsubmdp 7, 63, 27
# CHECK-BE: xvnmsubmsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0xcc]
# CHECK-LE: xvnmsubmsp 7, 63, 27 # encoding: [0xcc,0xde,0xff,0xf0]
xvnmsubmsp 7, 63, 27
# CHECK-BE: xvrdpi 7, 27 # encoding: [0xf0,0xe0,0xdb,0x24]
# CHECK-LE: xvrdpi 7, 27 # encoding: [0x24,0xdb,0xe0,0xf0]
xvrdpi 7, 27
# CHECK-BE: xvrdpic 7, 27 # encoding: [0xf0,0xe0,0xdb,0xac]
# CHECK-LE: xvrdpic 7, 27 # encoding: [0xac,0xdb,0xe0,0xf0]
xvrdpic 7, 27
# CHECK-BE: xvrdpim 7, 27 # encoding: [0xf0,0xe0,0xdb,0xe4]
# CHECK-LE: xvrdpim 7, 27 # encoding: [0xe4,0xdb,0xe0,0xf0]
xvrdpim 7, 27
# CHECK-BE: xvrdpip 7, 27 # encoding: [0xf0,0xe0,0xdb,0xa4]
# CHECK-LE: xvrdpip 7, 27 # encoding: [0xa4,0xdb,0xe0,0xf0]
xvrdpip 7, 27
# CHECK-BE: xvrdpiz 7, 27 # encoding: [0xf0,0xe0,0xdb,0x64]
# CHECK-LE: xvrdpiz 7, 27 # encoding: [0x64,0xdb,0xe0,0xf0]
xvrdpiz 7, 27
# CHECK-BE: xvredp 7, 27 # encoding: [0xf0,0xe0,0xdb,0x68]
# CHECK-LE: xvredp 7, 27 # encoding: [0x68,0xdb,0xe0,0xf0]
xvredp 7, 27
# CHECK-BE: xvresp 7, 27 # encoding: [0xf0,0xe0,0xda,0x68]
# CHECK-LE: xvresp 7, 27 # encoding: [0x68,0xda,0xe0,0xf0]
xvresp 7, 27
# CHECK-BE: xvrspi 7, 27 # encoding: [0xf0,0xe0,0xda,0x24]
# CHECK-LE: xvrspi 7, 27 # encoding: [0x24,0xda,0xe0,0xf0]
xvrspi 7, 27
# CHECK-BE: xvrspic 7, 27 # encoding: [0xf0,0xe0,0xda,0xac]
# CHECK-LE: xvrspic 7, 27 # encoding: [0xac,0xda,0xe0,0xf0]
xvrspic 7, 27
# CHECK-BE: xvrspim 7, 27 # encoding: [0xf0,0xe0,0xda,0xe4]
# CHECK-LE: xvrspim 7, 27 # encoding: [0xe4,0xda,0xe0,0xf0]
xvrspim 7, 27
# CHECK-BE: xvrspip 7, 27 # encoding: [0xf0,0xe0,0xda,0xa4]
# CHECK-LE: xvrspip 7, 27 # encoding: [0xa4,0xda,0xe0,0xf0]
xvrspip 7, 27
# CHECK-BE: xvrspiz 7, 27 # encoding: [0xf0,0xe0,0xda,0x64]
# CHECK-LE: xvrspiz 7, 27 # encoding: [0x64,0xda,0xe0,0xf0]
xvrspiz 7, 27
# CHECK-BE: xvrsqrtedp 7, 27 # encoding: [0xf0,0xe0,0xdb,0x28]
# CHECK-LE: xvrsqrtedp 7, 27 # encoding: [0x28,0xdb,0xe0,0xf0]
xvrsqrtedp 7, 27
# CHECK-BE: xvrsqrtesp 7, 27 # encoding: [0xf0,0xe0,0xda,0x28]
# CHECK-LE: xvrsqrtesp 7, 27 # encoding: [0x28,0xda,0xe0,0xf0]
xvrsqrtesp 7, 27
# CHECK-BE: xvsqrtdp 7, 27 # encoding: [0xf0,0xe0,0xdb,0x2c]
# CHECK-LE: xvsqrtdp 7, 27 # encoding: [0x2c,0xdb,0xe0,0xf0]
xvsqrtdp 7, 27
# CHECK-BE: xvsqrtsp 7, 27 # encoding: [0xf0,0xe0,0xda,0x2c]
# CHECK-LE: xvsqrtsp 7, 27 # encoding: [0x2c,0xda,0xe0,0xf0]
xvsqrtsp 7, 27
# CHECK-BE: xvsubdp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0x44]
# CHECK-LE: xvsubdp 7, 63, 27 # encoding: [0x44,0xdb,0xff,0xf0]
xvsubdp 7, 63, 27
# CHECK-BE: xvsubsp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0x44]
# CHECK-LE: xvsubsp 7, 63, 27 # encoding: [0x44,0xda,0xff,0xf0]
xvsubsp 7, 63, 27
# CHECK-BE: xvtdivdp 6, 63, 27 # encoding: [0xf3,0x1f,0xdb,0xec]
# CHECK-LE: xvtdivdp 6, 63, 27 # encoding: [0xec,0xdb,0x1f,0xf3]
xvtdivdp 6, 63, 27
# CHECK-BE: xvtdivsp 6, 63, 27 # encoding: [0xf3,0x1f,0xda,0xec]
# CHECK-LE: xvtdivsp 6, 63, 27 # encoding: [0xec,0xda,0x1f,0xf3]
xvtdivsp 6, 63, 27
# CHECK-BE: xvtsqrtdp 6, 27 # encoding: [0xf3,0x00,0xdb,0xa8]
# CHECK-LE: xvtsqrtdp 6, 27 # encoding: [0xa8,0xdb,0x00,0xf3]
xvtsqrtdp 6, 27
# CHECK-BE: xvtsqrtsp 6, 27 # encoding: [0xf3,0x00,0xda,0xa8]
# CHECK-LE: xvtsqrtsp 6, 27 # encoding: [0xa8,0xda,0x00,0xf3]
xvtsqrtsp 6, 27
# CHECK-BE: xxland 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x14]
# CHECK-LE: xxland 7, 63, 27 # encoding: [0x14,0xdc,0xff,0xf0]
xxland 7, 63, 27
# CHECK-BE: xxlandc 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x54]
# CHECK-LE: xxlandc 7, 63, 27 # encoding: [0x54,0xdc,0xff,0xf0]
xxlandc 7, 63, 27
# CHECK-BE: xxlnor 7, 63, 27 # encoding: [0xf0,0xff,0xdd,0x14]
# CHECK-LE: xxlnor 7, 63, 27 # encoding: [0x14,0xdd,0xff,0xf0]
xxlnor 7, 63, 27
# CHECK-BE: xxlor 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x94]
# CHECK-LE: xxlor 7, 63, 27 # encoding: [0x94,0xdc,0xff,0xf0]
xxlor 7, 63, 27
# CHECK-BE: xxlxor 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0xd4]
# CHECK-LE: xxlxor 7, 63, 27 # encoding: [0xd4,0xdc,0xff,0xf0]
xxlxor 7, 63, 27
# CHECK-BE: xxpermdi 7, 63, 27, 0 # encoding: [0xf0,0xff,0xd8,0x54]
# CHECK-LE: xxpermdi 7, 63, 27, 0 # encoding: [0x54,0xd8,0xff,0xf0]
xxmrghd 7, 63, 27
# CHECK-BE: xxmrghw 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x94]
# CHECK-LE: xxmrghw 7, 63, 27 # encoding: [0x94,0xd8,0xff,0xf0]
xxmrghw 7, 63, 27
# CHECK-BE: xxpermdi 7, 63, 27, 3 # encoding: [0xf0,0xff,0xdb,0x54]
# CHECK-LE: xxpermdi 7, 63, 27, 3 # encoding: [0x54,0xdb,0xff,0xf0]
xxmrgld 7, 63, 27
# CHECK-BE: xxmrglw 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0x94]
# CHECK-LE: xxmrglw 7, 63, 27 # encoding: [0x94,0xd9,0xff,0xf0]
xxmrglw 7, 63, 27
# CHECK-BE: xxpermdi 7, 63, 27, 2 # encoding: [0xf0,0xff,0xda,0x54]
# CHECK-LE: xxpermdi 7, 63, 27, 2 # encoding: [0x54,0xda,0xff,0xf0]
xxpermdi 7, 63, 27, 2
# CHECK-BE: xxsel 7, 63, 27, 14 # encoding: [0xf0,0xff,0xdb,0xb4]
# CHECK-LE: xxsel 7, 63, 27, 14 # encoding: [0xb4,0xdb,0xff,0xf0]
xxsel 7, 63, 27, 14
# CHECK-BE: xxsldwi 7, 63, 27, 1 # encoding: [0xf0,0xff,0xd9,0x14]
# CHECK-LE: xxsldwi 7, 63, 27, 1 # encoding: [0x14,0xd9,0xff,0xf0]
xxsldwi 7, 63, 27, 1
# CHECK-BE: xxpermdi 7, 63, 63, 3 # encoding: [0xf0,0xff,0xfb,0x56]
# CHECK-LE: xxpermdi 7, 63, 63, 3 # encoding: [0x56,0xfb,0xff,0xf0]
xxspltd 7, 63, 1
# CHECK-BE: xxspltw 7, 27, 3 # encoding: [0xf0,0xe3,0xda,0x90]
# CHECK-LE: xxspltw 7, 27, 3 # encoding: [0x90,0xda,0xe3,0xf0]
xxspltw 7, 27, 3
# CHECK-BE: xxpermdi 7, 63, 63, 2 # encoding: [0xf0,0xff,0xfa,0x56]
# CHECK-LE: xxpermdi 7, 63, 63, 2 # encoding: [0x56,0xfa,0xff,0xf0]
xxswapd 7, 63