# REQUIRES: ppc
# XFAIL: *

# RUN: llvm-readelf -r --wide  %p/Inputs/ppc64le-quadword-ldst.o | FileCheck --check-prefix=QuadInputRelocs %s

# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %p/Inputs/shared-ppc64.s -o %t2.o
# RUN: ld.lld -shared %t2.o -o %t2.so

# RUN: ld.lld  %t2.so %p/Inputs/ppc64le-quadword-ldst.o -o %t
# RUN: llvm-objdump -d %t | FileCheck --check-prefix=Dis %s

# RUN: ld.lld --no-toc-optimize %t2.so %p/Inputs/ppc64le-quadword-ldst.o -o %t
# RUN: llvm-objdump -d %t | FileCheck --check-prefix=NoOpt %s

# QuadInputRelocs: Relocation section '.rela.text'
# QuadInputRelocs:  R_PPC64_TOC16_LO_DS    0000000000000000 quadLd
# QuadInputRelocs:  R_PPC64_TOC16_LO_DS    0000000000000010 quadSt

# The powerpc backend doesn't support the quadword load/store instructions yet.
# So they are tested by linking against an object file assembled with
# `as -mpower9 -o ppc64le-quadword-ldst.o in.s` and checking the encoding of
# the unknown instructions in the dissasembly. Source used as input:
#quads:
#.Lbegin_quads:
#.Lgep_quads:
#        addis 2, 12, .TOC.-.Lgep_quads@ha
#        addi  2, 2, .TOC.-.Lgep_quads@l
#.Llep_quads:
#.localentry quads, .Llep_quads-.Lgep_quads
#        addis 3, 2, quadLd@toc@ha
#        lq    4,    quadLd@toc@l(3)
#        addis 3, 2, quadSt@toc@ha
#        stq   4,    quadSt@toc@l(3)
#        blr
#
#        .p2align 4
#        .global quadLd
#        .lcomm  quadLd, 16
#
#        .global quadSt
#        .lcomm  quadSt, 16


# e0 82 7f 70 decodes to | 111000 | 00100 | 00010 | 16-bit imm |
#                        |   56   |   4   |   2   |   32624    |
# which is `lq r4, 32624(r2)`
# f8 82 7f 82 decodes to | 111110 | 00100 | 00010 | 14-bit imm | 10 |
#                        |   62   |   4   |   2   |    8160    | 2  |
# The immediate represents a word offset so this dissasembles to:
# `stq r4, 32640(r2)`
# Dis-LABEL: quads:
# Dis-NEXT:    addis
# Dis-NEXT:    addi
# Dis-NEXT:    nop
# Dis-NEXT:    70 7f 82 e0  <unknown>
# Dis-NEXT:    nop
# Dis-NEXT:    82 7f 82 f8  <unknown>
# Dis-NEXT:    blr

# e0 83 7f 70 decodes to | 111000 | 00100 | 00011 | 16-bit imm |
#                        |   56   |   4   |   3   |   32624    |
# `lq r4, 32624(r3)`
# f8 83 7f 82 decodes to | 111110 | 00100 | 00010 | 14-bit imm | 10 |
#                        |   62   |   4   |   2   |    8160    | 2  |
# `stq r4, 32640(r3)`
# NoOpt-LABEL: quads:
# NoOpt-NEXT:    addis
# NoOpt-NEXT:    addi
# NoOpt-NEXT:    addis 3, 2, 0
# NoOpt-NEXT:    70 7f 83 e0  <unknown>
# NoOpt-NEXT:    addis 3, 2, 0
# NoOpt-NEXT:    82 7f 83 f8  <unknown>
# NoOpt-NEXT:    blr
