[llvm-branch-commits] [llvm] 961f31d - [TargetMachine] Don't imply dso_local on global variable declarations in Reloc::Static model

Fangrui Song via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Dec 4 19:09:33 PST 2020


Author: Fangrui Song
Date: 2020-12-04T19:03:41-08:00
New Revision: 961f31d8ad14c66829991522d73e14b5a96ff6d4

URL: https://github.com/llvm/llvm-project/commit/961f31d8ad14c66829991522d73e14b5a96ff6d4
DIFF: https://github.com/llvm/llvm-project/commit/961f31d8ad14c66829991522d73e14b5a96ff6d4.diff

LOG: [TargetMachine] Don't imply dso_local on global variable declarations in Reloc::Static model

clang/lib/CodeGen/CodeGenModule sets dso_local on applicable global variables,
we don't need to duplicate the work in TargetMachine:shouldAssumeDSOLocal.
(Actually the long-term goal (started by r324535) is to remove as much
additional implied dso_local in TargetMachine:shouldAssumeDSOLocal as possible.)

By not implying dso_local, we will respect dso_local/dso_preemptable specifiers
set by the frontend. This allows the proposed -fno-direct-access-external-data
option to work with -fno-pic and prevent copy relocations.

This patch should be NFC in terms of the Clang behavior because the case we
don't set dso_local is a case Clang sets dso_local. However, some tests don't
set dso_local on some `external global` and expose some differences. Most tests
have been fixed to be more robust in previous commits.

Added: 
    

Modified: 
    llvm/lib/Target/TargetMachine.cpp
    llvm/test/CodeGen/AArch64/extern-weak.ll
    llvm/test/CodeGen/AArch64/tiny_model.ll
    llvm/test/CodeGen/X86/abi-isel.ll
    llvm/test/CodeGen/X86/br-fold.ll
    llvm/test/CodeGen/X86/code-model-elf.ll
    llvm/test/CodeGen/X86/emutls.ll
    llvm/test/CodeGen/X86/linux-preemption.ll
    llvm/test/CodeGen/X86/speculative-load-hardening-indirect.ll
    llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll
    llvm/test/CodeGen/X86/x86-64-mem.ll
    llvm/test/CodeGen/X86/x86-store-gv-addr.ll
    llvm/test/CodeGen/XCore/threads.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp
