summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/MC')
-rw-r--r--llvm/test/MC/Disassembler/Mips/octeonp/valid-el.txt33
-rw-r--r--llvm/test/MC/Disassembler/Mips/octeonp/valid.txt33
-rw-r--r--llvm/test/MC/Mips/cnmipsp/invalid.s10
-rw-r--r--llvm/test/MC/Mips/cnmipsp/valid.s123
-rw-r--r--llvm/test/MC/Mips/elf_eflags.s6
-rw-r--r--llvm/test/MC/Mips/elf_header.s4
-rw-r--r--llvm/test/MC/Mips/macro-saa.s43
-rw-r--r--llvm/test/MC/Mips/macro-saad.s28
8 files changed, 280 insertions, 0 deletions
diff --git a/llvm/test/MC/Disassembler/Mips/octeonp/valid-el.txt b/llvm/test/MC/Disassembler/Mips/octeonp/valid-el.txt
new file mode 100644
index 00000000000..1863a212faf
--- /dev/null
+++ b/llvm/test/MC/Disassembler/Mips/octeonp/valid-el.txt
@@ -0,0 +1,33 @@
+# RUN: llvm-mc %s -disassemble -triple=mips64el-unknown-linux -mcpu=octeon+ \
+# RUN: | FileCheck %s
+
+0x00 0x00 0x76 0xca # CHECK: bbit0 $19, 22, 4
+0x28 0x48 0xc7 0x70 # CHECK: baddu $9, $6, $7
+0x00 0x00 0x0a 0xd9 # CHECK: bbit032 $8, 10, 4
+0x00 0x00 0x7f 0xe8 # CHECK: bbit1 $3, 31, 4
+0x00 0x00 0x0a 0xfb # CHECK: bbit132 $24, 10, 4
+0x72 0xec 0x29 0x71 # CHECK: cins $9, $9, 17, 29
+0xb3 0x44 0x4f 0x70 # CHECK: cins32 $15, $2, 18, 8
+0x03 0x48 0xc7 0x70 # CHECK: dmul $9, $6, $7
+0x40 0x00 0x22 0x48 # CHECK: dmfc2 $2, 64
+0x47 0x40 0xa2 0x48 # CHECK: dmtc2 $2, 16455
+0x2d 0x48 0xc0 0x70 # CHECK: dpop $9, $6
+0x7a 0x34 0xef 0x71 # CHECK: exts $15, $15, 17, 6
+0xbb 0x42 0xa4 0x71 # CHECK: exts32 $4, $13, 10, 8
+0x08 0x00 0xe0 0x71 # CHECK: mtm0 $15
+0x0c 0x00 0x00 0x72 # CHECK: mtm1 $16
+0x0d 0x00 0x20 0x72 # CHECK: mtm2 $17
+0x09 0x00 0x40 0x72 # CHECK: mtp0 $18
+0x0a 0x00 0x60 0x72 # CHECK: mtp1 $19
+0x0b 0x00 0x80 0x72 # CHECK: mtp2 $20
+0x2c 0x48 0xc0 0x70 # CHECK: pop $9, $6
+0x18 0x00 0xa2 0x70 # CHECK: saa $2, ($5)
+0x19 0x00 0xa2 0x70 # CHECK: saad $2, ($5)
+0x2a 0xc8 0xf8 0x72 # CHECK: seq $25, $23, $24
+0xae 0x09 0x10 0x72 # CHECK: seqi $16, $16, 38
+0x2b 0xb8 0xf4 0x72 # CHECK: sne $23, $23, $20
+0xef 0xb1 0x04 0x72 # CHECK: snei $4, $16, -313
+0x8f 0x01 0x00 0x00 # CHECK: sync 6
+0x11 0xa8 0x55 0x71 # CHECK: v3mulu $21, $10, $21
+0x10 0x18 0x70 0x72 # CHECK: vmm0 $3, $19, $16
+0x0f 0xd8 0x66 0x73 # CHECK: vmulu $27, $27, $6
diff --git a/llvm/test/MC/Disassembler/Mips/octeonp/valid.txt b/llvm/test/MC/Disassembler/Mips/octeonp/valid.txt
new file mode 100644
index 00000000000..e0c88db9b19
--- /dev/null
+++ b/llvm/test/MC/Disassembler/Mips/octeonp/valid.txt
@@ -0,0 +1,33 @@
+# RUN: llvm-mc %s -disassemble -triple=mips64-unknown-linux -mcpu=octeon+ \
+# RUN: | FileCheck %s
+
+0xca 0x76 0x00 0x00 # CHECK: bbit0 $19, 22, 4
+0x70 0xc7 0x48 0x28 # CHECK: baddu $9, $6, $7
+0xd9 0x0a 0x00 0x00 # CHECK: bbit032 $8, 10, 4
+0xe8 0x7f 0x00 0x00 # CHECK: bbit1 $3, 31, 4
+0xfb 0x0a 0x00 0x00 # CHECK: bbit132 $24, 10, 4
+0x71 0x29 0xec 0x72 # CHECK: cins $9, $9, 17, 29
+0x70 0x4f 0x44 0xb3 # CHECK: cins32 $15, $2, 18, 8
+0x70 0xc7 0x48 0x03 # CHECK: dmul $9, $6, $7
+0x48 0x22 0x00 0x40 # CHECK: dmfc2 $2, 64
+0x48 0xa2 0x40 0x47 # CHECK: dmtc2 $2, 16455
+0x70 0xc0 0x48 0x2d # CHECK: dpop $9, $6
+0x71 0xef 0x34 0x7a # CHECK: exts $15, $15, 17, 6
+0x71 0xa4 0x42 0xbb # CHECK: exts32 $4, $13, 10, 8
+0x71 0xe0 0x00 0x08 # CHECK: mtm0 $15
+0x72 0x00 0x00 0x0c # CHECK: mtm1 $16
+0x72 0x20 0x00 0x0d # CHECK: mtm2 $17
+0x72 0x40 0x00 0x09 # CHECK: mtp0 $18
+0x72 0x60 0x00 0x0a # CHECK: mtp1 $19
+0x72 0x80 0x00 0x0b # CHECK: mtp2 $20
+0x70 0xc0 0x48 0x2c # CHECK: pop $9, $6
+0x70 0xa2 0x00 0x18 # CHECK: saa $2, ($5)
+0x70 0xa2 0x00 0x19 # CHECK: saad $2, ($5)
+0x72 0xf8 0xc8 0x2a # CHECK: seq $25, $23, $24
+0x72 0x10 0x09 0xae # CHECK: seqi $16, $16, 38
+0x72 0xf4 0xb8 0x2b # CHECK: sne $23, $23, $20
+0x72 0x04 0xb1 0xef # CHECK: snei $4, $16, -313
+0x00 0x00 0x01 0x8f # CHECK: sync 6
+0x71 0x55 0xa8 0x11 # CHECK: v3mulu $21, $10, $21
+0x72 0x70 0x18 0x10 # CHECK: vmm0 $3, $19, $16
+0x73 0x66 0xd8 0x0f # CHECK: vmulu $27, $27, $6
diff --git a/llvm/test/MC/Mips/cnmipsp/invalid.s b/llvm/test/MC/Mips/cnmipsp/invalid.s
new file mode 100644
index 00000000000..d6af1c1d4c5
--- /dev/null
+++ b/llvm/test/MC/Mips/cnmipsp/invalid.s
@@ -0,0 +1,10 @@
+# Instructions that are invalid.
+#
+# RUN: not llvm-mc %s -triple=mips64-unknown-linux -mcpu=octeon+ 2>%t1
+# RUN: FileCheck %s < %t1
+
+saa $2 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
+saa $2, $5, $6 # CHECK: :[[@LINE]]:12: error: unexpected token in argument list
+
+saad $2 # CHECK: :[[@LINE]]:1: error: too few operands for instruction
+saad $2, $5, $6 # CHECK: :[[@LINE]]:12: error: unexpected token in argument list
diff --git a/llvm/test/MC/Mips/cnmipsp/valid.s b/llvm/test/MC/Mips/cnmipsp/valid.s
new file mode 100644
index 00000000000..2e1326181ff
--- /dev/null
+++ b/llvm/test/MC/Mips/cnmipsp/valid.s
@@ -0,0 +1,123 @@
+# RUN: llvm-mc %s -triple=mips64-unknown-linux -show-encoding -mcpu=octeon+ \
+# RUN: | FileCheck %s
+
+# CHECK: baddu $9, $6, $7 # encoding: [0x70,0xc7,0x48,0x28]
+# CHECK: baddu $17, $18, $19 # encoding: [0x72,0x53,0x88,0x28]
+# CHECK: baddu $2, $2, $3 # encoding: [0x70,0x43,0x10,0x28]
+# CHECK: bbit0 $19, 22, foo # encoding: [0xca,0x76,A,A]
+# CHECK: bbit032 $fp, 11, foo # encoding: [0xdb,0xcb,A,A]
+# CHECK: bbit032 $8, 10, foo # encoding: [0xd9,0x0a,A,A]
+# CHECK: bbit1 $3, 31, foo # encoding: [0xe8,0x7f,A,A]
+# CHECK: bbit132 $24, 10, foo # encoding: [0xfb,0x0a,A,A]
+# CHECK: bbit132 $14, 14, foo # encoding: [0xf9,0xce,A,A]
+# CHECK: cins $25, $10, 22, 2 # encoding: [0x71,0x59,0x15,0xb2]
+# CHECK: cins $9, $9, 17, 29 # encoding: [0x71,0x29,0xec,0x72]
+# CHECK: cins32 $15, $2, 18, 8 # encoding: [0x70,0x4f,0x44,0xb3]
+# CHECK: cins32 $22, $22, 9, 22 # encoding: [0x72,0xd6,0xb2,0x73]
+# CHECK: cins32 $24, $ra, 0, 31 # encoding: [0x73,0xf8,0xf8,0x33]
+# CHECK: cins32 $15, $15, 5, 5 # encoding: [0x71,0xef,0x29,0x73]
+# CHECK: dmtc2 $2, 16455 # encoding: [0x48,0xa2,0x40,0x47]
+# CHECK: dmfc2 $2, 64 # encoding: [0x48,0x22,0x00,0x40]
+# CHECK: dmul $9, $6, $7 # encoding: [0x70,0xc7,0x48,0x03]
+# CHECK: dmul $19, $24, $25 # encoding: [0x73,0x19,0x98,0x03]
+# CHECK: dmul $9, $9, $6 # encoding: [0x71,0x26,0x48,0x03]
+# CHECK: dmul $21, $21, $25 # encoding: [0x72,0xb9,0xa8,0x03]
+# CHECK: dpop $9, $6 # encoding: [0x70,0xc0,0x48,0x2d]
+# CHECK: dpop $15, $22 # encoding: [0x72,0xc0,0x78,0x2d]
+# CHECK: dpop $12, $12 # encoding: [0x71,0x80,0x60,0x2d]
+# CHECK: exts $4, $25, 27, 15 # encoding: [0x73,0x24,0x7e,0xfa]
+# CHECK: exts $15, $15, 17, 6 # encoding: [0x71,0xef,0x34,0x7a]
+# CHECK: exts32 $4, $13, 10, 8 # encoding: [0x71,0xa4,0x42,0xbb]
+# CHECK: exts32 $15, $15, 11, 20 # encoding: [0x71,0xef,0xa2,0xfb]
+# CHECK: exts32 $7, $4, 22, 9 # encoding: [0x70,0x87,0x4d,0xbb]
+# CHECK: exts32 $25, $25, 5, 25 # encoding: [0x73,0x39,0xc9,0x7b]
+# CHECK: mtm0 $15 # encoding: [0x71,0xe0,0x00,0x08]
+# CHECK: mtm1 $16 # encoding: [0x72,0x00,0x00,0x0c]
+# CHECK: mtm2 $17 # encoding: [0x72,0x20,0x00,0x0d]
+# CHECK: mtp0 $18 # encoding: [0x72,0x40,0x00,0x09]
+# CHECK: mtp1 $19 # encoding: [0x72,0x60,0x00,0x0a]
+# CHECK: mtp2 $20 # encoding: [0x72,0x80,0x00,0x0b]
+# CHECK: pop $9, $6 # encoding: [0x70,0xc0,0x48,0x2c]
+# CHECK: pop $8, $19 # encoding: [0x72,0x60,0x40,0x2c]
+# CHECK: pop $2, $2 # encoding: [0x70,0x40,0x10,0x2c]
+# CHECK: saa $2, ($5) # encoding: [0x70,0xa2,0x00,0x18]
+# CHECK: saad $2, ($5) # encoding: [0x70,0xa2,0x00,0x19]
+# CHECK: seq $25, $23, $24 # encoding: [0x72,0xf8,0xc8,0x2a]
+# CHECK: seq $6, $6, $24 # encoding: [0x70,0xd8,0x30,0x2a]
+# CHECK: seqi $17, $15, -512 # encoding: [0x71,0xf1,0x80,0x2e]
+# CHECK: seqi $16, $16, 38 # encoding: [0x72,0x10,0x09,0xae]
+# CHECK: sne $25, $23, $24 # encoding: [0x72,0xf8,0xc8,0x2b]
+# CHECK: sne $23, $23, $20 # encoding: [0x72,0xf4,0xb8,0x2b]
+# CHECK: snei $4, $16, -313 # encoding: [0x72,0x04,0xb1,0xef]
+# CHECK: snei $26, $26, 511 # encoding: [0x73,0x5a,0x7f,0xef]
+# CHECK: sync 2 # encoding: [0x00,0x00,0x00,0x8f]
+# CHECK: sync 6 # encoding: [0x00,0x00,0x01,0x8f]
+# CHECK: sync 4 # encoding: [0x00,0x00,0x01,0x0f]
+# CHECK: sync 5 # encoding: [0x00,0x00,0x01,0x4f]
+# CHECK: v3mulu $21, $10, $21 # encoding: [0x71,0x55,0xa8,0x11]
+# CHECK: v3mulu $20, $20, $10 # encoding: [0x72,0x8a,0xa0,0x11]
+# CHECK: vmm0 $3, $19, $16 # encoding: [0x72,0x70,0x18,0x10]
+# CHECK: vmm0 $ra, $ra, $9 # encoding: [0x73,0xe9,0xf8,0x10]
+# CHECK: vmulu $sp, $10, $17 # encoding: [0x71,0x51,0xe8,0x0f]
+# CHECK: vmulu $27, $27, $6 # encoding: [0x73,0x66,0xd8,0x0f]
+
+foo:
+ baddu $9, $6, $7
+ baddu $17, $18, $19
+ baddu $2, $3
+ bbit0 $19, 22, foo
+ bbit032 $30, 11, foo
+ bbit0 $8, 42, foo
+ bbit1 $3, 31, foo
+ bbit132 $24, 10, foo
+ bbit1 $14, 46, foo
+ cins $25, $10, 22, 2
+ cins $9, 17, 29
+ cins32 $15, $2, 18, 8
+ cins32 $22, 9, 22
+ cins $24, $31, 32, 31
+ cins $15, 37, 5
+ dmtc2 $2, 0x4047
+ dmfc2 $2, 0x0040
+ dmul $9, $6, $7
+ dmul $19, $24, $25
+ dmul $9, $6
+ dmul $21, $25
+ dpop $9, $6
+ dpop $15, $22
+ dpop $12
+ exts $4, $25, 27, 15
+ exts $15, 17, 6
+ exts32 $4, $13, 10, 8
+ exts32 $15, 11, 20
+ exts $7, $4, 54, 9
+ exts $25, 37, 25
+ mtm0 $15
+ mtm1 $16
+ mtm2 $17
+ mtp0 $18
+ mtp1 $19
+ mtp2 $20
+ pop $9, $6
+ pop $8, $19
+ pop $2
+ saa $2, ($5)
+ saad $2, ($5)
+ seq $25, $23, $24
+ seq $6, $24
+ seqi $17, $15, -512
+ seqi $16, 38
+ sne $25, $23, $24
+ sne $23, $20
+ snei $4, $16, -313
+ snei $26, 511
+ synciobdma
+ syncs
+ syncw
+ syncws
+ v3mulu $21, $10, $21
+ v3mulu $20, $10
+ vmm0 $3, $19, $16
+ vmm0 $31, $9
+ vmulu $29, $10, $17
+ vmulu $27, $6
diff --git a/llvm/test/MC/Mips/elf_eflags.s b/llvm/test/MC/Mips/elf_eflags.s
index b53528c967c..161f18562a8 100644
--- a/llvm/test/MC/Mips/elf_eflags.s
+++ b/llvm/test/MC/Mips/elf_eflags.s
@@ -193,7 +193,13 @@
# MIPS64EL-MIPS64-NAN2008-PIC: Flags [ (0x60000406)
# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=octeon -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-OCTEON %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux \
+# RUN: -mcpu=octeon+ -target-abi n64 %s -o - \
+# RUN: | llvm-readobj -h | FileCheck --check-prefix=MIPSEL-OCTEON %s
# MIPSEL-OCTEON: Flags [ (0x808B0004)
# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -position-independent -mcpu=octeon -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-OCTEON-PIC %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux \
+# RUN: -position-independent -mcpu=octeon+ -target-abi n64 %s -o - \
+# RUN: | llvm-readobj -h | FileCheck --check-prefix=MIPSEL-OCTEON-PIC %s
# MIPSEL-OCTEON-PIC: Flags [ (0x808B0006)
diff --git a/llvm/test/MC/Mips/elf_header.s b/llvm/test/MC/Mips/elf_header.s
index a1b0669f766..14136f3112e 100644
--- a/llvm/test/MC/Mips/elf_header.s
+++ b/llvm/test/MC/Mips/elf_header.s
@@ -86,6 +86,10 @@
# RUN: llvm-mc -filetype=obj -triple mips64el-unknown-linux -mcpu=mips64r6 %s -o - | llvm-readobj -h | FileCheck --check-prefixes=ALL,ELF64,LE,N64,NAN2008,MIPS64R6 %s
# RUN: llvm-mc -filetype=obj -triple mips64el-unknown-linux -mcpu=octeon -target-abi=n64 %s -o - | llvm-readobj -h | FileCheck --check-prefixes=ALL,ELF64,LE,N64,NAN1985,OCTEON %s
+# RUN: llvm-mc -filetype=obj -triple mips64el-unknown-linux \
+# RUN: -mcpu=octeon+ -target-abi=n64 %s -o - \
+# RUN: | llvm-readobj -h \
+# RUN: | FileCheck --check-prefixes=ALL,ELF64,LE,N64,NAN1985,OCTEON %s
# ALL: ElfHeader {
# ALL-NEXT: Ident {
diff --git a/llvm/test/MC/Mips/macro-saa.s b/llvm/test/MC/Mips/macro-saa.s
new file mode 100644
index 00000000000..52bc2acb288
--- /dev/null
+++ b/llvm/test/MC/Mips/macro-saa.s
@@ -0,0 +1,43 @@
+# RUN: llvm-mc -triple=mips -show-encoding -mcpu=octeon+ %s \
+# RUN: | FileCheck -check-prefix=MIPS32 %s
+# RUN: llvm-mc -triple=mips64 -show-encoding -mcpu=octeon+ %s \
+# RUN: | FileCheck -check-prefix=MIPS64 %s
+
+saa $2, 8($5)
+
+# MIPS32: addiu $1, $5, 8 # encoding: [0x24,0xa1,0x00,0x08]
+# MIPS32-NEXT: saa $2, ($1) # encoding: [0x70,0x22,0x00,0x18]
+
+# MIPS64: daddiu $1, $5, 8 # encoding: [0x64,0xa1,0x00,0x08]
+# MIPS64-NEXT: saa $2, ($1) # encoding: [0x70,0x22,0x00,0x18]
+
+saa $2, foo
+
+# MIPS32: lui $1, %hi(foo) # encoding: [0x3c,0x01,A,A]
+# MIPS32-NEXT: # fixup A - offset: 0, value: %hi(foo), kind: fixup_Mips_HI16
+# MIPS32-NEXT: addiu $1, $1, %lo(foo) # encoding: [0x24,0x21,A,A]
+# MIPS32-NEXT: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
+# MIPS32-NEXT: saa $2, ($1) # encoding: [0x70,0x22,0x00,0x18]
+
+# MIPS64: lui $1, %highest(foo) # encoding: [0x3c,0x01,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %highest(foo), kind: fixup_Mips_HIGHEST
+# MIPS64-NEXT: daddiu $1, $1, %higher(foo) # encoding: [0x64,0x21,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %higher(foo), kind: fixup_Mips_HIGHER
+# MIPS64-NEXT: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38]
+# MIPS64-NEXT: daddiu $1, $1, %hi(foo) # encoding: [0x64,0x21,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %hi(foo), kind: fixup_Mips_HI16
+# MIPS64-NEXT: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38]
+# MIPS64-NEXT: daddiu $1, $1, %lo(foo) # encoding: [0x64,0x21,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
+# MIPS64-NEXT: saa $2, ($1) # encoding: [0x70,0x22,0x00,0x18]
+
+.option pic2
+saa $2, foo
+
+# MIPS32: lw $1, %got(foo)($gp) # encoding: [0x8f,0x81,A,A]
+# MIPS32-NEXT: # fixup A - offset: 0, value: %got(foo), kind: fixup_Mips_GOT
+# MIPS32-NEXT: saa $2, ($1) # encoding: [0x70,0x22,0x00,0x18]
+
+# MIPS64: ld $1, %got_disp(foo)($gp) # encoding: [0xdf,0x81,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %got_disp(foo), kind: fixup_Mips_GOT_DISP
+# MIPS64-NEXT: saa $2, ($1) # encoding: [0x70,0x22,0x00,0x18]
diff --git a/llvm/test/MC/Mips/macro-saad.s b/llvm/test/MC/Mips/macro-saad.s
new file mode 100644
index 00000000000..e9540d4f36f
--- /dev/null
+++ b/llvm/test/MC/Mips/macro-saad.s
@@ -0,0 +1,28 @@
+# RUN: llvm-mc -triple=mips64 -show-encoding -mcpu=octeon+ %s \
+# RUN: | FileCheck -check-prefix=MIPS64 %s
+
+saad $2, 8($5)
+
+# MIPS64: daddiu $1, $5, 8 # encoding: [0x64,0xa1,0x00,0x08]
+# MIPS64-NEXT: saad $2, ($1) # encoding: [0x70,0x22,0x00,0x19]
+
+saad $2, foo
+
+# MIPS64: lui $1, %highest(foo) # encoding: [0x3c,0x01,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %highest(foo), kind: fixup_Mips_HIGHEST
+# MIPS64-NEXT: daddiu $1, $1, %higher(foo) # encoding: [0x64,0x21,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %higher(foo), kind: fixup_Mips_HIGHER
+# MIPS64-NEXT: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38]
+# MIPS64-NEXT: daddiu $1, $1, %hi(foo) # encoding: [0x64,0x21,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %hi(foo), kind: fixup_Mips_HI16
+# MIPS64-NEXT: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38]
+# MIPS64-NEXT: daddiu $1, $1, %lo(foo) # encoding: [0x64,0x21,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
+# MIPS64-NEXT: saad $2, ($1) # encoding: [0x70,0x22,0x00,0x19]
+
+.option pic2
+saad $2, foo
+
+# MIPS64: ld $1, %got_disp(foo)($gp) # encoding: [0xdf,0x81,A,A]
+# MIPS64-NEXT: # fixup A - offset: 0, value: %got_disp(foo), kind: fixup_Mips_GOT_DISP
+# MIPS64-NEXT: saad $2, ($1) # encoding: [0x70,0x22,0x00,0x19]
OpenPOWER on IntegriCloud