aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/PowerPC
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC/PowerPC')
-rw-r--r--test/MC/PowerPC/lcomm.s21
-rw-r--r--test/MC/PowerPC/ppc-reloc.s17
-rw-r--r--test/MC/PowerPC/ppc32-ba.s6
-rw-r--r--test/MC/PowerPC/ppc64-abiversion.s9
-rw-r--r--test/MC/PowerPC/ppc64-encoding-4xx.s167
-rw-r--r--test/MC/PowerPC/ppc64-encoding-6xx.s109
-rw-r--r--test/MC/PowerPC/ppc64-encoding-bookII.s18
-rw-r--r--test/MC/PowerPC/ppc64-encoding-bookIII.s138
-rw-r--r--test/MC/PowerPC/ppc64-encoding-e500.s11
-rw-r--r--test/MC/PowerPC/ppc64-encoding-ext.s168
-rw-r--r--test/MC/PowerPC/ppc64-encoding-spe.s622
-rw-r--r--test/MC/PowerPC/ppc64-encoding.s14
-rw-r--r--test/MC/PowerPC/ppc64-fixup-apply.s20
-rw-r--r--test/MC/PowerPC/ppc64-fixups.s12
-rw-r--r--test/MC/PowerPC/ppc64-localentry-error1.s11
-rw-r--r--test/MC/PowerPC/ppc64-localentry-error2.s12
-rw-r--r--test/MC/PowerPC/ppc64-localentry.s70
-rw-r--r--test/MC/PowerPC/vsx.s42
18 files changed, 1391 insertions, 76 deletions
diff --git a/test/MC/PowerPC/lcomm.s b/test/MC/PowerPC/lcomm.s
new file mode 100644
index 0000000000..a84f138479
--- /dev/null
+++ b/test/MC/PowerPC/lcomm.s
@@ -0,0 +1,21 @@
+# RUN: llvm-mc -triple powerpc-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -s -sd | FileCheck %s
+# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -s -sd | FileCheck %s
+
+.lcomm foo, 16, 16
+
+// CHECK: Section {
+// CHECK: Name: .bss
+// CHECK-NEXT: Type: SHT_NOBITS
+// CHECK-NEXT: Flags [
+// CHECK-NEXT: SHF_ALLOC
+// CHECK-NEXT: SHF_WRITE
+// CHECK-NEXT: ]
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Offset: 0x40
+// CHECK-NEXT: Size: 16
+// CHECK-NEXT: Link: 0
+// CHECK-NEXT: Info: 0
+// CHECK-NEXT: AddressAlignment: 16
+// CHECK-NEXT: EntrySize: 0
diff --git a/test/MC/PowerPC/ppc-reloc.s b/test/MC/PowerPC/ppc-reloc.s
new file mode 100644
index 0000000000..19dd2a3cf4
--- /dev/null
+++ b/test/MC/PowerPC/ppc-reloc.s
@@ -0,0 +1,17 @@
+# RUN: llvm-mc -triple=powerpc-unknown-linux-gnu -filetype=obj %s | \
+# RUN: llvm-readobj -r | FileCheck %s
+ .section .text
+
+ .globl foo
+ .type foo,@function
+ .align 2
+foo:
+ bl printf@plt
+.LC1:
+ .size foo, . - foo
+
+# CHECK: Relocations [
+# CHECK-NEXT: Section (2) .rela.text {
+# CHECK-NEXT: 0x0 R_PPC_PLTREL24 printf 0x0
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
diff --git a/test/MC/PowerPC/ppc32-ba.s b/test/MC/PowerPC/ppc32-ba.s
new file mode 100644
index 0000000000..133423b4e8
--- /dev/null
+++ b/test/MC/PowerPC/ppc32-ba.s
@@ -0,0 +1,6 @@
+# RUN: llvm-mc -triple powerpc-unknown-unknown --show-encoding %s | FileCheck %s
+
+# Check that large immediates in 32bit mode are accepted.
+
+# CHECK: ba -33554432 # encoding: [0x4a,0x00,0x00,0x02]
+ ba 0xfe000000
diff --git a/test/MC/PowerPC/ppc64-abiversion.s b/test/MC/PowerPC/ppc64-abiversion.s
new file mode 100644
index 0000000000..d2970f8c90
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-abiversion.s
@@ -0,0 +1,9 @@
+
+# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -h | FileCheck %s
+# RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -h | FileCheck %s
+
+ .abiversion 2
+# CHECK: Flags [ (0x2)
+
diff --git a/test/MC/PowerPC/ppc64-encoding-4xx.s b/test/MC/PowerPC/ppc64-encoding-4xx.s
new file mode 100644
index 0000000000..5414e1a49b
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-encoding-4xx.s
@@ -0,0 +1,167 @@
+# 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
+
+# Instructions specific to the PowerPC 4xx embedded controllers:
+
+# CHECK-BE: mfdcr 3, 178 # encoding: [0x7c,0x72,0x2a,0x86]
+# CHECK-LE: mfdcr 3, 178 # encoding: [0x86,0x2a,0x72,0x7c]
+ mfdcr 3,178
+# CHECK-BE: mtdcr 178, 3 # encoding: [0x7c,0x72,0x2b,0x86]
+# CHECK-LE: mtdcr 178, 3 # encoding: [0x86,0x2b,0x72,0x7c]
+ mtdcr 178,3
+
+# CHECK-BE: tlbre 2, 3, 0 # encoding: [0x7c,0x43,0x07,0x64]
+# CHECK-LE: tlbre 2, 3, 0 # encoding: [0x64,0x07,0x43,0x7c]
+ tlbre %r2, %r3, 0
+# CHECK-BE: tlbre 2, 3, 1 # encoding: [0x7c,0x43,0x0f,0x64]
+# CHECK-LE: tlbre 2, 3, 1 # encoding: [0x64,0x0f,0x43,0x7c]
+ tlbre %r2, %r3, 1
+# CHECK-BE: tlbre 2, 3, 0 # encoding: [0x7c,0x43,0x07,0x64]
+# CHECK-LE: tlbre 2, 3, 0 # encoding: [0x64,0x07,0x43,0x7c]
+ tlbrehi %r2, %r3
+# CHECK-BE: tlbre 2, 3, 1 # encoding: [0x7c,0x43,0x0f,0x64]
+# CHECK-LE: tlbre 2, 3, 1 # encoding: [0x64,0x0f,0x43,0x7c]
+ tlbrelo %r2, %r3
+
+# CHECK-BE: tlbwe 2, 3, 0 # encoding: [0x7c,0x43,0x07,0xa4]
+# CHECK-LE: tlbwe 2, 3, 0 # encoding: [0xa4,0x07,0x43,0x7c]
+ tlbwe %r2, %r3, 0
+# CHECK-BE: tlbwe 2, 3, 1 # encoding: [0x7c,0x43,0x0f,0xa4]
+# CHECK-LE: tlbwe 2, 3, 1 # encoding: [0xa4,0x0f,0x43,0x7c]
+ tlbwe %r2, %r3, 1
+# CHECK-BE: tlbwe 2, 3, 0 # encoding: [0x7c,0x43,0x07,0xa4]
+# CHECK-LE: tlbwe 2, 3, 0 # encoding: [0xa4,0x07,0x43,0x7c]
+ tlbwehi %r2, %r3
+# CHECK-BE: tlbwe 2, 3, 1 # encoding: [0x7c,0x43,0x0f,0xa4]
+# CHECK-LE: tlbwe 2, 3, 1 # encoding: [0xa4,0x0f,0x43,0x7c]
+ tlbwelo %r2, %r3
+
+# CHECK-BE: tlbsx 2, 3, 1 # encoding: [0x7c,0x43,0x0f,0x24]
+# CHECK-LE: tlbsx 2, 3, 1 # encoding: [0x24,0x0f,0x43,0x7c]
+ tlbsx %r2, %r3, %r1
+# CHECK-BE: tlbsx. 2, 3, 1 # encoding: [0x7c,0x43,0x0f,0x25]
+# CHECK-LE: tlbsx. 2, 3, 1 # encoding: [0x25,0x0f,0x43,0x7c]
+ tlbsx. %r2, %r3, %r1
+
+# CHECK-BE: mfspr 2, 1018 # encoding: [0x7c,0x5a,0xfa,0xa6]
+# CHECK-LE: mfspr 2, 1018 # encoding: [0xa6,0xfa,0x5a,0x7c]
+ mfdccr %r2
+# CHECK-BE: mtspr 1018, 2 # encoding: [0x7c,0x5a,0xfb,0xa6]
+# CHECK-LE: mtspr 1018, 2 # encoding: [0xa6,0xfb,0x5a,0x7c]
+ mtdccr %r2
+
+# CHECK-BE: mfspr 2, 1019 # encoding: [0x7c,0x5b,0xfa,0xa6]
+# CHECK-LE: mfspr 2, 1019 # encoding: [0xa6,0xfa,0x5b,0x7c]
+ mficcr %r2
+# CHECK-BE: mtspr 1019, 2 # encoding: [0x7c,0x5b,0xfb,0xa6]
+# CHECK-LE: mtspr 1019, 2 # encoding: [0xa6,0xfb,0x5b,0x7c]
+ mticcr %r2
+
+# CHECK-BE: mfspr 2, 981 # encoding: [0x7c,0x55,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 981 # encoding: [0xa6,0xf2,0x55,0x7c]
+ mfdear %r2
+# CHECK-BE: mtspr 981, 2 # encoding: [0x7c,0x55,0xf3,0xa6]
+# CHECK-LE: mtspr 981, 2 # encoding: [0xa6,0xf3,0x55,0x7c]
+ mtdear %r2
+
+# CHECK-BE: mfspr 2, 980 # encoding: [0x7c,0x54,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 980 # encoding: [0xa6,0xf2,0x54,0x7c]
+ mfesr %r2
+# CHECK-BE: mtspr 980, 2 # encoding: [0x7c,0x54,0xf3,0xa6]
+# CHECK-LE: mtspr 980, 2 # encoding: [0xa6,0xf3,0x54,0x7c]
+ mtesr %r2
+
+# CHECK-BE: mfspr 2, 986 # encoding: [0x7c,0x5a,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 986 # encoding: [0xa6,0xf2,0x5a,0x7c]
+ mftcr %r2
+# CHECK-BE: mtspr 986, 2 # encoding: [0x7c,0x5a,0xf3,0xa6]
+# CHECK-LE: mtspr 986, 2 # encoding: [0xa6,0xf3,0x5a,0x7c]
+ mttcr %r2
+
+# CHECK-BE: mfspr 2, 989 # encoding: [0x7c,0x5d,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 989 # encoding: [0xa6,0xf2,0x5d,0x7c]
+ mftblo %r2
+# CHECK-BE: mtspr 989, 2 # encoding: [0x7c,0x5d,0xf3,0xa6]
+# CHECK-LE: mtspr 989, 2 # encoding: [0xa6,0xf3,0x5d,0x7c]
+ mttblo %r2
+# CHECK-BE: mfspr 2, 988 # encoding: [0x7c,0x5c,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 988 # encoding: [0xa6,0xf2,0x5c,0x7c]
+ mftbhi %r2
+# CHECK-BE: mtspr 988, 2 # encoding: [0x7c,0x5c,0xf3,0xa6]
+# CHECK-LE: mtspr 988, 2 # encoding: [0xa6,0xf3,0x5c,0x7c]
+ mttbhi %r2
+
+# CHECK-BE: dccci 5, 6 # encoding: [0x7c,0x05,0x33,0x8c]
+# CHECK-LE: dccci 5, 6 # encoding: [0x8c,0x33,0x05,0x7c]
+ dccci %r5,%r6
+# CHECK-BE: iccci 5, 6 # encoding: [0x7c,0x05,0x37,0x8c]
+# CHECK-LE: iccci 5, 6 # encoding: [0x8c,0x37,0x05,0x7c]
+ iccci %r5,%r6
+# CHECK-BE: dccci 0, 0 # encoding: [0x7c,0x00,0x03,0x8c]
+# CHECK-LE: dccci 0, 0 # encoding: [0x8c,0x03,0x00,0x7c]
+ dci %r0
+# CHECK-BE: iccci 0, 0 # encoding: [0x7c,0x00,0x07,0x8c]
+# CHECK-LE: iccci 0, 0 # encoding: [0x8c,0x07,0x00,0x7c]
+ ici 0
+
+# CHECK-BE: mfspr 2, 990 # encoding: [0x7c,0x5e,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 990 # encoding: [0xa6,0xf2,0x5e,0x7c]
+ mfsrr2 2
+# CHECK-BE: mtspr 990, 2 # encoding: [0x7c,0x5e,0xf3,0xa6]
+# CHECK-LE: mtspr 990, 2 # encoding: [0xa6,0xf3,0x5e,0x7c]
+ mtsrr2 2
+# CHECK-BE: mfspr 2, 991 # encoding: [0x7c,0x5f,0xf2,0xa6]
+# CHECK-LE: mfspr 2, 991 # encoding: [0xa6,0xf2,0x5f,0x7c]
+ mfsrr3 2
+# CHECK-BE: mtspr 991, 2 # encoding: [0x7c,0x5f,0xf3,0xa6]
+# CHECK-LE: mtspr 991, 2 # encoding: [0xa6,0xf3,0x5f,0x7c]
+ mtsrr3 2
+
+# CHECK-BE: mfdcr 5, 128 # encoding: [0x7c,0xa0,0x22,0x86]
+# CHECK-LE: mfdcr 5, 128 # encoding: [0x86,0x22,0xa0,0x7c]
+ mfbr0 %r5
+# CHECK-BE: mtdcr 128, 5 # encoding: [0x7c,0xa0,0x23,0x86]
+# CHECK-LE: mtdcr 128, 5 # encoding: [0x86,0x23,0xa0,0x7c]
+ mtbr0 %r5
+# CHECK-BE: mfdcr 5, 129 # encoding: [0x7c,0xa1,0x22,0x86]
+# CHECK-LE: mfdcr 5, 129 # encoding: [0x86,0x22,0xa1,0x7c]
+ mfbr1 %r5
+# CHECK-BE: mtdcr 129, 5 # encoding: [0x7c,0xa1,0x23,0x86]
+# CHECK-LE: mtdcr 129, 5 # encoding: [0x86,0x23,0xa1,0x7c]
+ mtbr1 %r5
+# CHECK-BE: mfdcr 5, 130 # encoding: [0x7c,0xa2,0x22,0x86]
+# CHECK-LE: mfdcr 5, 130 # encoding: [0x86,0x22,0xa2,0x7c]
+ mfbr2 %r5
+# CHECK-BE: mtdcr 130, 5 # encoding: [0x7c,0xa2,0x23,0x86]
+# CHECK-LE: mtdcr 130, 5 # encoding: [0x86,0x23,0xa2,0x7c]
+ mtbr2 %r5
+# CHECK-BE: mfdcr 5, 131 # encoding: [0x7c,0xa3,0x22,0x86]
+# CHECK-LE: mfdcr 5, 131 # encoding: [0x86,0x22,0xa3,0x7c]
+ mfbr3 %r5
+# CHECK-BE: mtdcr 131, 5 # encoding: [0x7c,0xa3,0x23,0x86]
+# CHECK-LE: mtdcr 131, 5 # encoding: [0x86,0x23,0xa3,0x7c]
+ mtbr3 %r5
+# CHECK-BE: mfdcr 5, 132 # encoding: [0x7c,0xa4,0x22,0x86]
+# CHECK-LE: mfdcr 5, 132 # encoding: [0x86,0x22,0xa4,0x7c]
+ mfbr4 %r5
+# CHECK-BE: mtdcr 132, 5 # encoding: [0x7c,0xa4,0x23,0x86]
+# CHECK-LE: mtdcr 132, 5 # encoding: [0x86,0x23,0xa4,0x7c]
+ mtbr4 %r5
+# CHECK-BE: mfdcr 5, 133 # encoding: [0x7c,0xa5,0x22,0x86]
+# CHECK-LE: mfdcr 5, 133 # encoding: [0x86,0x22,0xa5,0x7c]
+ mfbr5 %r5
+# CHECK-BE: mtdcr 133, 5 # encoding: [0x7c,0xa5,0x23,0x86]
+# CHECK-LE: mtdcr 133, 5 # encoding: [0x86,0x23,0xa5,0x7c]
+ mtbr5 %r5
+# CHECK-BE: mfdcr 5, 134 # encoding: [0x7c,0xa6,0x22,0x86]
+# CHECK-LE: mfdcr 5, 134 # encoding: [0x86,0x22,0xa6,0x7c]
+ mfbr6 %r5
+# CHECK-BE: mtdcr 134, 5 # encoding: [0x7c,0xa6,0x23,0x86]
+# CHECK-LE: mtdcr 134, 5 # encoding: [0x86,0x23,0xa6,0x7c]
+ mtbr6 %r5
+# CHECK-BE: mfdcr 5, 135 # encoding: [0x7c,0xa7,0x22,0x86]
+# CHECK-LE: mfdcr 5, 135 # encoding: [0x86,0x22,0xa7,0x7c]
+ mfbr7 %r5
+# CHECK-BE: mtdcr 135, 5 # encoding: [0x7c,0xa7,0x23,0x86]
+# CHECK-LE: mtdcr 135, 5 # encoding: [0x86,0x23,0xa7,0x7c]
+ mtbr7 %r5
diff --git a/test/MC/PowerPC/ppc64-encoding-6xx.s b/test/MC/PowerPC/ppc64-encoding-6xx.s
new file mode 100644
index 0000000000..3a5e7a126b
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-encoding-6xx.s
@@ -0,0 +1,109 @@
+# 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
+
+# Instructions specific to the PowerPC 6xx family:
+
+# CHECK-BE: mfspr 12, 528 # encoding: [0x7d,0x90,0x82,0xa6]
+# CHECK-LE: mfspr 12, 528 # encoding: [0xa6,0x82,0x90,0x7d]
+mfibatu %r12, 0
+# CHECK-BE: mfspr 12, 529 # encoding: [0x7d,0x91,0x82,0xa6]
+# CHECK-LE: mfspr 12, 529 # encoding: [0xa6,0x82,0x91,0x7d]
+mfibatl %r12, 0
+# CHECK-BE: mfspr 12, 530 # encoding: [0x7d,0x92,0x82,0xa6]
+# CHECK-LE: mfspr 12, 530 # encoding: [0xa6,0x82,0x92,0x7d]
+mfibatu %r12, 1
+# CHECK-BE: mfspr 12, 531 # encoding: [0x7d,0x93,0x82,0xa6]
+# CHECK-LE: mfspr 12, 531 # encoding: [0xa6,0x82,0x93,0x7d]
+mfibatl %r12, 1
+# CHECK-BE: mfspr 12, 532 # encoding: [0x7d,0x94,0x82,0xa6]
+# CHECK-LE: mfspr 12, 532 # encoding: [0xa6,0x82,0x94,0x7d]
+mfibatu %r12, 2
+# CHECK-BE: mfspr 12, 533 # encoding: [0x7d,0x95,0x82,0xa6]
+# CHECK-LE: mfspr 12, 533 # encoding: [0xa6,0x82,0x95,0x7d]
+mfibatl %r12, 2
+# CHECK-BE: mfspr 12, 534 # encoding: [0x7d,0x96,0x82,0xa6]
+# CHECK-LE: mfspr 12, 534 # encoding: [0xa6,0x82,0x96,0x7d]
+mfibatu %r12, 3
+# CHECK-BE: mfspr 12, 535 # encoding: [0x7d,0x97,0x82,0xa6]
+# CHECK-LE: mfspr 12, 535 # encoding: [0xa6,0x82,0x97,0x7d]
+mfibatl %r12, 3
+# CHECK-BE: mtspr 528, 12 # encoding: [0x7d,0x90,0x83,0xa6]
+# CHECK-LE: mtspr 528, 12 # encoding: [0xa6,0x83,0x90,0x7d]
+mtibatu 0, %r12
+# CHECK-BE: mtspr 529, 12 # encoding: [0x7d,0x91,0x83,0xa6]
+# CHECK-LE: mtspr 529, 12 # encoding: [0xa6,0x83,0x91,0x7d]
+mtibatl 0, %r12
+# CHECK-BE: mtspr 530, 12 # encoding: [0x7d,0x92,0x83,0xa6]
+# CHECK-LE: mtspr 530, 12 # encoding: [0xa6,0x83,0x92,0x7d]
+mtibatu 1, %r12
+# CHECK-BE: mtspr 531, 12 # encoding: [0x7d,0x93,0x83,0xa6]
+# CHECK-LE: mtspr 531, 12 # encoding: [0xa6,0x83,0x93,0x7d]
+mtibatl 1, %r12
+# CHECK-BE: mtspr 532, 12 # encoding: [0x7d,0x94,0x83,0xa6]
+# CHECK-LE: mtspr 532, 12 # encoding: [0xa6,0x83,0x94,0x7d]
+mtibatu 2, %r12
+# CHECK-BE: mtspr 533, 12 # encoding: [0x7d,0x95,0x83,0xa6]
+# CHECK-LE: mtspr 533, 12 # encoding: [0xa6,0x83,0x95,0x7d]
+mtibatl 2, %r12
+# CHECK-BE: mtspr 534, 12 # encoding: [0x7d,0x96,0x83,0xa6]
+# CHECK-LE: mtspr 534, 12 # encoding: [0xa6,0x83,0x96,0x7d]
+mtibatu 3, %r12
+# CHECK-BE: mtspr 535, 12 # encoding: [0x7d,0x97,0x83,0xa6]
+# CHECK-LE: mtspr 535, 12 # encoding: [0xa6,0x83,0x97,0x7d]
+mtibatl 3, %r12
+
+# CHECK-BE: mfspr 12, 536 # encoding: [0x7d,0x98,0x82,0xa6]
+# CHECK-LE: mfspr 12, 536 # encoding: [0xa6,0x82,0x98,0x7d]
+mfdbatu %r12, 0
+# CHECK-BE: mfspr 12, 537 # encoding: [0x7d,0x99,0x82,0xa6]
+# CHECK-LE: mfspr 12, 537 # encoding: [0xa6,0x82,0x99,0x7d]
+mfdbatl %r12, 0
+# CHECK-BE: mfspr 12, 538 # encoding: [0x7d,0x9a,0x82,0xa6]
+# CHECK-LE: mfspr 12, 538 # encoding: [0xa6,0x82,0x9a,0x7d]
+mfdbatu %r12, 1
+# CHECK-BE: mfspr 12, 539 # encoding: [0x7d,0x9b,0x82,0xa6]
+# CHECK-LE: mfspr 12, 539 # encoding: [0xa6,0x82,0x9b,0x7d]
+mfdbatl %r12, 1
+# CHECK-BE: mfspr 12, 540 # encoding: [0x7d,0x9c,0x82,0xa6]
+# CHECK-LE: mfspr 12, 540 # encoding: [0xa6,0x82,0x9c,0x7d]
+mfdbatu %r12, 2
+# CHECK-BE: mfspr 12, 541 # encoding: [0x7d,0x9d,0x82,0xa6]
+# CHECK-LE: mfspr 12, 541 # encoding: [0xa6,0x82,0x9d,0x7d]
+mfdbatl %r12, 2
+# CHECK-BE: mfspr 12, 542 # encoding: [0x7d,0x9e,0x82,0xa6]
+# CHECK-LE: mfspr 12, 542 # encoding: [0xa6,0x82,0x9e,0x7d]
+mfdbatu %r12, 3
+# CHECK-BE: mfspr 12, 543 # encoding: [0x7d,0x9f,0x82,0xa6]
+# CHECK-LE: mfspr 12, 543 # encoding: [0xa6,0x82,0x9f,0x7d]
+mfdbatl %r12, 3
+# CHECK-BE: mtspr 536, 12 # encoding: [0x7d,0x98,0x83,0xa6]
+# CHECK-LE: mtspr 536, 12 # encoding: [0xa6,0x83,0x98,0x7d]
+mtdbatu 0, %r12
+# CHECK-BE: mtspr 537, 12 # encoding: [0x7d,0x99,0x83,0xa6]
+# CHECK-LE: mtspr 537, 12 # encoding: [0xa6,0x83,0x99,0x7d]
+mtdbatl 0, %r12
+# CHECK-BE: mtspr 538, 12 # encoding: [0x7d,0x9a,0x83,0xa6]
+# CHECK-LE: mtspr 538, 12 # encoding: [0xa6,0x83,0x9a,0x7d]
+mtdbatu 1, %r12
+# CHECK-BE: mtspr 539, 12 # encoding: [0x7d,0x9b,0x83,0xa6]
+# CHECK-LE: mtspr 539, 12 # encoding: [0xa6,0x83,0x9b,0x7d]
+mtdbatl 1, %r12
+# CHECK-BE: mtspr 540, 12 # encoding: [0x7d,0x9c,0x83,0xa6]
+# CHECK-LE: mtspr 540, 12 # encoding: [0xa6,0x83,0x9c,0x7d]
+mtdbatu 2, %r12
+# CHECK-BE: mtspr 541, 12 # encoding: [0x7d,0x9d,0x83,0xa6]
+# CHECK-LE: mtspr 541, 12 # encoding: [0xa6,0x83,0x9d,0x7d]
+mtdbatl 2, %r12
+# CHECK-BE: mtspr 542, 12 # encoding: [0x7d,0x9e,0x83,0xa6]
+# CHECK-LE: mtspr 542, 12 # encoding: [0xa6,0x83,0x9e,0x7d]
+mtdbatu 3, %r12
+# CHECK-BE: mtspr 543, 12 # encoding: [0x7d,0x9f,0x83,0xa6]
+# CHECK-LE: mtspr 543, 12 # encoding: [0xa6,0x83,0x9f,0x7d]
+mtdbatl 3, %r12
+
+# CHECK-BE: tlbld 4 # encoding: [0x7c,0x00,0x27,0xa4]
+# CHECK-LE: tlbld 4 # encoding: [0xa4,0x27,0x00,0x7c]
+tlbld %r4
+# CHECK-BE: tlbli 4 # encoding: [0x7c,0x00,0x27,0xe4]
+# CHECK-LE: tlbli 4 # encoding: [0xe4,0x27,0x00,0x7c]
+tlbli %r4
diff --git a/test/MC/PowerPC/ppc64-encoding-bookII.s b/test/MC/PowerPC/ppc64-encoding-bookII.s
index 99796ca610..20eba7083f 100644
--- a/test/MC/PowerPC/ppc64-encoding-bookII.s
+++ b/test/MC/PowerPC/ppc64-encoding-bookII.s
@@ -8,6 +8,10 @@
# CHECK-LE: icbi 2, 3 # encoding: [0xac,0x1f,0x02,0x7c]
icbi 2, 3
+# CHECK-BE: icbt 0, 5, 31 # encoding: [0x7c,0x05,0xf8,0x2c]
+# CHECK-LE: icbt 0, 5, 31 # encoding: [0x2c,0xf8,0x05,0x7c]
+ icbt 0, 5, 31
+
# 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]
@@ -53,6 +57,11 @@
# CHECK-BE: wait 2 # encoding: [0x7c,0x40,0x00,0x7c]
# CHECK-LE: wait 2 # encoding: [0x7c,0x00,0x40,0x7c]
wait 2
+# CHECK-BE: mbar 1 # encoding: [0x7c,0x20,0x06,0xac]
+# CHECK-LE: mbar 1 # encoding: [0xac,0x06,0x20,0x7c]
+ mbar 1
+# CHECK-BE: mbar 0
+ mbar
# Extended mnemonics
@@ -101,7 +110,16 @@
# 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, 268 # encoding: [0x7c,0x4c,0x42,0xe6]
+# CHECK-LE: mftb 2, 268 # encoding: [0xe6,0x42,0x4c,0x7c]
+ mftbl 2
# CHECK-BE: mftb 2, 269 # encoding: [0x7c,0x4d,0x42,0xe6]
# CHECK-LE: mftb 2, 269 # encoding: [0xe6,0x42,0x4d,0x7c]
mftbu 2
+# CHECK-BE: mtspr 284, 3 # encoding: [0x7c,0x7c,0x43,0xa6]
+# CHECK-LE: mtspr 284, 3 # encoding: [0xa6,0x43,0x7c,0x7c]
+ mttbl 3
+# CHECK-BE: mtspr 285, 3 # encoding: [0x7c,0x7d,0x43,0xa6]
+# CHECK-LE: mtspr 285, 3 # encoding: [0xa6,0x43,0x7d,0x7c]
+ mttbu 3
diff --git a/test/MC/PowerPC/ppc64-encoding-bookIII.s b/test/MC/PowerPC/ppc64-encoding-bookIII.s
index dfce39536e..9e784dbb5e 100644
--- a/test/MC/PowerPC/ppc64-encoding-bookIII.s
+++ b/test/MC/PowerPC/ppc64-encoding-bookIII.s
@@ -21,53 +21,66 @@
# CHECK-LE: mtmsrd 4, 1 # encoding: [0x64,0x01,0x81,0x7c]
mtmsrd %r4, 1
-# CHECK-BE: mfspr 4, 272 # encoding: [0x7c,0x90,0x42,0xa6]
-# CHECK-LE: mfspr 4, 272 # encoding: [0xa6,0x42,0x90,0x7c]
- mfsprg %r4, 0
-
-# CHECK-BE: mfspr 4, 273 # encoding: [0x7c,0x91,0x42,0xa6]
-# CHECK-LE: mfspr 4, 273 # encoding: [0xa6,0x42,0x91,0x7c]
- mfsprg %r4, 1
-
-# CHECK-BE: mfspr 4, 274 # encoding: [0x7c,0x92,0x42,0xa6]
-# CHECK-LE: mfspr 4, 274 # encoding: [0xa6,0x42,0x92,0x7c]
- mfsprg %r4, 2
-
-# CHECK-BE: mfspr 4, 275 # encoding: [0x7c,0x93,0x42,0xa6]
-# CHECK-LE: mfspr 4, 275 # encoding: [0xa6,0x42,0x93,0x7c]
- mfsprg %r4, 3
-
-# CHECK-BE: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
-# CHECK-LE: mtspr 272, 4 # encoding: [0xa6,0x43,0x90,0x7c]
- mtsprg 0, %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-BE: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
-# CHECK-LE: mtspr 274, 4 # encoding: [0xa6,0x43,0x92,0x7c]
- mtsprg 2, %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-BE: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
-# CHECK-LE: mtspr 272, 4 # encoding: [0xa6,0x43,0x90,0x7c]
- mtsprg0 %r4
-
-# CHECK-BE: mtspr 273, 4 # encoding: [0x7c,0x91,0x43,0xa6]
-# CHECK-LE: mtspr 273, 4 # encoding: [0xa6,0x43,0x91,0x7c]
- mtsprg1 %r4
-
-# CHECK-BE: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
-# CHECK-LE: mtspr 274, 4 # encoding: [0xa6,0x43,0x92,0x7c]
- mtsprg2 %r4
-
-# CHECK-BE: mtspr 275, 4 # encoding: [0x7c,0x93,0x43,0xa6]
-# CHECK-LE: mtspr 275, 4 # encoding: [0xa6,0x43,0x93,0x7c]
- mtsprg3 %r4
+# CHECK-BE: mfspr 4, 260 # encoding: [0x7c,0x84,0x42,0xa6]
+# CHECK-LE: mfspr 4, 260 # encoding: [0xa6,0x42,0x84,0x7c]
+ mfsprg %r4, 4
+
+# CHECK-BE: mfspr 4, 261 # encoding: [0x7c,0x85,0x42,0xa6]
+# CHECK-LE: mfspr 4, 261 # encoding: [0xa6,0x42,0x85,0x7c]
+ mfsprg %r4, 5
+
+# CHECK-BE: mfspr 4, 262 # encoding: [0x7c,0x86,0x42,0xa6]
+# CHECK-LE: mfspr 4, 262 # encoding: [0xa6,0x42,0x86,0x7c]
+ mfsprg %r4, 6
+
+# CHECK-BE: mfspr 4, 263 # encoding: [0x7c,0x87,0x42,0xa6]
+# CHECK-LE: mfspr 4, 263 # encoding: [0xa6,0x42,0x87,0x7c]
+ mfsprg %r4, 7
+
+# CHECK-BE: mfspr 2, 260 # encoding: [0x7c,0x44,0x42,0xa6]
+# CHECK-LE: mfspr 2, 260 # encoding: [0xa6,0x42,0x44,0x7c]
+ mfsprg4 %r2
+# CHECK-BE: mfspr 2, 261 # encoding: [0x7c,0x45,0x42,0xa6]
+# CHECK-LE: mfspr 2, 261 # encoding: [0xa6,0x42,0x45,0x7c]
+ mfsprg5 %r2
+# CHECK-BE: mfspr 2, 262 # encoding: [0x7c,0x46,0x42,0xa6]
+# CHECK-LE: mfspr 2, 262 # encoding: [0xa6,0x42,0x46,0x7c]
+ mfsprg6 %r2
+# CHECK-BE: mfspr 2, 263 # encoding: [0x7c,0x47,0x42,0xa6]
+# CHECK-LE: mfspr 2, 263 # encoding: [0xa6,0x42,0x47,0x7c]
+ mfsprg7 %r2
+
+# NOT-CHECK-BE: mtspr 260, 4 # encoding: [0x7c,0x90,0x43,0xa6]
+# NOT-CHECK-LE: mtspr 260, 4 # encoding: [0xa6,0x43,0x90,0x7c]
+ mtsprg 4, %r4
+
+# NOT-CHECK-BE: mtspr 261, 4 # encoding: [0x7c,0x91,0x43,0xa6]
+# NOT-CHECK-LE: mtspr 261, 4 # encoding: [0xa6,0x43,0x91,0x7c]
+ mtsprg 5, %r4
+
+# NOT-CHECK-BE: mtspr 262, 4 # encoding: [0x7c,0x92,0x43,0xa6]
+# NOT-CHECK-LE: mtspr 262, 4 # encoding: [0xa6,0x43,0x92,0x7c]
+ mtsprg 6, %r4
+
+# NOT-CHECK-BE: mtspr 263, 4 # encoding: [0x7c,0x93,0x43,0xa6]
+# NOT-CHECK-LE: mtspr 263, 4 # encoding: [0xa6,0x43,0x93,0x7c]
+ mtsprg 7, %r4
+
+# CHECK-BE: mtspr 260, 4 # encoding: [0x7c,0x84,0x43,0xa6]
+# CHECK-LE: mtspr 260, 4 # encoding: [0xa6,0x43,0x84,0x7c]
+ mtsprg4 %r4
+
+# CHECK-BE: mtspr 261, 4 # encoding: [0x7c,0x85,0x43,0xa6]
+# CHECK-LE: mtspr 261, 4 # encoding: [0xa6,0x43,0x85,0x7c]
+ mtsprg5 %r4
+
+# CHECK-BE: mtspr 262, 4 # encoding: [0x7c,0x86,0x43,0xa6]
+# CHECK-LE: mtspr 262, 4 # encoding: [0xa6,0x43,0x86,0x7c]
+ mtsprg6 %r4
+
+# CHECK-BE: mtspr 263, 4 # encoding: [0x7c,0x87,0x43,0xa6]
+# CHECK-LE: mtspr 263, 4 # encoding: [0xa6,0x43,0x87,0x7c]
+ mtsprg7 %r4
# CHECK-BE: mtspr 280, 4 # encoding: [0x7c,0x98,0x43,0xa6]
# CHECK-LE: mtspr 280, 4 # encoding: [0xa6,0x43,0x98,0x7c]
@@ -141,3 +154,34 @@
# CHECK-LE: tlbie 4,0 # encoding: [0x64,0x22,0x00,0x7c]
tlbie %r4
+# CHECK-BE: rfi # encoding: [0x4c,0x00,0x00,0x64]
+# CHECK-LE: rfi # encoding: [0x64,0x00,0x00,0x4c]
+ rfi
+# CHECK-BE: rfci # encoding: [0x4c,0x00,0x00,0x66]
+# CHECK-LE: rfci # encoding: [0x66,0x00,0x00,0x4c]
+ rfci
+
+# CHECK-BE: wrtee 12 # encoding: [0x7d,0x80,0x01,0x06]
+# CHECK-LE: wrtee 12 # encoding: [0x06,0x01,0x80,0x7d]
+ wrtee %r12
+
+# CHECK-BE: wrteei 0 # encoding: [0x7c,0x00,0x01,0x46]
+# CHECK-LE: wrteei 0 # encoding: [0x46,0x01,0x00,0x7c]
+ wrteei 0
+
+# CHECK-BE: wrteei 1 # encoding: [0x7c,0x00,0x81,0x46]
+# CHECK-LE: wrteei 1 # encoding: [0x46,0x81,0x00,0x7c]
+ wrteei 1
+
+# CHECK-BE: tlbre # encoding: [0x7c,0x00,0x07,0x64]
+# CHECK-LE: tlbre # encoding: [0x64,0x07,0x00,0x7c]
+ tlbre
+# CHECK-BE: tlbwe # encoding: [0x7c,0x00,0x07,0xa4]
+# CHECK-LE: tlbwe # encoding: [0xa4,0x07,0x00,0x7c]
+ tlbwe
+# CHECK-BE: tlbivax 11, 12 # encoding: [0x7c,0x0b,0x66,0x24]
+# CHECK-LE: tlbivax 11, 12 # encoding: [0x24,0x66,0x0b,0x7c]
+ tlbivax %r11, %r12
+# CHECK-BE: tlbsx 11, 12 # encoding: [0x7c,0x0b,0x67,0x24]
+# CHECK-LE: tlbsx 11, 12 # encoding: [0x24,0x67,0x0b,0x7c]
+ tlbsx %r11, %r12
diff --git a/test/MC/PowerPC/ppc64-encoding-e500.s b/test/MC/PowerPC/ppc64-encoding-e500.s
new file mode 100644
index 0000000000..fee91ee83e
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-encoding-e500.s
@@ -0,0 +1,11 @@
+# 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
+
+# Instructions specific to the e500 / e500mc cores:
+
+# CHECK-BE: rfdi # encoding: [0x4c,0x00,0x00,0x4e]
+# CHECK-LE: rfdi # encoding: [0x4e,0x00,0x00,0x4c]
+ rfdi
+# CHECK-BE: rfmci # encoding: [0x4c,0x00,0x00,0x4c]
+# CHECK-LE: rfmci # encoding: [0x4c,0x00,0x00,0x4c]
+ rfmci
diff --git a/test/MC/PowerPC/ppc64-encoding-ext.s b/test/MC/PowerPC/ppc64-encoding-ext.s
index 2374675fae..0ffe0bf6b7 100644
--- a/test/MC/PowerPC/ppc64-encoding-ext.s
+++ b/test/MC/PowerPC/ppc64-encoding-ext.s
@@ -3419,6 +3419,72 @@
# CHECK-BE: mfspr 2, 1 # encoding: [0x7c,0x41,0x02,0xa6]
# CHECK-LE: mfspr 2, 1 # encoding: [0xa6,0x02,0x41,0x7c]
mfxer 2
+# CHECK-BE: mfspr 2, 4 # encoding: [0x7c,0x44,0x02,0xa6]
+# CHECK-LE: mfspr 2, 4 # encoding: [0xa6,0x02,0x44,0x7c]
+ mfrtcu 2
+# CHECK-BE: mfspr 2, 5 # encoding: [0x7c,0x45,0x02,0xa6]
+# CHECK-LE: mfspr 2, 5 # encoding: [0xa6,0x02,0x45,0x7c]
+ mfrtcl 2
+# CHECK-BE: mtspr 17, 2 # encoding: [0x7c,0x51,0x03,0xa6]
+# CHECK-LE: mtspr 17, 2 # encoding: [0xa6,0x03,0x51,0x7c]
+ mtdscr 2
+# CHECK-BE: mfspr 2, 17 # encoding: [0x7c,0x51,0x02,0xa6]
+# CHECK-LE: mfspr 2, 17 # encoding: [0xa6,0x02,0x51,0x7c]
+ mfdscr 2
+# CHECK-BE: mtspr 18, 2 # encoding: [0x7c,0x52,0x03,0xa6]
+# CHECK-LE: mtspr 18, 2 # encoding: [0xa6,0x03,0x52,0x7c]
+ mtdsisr 2
+# CHECK-BE: mfspr 2, 18 # encoding: [0x7c,0x52,0x02,0xa6]
+# CHECK-LE: mfspr 2, 18 # encoding: [0xa6,0x02,0x52,0x7c]
+ mfdsisr 2
+# CHECK-BE: mtspr 19, 2 # encoding: [0x7c,0x53,0x03,0xa6]
+# CHECK-LE: mtspr 19, 2 # encoding: [0xa6,0x03,0x53,0x7c]
+ mtdar 2
+# CHECK-BE: mfspr 2, 19 # encoding: [0x7c,0x53,0x02,0xa6]
+# CHECK-LE: mfspr 2, 19 # encoding: [0xa6,0x02,0x53,0x7c]
+ mfdar 2
+# CHECK-BE: mtspr 22, 2 # encoding: [0x7c,0x56,0x03,0xa6]
+# CHECK-LE: mtspr 22, 2 # encoding: [0xa6,0x03,0x56,0x7c]
+ mtdec 2
+# CHECK-BE: mfspr 2, 22 # encoding: [0x7c,0x56,0x02,0xa6]
+# CHECK-LE: mfspr 2, 22 # encoding: [0xa6,0x02,0x56,0x7c]
+ mfdec 2
+# CHECK-BE: mtspr 25, 2 # encoding: [0x7c,0x59,0x03,0xa6]
+# CHECK-LE: mtspr 25, 2 # encoding: [0xa6,0x03,0x59,0x7c]
+ mtsdr1 2
+# CHECK-BE: mfspr 2, 25 # encoding: [0x7c,0x59,0x02,0xa6]
+# CHECK-LE: mfspr 2, 25 # encoding: [0xa6,0x02,0x59,0x7c]
+ mfsdr1 2
+# CHECK-BE: mtspr 26, 2 # encoding: [0x7c,0x5a,0x03,0xa6]
+# CHECK-LE: mtspr 26, 2 # encoding: [0xa6,0x03,0x5a,0x7c]
+ mtsrr0 2
+# CHECK-BE: mfspr 2, 26 # encoding: [0x7c,0x5a,0x02,0xa6]
+# CHECK-LE: mfspr 2, 26 # encoding: [0xa6,0x02,0x5a,0x7c]
+ mfsrr0 2
+# CHECK-BE: mtspr 27, 2 # encoding: [0x7c,0x5b,0x03,0xa6]
+# CHECK-LE: mtspr 27, 2 # encoding: [0xa6,0x03,0x5b,0x7c]
+ mtsrr1 2
+# CHECK-BE: mfspr 2, 27 # encoding: [0x7c,0x5b,0x02,0xa6]
+# CHECK-LE: mfspr 2, 27 # encoding: [0xa6,0x02,0x5b,0x7c]
+ mfsrr1 2
+# CHECK-BE: mtspr 28, 2 # encoding: [0x7c,0x5c,0x03,0xa6]
+# CHECK-LE: mtspr 28, 2 # encoding: [0xa6,0x03,0x5c,0x7c]
+ mtcfar 2
+# CHECK-BE: mfspr 2, 28 # encoding: [0x7c,0x5c,0x02,0xa6]
+# CHECK-LE: mfspr 2, 28 # encoding: [0xa6,0x02,0x5c,0x7c]
+ mfcfar 2
+# CHECK-BE: mtspr 29, 2 # encoding: [0x7c,0x5d,0x03,0xa6]
+# CHECK-LE: mtspr 29, 2 # encoding: [0xa6,0x03,0x5d,0x7c]
+ mtamr 2
+# CHECK-BE: mfspr 2, 29 # encoding: [0x7c,0x5d,0x02,0xa6]
+# CHECK-LE: mfspr 2, 29 # encoding: [0xa6,0x02,0x5d,0x7c]
+ mfamr 2
+# CHECK-BE: mtspr 48, 2 # encoding: [0x7c,0x50,0x0b,0xa6]
+# CHECK-LE: mtspr 48, 2 # encoding: [0xa6,0x0b,0x50,0x7c]
+ mtpid 2
+# CHECK-BE: mfspr 2, 48 # encoding: [0x7c,0x50,0x0a,0xa6]
+# CHECK-LE: mfspr 2, 48 # encoding: [0xa6,0x0a,0x50,0x7c]
+ mfpid 2
# CHECK-BE: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
# CHECK-LE: mtlr 2 # encoding: [0xa6,0x03,0x48,0x7c]
mtlr 2
@@ -3465,3 +3531,105 @@
# CHECK-LE: mtcrf 255, 2 # encoding: [0x20,0xf1,0x4f,0x7c]
mtcr 2
+# CHECK-BE: mfspr 4, 272 # encoding: [0x7c,0x90,0x42,0xa6]
+# CHECK-LE: mfspr 4, 272 # encoding: [0xa6,0x42,0x90,0x7c]
+ mfsprg %r4, 0
+
+# CHECK-BE: mfspr 4, 273 # encoding: [0x7c,0x91,0x42,0xa6]
+# CHECK-LE: mfspr 4, 273 # encoding: [0xa6,0x42,0x91,0x7c]
+ mfsprg %r4, 1
+
+# CHECK-BE: mfspr 4, 274 # encoding: [0x7c,0x92,0x42,0xa6]
+# CHECK-LE: mfspr 4, 274 # encoding: [0xa6,0x42,0x92,0x7c]
+ mfsprg %r4, 2
+
+# CHECK-BE: mfspr 4, 275 # encoding: [0x7c,0x93,0x42,0xa6]
+# CHECK-LE: mfspr 4, 275 # encoding: [0xa6,0x42,0x93,0x7c]
+ mfsprg %r4, 3
+
+# CHECK-BE: mfspr 2, 272 # encoding: [0x7c,0x50,0x42,0xa6]
+# CHECK-LE: mfspr 2, 272 # encoding: [0xa6,0x42,0x50,0x7c]
+ mfsprg0 %r2
+# CHECK-BE: mfspr 2, 273 # encoding: [0x7c,0x51,0x42,0xa6]
+# CHECK-LE: mfspr 2, 273 # encoding: [0xa6,0x42,0x51,0x7c]
+ mfsprg1 %r2
+# CHECK-BE: mfspr 2, 274 # encoding: [0x7c,0x52,0x42,0xa6]
+# CHECK-LE: mfspr 2, 274 # encoding: [0xa6,0x42,0x52,0x7c]
+ mfsprg2 %r2
+# CHECK-BE: mfspr 2, 275 # encoding: [0x7c,0x53,0x42,0xa6]
+# CHECK-LE: mfspr 2, 275 # encoding: [0xa6,0x42,0x53,0x7c]
+ mfsprg3 %r2
+
+# CHECK-BE: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
+# CHECK-LE: mtspr 272, 4 # encoding: [0xa6,0x43,0x90,0x7c]
+ mtsprg 0, %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-BE: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
+# CHECK-LE: mtspr 274, 4 # encoding: [0xa6,0x43,0x92,0x7c]
+ mtsprg 2, %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-BE: mtspr 272, 4 # encoding: [0x7c,0x90,0x43,0xa6]
+# CHECK-LE: mtspr 272, 4 # encoding: [0xa6,0x43,0x90,0x7c]
+ mtsprg0 %r4
+
+# CHECK-BE: mtspr 273, 4 # encoding: [0x7c,0x91,0x43,0xa6]
+# CHECK-LE: mtspr 273, 4 # encoding: [0xa6,0x43,0x91,0x7c]
+ mtsprg1 %r4
+
+# CHECK-BE: mtspr 274, 4 # encoding: [0x7c,0x92,0x43,0xa6]
+# CHECK-LE: mtspr 274, 4 # encoding: [0xa6,0x43,0x92,0x7c]
+ mtsprg2 %r4
+
+# CHECK-BE: mtspr 275, 4 # encoding: [0x7c,0x93,0x43,0xa6]
+# CHECK-LE: mtspr 275, 4 # encoding: [0xa6,0x43,0x93,0x7c]
+ mtsprg3 %r4
+
+# Altivec Data Stream instruction:
+# CHECK-BE: dss 3 # encoding: [0x7c,0x60,0x06,0x6c]
+# CHECK-LE: dss 3 # encoding: [0x6c,0x06,0x60,0x7c]
+ dss 3
+# CHECK-BE: dssall # encoding: [0x7e,0x00,0x06,0x6c]
+# CHECK-LE: dssall # encoding: [0x6c,0x06,0x00,0x7e]
+ dssall
+# CHECK-BE: dst 12, 11, 3 # encoding: [0x7c,0x6c,0x5a,0xac]
+# CHECK-LE: dst 12, 11, 3 # encoding: [0xac,0x5a,0x6c,0x7c]
+ dst %r12, %r11, 3
+# CHECK-BE: dstt 12, 11, 3 # encoding: [0x7e,0x6c,0x5a,0xac]
+# CHECK-LE: dstt 12, 11, 3 # encoding: [0xac,0x5a,0x6c,0x7e]
+ dstt %r12, %r11, 3
+# CHECK-BE: dstst 12, 11, 3 # encoding: [0x7c,0x6c,0x5a,0xec]
+# CHECK-LE: dstst 12, 11, 3 # encoding: [0xec,0x5a,0x6c,0x7c]
+ dstst %r12, %r11, 3
+# CHECK-BE: dststt 12, 11, 3 # encoding: [0x7e,0x6c,0x5a,0xec]
+# CHECK-LE: dststt 12, 11, 3 # encoding: [0xec,0x5a,0x6c,0x7e]
+ dststt %r12, %r11, 3
+
+# CHECK-BE: tlbia # encoding: [0x7c,0x00,0x02,0xe4]
+# CHECK-LE: tlbia # encoding: [0xe4,0x02,0x00,0x7c]
+ tlbia
+
+# CHECK-BE: lswi 8, 6, 7 # encoding: [0x7d,0x06,0x3c,0xaa]
+# CHECK-LE: lswi 8, 6, 7 # encoding: [0xaa,0x3c,0x06,0x7d]
+ lswi %r8, %r6, 7
+# CHECK-BE: stswi 8, 6, 7 # encoding: [0x7d,0x06,0x3d,0xaa]
+# CHECK-LE: stswi 8, 6, 7 # encoding: [0xaa,0x3d,0x06,0x7d]
+ stswi %r8, %r6, 7
+
+# CHECK-BE: rfid # encoding: [0x4c,0x00,0x00,0x24]
+# CHECK-LE: rfid # encoding: [0x24,0x00,0x00,0x4c]
+ rfid
+
+# CHECK-BE: mfspr 2, 280 # encoding: [0x7c,0x58,0x42,0xa6]
+# CHECK-LE: mfspr 2, 280 # encoding: [0xa6,0x42,0x58,0x7c]
+ mfasr 2
+# CHECK-BE: mtspr 280, 2 # encoding: [0x7c,0x58,0x43,0xa6]
+# CHECK-LE: mtspr 280, 2 # encoding: [0xa6,0x43,0x58,0x7c]
+ mtasr 2
diff --git a/test/MC/PowerPC/ppc64-encoding-spe.s b/test/MC/PowerPC/ppc64-encoding-spe.s
new file mode 100644
index 0000000000..d90eb30f7a
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-encoding-spe.s
@@ -0,0 +1,622 @@
+# 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
+
+# Instructions from the Signal Processing Engine extension:
+
+# CHECK-BE: evlddx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x00]
+# CHECK-LE: evlddx 14, 21, 28 # encoding: [0x00,0xe3,0xd5,0x11]
+ evlddx %r14, %r21, %r28
+# CHECK-BE: evldwx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x02]
+# CHECK-LE: evldwx 14, 21, 28 # encoding: [0x02,0xe3,0xd5,0x11]
+ evldwx %r14, %r21, %r28
+# CHECK-BE: evldhx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x04]
+# CHECK-LE: evldhx 14, 21, 28 # encoding: [0x04,0xe3,0xd5,0x11]
+ evldhx %r14, %r21, %r28
+# CHECK-BE: evlhhesplatx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x08]
+# CHECK-LE: evlhhesplatx 14, 21, 28 # encoding: [0x08,0xe3,0xd5,0x11]
+ evlhhesplatx %r14, %r21, %r28
+# CHECK-BE: evlhhousplatx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x0c]
+# CHECK-LE: evlhhousplatx 14, 21, 28 # encoding: [0x0c,0xe3,0xd5,0x11]
+ evlhhousplatx %r14, %r21, %r28
+# CHECK-BE: evlhhossplatx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x0e]
+# CHECK-LE: evlhhossplatx 14, 21, 28 # encoding: [0x0e,0xe3,0xd5,0x11]
+ evlhhossplatx %r14, %r21, %r28
+# CHECK-BE: evlwhex 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x10]
+# CHECK-LE: evlwhex 14, 21, 28 # encoding: [0x10,0xe3,0xd5,0x11]
+ evlwhex %r14, %r21, %r28
+# CHECK-BE: evlwhoux 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x14]
+# CHECK-LE: evlwhoux 14, 21, 28 # encoding: [0x14,0xe3,0xd5,0x11]
+ evlwhoux %r14, %r21, %r28
+# CHECK-BE: evlwhosx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x16]
+# CHECK-LE: evlwhosx 14, 21, 28 # encoding: [0x16,0xe3,0xd5,0x11]
+ evlwhosx %r14, %r21, %r28
+# CHECK-BE: evlwwsplatx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x18]
+# CHECK-LE: evlwwsplatx 14, 21, 28 # encoding: [0x18,0xe3,0xd5,0x11]
+ evlwwsplatx %r14, %r21, %r28
+# CHECK-BE: evlwhsplatx 14, 21, 28 # encoding: [0x11,0xd5,0xe3,0x1c]
+# CHECK-LE: evlwhsplatx 14, 21, 28 # encoding: [0x1c,0xe3,0xd5,0x11]
+ evlwhsplatx %r14, %r21, %r28
+# CHECK-BE: evmergehi 14, 21, 28 # encoding: [0x11,0xd5,0xe2,0x2c]
+# CHECK-LE: evmergehi 14, 21, 28 # encoding: [0x2c,0xe2,0xd5,0x11]
+ evmergehi %r14, %r21, %r28
+# CHECK-BE: evmergelo 14, 21, 28 # encoding: [0x11,0xd5,0xe2,0x2d]
+# CHECK-LE: evmergelo 14, 21, 28 # encoding: [0x2d,0xe2,0xd5,0x11]
+ evmergelo %r14, %r21, %r28
+# CHECK-BE: evmergehilo 14, 21, 28 # encoding: [0x11,0xd5,0xe2,0x2e]
+# CHECK-LE: evmergehilo 14, 21, 28 # encoding: [0x2e,0xe2,0xd5,0x11]
+ evmergehilo %r14, %r21, %r28
+# CHECK-BE: evmergelohi 14, 21, 28 # encoding: [0x11,0xd5,0xe2,0x2f]
+# CHECK-LE: evmergelohi 14, 21, 28 # encoding: [0x2f,0xe2,0xd5,0x11]
+ evmergelohi %r14, %r21, %r28
+
+# CHECK-BE: brinc 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x0f]
+# CHECK-LE: brinc 14, 22, 19 # encoding: [0x0f,0x9a,0xd6,0x11]
+ brinc %r14, %r22, %r19
+# CHECK-BE: evabs 14, 22 # encoding: [0x11,0xd6,0x02,0x08]
+# CHECK-LE: evabs 14, 22 # encoding: [0x08,0x02,0xd6,0x11]
+ evabs %r14, %r22
+# CHECK-BE: evaddsmiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc9]
+# CHECK-LE: evaddsmiaaw 14, 22 # encoding: [0xc9,0x04,0xd6,0x11]
+ evaddsmiaaw %r14, %r22
+# CHECK-BE: evaddssiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc1]
+# CHECK-LE: evaddssiaaw 14, 22 # encoding: [0xc1,0x04,0xd6,0x11]
+ evaddssiaaw %r14, %r22
+# CHECK-BE: evaddusiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc0]
+# CHECK-LE: evaddusiaaw 14, 22 # encoding: [0xc0,0x04,0xd6,0x11]
+ evaddusiaaw %r14, %r22
+# CHECK-BE: evaddumiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc8]
+# CHECK-LE: evaddumiaaw 14, 22 # encoding: [0xc8,0x04,0xd6,0x11]
+ evaddumiaaw %r14, %r22
+# CHECK-BE: evaddw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x00]
+# CHECK-LE: evaddw 14, 22, 19 # encoding: [0x00,0x9a,0xd6,0x11]
+ evaddw %r14, %r22, %r19
+# CHECK-BE: evaddiw 14, 29, 19 # encoding: [0x11,0xd3,0xea,0x02]
+# CHECK-LE: evaddiw 14, 29, 19 # encoding: [0x02,0xea,0xd3,0x11]
+ evaddiw %r14, 29, %r19
+# CHECK-BE: evand 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x11]
+# CHECK-LE: evand 14, 22, 19 # encoding: [0x11,0x9a,0xd6,0x11]
+ evand %r14, %r22, %r19
+# CHECK-BE: evandc 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x12]
+# CHECK-LE: evandc 14, 22, 19 # encoding: [0x12,0x9a,0xd6,0x11]
+ evandc %r14, %r22, %r19
+# CHECK-BE: evcmpeq 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x34]
+# CHECK-LE: evcmpeq 3, 22, 19 # encoding: [0x34,0x9a,0x96,0x11]
+ evcmpeq %cr3, %r22, %r19
+# CHECK-BE: evcmpgts 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x31]
+# CHECK-LE: evcmpgts 3, 22, 19 # encoding: [0x31,0x9a,0x96,0x11]
+ evcmpgts %cr3, %r22, %r19
+# CHECK-BE: evcmpgtu 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x30]
+# CHECK-LE: evcmpgtu 3, 22, 19 # encoding: [0x30,0x9a,0x96,0x11]
+ evcmpgtu %cr3, %r22, %r19
+# CHECK-BE: evcmplts 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x33]
+# CHECK-LE: evcmplts 3, 22, 19 # encoding: [0x33,0x9a,0x96,0x11]
+ evcmplts %cr3, %r22, %r19
+# CHECK-BE: evcmpltu 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x32]
+# CHECK-LE: evcmpltu 3, 22, 19 # encoding: [0x32,0x9a,0x96,0x11]
+ evcmpltu %cr3, %r22, %r19
+# CHECK-BE: evcntlsw 14, 22 # encoding: [0x11,0xd6,0x02,0x0e]
+# CHECK-LE: evcntlsw 14, 22 # encoding: [0x0e,0x02,0xd6,0x11]
+ evcntlsw %r14, %r22
+# CHECK-BE: evcntlzw 14, 22 # encoding: [0x11,0xd6,0x02,0x0d]
+# CHECK-LE: evcntlzw 14, 22 # encoding: [0x0d,0x02,0xd6,0x11]
+ evcntlzw %r14, %r22
+# CHECK-BE: evdivws 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0xc6]
+# CHECK-LE: evdivws 14, 22, 19 # encoding: [0xc6,0x9c,0xd6,0x11]
+ evdivws %r14, %r22, %r19
+# CHECK-BE: evdivwu 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0xc7]
+# CHECK-LE: evdivwu 14, 22, 19 # encoding: [0xc7,0x9c,0xd6,0x11]
+ evdivwu %r14, %r22, %r19
+# CHECK-BE: eveqv 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x19]
+# CHECK-LE: eveqv 14, 22, 19 # encoding: [0x19,0x9a,0xd6,0x11]
+ eveqv %r14, %r22, %r19
+# CHECK-BE: evextsb 14, 22 # encoding: [0x11,0xd6,0x02,0x0a]
+# CHECK-LE: evextsb 14, 22 # encoding: [0x0a,0x02,0xd6,0x11]
+ evextsb %r14, %r22
+# CHECK-BE: evextsh 14, 22 # encoding: [0x11,0xd6,0x02,0x0b]
+# CHECK-LE: evextsh 14, 22 # encoding: [0x0b,0x02,0xd6,0x11]
+ evextsh %r14, %r22
+# CHECK-BE: evmhegsmfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2b]
+# CHECK-LE: evmhegsmfaa 14, 22, 19 # encoding: [0x2b,0x9d,0xd6,0x11]
+ evmhegsmfaa %r14, %r22, %r19
+# CHECK-BE: evmhegsmfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xab]
+# CHECK-LE: evmhegsmfan 14, 22, 19 # encoding: [0xab,0x9d,0xd6,0x11]
+ evmhegsmfan %r14, %r22, %r19
+# CHECK-BE: evmhegsmiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x29]
+# CHECK-LE: evmhegsmiaa 14, 22, 19 # encoding: [0x29,0x9d,0xd6,0x11]
+ evmhegsmiaa %r14, %r22, %r19
+# CHECK-BE: evmhegsmian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xa9]
+# CHECK-LE: evmhegsmian 14, 22, 19 # encoding: [0xa9,0x9d,0xd6,0x11]
+ evmhegsmian %r14, %r22, %r19
+# CHECK-BE: evmhegumiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x28]
+# CHECK-LE: evmhegumiaa 14, 22, 19 # encoding: [0x28,0x9d,0xd6,0x11]
+ evmhegumiaa %r14, %r22, %r19
+# CHECK-BE: evmhegumian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xa8]
+# CHECK-LE: evmhegumian 14, 22, 19 # encoding: [0xa8,0x9d,0xd6,0x11]
+ evmhegumian %r14, %r22, %r19
+# CHECK-BE: evmhesmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0b]
+# CHECK-LE: evmhesmf 14, 22, 19 # encoding: [0x0b,0x9c,0xd6,0x11]
+ evmhesmf %r14, %r22, %r19
+# CHECK-BE: evmhesmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2b]
+# CHECK-LE: evmhesmfa 14, 22, 19 # encoding: [0x2b,0x9c,0xd6,0x11]
+ evmhesmfa %r14, %r22, %r19
+# CHECK-BE: evmhesmfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0b]
+# CHECK-LE: evmhesmfaaw 14, 22, 19 # encoding: [0x0b,0x9d,0xd6,0x11]
+ evmhesmfaaw %r14, %r22, %r19
+# CHECK-BE: evmhesmfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8b]
+# CHECK-LE: evmhesmfanw 14, 22, 19 # encoding: [0x8b,0x9d,0xd6,0x11]
+ evmhesmfanw %r14, %r22, %r19
+# CHECK-BE: evmhesmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x09]
+# CHECK-LE: evmhesmi 14, 22, 19 # encoding: [0x09,0x9c,0xd6,0x11]
+ evmhesmi %r14, %r22, %r19
+# CHECK-BE: evmhesmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x29]
+# CHECK-LE: evmhesmia 14, 22, 19 # encoding: [0x29,0x9c,0xd6,0x11]
+ evmhesmia %r14, %r22, %r19
+# CHECK-BE: evmhesmiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x09]
+# CHECK-LE: evmhesmiaaw 14, 22, 19 # encoding: [0x09,0x9d,0xd6,0x11]
+ evmhesmiaaw %r14, %r22, %r19
+# CHECK-BE: evmhesmianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x89]
+# CHECK-LE: evmhesmianw 14, 22, 19 # encoding: [0x89,0x9d,0xd6,0x11]
+ evmhesmianw %r14, %r22, %r19
+# CHECK-BE: evmhessf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x03]
+# CHECK-LE: evmhessf 14, 22, 19 # encoding: [0x03,0x9c,0xd6,0x11]
+ evmhessf %r14, %r22, %r19
+# CHECK-BE: evmhessfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x23]
+# CHECK-LE: evmhessfa 14, 22, 19 # encoding: [0x23,0x9c,0xd6,0x11]
+ evmhessfa %r14, %r22, %r19
+# CHECK-BE: evmhessfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x03]
+# CHECK-LE: evmhessfaaw 14, 22, 19 # encoding: [0x03,0x9d,0xd6,0x11]
+ evmhessfaaw %r14, %r22, %r19
+# CHECK-BE: evmhessfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x83]
+# CHECK-LE: evmhessfanw 14, 22, 19 # encoding: [0x83,0x9d,0xd6,0x11]
+ evmhessfanw %r14, %r22, %r19
+# CHECK-BE: evmhessiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x01]
+# CHECK-LE: evmhessiaaw 14, 22, 19 # encoding: [0x01,0x9d,0xd6,0x11]
+ evmhessiaaw %r14, %r22, %r19
+# CHECK-BE: evmhessianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x81]
+# CHECK-LE: evmhessianw 14, 22, 19 # encoding: [0x81,0x9d,0xd6,0x11]
+ evmhessianw %r14, %r22, %r19
+# CHECK-BE: evmheumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x08]
+# CHECK-LE: evmheumi 14, 22, 19 # encoding: [0x08,0x9c,0xd6,0x11]
+ evmheumi %r14, %r22, %r19
+# CHECK-BE: evmheumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x28]
+# CHECK-LE: evmheumia 14, 22, 19 # encoding: [0x28,0x9c,0xd6,0x11]
+ evmheumia %r14, %r22, %r19
+# CHECK-BE: evmheumiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x08]
+# CHECK-LE: evmheumiaaw 14, 22, 19 # encoding: [0x08,0x9d,0xd6,0x11]
+ evmheumiaaw %r14, %r22, %r19
+# CHECK-BE: evmheumianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x88]
+# CHECK-LE: evmheumianw 14, 22, 19 # encoding: [0x88,0x9d,0xd6,0x11]
+ evmheumianw %r14, %r22, %r19
+# CHECK-BE: evmheusiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x00]
+# CHECK-LE: evmheusiaaw 14, 22, 19 # encoding: [0x00,0x9d,0xd6,0x11]
+ evmheusiaaw %r14, %r22, %r19
+# CHECK-BE: evmheusianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x80]
+# CHECK-LE: evmheusianw 14, 22, 19 # encoding: [0x80,0x9d,0xd6,0x11]
+ evmheusianw %r14, %r22, %r19
+# CHECK-BE: evmhogsmfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2f]
+# CHECK-LE: evmhogsmfaa 14, 22, 19 # encoding: [0x2f,0x9d,0xd6,0x11]
+ evmhogsmfaa %r14, %r22, %r19
+# CHECK-BE: evmhogsmfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xaf]
+# CHECK-LE: evmhogsmfan 14, 22, 19 # encoding: [0xaf,0x9d,0xd6,0x11]
+ evmhogsmfan %r14, %r22, %r19
+# CHECK-BE: evmhogsmiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2d]
+# CHECK-LE: evmhogsmiaa 14, 22, 19 # encoding: [0x2d,0x9d,0xd6,0x11]
+ evmhogsmiaa %r14, %r22, %r19
+# CHECK-BE: evmhogsmian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xad]
+# CHECK-LE: evmhogsmian 14, 22, 19 # encoding: [0xad,0x9d,0xd6,0x11]
+ evmhogsmian %r14, %r22, %r19
+# CHECK-BE: evmhogumiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2c]
+# CHECK-LE: evmhogumiaa 14, 22, 19 # encoding: [0x2c,0x9d,0xd6,0x11]
+ evmhogumiaa %r14, %r22, %r19
+# CHECK-BE: evmhogumian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xac]
+# CHECK-LE: evmhogumian 14, 22, 19 # encoding: [0xac,0x9d,0xd6,0x11]
+ evmhogumian %r14, %r22, %r19
+# CHECK-BE: evmhosmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0f]
+# CHECK-LE: evmhosmf 14, 22, 19 # encoding: [0x0f,0x9c,0xd6,0x11]
+ evmhosmf %r14, %r22, %r19
+# CHECK-BE: evmhosmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2f]
+# CHECK-LE: evmhosmfa 14, 22, 19 # encoding: [0x2f,0x9c,0xd6,0x11]
+ evmhosmfa %r14, %r22, %r19
+# CHECK-BE: evmhosmfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0f]
+# CHECK-LE: evmhosmfaaw 14, 22, 19 # encoding: [0x0f,0x9d,0xd6,0x11]
+ evmhosmfaaw %r14, %r22, %r19
+# CHECK-BE: evmhosmfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8f]
+# CHECK-LE: evmhosmfanw 14, 22, 19 # encoding: [0x8f,0x9d,0xd6,0x11]
+ evmhosmfanw %r14, %r22, %r19
+# CHECK-BE: evmhosmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0d]
+# CHECK-LE: evmhosmi 14, 22, 19 # encoding: [0x0d,0x9c,0xd6,0x11]
+ evmhosmi %r14, %r22, %r19
+# CHECK-BE: evmhosmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2d]
+# CHECK-LE: evmhosmia 14, 22, 19 # encoding: [0x2d,0x9c,0xd6,0x11]
+ evmhosmia %r14, %r22, %r19
+# CHECK-BE: evmhosmiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0d]
+# CHECK-LE: evmhosmiaaw 14, 22, 19 # encoding: [0x0d,0x9d,0xd6,0x11]
+ evmhosmiaaw %r14, %r22, %r19
+# CHECK-BE: evmhosmianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8d]
+# CHECK-LE: evmhosmianw 14, 22, 19 # encoding: [0x8d,0x9d,0xd6,0x11]
+ evmhosmianw %r14, %r22, %r19
+# CHECK-BE: evmhossf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x07]
+# CHECK-LE: evmhossf 14, 22, 19 # encoding: [0x07,0x9c,0xd6,0x11]
+ evmhossf %r14, %r22, %r19
+# CHECK-BE: evmhossfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x27]
+# CHECK-LE: evmhossfa 14, 22, 19 # encoding: [0x27,0x9c,0xd6,0x11]
+ evmhossfa %r14, %r22, %r19
+# CHECK-BE: evmhossfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x07]
+# CHECK-LE: evmhossfaaw 14, 22, 19 # encoding: [0x07,0x9d,0xd6,0x11]
+ evmhossfaaw %r14, %r22, %r19
+# CHECK-BE: evmhossfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x87]
+# CHECK-LE: evmhossfanw 14, 22, 19 # encoding: [0x87,0x9d,0xd6,0x11]
+ evmhossfanw %r14, %r22, %r19
+# CHECK-BE: evmhossiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x05]
+# CHECK-LE: evmhossiaaw 14, 22, 19 # encoding: [0x05,0x9d,0xd6,0x11]
+ evmhossiaaw %r14, %r22, %r19
+# CHECK-BE: evmhossianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x85]
+# CHECK-LE: evmhossianw 14, 22, 19 # encoding: [0x85,0x9d,0xd6,0x11]
+ evmhossianw %r14, %r22, %r19
+# CHECK-BE: evmhoumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0c]
+# CHECK-LE: evmhoumi 14, 22, 19 # encoding: [0x0c,0x9c,0xd6,0x11]
+ evmhoumi %r14, %r22, %r19
+# CHECK-BE: evmhoumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2c]
+# CHECK-LE: evmhoumia 14, 22, 19 # encoding: [0x2c,0x9c,0xd6,0x11]
+ evmhoumia %r14, %r22, %r19
+# CHECK-BE: evmhoumiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0c]
+# CHECK-LE: evmhoumiaaw 14, 22, 19 # encoding: [0x0c,0x9d,0xd6,0x11]
+ evmhoumiaaw %r14, %r22, %r19
+# CHECK-BE: evmhoumianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8c]
+# CHECK-LE: evmhoumianw 14, 22, 19 # encoding: [0x8c,0x9d,0xd6,0x11]
+ evmhoumianw %r14, %r22, %r19
+# CHECK-BE: evmhousiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x04]
+# CHECK-LE: evmhousiaaw 14, 22, 19 # encoding: [0x04,0x9d,0xd6,0x11]
+ evmhousiaaw %r14, %r22, %r19
+# CHECK-BE: evmhousianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x84]
+# CHECK-LE: evmhousianw 14, 22, 19 # encoding: [0x84,0x9d,0xd6,0x11]
+ evmhousianw %r14, %r22, %r19
+# CHECK-BE: evmwhsmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x4f]
+# CHECK-LE: evmwhsmf 14, 22, 19 # encoding: [0x4f,0x9c,0xd6,0x11]
+ evmwhsmf %r14, %r22, %r19
+# CHECK-BE: evmwhsmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x6f]
+# CHECK-LE: evmwhsmfa 14, 22, 19 # encoding: [0x6f,0x9c,0xd6,0x11]
+ evmwhsmfa %r14, %r22, %r19
+# CHECK-BE: evmwhsmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x4d]
+# CHECK-LE: evmwhsmi 14, 22, 19 # encoding: [0x4d,0x9c,0xd6,0x11]
+ evmwhsmi %r14, %r22, %r19
+# CHECK-BE: evmwhsmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x6d]
+# CHECK-LE: evmwhsmia 14, 22, 19 # encoding: [0x6d,0x9c,0xd6,0x11]
+ evmwhsmia %r14, %r22, %r19
+# CHECK-BE: evmwhssf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x47]
+# CHECK-LE: evmwhssf 14, 22, 19 # encoding: [0x47,0x9c,0xd6,0x11]
+ evmwhssf %r14, %r22, %r19
+# CHECK-BE: evmwhssfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x67]
+# CHECK-LE: evmwhssfa 14, 22, 19 # encoding: [0x67,0x9c,0xd6,0x11]
+ evmwhssfa %r14, %r22, %r19
+# CHECK-BE: evmwhumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x4c]
+# CHECK-LE: evmwhumi 14, 22, 19 # encoding: [0x4c,0x9c,0xd6,0x11]
+ evmwhumi %r14, %r22, %r19
+# CHECK-BE: evmwhumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x6c]
+# CHECK-LE: evmwhumia 14, 22, 19 # encoding: [0x6c,0x9c,0xd6,0x11]
+ evmwhumia %r14, %r22, %r19
+# CHECK-BE: evmwlsmiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x49]
+# CHECK-LE: evmwlsmiaaw 14, 22, 19 # encoding: [0x49,0x9d,0xd6,0x11]
+ evmwlsmiaaw %r14, %r22, %r19
+# CHECK-BE: evmwlsmianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc9]
+# CHECK-LE: evmwlsmianw 14, 22, 19 # encoding: [0xc9,0x9d,0xd6,0x11]
+ evmwlsmianw %r14, %r22, %r19
+# CHECK-BE: evmwlssiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x41]
+# CHECK-LE: evmwlssiaaw 14, 22, 19 # encoding: [0x41,0x9d,0xd6,0x11]
+ evmwlssiaaw %r14, %r22, %r19
+# CHECK-BE: evmwlssianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc1]
+# CHECK-LE: evmwlssianw 14, 22, 19 # encoding: [0xc1,0x9d,0xd6,0x11]
+ evmwlssianw %r14, %r22, %r19
+# CHECK-BE: evmwlumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x48]
+# CHECK-LE: evmwlumi 14, 22, 19 # encoding: [0x48,0x9c,0xd6,0x11]
+ evmwlumi %r14, %r22, %r19
+# CHECK-BE: evmwlumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x68]
+# CHECK-LE: evmwlumia 14, 22, 19 # encoding: [0x68,0x9c,0xd6,0x11]
+ evmwlumia %r14, %r22, %r19
+# CHECK-BE: evmwlumiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x48]
+# CHECK-LE: evmwlumiaaw 14, 22, 19 # encoding: [0x48,0x9d,0xd6,0x11]
+ evmwlumiaaw %r14, %r22, %r19
+# CHECK-BE: evmwlumianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc8]
+# CHECK-LE: evmwlumianw 14, 22, 19 # encoding: [0xc8,0x9d,0xd6,0x11]
+ evmwlumianw %r14, %r22, %r19
+# CHECK-BE: evmwlusiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x40]
+# CHECK-LE: evmwlusiaaw 14, 22, 19 # encoding: [0x40,0x9d,0xd6,0x11]
+ evmwlusiaaw %r14, %r22, %r19
+# CHECK-BE: evmwlusianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc0]
+# CHECK-LE: evmwlusianw 14, 22, 19 # encoding: [0xc0,0x9d,0xd6,0x11]
+ evmwlusianw %r14, %r22, %r19
+# CHECK-BE: evmwsmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x5b]
+# CHECK-LE: evmwsmf 14, 22, 19 # encoding: [0x5b,0x9c,0xd6,0x11]
+ evmwsmf %r14, %r22, %r19
+# CHECK-BE: evmwsmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x7b]
+# CHECK-LE: evmwsmfa 14, 22, 19 # encoding: [0x7b,0x9c,0xd6,0x11]
+ evmwsmfa %r14, %r22, %r19
+# CHECK-BE: evmwsmfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x5b]
+# CHECK-LE: evmwsmfaa 14, 22, 19 # encoding: [0x5b,0x9d,0xd6,0x11]
+ evmwsmfaa %r14, %r22, %r19
+# CHECK-BE: evmwsmfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xdb]
+# CHECK-LE: evmwsmfan 14, 22, 19 # encoding: [0xdb,0x9d,0xd6,0x11]
+ evmwsmfan %r14, %r22, %r19
+# CHECK-BE: evmwsmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x59]
+# CHECK-LE: evmwsmi 14, 22, 19 # encoding: [0x59,0x9c,0xd6,0x11]
+ evmwsmi %r14, %r22, %r19
+# CHECK-BE: evmwsmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x79]
+# CHECK-LE: evmwsmia 14, 22, 19 # encoding: [0x79,0x9c,0xd6,0x11]
+ evmwsmia %r14, %r22, %r19
+# CHECK-BE: evmwsmiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x59]
+# CHECK-LE: evmwsmiaa 14, 22, 19 # encoding: [0x59,0x9d,0xd6,0x11]
+ evmwsmiaa %r14, %r22, %r19
+# CHECK-BE: evmwsmian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xd9]
+# CHECK-LE: evmwsmian 14, 22, 19 # encoding: [0xd9,0x9d,0xd6,0x11]
+ evmwsmian %r14, %r22, %r19
+# CHECK-BE: evmwssf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x53]
+# CHECK-LE: evmwssf 14, 22, 19 # encoding: [0x53,0x9c,0xd6,0x11]
+ evmwssf %r14, %r22, %r19
+# CHECK-BE: evmwssfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x73]
+# CHECK-LE: evmwssfa 14, 22, 19 # encoding: [0x73,0x9c,0xd6,0x11]
+ evmwssfa %r14, %r22, %r19
+# CHECK-BE: evmwssfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x53]
+# CHECK-LE: evmwssfaa 14, 22, 19 # encoding: [0x53,0x9d,0xd6,0x11]
+ evmwssfaa %r14, %r22, %r19
+# CHECK-BE: evmwssfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xd3]
+# CHECK-LE: evmwssfan 14, 22, 19 # encoding: [0xd3,0x9d,0xd6,0x11]
+ evmwssfan %r14, %r22, %r19
+# CHECK-BE: evmwumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x58]
+# CHECK-LE: evmwumi 14, 22, 19 # encoding: [0x58,0x9c,0xd6,0x11]
+ evmwumi %r14, %r22, %r19
+# CHECK-BE: evmwumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x78]
+# CHECK-LE: evmwumia 14, 22, 19 # encoding: [0x78,0x9c,0xd6,0x11]
+ evmwumia %r14, %r22, %r19
+# CHECK-BE: evmwumiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x58]
+# CHECK-LE: evmwumiaa 14, 22, 19 # encoding: [0x58,0x9d,0xd6,0x11]
+ evmwumiaa %r14, %r22, %r19
+# CHECK-BE: evmwumian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xd8]
+# CHECK-LE: evmwumian 14, 22, 19 # encoding: [0xd8,0x9d,0xd6,0x11]
+ evmwumian %r14, %r22, %r19
+# CHECK-BE: evnand 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x1e]
+# CHECK-LE: evnand 14, 22, 19 # encoding: [0x1e,0x9a,0xd6,0x11]
+ evnand %r14, %r22, %r19
+# CHECK-BE: evneg 14, 22 # encoding: [0x11,0xd6,0x02,0x09]
+# CHECK-LE: evneg 14, 22 # encoding: [0x09,0x02,0xd6,0x11]
+ evneg %r14, %r22
+# CHECK-BE: evnor 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x18]
+# CHECK-LE: evnor 14, 22, 19 # encoding: [0x18,0x9a,0xd6,0x11]
+ evnor %r14, %r22, %r19
+# CHECK-BE: evor 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x17]
+# CHECK-LE: evor 14, 22, 19 # encoding: [0x17,0x9a,0xd6,0x11]
+ evor %r14, %r22, %r19
+# CHECK-BE: evorc 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x1b]
+# CHECK-LE: evorc 14, 22, 19 # encoding: [0x1b,0x9a,0xd6,0x11]
+ evorc %r14, %r22, %r19
+# CHECK-BE: evrlwi 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x2a]
+# CHECK-LE: evrlwi 14, 29, 19 # encoding: [0x2a,0x9a,0xdd,0x11]
+ evrlwi %r14, 29, %r19
+# CHECK-BE: evrlw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x28]
+# CHECK-LE: evrlw 14, 22, 19 # encoding: [0x28,0x9a,0xd6,0x11]
+ evrlw %r14, %r22, %r19
+# CHECK-BE: evrndw 14, 22 # encoding: [0x11,0xd6,0x02,0x0c]
+# CHECK-LE: evrndw 14, 22 # encoding: [0x0c,0x02,0xd6,0x11]
+ evrndw %r14, %r22
+# CHECK-BE: evslwi 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x26]
+# CHECK-LE: evslwi 14, 29, 19 # encoding: [0x26,0x9a,0xdd,0x11]
+ evslwi %r14, 29, %r19
+# CHECK-BE: evslw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x24]
+# CHECK-LE: evslw 14, 22, 19 # encoding: [0x24,0x9a,0xd6,0x11]
+ evslw %r14, %r22, %r19
+# CHECK-BE: evsplatfi 14, -13 # encoding: [0x11,0xd3,0x02,0x2b]
+# CHECK-LE: evsplatfi 14, -13 # encoding: [0x2b,0x02,0xd3,0x11]
+ evsplatfi %r14, -13
+# CHECK-BE: evsplati 14, -13 # encoding: [0x11,0xd3,0x02,0x29]
+# CHECK-LE: evsplati 14, -13 # encoding: [0x29,0x02,0xd3,0x11]
+ evsplati %r14, -13
+# CHECK-BE: evsrwis 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x23]
+# CHECK-LE: evsrwis 14, 29, 19 # encoding: [0x23,0x9a,0xdd,0x11]
+ evsrwis %r14, 29, %r19
+# CHECK-BE: evsrwiu 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x22]
+# CHECK-LE: evsrwiu 14, 29, 19 # encoding: [0x22,0x9a,0xdd,0x11]
+ evsrwiu %r14, 29, %r19
+# CHECK-BE: evsrws 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x21]
+# CHECK-LE: evsrws 14, 22, 19 # encoding: [0x21,0x9a,0xd6,0x11]
+ evsrws %r14, %r22, %r19
+# CHECK-BE: evsrwu 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x20]
+# CHECK-LE: evsrwu 14, 22, 19 # encoding: [0x20,0x9a,0xd6,0x11]
+ evsrwu %r14, %r22, %r19
+# CHECK-BE: evstddx 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x20]
+# CHECK-LE: evstddx 14, 22, 19 # encoding: [0x20,0x9b,0xd6,0x11]
+ evstddx %r14, %r22, %r19
+# CHECK-BE: evstdhx 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x24]
+# CHECK-LE: evstdhx 14, 22, 19 # encoding: [0x24,0x9b,0xd6,0x11]
+ evstdhx %r14, %r22, %r19
+# CHECK-BE: evstdwx 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x22]
+# CHECK-LE: evstdwx 14, 22, 19 # encoding: [0x22,0x9b,0xd6,0x11]
+ evstdwx %r14, %r22, %r19
+# CHECK-BE: evstwhex 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x30]
+# CHECK-LE: evstwhex 14, 22, 19 # encoding: [0x30,0x9b,0xd6,0x11]
+ evstwhex %r14, %r22, %r19
+# CHECK-BE: evstwhox 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x34]
+# CHECK-LE: evstwhox 14, 22, 19 # encoding: [0x34,0x9b,0xd6,0x11]
+ evstwhox %r14, %r22, %r19
+# CHECK-BE: evstwwex 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x38]
+# CHECK-LE: evstwwex 14, 22, 19 # encoding: [0x38,0x9b,0xd6,0x11]
+ evstwwex %r14, %r22, %r19
+# CHECK-BE: evstwwox 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x3c]
+# CHECK-LE: evstwwox 14, 22, 19 # encoding: [0x3c,0x9b,0xd6,0x11]
+ evstwwox %r14, %r22, %r19
+# CHECK-BE: evsubfssiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc3]
+# CHECK-LE: evsubfssiaaw 14, 22 # encoding: [0xc3,0x04,0xd6,0x11]
+ evsubfssiaaw %r14, %r22
+# CHECK-BE: evsubfsmiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xcb]
+# CHECK-LE: evsubfsmiaaw 14, 22 # encoding: [0xcb,0x04,0xd6,0x11]
+ evsubfsmiaaw %r14, %r22
+# CHECK-BE: evsubfumiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xca]
+# CHECK-LE: evsubfumiaaw 14, 22 # encoding: [0xca,0x04,0xd6,0x11]
+ evsubfumiaaw %r14, %r22
+# CHECK-BE: evsubfusiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc2]
+# CHECK-LE: evsubfusiaaw 14, 22 # encoding: [0xc2,0x04,0xd6,0x11]
+ evsubfusiaaw %r14, %r22
+# CHECK-BE: evsubfw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x04]
+# CHECK-LE: evsubfw 14, 22, 19 # encoding: [0x04,0x9a,0xd6,0x11]
+ evsubfw %r14, %r22, %r19
+# CHECK-BE: evsubifw 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x06]
+# CHECK-LE: evsubifw 14, 29, 19 # encoding: [0x06,0x9a,0xdd,0x11]
+ evsubifw %r14, 29, %r19
+# CHECK-BE: evxor 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x16]
+# CHECK-LE: evxor 14, 22, 19 # encoding: [0x16,0x9a,0xd6,0x11]
+ evxor %r14, %r22, %r19
+
+# CHECK-BE: evldd 14, 0(27) # encoding: [0x11,0xdb,0x03,0x01]
+# CHECK-LE: evldd 14, 0(27) # encoding: [0x01,0x03,0xdb,0x11]
+ evldd %r14, 0(%r27)
+# CHECK-BE: evldd 14, 248(27) # encoding: [0x11,0xdb,0xfb,0x01]
+# CHECK-LE: evldd 14, 248(27) # encoding: [0x01,0xfb,0xdb,0x11]
+ evldd %r14, 248(%r27)
+# CHECK-BE: evldd 14, 248(9) # encoding: [0x11,0xc9,0xfb,0x01]
+# CHECK-LE: evldd 14, 248(9) # encoding: [0x01,0xfb,0xc9,0x11]
+ evldd %r14, 248(%r9)
+# CHECK-BE: evldw 14, 0(27) # encoding: [0x11,0xdb,0x03,0x03]
+# CHECK-LE: evldw 14, 0(27) # encoding: [0x03,0x03,0xdb,0x11]
+ evldw %r14, 0(%r27)
+# CHECK-BE: evldw 14, 248(27) # encoding: [0x11,0xdb,0xfb,0x03]
+# CHECK-LE: evldw 14, 248(27) # encoding: [0x03,0xfb,0xdb,0x11]
+ evldw %r14, 248(%r27)
+# CHECK-BE: evldw 14, 248(9) # encoding: [0x11,0xc9,0xfb,0x03]
+# CHECK-LE: evldw 14, 248(9) # encoding: [0x03,0xfb,0xc9,0x11]
+ evldw %r14, 248(%r9)
+# CHECK-BE: evldh 14, 0(27) # encoding: [0x11,0xdb,0x03,0x05]
+# CHECK-LE: evldh 14, 0(27) # encoding: [0x05,0x03,0xdb,0x11]
+ evldh %r14, 0(%r27)
+# CHECK-BE: evldh 14, 248(27) # encoding: [0x11,0xdb,0xfb,0x05]
+# CHECK-LE: evldh 14, 248(27) # encoding: [0x05,0xfb,0xdb,0x11]
+ evldh %r14, 248(%r27)
+# CHECK-BE: evldh 14, 248(9) # encoding: [0x11,0xc9,0xfb,0x05]
+# CHECK-LE: evldh 14, 248(9) # encoding: [0x05,0xfb,0xc9,0x11]
+ evldh %r14, 248(%r9)
+# CHECK-BE: evlhhesplat 14, 0(27) # encoding: [0x11,0xdb,0x03,0x09]
+# CHECK-LE: evlhhesplat 14, 0(27) # encoding: [0x09,0x03,0xdb,0x11]
+ evlhhesplat %r14, 0(%r27)
+# CHECK-BE: evlhhousplat 14, 0(27) # encoding: [0x11,0xdb,0x03,0x0d]
+# CHECK-LE: evlhhousplat 14, 0(27) # encoding: [0x0d,0x03,0xdb,0x11]
+ evlhhousplat %r14, 0(%r27)
+# CHECK-BE: evlhhousplat 14, 62(27) # encoding: [0x11,0xdb,0xfb,0x0d]
+# CHECK-LE: evlhhousplat 14, 62(27) # encoding: [0x0d,0xfb,0xdb,0x11]
+ evlhhousplat %r14, 62(%r27)
+# CHECK-BE: evlhhousplat 14, 62(9) # encoding: [0x11,0xc9,0xfb,0x0d]
+# CHECK-LE: evlhhousplat 14, 62(9) # encoding: [0x0d,0xfb,0xc9,0x11]
+ evlhhousplat %r14, 62(%r9)
+# CHECK-BE: evlhhossplat 14, 0(27) # encoding: [0x11,0xdb,0x03,0x0f]
+# CHECK-LE: evlhhossplat 14, 0(27) # encoding: [0x0f,0x03,0xdb,0x11]
+ evlhhossplat %r14, 0(%r27)
+# CHECK-BE: evlhhossplat 14, 62(27) # encoding: [0x11,0xdb,0xfb,0x0f]
+# CHECK-LE: evlhhossplat 14, 62(27) # encoding: [0x0f,0xfb,0xdb,0x11]
+ evlhhossplat %r14, 62(%r27)
+# CHECK-BE: evlhhossplat 14, 62(9) # encoding: [0x11,0xc9,0xfb,0x0f]
+# CHECK-LE: evlhhossplat 14, 62(9) # encoding: [0x0f,0xfb,0xc9,0x11]
+ evlhhossplat %r14, 62(%r9)
+# CHECK-BE: evlwhe 14, 0(27) # encoding: [0x11,0xdb,0x03,0x11]
+# CHECK-LE: evlwhe 14, 0(27) # encoding: [0x11,0x03,0xdb,0x11]
+ evlwhe %r14, 0(%r27)
+# CHECK-BE: evlwhe 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x11]
+# CHECK-LE: evlwhe 14, 124(27) # encoding: [0x11,0xfb,0xdb,0x11]
+ evlwhe %r14, 124(%r27)
+# CHECK-BE: evlwhe 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x11]
+# CHECK-LE: evlwhe 14, 124(9) # encoding: [0x11,0xfb,0xc9,0x11]
+ evlwhe %r14, 124(%r9)
+# CHECK-BE: evlwhou 14, 0(27) # encoding: [0x11,0xdb,0x03,0x15]
+# CHECK-LE: evlwhou 14, 0(27) # encoding: [0x15,0x03,0xdb,0x11]
+ evlwhou %r14, 0(%r27)
+# CHECK-BE: evlwhou 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x15]
+# CHECK-LE: evlwhou 14, 124(27) # encoding: [0x15,0xfb,0xdb,0x11]
+ evlwhou %r14, 124(%r27)
+# CHECK-BE: evlwhou 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x15]
+# CHECK-LE: evlwhou 14, 124(9) # encoding: [0x15,0xfb,0xc9,0x11]
+ evlwhou %r14, 124(%r9)
+# CHECK-BE: evlwhos 14, 0(27) # encoding: [0x11,0xdb,0x03,0x17]
+# CHECK-LE: evlwhos 14, 0(27) # encoding: [0x17,0x03,0xdb,0x11]
+ evlwhos %r14, 0(%r27)
+# CHECK-BE: evlwhos 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x17]
+# CHECK-LE: evlwhos 14, 124(27) # encoding: [0x17,0xfb,0xdb,0x11]
+ evlwhos %r14, 124(%r27)
+# CHECK-BE: evlwhos 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x17]
+# CHECK-LE: evlwhos 14, 124(9) # encoding: [0x17,0xfb,0xc9,0x11]
+ evlwhos %r14, 124(%r9)
+# CHECK-BE: evlwwsplat 14, 0(27) # encoding: [0x11,0xdb,0x03,0x19]
+# CHECK-LE: evlwwsplat 14, 0(27) # encoding: [0x19,0x03,0xdb,0x11]
+ evlwwsplat %r14, 0(%r27)
+# CHECK-BE: evlwwsplat 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x19]
+# CHECK-LE: evlwwsplat 14, 124(27) # encoding: [0x19,0xfb,0xdb,0x11]
+ evlwwsplat %r14, 124(%r27)
+# CHECK-BE: evlwwsplat 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x19]
+# CHECK-LE: evlwwsplat 14, 124(9) # encoding: [0x19,0xfb,0xc9,0x11]
+ evlwwsplat %r14, 124(%r9)
+# CHECK-BE: evlwhsplat 14, 0(27) # encoding: [0x11,0xdb,0x03,0x1d]
+# CHECK-LE: evlwhsplat 14, 0(27) # encoding: [0x1d,0x03,0xdb,0x11]
+ evlwhsplat %r14, 0(%r27)
+# CHECK-BE: evlwhsplat 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x1d]
+# CHECK-LE: evlwhsplat 14, 124(27) # encoding: [0x1d,0xfb,0xdb,0x11]
+ evlwhsplat %r14, 124(%r27)
+# CHECK-BE: evlwhsplat 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x1d]
+# CHECK-LE: evlwhsplat 14, 124(9) # encoding: [0x1d,0xfb,0xc9,0x11]
+ evlwhsplat %r14, 124(%r9)
+# CHECK-BE: evstdd 14, 0(27) # encoding: [0x11,0xdb,0x03,0x21]
+# CHECK-LE: evstdd 14, 0(27) # encoding: [0x21,0x03,0xdb,0x11]
+ evstdd %r14, 0(%r27)
+# CHECK-BE: evstdd 14, 248(27) # encoding: [0x11,0xdb,0xfb,0x21]
+# CHECK-LE: evstdd 14, 248(27) # encoding: [0x21,0xfb,0xdb,0x11]
+ evstdd %r14, 248(%r27)
+# CHECK-BE: evstdd 14, 248(9) # encoding: [0x11,0xc9,0xfb,0x21]
+# CHECK-LE: evstdd 14, 248(9) # encoding: [0x21,0xfb,0xc9,0x11]
+ evstdd %r14, 248(%r9)
+# CHECK-BE: evstdh 14, 0(27) # encoding: [0x11,0xdb,0x03,0x25]
+# CHECK-LE: evstdh 14, 0(27) # encoding: [0x25,0x03,0xdb,0x11]
+ evstdh %r14, 0(%r27)
+# CHECK-BE: evstdh 14, 248(27) # encoding: [0x11,0xdb,0xfb,0x25]
+# CHECK-LE: evstdh 14, 248(27) # encoding: [0x25,0xfb,0xdb,0x11]
+ evstdh %r14, 248(%r27)
+# CHECK-BE: evstdh 14, 248(9) # encoding: [0x11,0xc9,0xfb,0x25]
+# CHECK-LE: evstdh 14, 248(9) # encoding: [0x25,0xfb,0xc9,0x11]
+ evstdh %r14, 248(%r9)
+# CHECK-BE: evstdw 14, 0(27) # encoding: [0x11,0xdb,0x03,0x23]
+# CHECK-LE: evstdw 14, 0(27) # encoding: [0x23,0x03,0xdb,0x11]
+ evstdw %r14, 0(%r27)
+# CHECK-BE: evstdw 14, 248(27) # encoding: [0x11,0xdb,0xfb,0x23]
+# CHECK-LE: evstdw 14, 248(27) # encoding: [0x23,0xfb,0xdb,0x11]
+ evstdw %r14, 248(%r27)
+# CHECK-BE: evstdw 14, 248(9) # encoding: [0x11,0xc9,0xfb,0x23]
+# CHECK-LE: evstdw 14, 248(9) # encoding: [0x23,0xfb,0xc9,0x11]
+ evstdw %r14, 248(%r9)
+# CHECK-BE: evstwhe 14, 0(27) # encoding: [0x11,0xdb,0x03,0x31]
+# CHECK-LE: evstwhe 14, 0(27) # encoding: [0x31,0x03,0xdb,0x11]
+ evstwhe %r14, 0(%r27)
+# CHECK-BE: evstwhe 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x31]
+# CHECK-LE: evstwhe 14, 124(27) # encoding: [0x31,0xfb,0xdb,0x11]
+ evstwhe %r14, 124(%r27)
+# CHECK-BE: evstwhe 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x31]
+# CHECK-LE: evstwhe 14, 124(9) # encoding: [0x31,0xfb,0xc9,0x11]
+ evstwhe %r14, 124(%r9)
+# CHECK-BE: evstwho 14, 0(27) # encoding: [0x11,0xdb,0x03,0x35]
+# CHECK-LE: evstwho 14, 0(27) # encoding: [0x35,0x03,0xdb,0x11]
+ evstwho %r14, 0(%r27)
+# CHECK-BE: evstwho 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x35]
+# CHECK-LE: evstwho 14, 124(27) # encoding: [0x35,0xfb,0xdb,0x11]
+ evstwho %r14, 124(%r27)
+# CHECK-BE: evstwho 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x35]
+# CHECK-LE: evstwho 14, 124(9) # encoding: [0x35,0xfb,0xc9,0x11]
+ evstwho %r14, 124(%r9)
+# CHECK-BE: evstwwe 14, 0(27) # encoding: [0x11,0xdb,0x03,0x39]
+# CHECK-LE: evstwwe 14, 0(27) # encoding: [0x39,0x03,0xdb,0x11]
+ evstwwe %r14, 0(%r27)
+# CHECK-BE: evstwwe 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x39]
+# CHECK-LE: evstwwe 14, 124(27) # encoding: [0x39,0xfb,0xdb,0x11]
+ evstwwe %r14, 124(%r27)
+# CHECK-BE: evstwwe 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x39]
+# CHECK-LE: evstwwe 14, 124(9) # encoding: [0x39,0xfb,0xc9,0x11]
+ evstwwe %r14, 124(%r9)
+# CHECK-BE: evstwwo 14, 0(27) # encoding: [0x11,0xdb,0x03,0x3d]
+# CHECK-LE: evstwwo 14, 0(27) # encoding: [0x3d,0x03,0xdb,0x11]
+ evstwwo %r14, 0(%r27)
+# CHECK-BE: evstwwo 14, 124(27) # encoding: [0x11,0xdb,0xfb,0x3d]
+# CHECK-LE: evstwwo 14, 124(27) # encoding: [0x3d,0xfb,0xdb,0x11]
+ evstwwo %r14, 124(%r27)
+# CHECK-BE: evstwwo 14, 124(9) # encoding: [0x11,0xc9,0xfb,0x3d]
+# CHECK-LE: evstwwo 14, 124(9) # encoding: [0x3d,0xfb,0xc9,0x11]
+ evstwwo %r14, 124(%r9)
diff --git a/test/MC/PowerPC/ppc64-encoding.s b/test/MC/PowerPC/ppc64-encoding.s
index 4c3530d9c6..d483f9df6f 100644
--- a/test/MC/PowerPC/ppc64-encoding.s
+++ b/test/MC/PowerPC/ppc64-encoding.s
@@ -767,3 +767,17 @@
# CHECK-LE: mfocrf 16, 8 # encoding: [0x26,0x80,0x10,0x7e]
mfocrf 16, 8
+# Move to/from segment register
+# CHECK-BE: mtsr 12, 10 # encoding: [0x7d,0x4c,0x01,0xa4]
+# CHECK-LE: mtsr 12, 10 # encoding: [0xa4,0x01,0x4c,0x7d]
+ mtsr 12,%r10
+# CHECK-BE: mfsr 10, 12 # encoding: [0x7d,0x4c,0x04,0xa6]
+# CHECK-LE: mfsr 10, 12 # encoding: [0xa6,0x04,0x4c,0x7d]
+ mfsr %r10,12
+
+# CHECK-BE: mtsrin 10, 12 # encoding: [0x7d,0x40,0x61,0xe4]
+# CHECK-LE: mtsrin 10, 12 # encoding: [0xe4,0x61,0x40,0x7d]
+ mtsrin %r10,%r12
+# CHECK-BE: mfsrin 10, 12 # encoding: [0x7d,0x40,0x65,0x26]
+# CHECK-LE: mfsrin 10, 12 # encoding: [0x26,0x65,0x40,0x7d]
+ mfsrin %r10,%r12
diff --git a/test/MC/PowerPC/ppc64-fixup-apply.s b/test/MC/PowerPC/ppc64-fixup-apply.s
index 1693405247..f98b46d6b1 100644
--- a/test/MC/PowerPC/ppc64-fixup-apply.s
+++ b/test/MC/PowerPC/ppc64-fixup-apply.s
@@ -14,19 +14,21 @@ addis 1, 1, target
.set target, 0x1234
-addi 1, 1, target2@l
-addis 1, 1, target2@ha
+subi 1, 1, -target2@l
+subis 1, 1, -target2@ha
.set target2, 0x12345678
addi 1, 1, target3-target4@l
-addis 1, 1, target3-target4@ha
+subis 1, 1, target4-target3@ha
.set target3, 0x23455678
.set target4, 0x12341234
addi 1, 1, target5+0x8000@l
addis 1, 1, target5+0x8000@ha
+ori 1, 1, target5+0x8000@l
+oris 1, 1, target5+0x8000@ha
.set target5, 0x10000001
@@ -68,7 +70,7 @@ addis 1, 1, target7@highesta
# CHECK-NEXT: ]
# CHECK-NEXT: Address: 0x0
# CHECK-NEXT: Offset:
-# CHECK-NEXT: Size: 64
+# CHECK-NEXT: Size: 72
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 0
# CHECK-NEXT: AddressAlignment: 4
@@ -78,10 +80,12 @@ addis 1, 1, target7@highesta
# 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-BE-NEXT: 0020: 60218001 64211001 38210008 3C210000
+# CHECK-LE-NEXT: 0020: 01802160 01102164 08002138 0000213C
+# CHECK-BE-NEXT: 0030: 38214321 3C214321 3821FFFF 3C211234
+# CHECK-LE-NEXT: 0030: 21432138 2143213C FFFF2138 3412213C
+# CHECK-BE-NEXT: 0040: 38210000 3C211235
+# CHECK-LE-NEXT: 0040: 00002138 3512213C
# CHECK-NEXT: )
# CHECK-NEXT: }
diff --git a/test/MC/PowerPC/ppc64-fixups.s b/test/MC/PowerPC/ppc64-fixups.s
index d3769f5258..20a70c2705 100644
--- a/test/MC/PowerPC/ppc64-fixups.s
+++ b/test/MC/PowerPC/ppc64-fixups.s
@@ -687,6 +687,18 @@ base:
# CHECK-BE: ori 1, 2, 2 # encoding: [0x60,0x41,0x00,0x02]
# CHECK-LE: ori 1, 2, 2 # encoding: [0x02,0x00,0x41,0x60]
ori 1, 2, 131071@ha
+# CHECK-BE: addi 1, 2, -1 # encoding: [0x38,0x22,0xff,0xff]
+# CHECK-LE: addi 1, 2, -1 # encoding: [0xff,0xff,0x22,0x38]
+ addi 1, 2, 131071@l
+# CHECK-BE: addi 1, 2, 1 # encoding: [0x38,0x22,0x00,0x01]
+# CHECK-LE: addi 1, 2, 1 # encoding: [0x01,0x00,0x22,0x38]
+ addi 1, 2, 131071@h
+# CHECK-BE: addi 1, 2, 2 # encoding: [0x38,0x22,0x00,0x02]
+# CHECK-LE: addi 1, 2, 2 # encoding: [0x02,0x00,0x22,0x38]
+ addi 1, 2, 131071@ha
+# CHECK-BE: addis 1, 2, -4096 # encoding: [0x3c,0x22,0xf0,0x00]
+# CHECK-LE: addis 1, 2, -4096 # encoding: [0x00,0xf0,0x22,0x3c]
+ addis 1, 2, 0xf0000000@h
# Data relocs
# llvm-mc does not show any "encoding" string for data, so we just check the relocs
diff --git a/test/MC/PowerPC/ppc64-localentry-error1.s b/test/MC/PowerPC/ppc64-localentry-error1.s
new file mode 100644
index 0000000000..e47640fbeb
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-localentry-error1.s
@@ -0,0 +1,11 @@
+
+# RUN: not llvm-mc -triple powerpc64-unknown-unknown -filetype=obj < %s 2> %t
+# RUN: FileCheck < %t %s
+# RUN: not llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj < %s 2> %t
+# RUN: FileCheck < %t %s
+
+sym:
+ .localentry sym, 123
+
+# CHECK: LLVM ERROR: .localentry expression cannot be encoded.
+
diff --git a/test/MC/PowerPC/ppc64-localentry-error2.s b/test/MC/PowerPC/ppc64-localentry-error2.s
new file mode 100644
index 0000000000..b05687fe7b
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-localentry-error2.s
@@ -0,0 +1,12 @@
+
+# RUN: not llvm-mc -triple powerpc64-unknown-unknown -filetype=obj < %s 2> %t
+# RUN: FileCheck < %t %s
+# RUN: not llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj < %s 2> %t
+# RUN: FileCheck < %t %s
+
+ .globl remote_sym
+sym:
+ .localentry sym, remote_sym
+
+# CHECK: LLVM ERROR: .localentry expression must be absolute.
+
diff --git a/test/MC/PowerPC/ppc64-localentry.s b/test/MC/PowerPC/ppc64-localentry.s
new file mode 100644
index 0000000000..6d2c120722
--- /dev/null
+++ b/test/MC/PowerPC/ppc64-localentry.s
@@ -0,0 +1,70 @@
+
+# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -h -r -symbols | FileCheck %s
+# RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
+# RUN: llvm-readobj -h -r -symbols | FileCheck %s
+
+ .type callee1, @function
+callee1:
+ nop
+ nop
+ .localentry callee1, .-callee1
+ nop
+ nop
+ .size callee1, .-callee1
+
+ .type callee2, @function
+callee2:
+ nop
+ nop
+ .size callee2, .-callee2
+
+ .type caller, @function
+caller:
+ bl callee1
+ nop
+ bl callee2
+ nop
+ .size caller, .-caller
+
+ .section .text.other
+caller_other:
+ bl callee1
+ nop
+ bl callee2
+ nop
+ .size caller_other, .-caller_other
+
+# Verify that use of .localentry implies ABI version 2
+# CHECK: ElfHeader {
+# CHECK: Flags [ (0x2)
+
+# Verify that fixups to local function symbols are performed only
+# if the target symbol does not use .localentry
+# CHECK: Relocations [
+# CHECK: Section ({{[0-9]*}}) .rela.text {
+# CHECK-NEXT: R_PPC64_REL24 callee1
+# CHECK-NEXT: }
+# CHECK-NOT: R_PPC64_REL24 callee2
+# CHECK: Section ({{[0-9]*}}) .rela.text.other {
+# CHECK-NEXT: R_PPC64_REL24 callee1
+# CHECK-NEXT: R_PPC64_REL24 .text
+# CHECK-NEXT: }
+
+# Verify that .localentry is encoded in the Other field.
+# CHECK: Symbols [
+# CHECK: Name: callee1
+# CHECK-NEXT: Value:
+# CHECK-NEXT: Size: 16
+# CHECK-NEXT: Binding: Local
+# CHECK-NEXT: Type: Function
+# CHECK-NEXT: Other: 96
+# CHECK-NEXT: Section: .text
+# CHECK: Name: callee2
+# CHECK-NEXT: Value:
+# CHECK-NEXT: Size: 8
+# CHECK-NEXT: Binding: Local
+# CHECK-NEXT: Type: Function
+# CHECK-NEXT: Other: 0
+# CHECK-NEXT: Section: .text
+
diff --git a/test/MC/PowerPC/vsx.s b/test/MC/PowerPC/vsx.s
index d292ddaf5c..b355ba37b8 100644
--- a/test/MC/PowerPC/vsx.s
+++ b/test/MC/PowerPC/vsx.s
@@ -1,27 +1,27 @@
# 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-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: lxsdx 39, 5, 31 # encoding: [0x7c,0xe5,0xfc,0x99]
+# CHECK-LE: lxsdx 39, 5, 31 # encoding: [0x99,0xfc,0xe5,0x7c]
+ lxsdx 39, 5, 31
+# CHECK-BE: lxvd2x 39, 5, 31 # encoding: [0x7c,0xe5,0xfe,0x99]
+# CHECK-LE: lxvd2x 39, 5, 31 # encoding: [0x99,0xfe,0xe5,0x7c]
+ lxvd2x 39, 5, 31
+# CHECK-BE: lxvdsx 39, 5, 31 # encoding: [0x7c,0xe5,0xfa,0x99]
+# CHECK-LE: lxvdsx 39, 5, 31 # encoding: [0x99,0xfa,0xe5,0x7c]
+ lxvdsx 39, 5, 31
+# CHECK-BE: lxvw4x 39, 5, 31 # encoding: [0x7c,0xe5,0xfe,0x19]
+# CHECK-LE: lxvw4x 39, 5, 31 # encoding: [0x19,0xfe,0xe5,0x7c]
+ lxvw4x 39, 5, 31
+# CHECK-BE: stxsdx 40, 5, 31 # encoding: [0x7d,0x05,0xfd,0x99]
+# CHECK-LE: stxsdx 40, 5, 31 # encoding: [0x99,0xfd,0x05,0x7d]
+ stxsdx 40, 5, 31
+# CHECK-BE: stxvd2x 40, 5, 31 # encoding: [0x7d,0x05,0xff,0x99]
+# CHECK-LE: stxvd2x 40, 5, 31 # encoding: [0x99,0xff,0x05,0x7d]
+ stxvd2x 40, 5, 31
+# CHECK-BE: stxvw4x 40, 5, 31 # encoding: [0x7d,0x05,0xff,0x19]
+# CHECK-LE: stxvw4x 40, 5, 31 # encoding: [0x19,0xff,0x05,0x7d]
+ stxvw4x 40, 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