# Check R_MIPS_PCxxx relocations calculation.

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mcpu=mips32r6 %s -o %t1.o
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mcpu=mips32r6 %S/Inputs/mips-dynamic.s -o %t2.o
# RUN: ld.lld %t1.o %t2.o -o %t.exe
# RUN: llvm-objdump -mcpu=mips32r6 -d -t %t.exe | FileCheck %s

# REQUIRES: mips

  .text
  .globl  __start
__start:
  lwpc      $6, _foo                # R_MIPS_PC19_S2
  beqc      $5, $6, _foo            # R_MIPS_PC16
  beqzc     $9, _foo                # R_MIPS_PC21_S2
  bc        _foo                    # R_MIPS_PC26_S2
  aluipc    $2, %pcrel_hi(_foo)     # R_MIPS_PCHI16
  addiu     $2, $2, %pcrel_lo(_foo) # R_MIPS_PCLO16

# CHECK:      Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT:    20000:       ec c8 00 08     lwpc    $6, 32
#                                      ^-- (0x20020-0x20000)>>2
# CHECK-NEXT:    20004:       20 a6 00 06     beqc    $5, $6, 28
#                                      ^-- (0x20020-4-0x20004)>>2
# CHECK-NEXT:    20008:       d9 20 00 05     beqzc   $9, 24
#                                      ^-- (0x20020-4-0x20008)>>2
# CHECK-NEXT:    2000c:       c8 00 00 04     bc      20
#                                      ^-- (0x20020-4-0x2000c)>>2
# CHECK-NEXT:    20010:       ec 5f 00 00     aluipc  $2, 0
#                                      ^-- %hi(0x20020-0x20010)
# CHECK-NEXT:    20014:       24 42 00 0c     addiu   $2, $2, 12
#                                      ^-- %lo(0x20020-0x20014)

# CHECK: 00020000         .text           00000000 __start
# CHECK: 00020020         .text           00000000 _foo