index 074e9fde79e6..f648b27d695f 100644
--- a/llvm/lib/Target/TargetMachine.cpp
+++ b/llvm/lib/Target/TargetMachine.cpp
@@ -190,9 +190,18 @@ bool TargetMachine::shouldAssumeDSOLocal(const Module &M,
     if (Arch == Triple::ppc || TT.isPPC64())
       return false;
 
-    // Check if we can use copy relocations.
-    if (!(GV && GV->isThreadLocal()) && RM == Reloc::Static)
-      return true;
+    // dso_local is traditionally implied for Reloc::Static. Eventually we shall
+    // drop the if block entirely and respect dso_local/dso_preemptable
+    // specifiers set by the frontend.
+    if (RM == Reloc::Static) {
+      // We currently respect dso_local/dso_preemptable specifiers for
+      // variables.
+      if (!GV || F)
+        return true;
+      // TODO Remove the special case for x86-32 and wasm.
+      if ((Arch == Triple::x86 || TT.isWasm()) && !GV->isThreadLocal())
+        return true;
+    }
   } else if (TT.isOSBinFormatELF()) {
     // If dso_local allows AsmPrinter::getSymbolPreferLocal to use a local
     // alias, set the flag. We cannot set dso_local for other global values,

diff  --git a/llvm/test/CodeGen/AArch64/extern-weak.ll b/llvm/test/CodeGen/AArch64/extern-weak.ll
index 622c5a4752e8..4ea8c2617e6e 100644
--- a/llvm/test/CodeGen/AArch64/extern-weak.ll
+++ b/llvm/test/CodeGen/AArch64/extern-weak.ll
@@ -39,12 +39,10 @@ define i32* @bar() {
 
   ret i32* %addr
 
-  ; In the large model, the usual relocations are absolute and can
-  ; materialise 0.
-; CHECK-LARGE: movz [[ADDR:x[0-9]+]], #:abs_g0_nc:arr_var
-; CHECK-LARGE: movk [[ADDR]], #:abs_g1_nc:arr_var
-; CHECK-LARGE: movk [[ADDR]], #:abs_g2_nc:arr_var
-; CHECK-LARGE: movk [[ADDR]], #:abs_g3:arr_var
+  ; Note, In the large model, if dso_local, the relocations are absolute and can materialise 0.
+; CHECK-LARGE:      adrp x[[ADDR:[0-9]+]], :got:arr_var
+; CHECK-LARGE-NEXT: ldr x[[ADDR]], [x[[ADDR]], :got_lo12:arr_var]
+; CHECK-LARGE-NEXT: add x0, x[[ADDR]], #20
 
 ; CHECK-TINY: ldr [[BASE:x[0-9]+]], :got:arr_var
 ; CHECK-TINY: add x0, [[BASE]], #20

diff  --git a/llvm/test/CodeGen/AArch64/tiny_model.ll b/llvm/test/CodeGen/AArch64/tiny_model.ll
index ba6891ed7dba..c66e09df3c29 100644
--- a/llvm/test/CodeGen/AArch64/tiny_model.ll
+++ b/llvm/test/CodeGen/AArch64/tiny_model.ll
@@ -15,17 +15,17 @@
 define void @foo1() {
 ; CHECK-LABEL: foo1:
 ; CHECK:       // %bb.0: // %entry
-; CHECK-NEXT:    adr x8, src
+; CHECK-NEXT:    ldr x8, :got:src
 ; CHECK-NEXT:    ldrb w8, [x8]
-; CHECK-NEXT:    adr x9, dst
+; CHECK-NEXT:    ldr x9, :got:dst
 ; CHECK-NEXT:    strb w8, [x9]
 ; CHECK-NEXT:    ret
 ;
 ; CHECK-GLOBISEL-LABEL: foo1:
 ; CHECK-GLOBISEL:       // %bb.0: // %entry
-; CHECK-GLOBISEL-NEXT:    adr x8, src
+; CHECK-GLOBISEL-NEXT:    ldr x8, :got:src
 ; CHECK-GLOBISEL-NEXT:    ldrb w8, [x8]
-; CHECK-GLOBISEL-NEXT:    adr x9, dst
+; CHECK-GLOBISEL-NEXT:    ldr x9, :got:dst
 ; CHECK-GLOBISEL-NEXT:    strb w8, [x9]
 ; CHECK-GLOBISEL-NEXT:    ret
 ;
@@ -53,15 +53,15 @@ entry:
 define void @foo2() {
 ; CHECK-LABEL: foo2:
 ; CHECK:       // %bb.0: // %entry
-; CHECK-NEXT:    adr x8, ptr
-; CHECK-NEXT:    adr x9, dst
+; CHECK-NEXT:    ldr x8, :got:ptr
+; CHECK-NEXT:    ldr x9, :got:dst
 ; CHECK-NEXT:    str x9, [x8]
 ; CHECK-NEXT:    ret
 ;
 ; CHECK-GLOBISEL-LABEL: foo2:
 ; CHECK-GLOBISEL:       // %bb.0: // %entry
-; CHECK-GLOBISEL-NEXT:    adr x8, ptr
-; CHECK-GLOBISEL-NEXT:    adr x9, dst
+; CHECK-GLOBISEL-NEXT:    ldr x8, :got:ptr
+; CHECK-GLOBISEL-NEXT:    ldr x9, :got:dst
 ; CHECK-GLOBISEL-NEXT:    str x9, [x8]
 ; CHECK-GLOBISEL-NEXT:    ret
 ;
@@ -88,16 +88,17 @@ define void @foo3() {
 ;
 ; CHECK-LABEL: foo3:
 ; CHECK:       // %bb.0: // %entry
-; CHECK-NEXT:    adr x8, src
+; CHECK-NEXT:    ldr x8, :got:src
+; CHECK-NEXT:    ldr x9, :got:ptr
 ; CHECK-NEXT:    ldrb w8, [x8]
-; CHECK-NEXT:    ldr x9, ptr
+; CHECK-NEXT:    ldr x9, [x9]
 ; CHECK-NEXT:    strb w8, [x9]
 ; CHECK-NEXT:    ret
 ;
 ; CHECK-GLOBISEL-LABEL: foo3:
 ; CHECK-GLOBISEL:       // %bb.0: // %entry
-; CHECK-GLOBISEL-NEXT:    adr x8, src
-; CHECK-GLOBISEL-NEXT:    adr x9, ptr
+; CHECK-GLOBISEL-NEXT:    ldr x8, :got:src
+; CHECK-GLOBISEL-NEXT:    ldr x9, :got:ptr
 ; CHECK-GLOBISEL-NEXT:    ldrb w8, [x8]
 ; CHECK-GLOBISEL-NEXT:    ldr x9, [x9]
 ; CHECK-GLOBISEL-NEXT:    strb w8, [x9]

diff  --git a/llvm/test/CodeGen/X86/abi-isel.ll b/llvm/test/CodeGen/X86/abi-isel.ll
index f2ea051c5f62..a416a5abb978 100644
--- a/llvm/test/CodeGen/X86/abi-isel.ll
+++ b/llvm/test/CodeGen/X86/abi-isel.ll
@@ -36,8 +36,10 @@
 define void @foo00() nounwind {
 ; LINUX-64-STATIC-LABEL: foo00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, dst(%rip)
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo00:
@@ -61,9 +63,9 @@ define void @foo00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -94,25 +96,25 @@ define void @foo00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -126,8 +128,10 @@ entry:
 define void @fxo00() nounwind {
 ; LINUX-64-STATIC-LABEL: fxo00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, xdst(%rip)
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: fxo00:
@@ -151,9 +155,9 @@ define void @fxo00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: fxo00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -184,25 +188,25 @@ define void @fxo00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: fxo00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: fxo00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: fxo00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -216,7 +220,9 @@ entry:
 define void @foo01() nounwind {
 ; LINUX-64-STATIC-LABEL: foo01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $dst, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo01:
@@ -238,8 +244,8 @@ define void @foo01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -267,22 +273,22 @@ define void @foo01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -294,7 +300,9 @@ entry:
 define void @fxo01() nounwind {
 ; LINUX-64-STATIC-LABEL: fxo01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $xdst, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: fxo01:
@@ -316,8 +324,8 @@ define void @fxo01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: fxo01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -345,22 +353,22 @@ define void @fxo01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: fxo01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: fxo01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: fxo01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -372,8 +380,10 @@ entry:
 define void @foo02() nounwind {
 ; LINUX-64-STATIC-LABEL: foo02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -400,9 +410,9 @@ define void @foo02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -437,27 +447,27 @@ define void @foo02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -472,8 +482,10 @@ entry:
 define void @fxo02() nounwind {
 ; LINUX-64-STATIC-LABEL: fxo02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -500,9 +512,9 @@ define void @fxo02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: fxo02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -537,27 +549,27 @@ define void @fxo02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: fxo02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: fxo02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: fxo02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -572,8 +584,8 @@ entry:
 define void @foo03() nounwind {
 ; LINUX-64-STATIC-LABEL: foo03:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, ddst(%rip)
+; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo03:
@@ -597,9 +609,9 @@ define void @foo03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -626,20 +638,20 @@ define void @foo03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst(%rip)
+; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _dsrc(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, _ddst(%rip)
+; DARWIN-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -651,7 +663,7 @@ entry:
 define void @foo04() nounwind {
 ; LINUX-64-STATIC-LABEL: foo04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ddst, dptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ddst, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo04:
@@ -673,8 +685,8 @@ define void @foo04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -699,20 +711,20 @@ define void @foo04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -723,8 +735,8 @@ entry:
 define void @foo05() nounwind {
 ; LINUX-64-STATIC-LABEL: foo05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -751,9 +763,9 @@ define void @foo05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -784,22 +796,22 @@ define void @foo05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _dsrc(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -813,8 +825,8 @@ entry:
 define void @foo06() nounwind {
 ; LINUX-64-STATIC-LABEL: foo06:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, ldst(%rip)
+; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo06:
@@ -836,8 +848,8 @@ define void @foo06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, ldst(%rip)
+; LINUX-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: foo06:
@@ -863,20 +875,20 @@ define void @foo06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst(%rip)
+; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _lsrc(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, _ldst(%rip)
+; DARWIN-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -888,7 +900,7 @@ entry:
 define void @foo07() nounwind {
 ; LINUX-64-STATIC-LABEL: foo07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ldst, lptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ldst, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo07:
@@ -909,8 +921,8 @@ define void @foo07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: foo07:
@@ -934,20 +946,20 @@ define void @foo07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -958,8 +970,8 @@ entry:
 define void @foo08() nounwind {
 ; LINUX-64-STATIC-LABEL: foo08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -984,8 +996,8 @@ define void @foo08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1015,22 +1027,22 @@ define void @foo08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _lsrc(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1044,8 +1056,10 @@ entry:
 define void @qux00() nounwind {
 ; LINUX-64-STATIC-LABEL: qux00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, dst+64(%rip)
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux00:
@@ -1069,9 +1083,9 @@ define void @qux00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1102,25 +1116,25 @@ define void @qux00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1133,8 +1147,10 @@ entry:
 define void @qxx00() nounwind {
 ; LINUX-64-STATIC-LABEL: qxx00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, xdst+64(%rip)
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qxx00:
@@ -1158,9 +1174,9 @@ define void @qxx00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qxx00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1191,25 +1207,25 @@ define void @qxx00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qxx00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qxx00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qxx00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1222,7 +1238,10 @@ entry:
 define void @qux01() nounwind {
 ; LINUX-64-STATIC-LABEL: qux01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $dst+64, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq $64, %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux01:
@@ -1245,9 +1264,9 @@ define void @qux01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1277,25 +1296,25 @@ define void @qux01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1307,7 +1326,10 @@ entry:
 define void @qxx01() nounwind {
 ; LINUX-64-STATIC-LABEL: qxx01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $xdst+64, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq $64, %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qxx01:
@@ -1330,9 +1352,9 @@ define void @qxx01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qxx01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1362,25 +1384,25 @@ define void @qxx01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qxx01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qxx01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qxx01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1392,8 +1414,10 @@ entry:
 define void @qux02() nounwind {
 ; LINUX-64-STATIC-LABEL: qux02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1420,9 +1444,9 @@ define void @qux02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -1457,27 +1481,27 @@ define void @qux02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -1493,8 +1517,10 @@ entry:
 define void @qxx02() nounwind {
 ; LINUX-64-STATIC-LABEL: qxx02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1521,9 +1547,9 @@ define void @qxx02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qxx02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -1558,27 +1584,27 @@ define void @qxx02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qxx02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qxx02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qxx02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -1594,8 +1620,8 @@ entry:
 define void @qux03() nounwind {
 ; LINUX-64-STATIC-LABEL: qux03:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, ddst+64(%rip)
+; LINUX-64-STATIC-NEXT:    movl dsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ddst+{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux03:
@@ -1619,9 +1645,9 @@ define void @qux03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1648,20 +1674,20 @@ define void @qux03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc+64(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst+64(%rip)
+; DARWIN-64-STATIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst+{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+64(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst+64(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst+{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _dsrc+64(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, _ddst+64(%rip)
+; DARWIN-64-PIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ddst+{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1673,7 +1699,7 @@ entry:
 define void @qux04() nounwind {
 ; LINUX-64-STATIC-LABEL: qux04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ddst+64, dptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ddst+64, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux04:
@@ -1696,9 +1722,9 @@ define void @qux04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1723,20 +1749,20 @@ define void @qux04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+64(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+64(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+64(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1747,8 +1773,8 @@ entry:
 define void @qux05() nounwind {
 ; LINUX-64-STATIC-LABEL: qux05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl dsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1775,9 +1801,9 @@ define void @qux05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -1808,22 +1834,22 @@ define void @qux05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc+64(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+64(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _dsrc+64(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1838,8 +1864,8 @@ entry:
 define void @qux06() nounwind {
 ; LINUX-64-STATIC-LABEL: qux06:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, ldst+64(%rip)
+; LINUX-64-STATIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ldst+{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux06:
@@ -1861,8 +1887,8 @@ define void @qux06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc+64(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, ldst+64(%rip)
+; LINUX-64-PIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, ldst+{{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: qux06:
@@ -1888,20 +1914,20 @@ define void @qux06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc+64(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst+64(%rip)
+; DARWIN-64-STATIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst+{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+64(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst+64(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst+{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _lsrc+64(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, _ldst+64(%rip)
+; DARWIN-64-PIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ldst+{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1913,7 +1939,7 @@ entry:
 define void @qux07() nounwind {
 ; LINUX-64-STATIC-LABEL: qux07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ldst+64, lptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ldst+64, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux07:
@@ -1934,8 +1960,8 @@ define void @qux07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+64(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: qux07:
@@ -1959,20 +1985,20 @@ define void @qux07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+64(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+64(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+64(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1983,8 +2009,8 @@ entry:
 define void @qux08() nounwind {
 ; LINUX-64-STATIC-LABEL: qux08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc+64(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2009,8 +2035,8 @@ define void @qux08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc+64(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2040,22 +2066,22 @@ define void @qux08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc+64(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+64(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _lsrc+64(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2070,8 +2096,10 @@ entry:
 define void @ind00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, dst(,%rdi,4)
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ind00:
@@ -2097,9 +2125,9 @@ define void @ind00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2133,25 +2161,25 @@ define void @ind00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2166,8 +2194,10 @@ entry:
 define void @ixd00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ixd00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, xdst(,%rdi,4)
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ixd00:
@@ -2193,9 +2223,9 @@ define void @ixd00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ixd00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2229,25 +2259,25 @@ define void @ixd00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ixd00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ixd00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ixd00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2262,8 +2292,10 @@ entry:
 define void @ind01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq dst(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    shlq $2, %rdi
+; LINUX-64-STATIC-NEXT:    addq dst@{{.*}}(%rip), %rdi
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ind01:
@@ -2290,8 +2322,8 @@ define void @ind01(i64 %i) nounwind {
 ; LINUX-64-PIC-LABEL: ind01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    shlq $2, %rdi
-; LINUX-64-PIC-NEXT:    addq dst at GOTPCREL(%rip), %rdi
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq dst@{{.*}}(%rip), %rdi
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2326,24 +2358,24 @@ define void @ind01(i64 %i) nounwind {
 ; DARWIN-64-STATIC-LABEL: ind01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    shlq $2, %rdi
-; DARWIN-64-STATIC-NEXT:    addq _dst at GOTPCREL(%rip), %rdi
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _dst@{{.*}}(%rip), %rdi
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    shlq $2, %rdi
-; DARWIN-64-DYNAMIC-NEXT:    addq _dst at GOTPCREL(%rip), %rdi
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _dst@{{.*}}(%rip), %rdi
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    shlq $2, %rdi
-; DARWIN-64-PIC-NEXT:    addq _dst at GOTPCREL(%rip), %rdi
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _dst@{{.*}}(%rip), %rdi
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2356,8 +2388,10 @@ entry:
 define void @ixd01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ixd01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq xdst(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    shlq $2, %rdi
+; LINUX-64-STATIC-NEXT:    addq xdst@{{.*}}(%rip), %rdi
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ixd01:
@@ -2384,8 +2418,8 @@ define void @ixd01(i64 %i) nounwind {
 ; LINUX-64-PIC-LABEL: ixd01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    shlq $2, %rdi
-; LINUX-64-PIC-NEXT:    addq xdst at GOTPCREL(%rip), %rdi
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq xdst@{{.*}}(%rip), %rdi
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2420,24 +2454,24 @@ define void @ixd01(i64 %i) nounwind {
 ; DARWIN-64-STATIC-LABEL: ixd01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    shlq $2, %rdi
-; DARWIN-64-STATIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rdi
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _xdst@{{.*}}(%rip), %rdi
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ixd01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    shlq $2, %rdi
-; DARWIN-64-DYNAMIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rdi
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _xdst@{{.*}}(%rip), %rdi
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ixd01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    shlq $2, %rdi
-; DARWIN-64-PIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rdi
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _xdst@{{.*}}(%rip), %rdi
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2450,8 +2484,10 @@ entry:
 define void @ind02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2480,9 +2516,9 @@ define void @ind02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -2520,27 +2556,27 @@ define void @ind02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -2557,8 +2593,10 @@ entry:
 define void @ixd02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ixd02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2587,9 +2625,9 @@ define void @ixd02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ixd02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -2627,27 +2665,27 @@ define void @ixd02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ixd02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ixd02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ixd02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -2691,9 +2729,9 @@ define void @ind03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2723,25 +2761,25 @@ define void @ind03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2757,7 +2795,7 @@ define void @ind04(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    leaq ddst(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, dptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ind04:
@@ -2784,8 +2822,8 @@ define void @ind04(i64 %i) nounwind {
 ; LINUX-64-PIC-LABEL: ind04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    shlq $2, %rdi
-; LINUX-64-PIC-NEXT:    addq ddst at GOTPCREL(%rip), %rdi
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq ddst@{{.*}}(%rip), %rdi
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2815,23 +2853,23 @@ define void @ind04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -2844,7 +2882,7 @@ define void @ind05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl dsrc(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2873,9 +2911,9 @@ define void @ind05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -2909,25 +2947,25 @@ define void @ind05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2968,9 +3006,9 @@ define void @ind06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3000,25 +3038,25 @@ define void @ind06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3034,7 +3072,7 @@ define void @ind07(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    leaq ldst(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ind07:
@@ -3058,9 +3096,9 @@ define void @ind07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: ind07:
@@ -3089,23 +3127,23 @@ define void @ind07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -3118,7 +3156,7 @@ define void @ind08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl lsrc(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3145,9 +3183,9 @@ define void @ind08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3180,25 +3218,25 @@ define void @ind08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3214,8 +3252,10 @@ entry:
 define void @off00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+64(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, dst+64(,%rdi,4)
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: off00:
@@ -3241,9 +3281,9 @@ define void @off00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3277,25 +3317,25 @@ define void @off00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3311,8 +3351,10 @@ entry:
 define void @oxf00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: oxf00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc+64(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, xdst+64(,%rdi,4)
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: oxf00:
@@ -3338,9 +3380,9 @@ define void @oxf00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: oxf00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3374,25 +3416,25 @@ define void @oxf00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: oxf00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: oxf00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: oxf00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3408,8 +3450,10 @@ entry:
 define void @off01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq dst+64(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: off01:
@@ -3435,9 +3479,9 @@ define void @off01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3471,25 +3515,25 @@ define void @off01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3503,8 +3547,10 @@ entry:
 define void @oxf01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: oxf01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq xdst+64(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: oxf01:
@@ -3530,9 +3576,9 @@ define void @oxf01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: oxf01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3566,25 +3612,25 @@ define void @oxf01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: oxf01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: oxf01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: oxf01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3598,8 +3644,10 @@ entry:
 define void @off02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+64(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3628,9 +3676,9 @@ define void @off02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -3668,27 +3716,27 @@ define void @off02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -3706,8 +3754,10 @@ entry:
 define void @oxf02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: oxf02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl xsrc+64(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3736,9 +3786,9 @@ define void @oxf02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: oxf02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -3776,27 +3826,27 @@ define void @oxf02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: oxf02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: oxf02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: oxf02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -3841,9 +3891,9 @@ define void @off03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3873,25 +3923,25 @@ define void @off03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3908,7 +3958,7 @@ define void @off04(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    leaq ddst+64(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, dptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: off04:
@@ -3934,9 +3984,9 @@ define void @off04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3966,23 +4016,23 @@ define void @off04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -3996,7 +4046,7 @@ define void @off05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl dsrc+64(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4025,9 +4075,9 @@ define void @off05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -4061,25 +4111,25 @@ define void @off05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4121,9 +4171,9 @@ define void @off06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4153,25 +4203,25 @@ define void @off06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4188,7 +4238,7 @@ define void @off07(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    leaq ldst+64(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: off07:
@@ -4212,9 +4262,9 @@ define void @off07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: off07:
@@ -4243,23 +4293,23 @@ define void @off07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4273,7 +4323,7 @@ define void @off08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl lsrc+64(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4300,9 +4350,9 @@ define void @off08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4335,25 +4385,25 @@ define void @off08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4370,8 +4420,10 @@ entry:
 define void @moo00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+262144(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, dst+262144(%rip)
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 262144(%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo00:
@@ -4395,9 +4447,9 @@ define void @moo00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4428,25 +4480,25 @@ define void @moo00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4459,7 +4511,10 @@ entry:
 define void @moo01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $dst+262144, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
+; LINUX-64-STATIC-NEXT:    addq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo01:
@@ -4483,8 +4538,8 @@ define void @moo01(i64 %i) nounwind {
 ; LINUX-64-PIC-LABEL: moo01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq dst at GOTPCREL(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    addq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4515,24 +4570,24 @@ define void @moo01(i64 %i) nounwind {
 ; DARWIN-64-STATIC-LABEL: moo01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-STATIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    addq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-DYNAMIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    addq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-PIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    addq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4544,8 +4599,10 @@ entry:
 define void @moo02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+262144(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 262144(%rax), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4572,9 +4629,9 @@ define void @moo02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -4609,27 +4666,27 @@ define void @moo02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -4645,8 +4702,8 @@ entry:
 define void @moo03(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo03:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc+262144(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, ddst+262144(%rip)
+; LINUX-64-STATIC-NEXT:    movl dsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ddst+{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo03:
@@ -4670,9 +4727,9 @@ define void @moo03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4699,20 +4756,20 @@ define void @moo03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc+262144(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst+262144(%rip)
+; DARWIN-64-STATIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst+{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+262144(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst+262144(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst+{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _dsrc+262144(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, _ddst+262144(%rip)
+; DARWIN-64-PIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ddst+{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4724,7 +4781,7 @@ entry:
 define void @moo04(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ddst+262144, dptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ddst+262144, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo04:
@@ -4748,8 +4805,8 @@ define void @moo04(i64 %i) nounwind {
 ; LINUX-64-PIC-LABEL: moo04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq ddst at GOTPCREL(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    addq ddst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4774,20 +4831,20 @@ define void @moo04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+262144(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+262144(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+262144(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4798,8 +4855,8 @@ entry:
 define void @moo05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc+262144(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl dsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4826,9 +4883,9 @@ define void @moo05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -4859,22 +4916,22 @@ define void @moo05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc+262144(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+262144(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _dsrc+262144(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4889,8 +4946,8 @@ entry:
 define void @moo06(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo06:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc+262144(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, ldst+262144(%rip)
+; LINUX-64-STATIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ldst+{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo06:
@@ -4912,8 +4969,8 @@ define void @moo06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc+262144(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, ldst+262144(%rip)
+; LINUX-64-PIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, ldst+{{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: moo06:
@@ -4939,20 +4996,20 @@ define void @moo06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc+262144(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst+262144(%rip)
+; DARWIN-64-STATIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst+{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+262144(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst+262144(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst+{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _lsrc+262144(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, _ldst+262144(%rip)
+; DARWIN-64-PIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ldst+{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4964,7 +5021,7 @@ entry:
 define void @moo07(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ldst+262144, lptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ldst+262144, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo07:
@@ -4985,8 +5042,8 @@ define void @moo07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+262144(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: moo07:
@@ -5010,20 +5067,20 @@ define void @moo07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+262144(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+262144(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+262144(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -5034,8 +5091,8 @@ entry:
 define void @moo08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc+262144(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5060,8 +5117,8 @@ define void @moo08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc+262144(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5091,22 +5148,22 @@ define void @moo08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc+262144(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+262144(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl _lsrc+262144(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5121,8 +5178,10 @@ entry:
 define void @big00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+262144(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, dst+262144(,%rdi,4)
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: big00:
@@ -5148,9 +5207,9 @@ define void @big00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5184,25 +5243,25 @@ define void @big00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5218,8 +5277,10 @@ entry:
 define void @big01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq dst+262144(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, ptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: big01:
@@ -5245,9 +5306,9 @@ define void @big01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5281,25 +5342,25 @@ define void @big01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5313,8 +5374,10 @@ entry:
 define void @big02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl src+262144(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5343,9 +5406,9 @@ define void @big02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -5383,27 +5446,27 @@ define void @big02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -5448,9 +5511,9 @@ define void @big03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5480,25 +5543,25 @@ define void @big03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5515,7 +5578,7 @@ define void @big04(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    leaq ddst+262144(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, dptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: big04:
@@ -5541,9 +5604,9 @@ define void @big04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5573,23 +5636,23 @@ define void @big04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -5603,7 +5666,7 @@ define void @big05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl dsrc+262144(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5632,9 +5695,9 @@ define void @big05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -5668,25 +5731,25 @@ define void @big05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5728,9 +5791,9 @@ define void @big06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5760,25 +5823,25 @@ define void @big06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5795,7 +5858,7 @@ define void @big07(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    leaq ldst+262144(,%rdi,4), %rax
-; LINUX-64-STATIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: big07:
@@ -5819,9 +5882,9 @@ define void @big07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: big07:
@@ -5850,23 +5913,23 @@ define void @big07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -5880,7 +5943,7 @@ define void @big08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl lsrc+262144(,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5907,9 +5970,9 @@ define void @big08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5942,25 +6005,25 @@ define void @big08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5977,7 +6040,7 @@ entry:
 define i8* @bar00() nounwind {
 ; LINUX-64-STATIC-LABEL: bar00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $src, %eax
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bar00:
@@ -5997,7 +6060,7 @@ define i8* @bar00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar00:
@@ -6020,17 +6083,17 @@ define i8* @bar00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6040,7 +6103,7 @@ entry:
 define i8* @bxr00() nounwind {
 ; LINUX-64-STATIC-LABEL: bxr00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xsrc, %eax
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxr00:
@@ -6060,7 +6123,7 @@ define i8* @bxr00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxr00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bxr00:
@@ -6083,17 +6146,17 @@ define i8* @bxr00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxr00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxr00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxr00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6103,7 +6166,7 @@ entry:
 define i8* @bar01() nounwind {
 ; LINUX-64-STATIC-LABEL: bar01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $dst, %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bar01:
@@ -6123,7 +6186,7 @@ define i8* @bar01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar01:
@@ -6146,17 +6209,17 @@ define i8* @bar01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6166,7 +6229,7 @@ entry:
 define i8* @bxr01() nounwind {
 ; LINUX-64-STATIC-LABEL: bxr01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xdst, %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxr01:
@@ -6186,7 +6249,7 @@ define i8* @bxr01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxr01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bxr01:
@@ -6209,17 +6272,17 @@ define i8* @bxr01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxr01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxr01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxr01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6229,7 +6292,7 @@ entry:
 define i8* @bar02() nounwind {
 ; LINUX-64-STATIC-LABEL: bar02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $ptr, %eax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bar02:
@@ -6249,7 +6312,7 @@ define i8* @bar02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar02:
@@ -6272,17 +6335,17 @@ define i8* @bar02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6312,7 +6375,7 @@ define i8* @bar03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar03:
@@ -6335,17 +6398,17 @@ define i8* @bar03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6375,7 +6438,7 @@ define i8* @bar04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar04:
@@ -6398,17 +6461,17 @@ define i8* @bar04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6438,7 +6501,7 @@ define i8* @bar05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar05:
@@ -6461,17 +6524,17 @@ define i8* @bar05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6501,7 +6564,7 @@ define i8* @bar06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar06:
@@ -6524,17 +6587,17 @@ define i8* @bar06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6564,7 +6627,7 @@ define i8* @bar07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar07:
@@ -6587,17 +6650,17 @@ define i8* @bar07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6627,7 +6690,7 @@ define i8* @bar08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lptr(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar08:
@@ -6650,17 +6713,17 @@ define i8* @bar08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6670,7 +6733,7 @@ entry:
 define i8* @har00() nounwind {
 ; LINUX-64-STATIC-LABEL: har00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $src, %eax
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har00:
@@ -6690,7 +6753,7 @@ define i8* @har00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har00:
@@ -6713,17 +6776,17 @@ define i8* @har00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6733,7 +6796,7 @@ entry:
 define i8* @hxr00() nounwind {
 ; LINUX-64-STATIC-LABEL: hxr00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xsrc, %eax
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: hxr00:
@@ -6753,7 +6816,7 @@ define i8* @hxr00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: hxr00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: hxr00:
@@ -6776,17 +6839,17 @@ define i8* @hxr00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: hxr00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: hxr00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: hxr00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6796,7 +6859,7 @@ entry:
 define i8* @har01() nounwind {
 ; LINUX-64-STATIC-LABEL: har01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $dst, %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har01:
@@ -6816,7 +6879,7 @@ define i8* @har01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har01:
@@ -6839,17 +6902,17 @@ define i8* @har01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6859,7 +6922,7 @@ entry:
 define i8* @hxr01() nounwind {
 ; LINUX-64-STATIC-LABEL: hxr01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xdst, %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: hxr01:
@@ -6879,7 +6942,7 @@ define i8* @hxr01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: hxr01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: hxr01:
@@ -6902,17 +6965,17 @@ define i8* @hxr01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: hxr01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: hxr01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: hxr01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6922,7 +6985,8 @@ entry:
 define i8* @har02() nounwind {
 ; LINUX-64-STATIC-LABEL: har02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har02:
@@ -6943,7 +7007,7 @@ define i8* @har02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -6969,19 +7033,19 @@ define i8* @har02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7014,7 +7078,7 @@ define i8* @har03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har03:
@@ -7037,17 +7101,17 @@ define i8* @har03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7077,7 +7141,7 @@ define i8* @har04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har04:
@@ -7100,17 +7164,17 @@ define i8* @har04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7120,7 +7184,7 @@ entry:
 define i8* @har05() nounwind {
 ; LINUX-64-STATIC-LABEL: har05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har05:
@@ -7141,7 +7205,7 @@ define i8* @har05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7165,17 +7229,17 @@ define i8* @har05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7207,7 +7271,7 @@ define i8* @har06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har06:
@@ -7230,17 +7294,17 @@ define i8* @har06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7270,7 +7334,7 @@ define i8* @har07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har07:
@@ -7293,17 +7357,17 @@ define i8* @har07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7313,7 +7377,7 @@ entry:
 define i8* @har08() nounwind {
 ; LINUX-64-STATIC-LABEL: har08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har08:
@@ -7333,7 +7397,7 @@ define i8* @har08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har08:
@@ -7356,17 +7420,17 @@ define i8* @har08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7378,7 +7442,8 @@ entry:
 define i8* @bat00() nounwind {
 ; LINUX-64-STATIC-LABEL: bat00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $src+64, %eax
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bat00:
@@ -7399,7 +7464,7 @@ define i8* @bat00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7425,19 +7490,19 @@ define i8* @bat00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7448,7 +7513,8 @@ entry:
 define i8* @bxt00() nounwind {
 ; LINUX-64-STATIC-LABEL: bxt00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xsrc+64, %eax
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxt00:
@@ -7469,7 +7535,7 @@ define i8* @bxt00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxt00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7495,19 +7561,19 @@ define i8* @bxt00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxt00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxt00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxt00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7518,7 +7584,8 @@ entry:
 define i8* @bat01() nounwind {
 ; LINUX-64-STATIC-LABEL: bat01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $dst+64, %eax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bat01:
@@ -7539,7 +7606,7 @@ define i8* @bat01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7565,19 +7632,19 @@ define i8* @bat01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7588,7 +7655,8 @@ entry:
 define i8* @bxt01() nounwind {
 ; LINUX-64-STATIC-LABEL: bxt01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xdst+64, %eax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxt01:
@@ -7609,7 +7677,7 @@ define i8* @bxt01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxt01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7635,19 +7703,19 @@ define i8* @bxt01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxt01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxt01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxt01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7658,7 +7726,8 @@ entry:
 define i8* @bat02() nounwind {
 ; LINUX-64-STATIC-LABEL: bat02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7682,7 +7751,7 @@ define i8* @bat02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -7712,21 +7781,21 @@ define i8* @bat02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -7762,7 +7831,7 @@ define i8* @bat03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7786,17 +7855,17 @@ define i8* @bat03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc+64(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+64(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc+64(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7827,7 +7896,7 @@ define i8* @bat04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7851,17 +7920,17 @@ define i8* @bat04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+64(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+64(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+64(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7871,7 +7940,7 @@ entry:
 define i8* @bat05() nounwind {
 ; LINUX-64-STATIC-LABEL: bat05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7895,7 +7964,7 @@ define i8* @bat05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -7923,19 +7992,19 @@ define i8* @bat05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7969,7 +8038,7 @@ define i8* @bat06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc+64(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc+{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bat06:
@@ -7992,17 +8061,17 @@ define i8* @bat06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc+64(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+64(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc+64(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8032,7 +8101,7 @@ define i8* @bat07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+64(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bat07:
@@ -8055,17 +8124,17 @@ define i8* @bat07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+64(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+64(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+64(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8075,7 +8144,7 @@ entry:
 define i8* @bat08() nounwind {
 ; LINUX-64-STATIC-LABEL: bat08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -8098,7 +8167,7 @@ define i8* @bat08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -8125,19 +8194,19 @@ define i8* @bat08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -8151,7 +8220,8 @@ entry:
 define i8* @bam00() nounwind {
 ; LINUX-64-STATIC-LABEL: bam00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $src+262144, %eax
+; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
+; LINUX-64-STATIC-NEXT:    addq src@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam00:
@@ -8173,7 +8243,7 @@ define i8* @bam00() nounwind {
 ; LINUX-64-PIC-LABEL: bam00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam00:
@@ -8199,19 +8269,19 @@ define i8* @bam00() nounwind {
 ; DARWIN-64-STATIC-LABEL: bam00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-STATIC-NEXT:    addq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-DYNAMIC-NEXT:    addq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-PIC-NEXT:    addq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8221,7 +8291,8 @@ entry:
 define i8* @bam01() nounwind {
 ; LINUX-64-STATIC-LABEL: bam01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $dst+262144, %eax
+; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
+; LINUX-64-STATIC-NEXT:    addq dst@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam01:
@@ -8243,7 +8314,7 @@ define i8* @bam01() nounwind {
 ; LINUX-64-PIC-LABEL: bam01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam01:
@@ -8269,19 +8340,19 @@ define i8* @bam01() nounwind {
 ; DARWIN-64-STATIC-LABEL: bam01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-STATIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-DYNAMIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-PIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8291,7 +8362,8 @@ entry:
 define i8* @bxm01() nounwind {
 ; LINUX-64-STATIC-LABEL: bxm01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl $xdst+262144, %eax
+; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
+; LINUX-64-STATIC-NEXT:    addq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxm01:
@@ -8313,7 +8385,7 @@ define i8* @bxm01() nounwind {
 ; LINUX-64-PIC-LABEL: bxm01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bxm01:
@@ -8339,19 +8411,19 @@ define i8* @bxm01() nounwind {
 ; DARWIN-64-STATIC-LABEL: bxm01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-STATIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxm01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-DYNAMIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxm01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-PIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8361,8 +8433,9 @@ entry:
 define i8* @bam02() nounwind {
 ; LINUX-64-STATIC-LABEL: bam02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-STATIC-NEXT:    addq ptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq (%rcx), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam02:
@@ -8385,7 +8458,7 @@ define i8* @bam02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
 ; LINUX-64-PIC-NEXT:    addq (%rcx), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -8415,21 +8488,21 @@ define i8* @bam02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
 ; DARWIN-64-STATIC-NEXT:    addq (%rcx), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
 ; DARWIN-64-DYNAMIC-NEXT:    addq (%rcx), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
 ; DARWIN-64-PIC-NEXT:    addq (%rcx), %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -8466,7 +8539,7 @@ define i8* @bam03() nounwind {
 ; LINUX-64-PIC-LABEL: bam03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam03:
@@ -8489,17 +8562,17 @@ define i8* @bam03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc+262144(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+262144(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc+262144(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8531,7 +8604,7 @@ define i8* @bam04() nounwind {
 ; LINUX-64-PIC-LABEL: bam04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam04:
@@ -8554,17 +8627,17 @@ define i8* @bam04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+262144(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+262144(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+262144(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8575,7 +8648,7 @@ define i8* @bam05() nounwind {
 ; LINUX-64-STATIC-LABEL: bam05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-STATIC-NEXT:    addq dptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam05:
@@ -8598,7 +8671,7 @@ define i8* @bam05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
 ; LINUX-64-PIC-NEXT:    addq (%rcx), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -8627,19 +8700,19 @@ define i8* @bam05() nounwind {
 ; DARWIN-64-STATIC-LABEL: bam05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-STATIC-NEXT:    addq _dptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-DYNAMIC-NEXT:    addq _dptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-PIC-NEXT:    addq _dptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8672,7 +8745,7 @@ define i8* @bam06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc+262144(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc+{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam06:
@@ -8695,17 +8768,17 @@ define i8* @bam06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc+262144(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+262144(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc+262144(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8735,7 +8808,7 @@ define i8* @bam07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+262144(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam07:
@@ -8758,17 +8831,17 @@ define i8* @bam07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+262144(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+262144(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+262144(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8779,7 +8852,7 @@ define i8* @bam08() nounwind {
 ; LINUX-64-STATIC-LABEL: bam08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-STATIC-NEXT:    addq lptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam08:
@@ -8802,7 +8875,7 @@ define i8* @bam08() nounwind {
 ; LINUX-64-PIC-LABEL: bam08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq lptr(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam08:
@@ -8829,19 +8902,19 @@ define i8* @bam08() nounwind {
 ; DARWIN-64-STATIC-LABEL: bam08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-STATIC-NEXT:    addq _lptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-DYNAMIC-NEXT:    addq _lptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
-; DARWIN-64-PIC-NEXT:    addq _lptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8854,7 +8927,8 @@ entry:
 define i8* @cat00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq src+64(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cat00:
@@ -8877,7 +8951,7 @@ define i8* @cat00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -8906,19 +8980,19 @@ define i8* @cat00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -8932,7 +9006,8 @@ entry:
 define i8* @cxt00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxt00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq xsrc+64(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cxt00:
@@ -8955,7 +9030,7 @@ define i8* @cxt00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxt00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -8984,19 +9059,19 @@ define i8* @cxt00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxt00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cxt00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cxt00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9010,7 +9085,8 @@ entry:
 define i8* @cat01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq dst+64(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cat01:
@@ -9033,7 +9109,7 @@ define i8* @cat01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9062,19 +9138,19 @@ define i8* @cat01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9088,7 +9164,8 @@ entry:
 define i8* @cxt01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxt01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq xdst+64(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cxt01:
@@ -9111,7 +9188,7 @@ define i8* @cxt01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxt01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9140,19 +9217,19 @@ define i8* @cxt01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxt01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cxt01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cxt01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9166,7 +9243,8 @@ entry:
 define i8* @cat02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9192,7 +9270,7 @@ define i8* @cat02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -9225,21 +9303,21 @@ define i8* @cat02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -9278,7 +9356,7 @@ define i8* @cat03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9305,19 +9383,19 @@ define i8* @cat03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9354,7 +9432,7 @@ define i8* @cat04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9381,19 +9459,19 @@ define i8* @cat04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9407,7 +9485,7 @@ entry:
 define i8* @cat05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9433,7 +9511,7 @@ define i8* @cat05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -9464,19 +9542,19 @@ define i8* @cat05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9513,7 +9591,7 @@ define i8* @cat06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9540,19 +9618,19 @@ define i8* @cat06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9588,7 +9666,7 @@ define i8* @cat07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9615,19 +9693,19 @@ define i8* @cat07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9641,7 +9719,7 @@ entry:
 define i8* @cat08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9666,7 +9744,7 @@ define i8* @cat08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9696,19 +9774,19 @@ define i8* @cat08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cat08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cat08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9723,7 +9801,8 @@ entry:
 define i8* @cam00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq src+262144(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cam00:
@@ -9746,7 +9825,7 @@ define i8* @cam00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9775,19 +9854,19 @@ define i8* @cam00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9801,7 +9880,8 @@ entry:
 define i8* @cxm00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxm00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq xsrc+262144(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cxm00:
@@ -9824,7 +9904,7 @@ define i8* @cxm00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxm00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9853,19 +9933,19 @@ define i8* @cxm00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxm00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cxm00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cxm00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9879,7 +9959,8 @@ entry:
 define i8* @cam01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq dst+262144(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cam01:
@@ -9902,7 +9983,7 @@ define i8* @cam01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9931,19 +10012,19 @@ define i8* @cam01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9957,7 +10038,8 @@ entry:
 define i8* @cxm01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxm01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    leaq xdst+262144(,%rdi,4), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: cxm01:
@@ -9980,7 +10062,7 @@ define i8* @cxm01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxm01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10009,19 +10091,19 @@ define i8* @cxm01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxm01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cxm01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cxm01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10035,7 +10117,8 @@ entry:
 define i8* @cam02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq ptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -10061,7 +10144,7 @@ define i8* @cam02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -10094,21 +10177,21 @@ define i8* @cam02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -10147,7 +10230,7 @@ define i8* @cam03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dsrc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dsrc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10174,19 +10257,19 @@ define i8* @cam03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10223,7 +10306,7 @@ define i8* @cam04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ddst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ddst@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10250,19 +10333,19 @@ define i8* @cam04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10276,7 +10359,7 @@ entry:
 define i8* @cam05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -10302,7 +10385,7 @@ define i8* @cam05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dptr at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dptr@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -10333,19 +10416,19 @@ define i8* @cam05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10382,7 +10465,7 @@ define i8* @cam06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10409,19 +10492,19 @@ define i8* @cam06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10457,7 +10540,7 @@ define i8* @cam07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10484,19 +10567,19 @@ define i8* @cam07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10510,7 +10593,7 @@ entry:
 define i8* @cam08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -10535,7 +10618,7 @@ define i8* @cam08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10565,19 +10648,19 @@ define i8* @cam08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: cam08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: cam08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10914,7 +10997,7 @@ define void ()* @address() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: address:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq callee at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq callee@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: address:
@@ -10937,17 +11020,17 @@ define void ()* @address() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: address:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _callee at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _callee@{{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: address:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _callee at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _callee@{{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: address:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _callee at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _callee@{{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -10979,7 +11062,7 @@ define void ()* @laddress() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: laddress:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq lcallee at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq lcallee@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: laddress:
@@ -11002,17 +11085,17 @@ define void ()* @laddress() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: laddress:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lcallee(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: laddress:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lcallee(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: laddress:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lcallee(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -11042,7 +11125,7 @@ define void ()* @daddress() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: daddress:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq dcallee(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: daddress:
@@ -11065,17 +11148,17 @@ define void ()* @daddress() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: daddress:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dcallee(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: daddress:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dcallee(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: daddress:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dcallee(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -11616,10 +11699,11 @@ entry:
 define void @icaller() nounwind {
 ; LINUX-64-STATIC-LABEL: icaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    pushq %rax
-; LINUX-64-STATIC-NEXT:    callq *ifunc(%rip)
-; LINUX-64-STATIC-NEXT:    callq *ifunc(%rip)
-; LINUX-64-STATIC-NEXT:    popq %rax
+; LINUX-64-STATIC-NEXT:    pushq %rbx
+; LINUX-64-STATIC-NEXT:    movq ifunc@{{.*}}(%rip), %rbx
+; LINUX-64-STATIC-NEXT:    callq *(%rbx)
+; LINUX-64-STATIC-NEXT:    callq *(%rbx)
+; LINUX-64-STATIC-NEXT:    popq %rbx
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: icaller:
@@ -11651,7 +11735,7 @@ define void @icaller() nounwind {
 ; LINUX-64-PIC-LABEL: icaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rbx
-; LINUX-64-PIC-NEXT:    movq ifunc at GOTPCREL(%rip), %rbx
+; LINUX-64-PIC-NEXT:    movq ifunc@{{.*}}(%rip), %rbx
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    popq %rbx
@@ -11693,7 +11777,7 @@ define void @icaller() nounwind {
 ; DARWIN-64-STATIC-LABEL: icaller:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    pushq %rbx
-; DARWIN-64-STATIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
+; DARWIN-64-STATIC-NEXT:    movq _ifunc@{{.*}}(%rip), %rbx
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    popq %rbx
@@ -11702,7 +11786,7 @@ define void @icaller() nounwind {
 ; DARWIN-64-DYNAMIC-LABEL: icaller:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    pushq %rbx
-; DARWIN-64-DYNAMIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ifunc@{{.*}}(%rip), %rbx
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rbx
@@ -11711,7 +11795,7 @@ define void @icaller() nounwind {
 ; DARWIN-64-PIC-LABEL: icaller:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    pushq %rbx
-; DARWIN-64-PIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
+; DARWIN-64-PIC-NEXT:    movq _ifunc@{{.*}}(%rip), %rbx
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    popq %rbx
@@ -11729,8 +11813,8 @@ define void @dicaller() nounwind {
 ; LINUX-64-STATIC-LABEL: dicaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    pushq %rax
-; LINUX-64-STATIC-NEXT:    callq *difunc(%rip)
-; LINUX-64-STATIC-NEXT:    callq *difunc(%rip)
+; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -11763,7 +11847,7 @@ define void @dicaller() nounwind {
 ; LINUX-64-PIC-LABEL: dicaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rbx
-; LINUX-64-PIC-NEXT:    movq difunc at GOTPCREL(%rip), %rbx
+; LINUX-64-PIC-NEXT:    movq difunc@{{.*}}(%rip), %rbx
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    popq %rbx
@@ -11801,24 +11885,24 @@ define void @dicaller() nounwind {
 ; DARWIN-64-STATIC-LABEL: dicaller:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    pushq %rax
-; DARWIN-64-STATIC-NEXT:    callq *_difunc(%rip)
-; DARWIN-64-STATIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    popq %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: dicaller:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    pushq %rax
-; DARWIN-64-DYNAMIC-NEXT:    callq *_difunc(%rip)
-; DARWIN-64-DYNAMIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: dicaller:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    pushq %rax
-; DARWIN-64-PIC-NEXT:    callq *_difunc(%rip)
-; DARWIN-64-PIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -11834,8 +11918,8 @@ define void @licaller() nounwind {
 ; LINUX-64-STATIC-LABEL: licaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    pushq %rax
-; LINUX-64-STATIC-NEXT:    callq *lifunc(%rip)
-; LINUX-64-STATIC-NEXT:    callq *lifunc(%rip)
+; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -11865,8 +11949,8 @@ define void @licaller() nounwind {
 ; LINUX-64-PIC-LABEL: licaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rax
-; LINUX-64-PIC-NEXT:    callq *lifunc(%rip)
-; LINUX-64-PIC-NEXT:    callq *lifunc(%rip)
+; LINUX-64-PIC-NEXT:    callq *{{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    callq *{{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -11902,24 +11986,24 @@ define void @licaller() nounwind {
 ; DARWIN-64-STATIC-LABEL: licaller:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    pushq %rax
-; DARWIN-64-STATIC-NEXT:    callq *_lifunc(%rip)
-; DARWIN-64-STATIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    popq %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: licaller:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    pushq %rax
-; DARWIN-64-DYNAMIC-NEXT:    callq *_lifunc(%rip)
-; DARWIN-64-DYNAMIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: licaller:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    pushq %rax
-; DARWIN-64-PIC-NEXT:    callq *_lifunc(%rip)
-; DARWIN-64-PIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -11934,10 +12018,11 @@ entry:
 define void @itailcaller() nounwind {
 ; LINUX-64-STATIC-LABEL: itailcaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    pushq %rax
-; LINUX-64-STATIC-NEXT:    callq *ifunc(%rip)
-; LINUX-64-STATIC-NEXT:    callq *ifunc(%rip)
-; LINUX-64-STATIC-NEXT:    popq %rax
+; LINUX-64-STATIC-NEXT:    pushq %rbx
+; LINUX-64-STATIC-NEXT:    movq ifunc@{{.*}}(%rip), %rbx
+; LINUX-64-STATIC-NEXT:    callq *(%rbx)
+; LINUX-64-STATIC-NEXT:    callq *(%rbx)
+; LINUX-64-STATIC-NEXT:    popq %rbx
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: itailcaller:
@@ -11969,7 +12054,7 @@ define void @itailcaller() nounwind {
 ; LINUX-64-PIC-LABEL: itailcaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rbx
-; LINUX-64-PIC-NEXT:    movq ifunc at GOTPCREL(%rip), %rbx
+; LINUX-64-PIC-NEXT:    movq ifunc@{{.*}}(%rip), %rbx
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    popq %rbx
@@ -12011,7 +12096,7 @@ define void @itailcaller() nounwind {
 ; DARWIN-64-STATIC-LABEL: itailcaller:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    pushq %rbx
-; DARWIN-64-STATIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
+; DARWIN-64-STATIC-NEXT:    movq _ifunc@{{.*}}(%rip), %rbx
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    popq %rbx
@@ -12020,7 +12105,7 @@ define void @itailcaller() nounwind {
 ; DARWIN-64-DYNAMIC-LABEL: itailcaller:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    pushq %rbx
-; DARWIN-64-DYNAMIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ifunc@{{.*}}(%rip), %rbx
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rbx
@@ -12029,7 +12114,7 @@ define void @itailcaller() nounwind {
 ; DARWIN-64-PIC-LABEL: itailcaller:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    pushq %rbx
-; DARWIN-64-PIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
+; DARWIN-64-PIC-NEXT:    movq _ifunc@{{.*}}(%rip), %rbx
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    popq %rbx
@@ -12047,7 +12132,7 @@ define void @ditailcaller() nounwind {
 ; LINUX-64-STATIC-LABEL: ditailcaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    pushq %rax
-; LINUX-64-STATIC-NEXT:    callq *difunc(%rip)
+; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -12076,7 +12161,7 @@ define void @ditailcaller() nounwind {
 ; LINUX-64-PIC-LABEL: ditailcaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rax
-; LINUX-64-PIC-NEXT:    movq difunc at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq difunc@{{.*}}(%rip), %rax
 ; LINUX-64-PIC-NEXT:    callq *(%rax)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -12108,21 +12193,21 @@ define void @ditailcaller() nounwind {
 ; DARWIN-64-STATIC-LABEL: ditailcaller:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    pushq %rax
-; DARWIN-64-STATIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    popq %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ditailcaller:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    pushq %rax
-; DARWIN-64-DYNAMIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ditailcaller:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    pushq %rax
-; DARWIN-64-PIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -12136,7 +12221,7 @@ define void @litailcaller() nounwind {
 ; LINUX-64-STATIC-LABEL: litailcaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    pushq %rax
-; LINUX-64-STATIC-NEXT:    callq *lifunc(%rip)
+; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -12164,7 +12249,7 @@ define void @litailcaller() nounwind {
 ; LINUX-64-PIC-LABEL: litailcaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rax
-; LINUX-64-PIC-NEXT:    callq *lifunc(%rip)
+; LINUX-64-PIC-NEXT:    callq *{{.*}}(%rip)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -12195,21 +12280,21 @@ define void @litailcaller() nounwind {
 ; DARWIN-64-STATIC-LABEL: litailcaller:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
 ; DARWIN-64-STATIC-NEXT:    pushq %rax
-; DARWIN-64-STATIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-STATIC-NEXT:    popq %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: litailcaller:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
 ; DARWIN-64-DYNAMIC-NEXT:    pushq %rax
-; DARWIN-64-DYNAMIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: litailcaller:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
 ; DARWIN-64-PIC-NEXT:    pushq %rax
-; DARWIN-64-PIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 

diff  --git a/llvm/test/CodeGen/X86/br-fold.ll b/llvm/test/CodeGen/X86/br-fold.ll
index 11f5f720a431..f9fe4cc154ac 100644
--- a/llvm/test/CodeGen/X86/br-fold.ll
+++ b/llvm/test/CodeGen/X86/br-fold.ll
@@ -7,7 +7,7 @@
 ; X64_DARWIN: orq
 ; X64_DARWIN-NEXT: ud2
 
-; X64_LINUX: orq $_ZN11xercesc_2_56XMLUni16fgNotationStringE, %rax
+; X64_LINUX: orq _ZN11xercesc_2_56XMLUni16fgNotationStringE at GOTPCREL(%rip), %rax
 ; X64_LINUX-NEXT: jne
 ; X64_LINUX-NEXT: %bb8.i329
 
@@ -18,7 +18,7 @@
 ; X64_WINDOWS_GNU: orq .refptr._ZN11xercesc_2_56XMLUni16fgNotationStringE(%rip), %rax
 ; X64_WINDOWS_GNU-NEXT: jne
 
-; PS4: orq $_ZN11xercesc_2_56XMLUni16fgNotationStringE, %rax
+; PS4: orq _ZN11xercesc_2_56XMLUni16fgNotationStringE at GOTPCREL(%rip), %rax
 ; PS4-NEXT: ud2
 
 @_ZN11xercesc_2_513SchemaSymbols21fgURI_SCHEMAFORSCHEMAE = external constant [33 x i16], align 32 ; <[33 x i16]*> [#uses=1]

diff  --git a/llvm/test/CodeGen/X86/code-model-elf.ll b/llvm/test/CodeGen/X86/code-model-elf.ll
index 82d0d1ef5913..2286348e794e 100644
--- a/llvm/test/CodeGen/X86/code-model-elf.ll
+++ b/llvm/test/CodeGen/X86/code-model-elf.ll
@@ -58,12 +58,12 @@ define dso_local i32* @lea_static_data() #0 {
 ;
 ; SMALL-PIC-LABEL: lea_static_data:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    leaq static_data(%rip), %rax
+; SMALL-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: lea_static_data:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    leaq _GLOBAL_OFFSET_TABLE_(%rip), %rcx
+; MEDIUM-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; MEDIUM-PIC-NEXT:    movabsq $static_data at GOTOFF, %rax
 ; MEDIUM-PIC-NEXT:    addq %rcx, %rax
 ; MEDIUM-PIC-NEXT:    retq
@@ -71,7 +71,7 @@ define dso_local i32* @lea_static_data() #0 {
 ; LARGE-PIC-LABEL: lea_static_data:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L0$pb:
-; LARGE-PIC-NEXT:    leaq .L0$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L0${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L0$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $static_data at GOTOFF, %rax
@@ -98,12 +98,12 @@ define dso_local i32* @lea_global_data() #0 {
 ;
 ; SMALL-PIC-LABEL: lea_global_data:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    leaq global_data(%rip), %rax
+; SMALL-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: lea_global_data:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    leaq _GLOBAL_OFFSET_TABLE_(%rip), %rcx
+; MEDIUM-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
 ; MEDIUM-PIC-NEXT:    movabsq $global_data at GOTOFF, %rax
 ; MEDIUM-PIC-NEXT:    addq %rcx, %rax
 ; MEDIUM-PIC-NEXT:    retq
@@ -111,7 +111,7 @@ define dso_local i32* @lea_global_data() #0 {
 ; LARGE-PIC-LABEL: lea_global_data:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L1$pb:
-; LARGE-PIC-NEXT:    leaq .L1$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L1${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L1$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $global_data at GOTOFF, %rax
@@ -123,12 +123,12 @@ define dso_local i32* @lea_global_data() #0 {
 define dso_local i32* @lea_extern_data() #0 {
 ; SMALL-STATIC-LABEL: lea_extern_data:
 ; SMALL-STATIC:       # %bb.0:
-; SMALL-STATIC-NEXT:    movl $extern_data, %eax
+; SMALL-STATIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; SMALL-STATIC-NEXT:    retq
 ;
 ; MEDIUM-STATIC-LABEL: lea_extern_data:
 ; MEDIUM-STATIC:       # %bb.0:
-; MEDIUM-STATIC-NEXT:    movabsq $extern_data, %rax
+; MEDIUM-STATIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; MEDIUM-STATIC-NEXT:    retq
 ;
 ; LARGE-STATIC-LABEL: lea_extern_data:
@@ -138,18 +138,18 @@ define dso_local i32* @lea_extern_data() #0 {
 ;
 ; SMALL-PIC-LABEL: lea_extern_data:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    movq extern_data at GOTPCREL(%rip), %rax
+; SMALL-PIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: lea_extern_data:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    movq extern_data at GOTPCREL(%rip), %rax
+; MEDIUM-PIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; MEDIUM-PIC-NEXT:    retq
 ;
 ; LARGE-PIC-LABEL: lea_extern_data:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L2$pb:
-; LARGE-PIC-NEXT:    leaq .L2$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L2${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L2$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $extern_data at GOT, %rax
@@ -161,7 +161,7 @@ define dso_local i32* @lea_extern_data() #0 {
 define dso_local i32 @load_global_data() #0 {
 ; SMALL-STATIC-LABEL: load_global_data:
 ; SMALL-STATIC:       # %bb.0:
-; SMALL-STATIC-NEXT:    movl global_data+8(%rip), %eax
+; SMALL-STATIC-NEXT:    movl global_data+{{.*}}(%rip), %eax
 ; SMALL-STATIC-NEXT:    retq
 ;
 ; MEDIUM-STATIC-LABEL: load_global_data:
@@ -178,12 +178,12 @@ define dso_local i32 @load_global_data() #0 {
 ;
 ; SMALL-PIC-LABEL: load_global_data:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    movl global_data+8(%rip), %eax
+; SMALL-PIC-NEXT:    movl global_data+{{.*}}(%rip), %eax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: load_global_data:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    leaq _GLOBAL_OFFSET_TABLE_(%rip), %rax
+; MEDIUM-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; MEDIUM-PIC-NEXT:    movabsq $global_data at GOTOFF, %rcx
 ; MEDIUM-PIC-NEXT:    movl 8(%rax,%rcx), %eax
 ; MEDIUM-PIC-NEXT:    retq
@@ -191,7 +191,7 @@ define dso_local i32 @load_global_data() #0 {
 ; LARGE-PIC-LABEL: load_global_data:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L3$pb:
-; LARGE-PIC-NEXT:    leaq .L3$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L3${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L3$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $global_data at GOTOFF, %rax
@@ -204,12 +204,13 @@ define dso_local i32 @load_global_data() #0 {
 define dso_local i32 @load_extern_data() #0 {
 ; SMALL-STATIC-LABEL: load_extern_data:
 ; SMALL-STATIC:       # %bb.0:
-; SMALL-STATIC-NEXT:    movl extern_data+8(%rip), %eax
+; SMALL-STATIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
+; SMALL-STATIC-NEXT:    movl 8(%rax), %eax
 ; SMALL-STATIC-NEXT:    retq
 ;
 ; MEDIUM-STATIC-LABEL: load_extern_data:
 ; MEDIUM-STATIC:       # %bb.0:
-; MEDIUM-STATIC-NEXT:    movabsq $extern_data, %rax
+; MEDIUM-STATIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; MEDIUM-STATIC-NEXT:    movl 8(%rax), %eax
 ; MEDIUM-STATIC-NEXT:    retq
 ;
@@ -221,20 +222,20 @@ define dso_local i32 @load_extern_data() #0 {
 ;
 ; SMALL-PIC-LABEL: load_extern_data:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    movq extern_data at GOTPCREL(%rip), %rax
+; SMALL-PIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    movl 8(%rax), %eax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: load_extern_data:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    movq extern_data at GOTPCREL(%rip), %rax
+; MEDIUM-PIC-NEXT:    movq extern_data@{{.*}}(%rip), %rax
 ; MEDIUM-PIC-NEXT:    movl 8(%rax), %eax
 ; MEDIUM-PIC-NEXT:    retq
 ;
 ; LARGE-PIC-LABEL: load_extern_data:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L4$pb:
-; LARGE-PIC-NEXT:    leaq .L4$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L4${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L4$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $extern_data at GOT, %rax
@@ -279,7 +280,7 @@ define dso_local void ()* @lea_static_fn() #0 {
 ;
 ; SMALL-PIC-LABEL: lea_static_fn:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    leaq static_fn(%rip), %rax
+; SMALL-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: lea_static_fn:
@@ -290,7 +291,7 @@ define dso_local void ()* @lea_static_fn() #0 {
 ; LARGE-PIC-LABEL: lea_static_fn:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L7$pb:
-; LARGE-PIC-NEXT:    leaq .L7$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L7${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L7$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $static_fn at GOTOFF, %rax
@@ -317,7 +318,7 @@ define dso_local void ()* @lea_global_fn() #0 {
 ;
 ; SMALL-PIC-LABEL: lea_global_fn:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    leaq global_fn(%rip), %rax
+; SMALL-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: lea_global_fn:
@@ -328,7 +329,7 @@ define dso_local void ()* @lea_global_fn() #0 {
 ; LARGE-PIC-LABEL: lea_global_fn:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L8$pb:
-; LARGE-PIC-NEXT:    leaq .L8$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L8${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L8$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $global_fn at GOTOFF, %rax
@@ -355,18 +356,18 @@ define dso_local void ()* @lea_extern_fn() #0 {
 ;
 ; SMALL-PIC-LABEL: lea_extern_fn:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    movq extern_fn at GOTPCREL(%rip), %rax
+; SMALL-PIC-NEXT:    movq extern_fn@{{.*}}(%rip), %rax
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: lea_extern_fn:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    movq extern_fn at GOTPCREL(%rip), %rax
+; MEDIUM-PIC-NEXT:    movq extern_fn@{{.*}}(%rip), %rax
 ; MEDIUM-PIC-NEXT:    retq
 ;
 ; LARGE-PIC-LABEL: lea_extern_fn:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L9$pb:
-; LARGE-PIC-NEXT:    leaq .L9$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L9${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L9$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq $extern_fn at GOT, %rax
@@ -399,42 +400,11 @@ define dso_local void ()* @lea_extern_fn() #0 {
 ; movl	(%rax), %eax
 
 define dso_local i32 @load_thread_data() #0 {
-; SMALL-STATIC-LABEL: load_thread_data:
-; SMALL-STATIC:       # %bb.0:
-; SMALL-STATIC-NEXT:    movq    thread_data at GOTTPOFF(%rip), %rax
-; SMALL-STATIC-NEXT:    movl    %fs:(%rax), %eax
-; SMALL-STATIC-NEXT:    retq
-;
-; MEDIUM-STATIC-LABEL: load_thread_data:
-; MEDIUM-STATIC:       # %bb.0:
-; MEDIUM-STATIC-NEXT:    movq    thread_data at GOTTPOFF(%rip), %rax
-; MEDIUM-STATIC-NEXT:    movl    %fs:(%rax), %eax
-; MEDIUM-STATIC-NEXT:    retq
-;
-; LARGE-STATIC-LABEL: load_thread_data:
-; LARGE-STATIC:       # %bb.0:
-; LARGE-STATIC-NEXT:    movq    thread_data at GOTTPOFF(%rip), %rax
-; LARGE-STATIC-NEXT:    movl    %fs:(%rax), %eax
-; LARGE-STATIC-NEXT:    retq
-;
-; SMALL-PIC-LABEL: load_thread_data:
-; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    movq    thread_data at GOTTPOFF(%rip), %rax
-; SMALL-PIC-NEXT:    movl    %fs:(%rax), %eax
-; SMALL-PIC-NEXT:    retq
-;
-; MEDIUM-PIC-LABEL: load_thread_data:
-; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    movq    thread_data at GOTTPOFF(%rip), %rax
-; MEDIUM-PIC-NEXT:    movl    %fs:(%rax), %eax
-; MEDIUM-PIC-NEXT:    retq
-;
-; LARGE-PIC-LABEL: load_thread_data:
-; LARGE-PIC:       # %bb.0:
-; LARGE-PIC-NEXT:    movq    thread_data at GOTTPOFF(%rip), %rax
-; LARGE-PIC-NEXT:    movl    %fs:(%rax), %eax
-; LARGE-PIC-NEXT:    retq
-;
+; CHECK-LABEL: load_thread_data:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    movq thread_data@{{.*}}(%rip), %rax
+; CHECK-NEXT:    movl %fs:(%rax), %eax
+; CHECK-NEXT:    retq
   %1 = load i32, i32* @thread_data, align 4
   ret i32 %1
 }
@@ -442,7 +412,7 @@ define dso_local i32 @load_thread_data() #0 {
 define dso_local float @load_constant_pool(float %x) #0 {
 ; SMALL-STATIC-LABEL: load_constant_pool:
 ; SMALL-STATIC:       # %bb.0:
-; SMALL-STATIC-NEXT:    addss {{\.LCPI.*}}(%rip), %xmm0
+; SMALL-STATIC-NEXT:    addss {{.*}}(%rip), %xmm0
 ; SMALL-STATIC-NEXT:    retq
 ;
 ; MEDIUM-STATIC-LABEL: load_constant_pool:
@@ -459,12 +429,12 @@ define dso_local float @load_constant_pool(float %x) #0 {
 ;
 ; SMALL-PIC-LABEL: load_constant_pool:
 ; SMALL-PIC:       # %bb.0:
-; SMALL-PIC-NEXT:    addss {{\.LCPI.*}}(%rip), %xmm0
+; SMALL-PIC-NEXT:    addss {{.*}}(%rip), %xmm0
 ; SMALL-PIC-NEXT:    retq
 ;
 ; MEDIUM-PIC-LABEL: load_constant_pool:
 ; MEDIUM-PIC:       # %bb.0:
-; MEDIUM-PIC-NEXT:    leaq _GLOBAL_OFFSET_TABLE_(%rip), %rax
+; MEDIUM-PIC-NEXT:    leaq {{.*}}(%rip), %rax
 ; MEDIUM-PIC-NEXT:    movabsq ${{\.LCPI.*}}@GOTOFF, %rcx
 ; MEDIUM-PIC-NEXT:    addss (%rax,%rcx), %xmm0
 ; MEDIUM-PIC-NEXT:    retq
@@ -472,7 +442,7 @@ define dso_local float @load_constant_pool(float %x) #0 {
 ; LARGE-PIC-LABEL: load_constant_pool:
 ; LARGE-PIC:       # %bb.0:
 ; LARGE-PIC-NEXT:  .L11$pb:
-; LARGE-PIC-NEXT:    leaq .L11$pb(%rip), %rax
+; LARGE-PIC-NEXT:    leaq .L11${{.*}}(%rip), %rax
 ; LARGE-PIC-NEXT:    movabsq $_GLOBAL_OFFSET_TABLE_-.L11$pb, %rcx
 ; LARGE-PIC-NEXT:    addq %rax, %rcx
 ; LARGE-PIC-NEXT:    movabsq ${{\.LCPI.*}}@GOTOFF, %rax

diff  --git a/llvm/test/CodeGen/X86/emutls.ll b/llvm/test/CodeGen/X86/emutls.ll
index 329a74733c55..77c4f88e5dac 100644
--- a/llvm/test/CodeGen/X86/emutls.ll
+++ b/llvm/test/CodeGen/X86/emutls.ll
@@ -27,7 +27,7 @@ define i32 @my_get_xyz() {
 ; X86-NEXT:    retl
 ;
 ; X64-LABEL: my_get_xyz:
-; X64:         movl $my_emutls_v_xyz, %edi
+; X64:         movq my_emutls_v_xyz at GOTPCREL(%rip), %rdi
 ; X64-NEXT:    callq my_emutls_get_address
 ; X64-NEXT:    movl (%rax), %eax
 ; X64-NEXT:    popq %rcx

diff  --git a/llvm/test/CodeGen/X86/linux-preemption.ll b/llvm/test/CodeGen/X86/linux-preemption.ll
index 15265f401992..f16327ce89fe 100644
--- a/llvm/test/CodeGen/X86/linux-preemption.ll
+++ b/llvm/test/CodeGen/X86/linux-preemption.ll
@@ -41,7 +41,7 @@ define i32* @get_external_default_global() {
   ret i32* @external_default_global
 }
 ; CHECK: movq external_default_global at GOTPCREL(%rip), %rax
-; STATIC: movl $external_default_global, %eax
+; STATIC: movq external_default_global at GOTPCREL(%rip), %rax
 ; CHECK32: movl external_default_global at GOT(%eax), %eax
 
 @strong_local_global = dso_local global i32 42
@@ -90,7 +90,7 @@ define i32* @get_external_preemptable_global() {
   ret i32* @external_preemptable_global
 }
 ; CHECK: movq external_preemptable_global at GOTPCREL(%rip), %rax
-; STATIC: movl $external_preemptable_global, %eax
+; STATIC: movq external_preemptable_global at GOTPCREL(%rip), %rax
 ; CHECK32: movl external_preemptable_global at GOT(%eax), %eax
 
 ; aliases

diff  --git a/llvm/test/CodeGen/X86/speculative-load-hardening-indirect.ll b/llvm/test/CodeGen/X86/speculative-load-hardening-indirect.ll
index f393595ef9bd..e475c183c488 100644
--- a/llvm/test/CodeGen/X86/speculative-load-hardening-indirect.ll
+++ b/llvm/test/CodeGen/X86/speculative-load-hardening-indirect.ll
@@ -139,7 +139,8 @@ define i32 @test_indirect_call_global() nounwind {
 ; X64-NEXT:    movq %rsp, %rax
 ; X64-NEXT:    movq $-1, %rbx
 ; X64-NEXT:    sarq $63, %rax
-; X64-NEXT:    movq {{.*}}(%rip), %rcx
+; X64-NEXT:    movq global_fnptr@{{.*}}(%rip), %rcx
+; X64-NEXT:    movq (%rcx), %rcx
 ; X64-NEXT:    orq %rax, %rcx
 ; X64-NEXT:    shlq $47, %rax
 ; X64-NEXT:    orq %rax, %rsp
@@ -185,7 +186,9 @@ define i32 @test_indirect_call_global() nounwind {
 ; X64-RETPOLINE-NEXT:    movq %rsp, %rax
 ; X64-RETPOLINE-NEXT:    movq $-1, %rbx
 ; X64-RETPOLINE-NEXT:    sarq $63, %rax
-; X64-RETPOLINE-NEXT:    movq {{.*}}(%rip), %r11
+; X64-RETPOLINE-NEXT:    movq global_fnptr@{{.*}}(%rip), %rcx
+; X64-RETPOLINE-NEXT:    movq (%rcx), %r11
+; X64-RETPOLINE-NEXT:    orq %rax, %r11
 ; X64-RETPOLINE-NEXT:    shlq $47, %rax
 ; X64-RETPOLINE-NEXT:    orq %rax, %rsp
 ; X64-RETPOLINE-NEXT:    callq __llvm_retpoline_r11
@@ -211,7 +214,8 @@ define i32 @test_indirect_tail_call_global() nounwind {
 ; X64-NEXT:    movq %rsp, %rax
 ; X64-NEXT:    movq $-1, %rcx
 ; X64-NEXT:    sarq $63, %rax
-; X64-NEXT:    movq {{.*}}(%rip), %rcx
+; X64-NEXT:    movq global_fnptr@{{.*}}(%rip), %rcx
+; X64-NEXT:    movq (%rcx), %rcx
 ; X64-NEXT:    orq %rax, %rcx
 ; X64-NEXT:    shlq $47, %rax
 ; X64-NEXT:    orq %rax, %rsp
@@ -234,7 +238,9 @@ define i32 @test_indirect_tail_call_global() nounwind {
 ; X64-RETPOLINE-NEXT:    movq %rsp, %rax
 ; X64-RETPOLINE-NEXT:    movq $-1, %rcx
 ; X64-RETPOLINE-NEXT:    sarq $63, %rax
-; X64-RETPOLINE-NEXT:    movq {{.*}}(%rip), %r11
+; X64-RETPOLINE-NEXT:    movq global_fnptr@{{.*}}(%rip), %rcx
+; X64-RETPOLINE-NEXT:    movq (%rcx), %r11
+; X64-RETPOLINE-NEXT:    orq %rax, %r11
 ; X64-RETPOLINE-NEXT:    shlq $47, %rax
 ; X64-RETPOLINE-NEXT:    orq %rax, %rsp
 ; X64-RETPOLINE-NEXT:    jmp __llvm_retpoline_r11 # TAILCALL

diff  --git a/llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll b/llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll
index ceca191082c5..daee8057b7db 100644
--- a/llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll
+++ b/llvm/test/CodeGen/X86/tail-dup-merge-loop-headers.ll
@@ -204,8 +204,8 @@ define i32 @loop_shared_header(i8* %exe, i32 %exesz, i32 %headsize, i32 %min, i3
 ; CHECK-NEXT:    jne .LBB1_27
 ; CHECK-NEXT:  .LBB1_21: # %if.end41.us1436.i
 ; CHECK-NEXT:  .LBB1_23: # %if.then99.i
+; CHECK-NEXT:    movq .str.6@{{.*}}(%rip), %rdi
 ; CHECK-NEXT:    xorl %ebx, %ebx
-; CHECK-NEXT:    movl $.str.6, %edi
 ; CHECK-NEXT:    xorl %eax, %eax
 ; CHECK-NEXT:    callq cli_dbgmsg
 ; CHECK-NEXT:  .LBB1_27: # %cleanup

diff  --git a/llvm/test/CodeGen/X86/x86-64-mem.ll b/llvm/test/CodeGen/X86/x86-64-mem.ll
index 2c46f8887532..bd6787e869f7 100644
--- a/llvm/test/CodeGen/X86/x86-64-mem.ll
+++ b/llvm/test/CodeGen/X86/x86-64-mem.ll
@@ -22,8 +22,10 @@ define void @test1() nounwind {
 ;
 ; LINUX-LABEL: test1:
 ; LINUX:       # %bb.0:
-; LINUX-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-NEXT:    movl %eax, {{.*}}(%rip)
+; LINUX-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-NEXT:    movl (%rax), %eax
+; LINUX-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-NEXT:    movl %eax, (%rcx)
 ; LINUX-NEXT:    retq
 	%tmp = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @src, i32 0, i32 0)		; <i32> [#uses=1]
 	store i32 %tmp, i32* getelementptr ([0 x i32], [0 x i32]* @dst, i32 0, i32 0)
@@ -40,7 +42,9 @@ define void @test2() nounwind {
 ;
 ; LINUX-LABEL: test2:
 ; LINUX:       # %bb.0:
-; LINUX-NEXT:    movq $dst, {{.*}}(%rip)
+; LINUX-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-NEXT:    movq %rax, (%rcx)
 ; LINUX-NEXT:    retq
 	store i32* getelementptr ([0 x i32], [0 x i32]* @dst, i32 0, i32 0), i32** @ptr
 	ret void

diff  --git a/llvm/test/CodeGen/X86/x86-store-gv-addr.ll b/llvm/test/CodeGen/X86/x86-store-gv-addr.ll
index 11da500d3fb2..e8823bd7efbb 100644
--- a/llvm/test/CodeGen/X86/x86-store-gv-addr.ll
+++ b/llvm/test/CodeGen/X86/x86-store-gv-addr.ll
@@ -15,7 +15,9 @@ define void @t() nounwind optsize {
 ;
 ; x86_64-linux-LABEL: t:
 ; x86_64-linux:       # %bb.0:
-; x86_64-linux-NEXT:    movq $v, {{.*}}(%rip)
+; x86_64-linux-NEXT:    movq v@{{.*}}(%rip), %rax
+; x86_64-linux-NEXT:    movq v_addr@{{.*}}(%rip), %rcx
+; x86_64-linux-NEXT:    movq %rax, (%rcx)
 	store i32* @v, i32** @v_addr, align 8
 	unreachable
 }

diff  --git a/llvm/test/CodeGen/XCore/threads.ll b/llvm/test/CodeGen/XCore/threads.ll
index 30dda143e084..0c25314295d7 100644
--- a/llvm/test/CodeGen/XCore/threads.ll
+++ b/llvm/test/CodeGen/XCore/threads.ll
@@ -87,7 +87,7 @@ define i32* @f_tle() {
 ; CHECK: shl [[R0:r[0-9]]], r11, 3
 ; CHECK: ldaw [[R1:r[0-9]]], dp[tle]
 ; r0 = &tl + id*8
-; CHECK: add r0, [[R0]], [[R1]]
+; CHECK: add r0, [[R1]], [[R0]]
   ret i32* getelementptr inbounds ([2 x i32], [2 x i32]* @tle, i32 0, i32 0)
 }
 
@@ -96,7 +96,7 @@ define i32 @f_tlExpr () {
 ; CHECK: get r11, id
 ; CHECK: shl [[R0:r[0-9]]], r11, 3
 ; CHECK: ldaw [[R1:r[0-9]]], dp[tle]
-; CHECK: add [[R2:r[0-9]]], [[R0]], [[R1]]
+; CHECK: add [[R2:r[0-9]]], [[R1]], [[R0]]
 ; CHECK: add r0, [[R2]], [[R2]]
   ret i32 add(
       i32 ptrtoint( i32* getelementptr inbounds ([2 x i32], [2 x i32]* @tle, i32 0, i32 0) to i32),


        


More information about the llvm-branch-commits mailing list