[llvm] 5d9ea36 - [UpdateTestChecks] Default --x86_scrub_rip to False

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Fri May 21 19:26:23 PDT 2021


Author: Fangrui Song
Date: 2021-05-21T19:26:15-07:00
New Revision: 5d9ea36baffe682649923d29161cc58ca3d1a243

URL: https://github.com/llvm/llvm-project/commit/5d9ea36baffe682649923d29161cc58ca3d1a243
DIFF: https://github.com/llvm/llvm-project/commit/5d9ea36baffe682649923d29161cc58ca3d1a243.diff

LOG: [UpdateTestChecks] Default --x86_scrub_rip to False

True is a bad default: the useful symbol names and `@GOTPCREL` are scrubbed.

Change the default and add global variable tests to x86-basic.ll
(renamed from x86_function_name.ll since we now also test variables).
I updated some tests to show the differences.

Updated LCPI regex to include Darwin style `LCPI_[0-9]+_[0-9]+` (no
leading dot).

Reviewed By: pengfei

Differential Revision: https://reviews.llvm.org/D102588

Added: 
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-basic.test
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-constant-pool.test

Modified: 
    llvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
    llvm/test/CodeGen/X86/WidenArith.ll
    llvm/test/CodeGen/X86/abi-isel.ll
    llvm/test/CodeGen/X86/xor.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/basic.test
    llvm/utils/UpdateTestChecks/asm.py
    llvm/utils/update_llc_test_checks.py

Removed: 
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-function-name.test


################################################################################
diff  --git a/llvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll b/llvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
index 5c303f7181e0d..e4b7a8b7a548c 100644
--- a/llvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
+++ b/llvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
@@ -14,16 +14,16 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    pushq %r14
 ; CHECK-NEXT:    pushq %r12
 ; CHECK-NEXT:    pushq %rbx
-; CHECK-NEXT:    movq {{.*}}(%rip), %r8
-; CHECK-NEXT:    movq {{.*}}(%rip), %r10
-; CHECK-NEXT:    movq {{.*}}(%rip), %r9
-; CHECK-NEXT:    movq {{.*}}(%rip), %r12
-; CHECK-NEXT:    movq {{.*}}(%rip), %r15
-; CHECK-NEXT:    movq {{.*}}(%rip), %r14
-; CHECK-NEXT:    movq {{.*}}(%rip), %r11
-; CHECK-NEXT:    movq {{.*}}(%rip), %rdx
+; CHECK-NEXT:    movq X(%rip), %r8
+; CHECK-NEXT:    movq X(%rip), %r10
+; CHECK-NEXT:    movq X(%rip), %r9
+; CHECK-NEXT:    movq X(%rip), %r12
+; CHECK-NEXT:    movq X(%rip), %r15
+; CHECK-NEXT:    movq X(%rip), %r14
+; CHECK-NEXT:    movq X(%rip), %r11
+; CHECK-NEXT:    movq X(%rip), %rdx
 ; CHECK-NEXT:    addq %r15, %rdx
-; CHECK-NEXT:    movq {{.*}}(%rip), %rsi
+; CHECK-NEXT:    movq X(%rip), %rsi
 ; CHECK-NEXT:    bswapq %rsi
 ; CHECK-NEXT:    leaq (%r11,%r14), %rbx
 ; CHECK-NEXT:    addq %r15, %rbx
@@ -32,7 +32,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r9,%r10), %rsi
 ; CHECK-NEXT:    leaq (%rsi,%r8), %rdx
 ; CHECK-NEXT:    addq %rsi, %rdx
-; CHECK-NEXT:    movq {{.*}}(%rip), %rdi
+; CHECK-NEXT:    movq X(%rip), %rdi
 ; CHECK-NEXT:    addq %rbx, %r12
 ; CHECK-NEXT:    addq %r8, %rdx
 ; CHECK-NEXT:    bswapq %rdi
@@ -44,7 +44,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r10,%r8), %rbx
 ; CHECK-NEXT:    leaq (%rdx,%rbx), %rsi
 ; CHECK-NEXT:    addq %rbx, %rsi
-; CHECK-NEXT:    movq {{.*}}(%rip), %rbx
+; CHECK-NEXT:    movq X(%rip), %rbx
 ; CHECK-NEXT:    addq %r12, %rdi
 ; CHECK-NEXT:    addq %rdi, %r9
 ; CHECK-NEXT:    addq %rdx, %rsi
@@ -57,7 +57,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%rdx,%r8), %rax
 ; CHECK-NEXT:    leaq (%rsi,%rax), %rdi
 ; CHECK-NEXT:    addq %rax, %rdi
-; CHECK-NEXT:    movq {{.*}}(%rip), %rcx
+; CHECK-NEXT:    movq X(%rip), %rcx
 ; CHECK-NEXT:    addq %r9, %rbx
 ; CHECK-NEXT:    addq %rbx, %r10
 ; CHECK-NEXT:    addq %rsi, %rdi
@@ -70,7 +70,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%rsi,%rdx), %rbx
 ; CHECK-NEXT:    leaq (%rdi,%rbx), %r11
 ; CHECK-NEXT:    addq %rbx, %r11
-; CHECK-NEXT:    movq {{.*}}(%rip), %rbx
+; CHECK-NEXT:    movq X(%rip), %rbx
 ; CHECK-NEXT:    addq %r10, %rcx
 ; CHECK-NEXT:    addq %rcx, %r8
 ; CHECK-NEXT:    addq %rdi, %r11
@@ -83,7 +83,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%rdi,%rsi), %rax
 ; CHECK-NEXT:    leaq (%r11,%rax), %r14
 ; CHECK-NEXT:    addq %rax, %r14
-; CHECK-NEXT:    movq {{.*}}(%rip), %rax
+; CHECK-NEXT:    movq X(%rip), %rax
 ; CHECK-NEXT:    addq %r8, %rbx
 ; CHECK-NEXT:    addq %rbx, %rdx
 ; CHECK-NEXT:    addq %r11, %r14
@@ -96,7 +96,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r11,%rdi), %rbx
 ; CHECK-NEXT:    leaq (%r14,%rbx), %r9
 ; CHECK-NEXT:    addq %rbx, %r9
-; CHECK-NEXT:    movq {{.*}}(%rip), %rbx
+; CHECK-NEXT:    movq X(%rip), %rbx
 ; CHECK-NEXT:    addq %rdx, %rax
 ; CHECK-NEXT:    addq %rax, %rsi
 ; CHECK-NEXT:    addq %r14, %r9
@@ -109,7 +109,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r14,%r11), %rax
 ; CHECK-NEXT:    leaq (%r9,%rax), %r10
 ; CHECK-NEXT:    addq %rax, %r10
-; CHECK-NEXT:    movq {{.*}}(%rip), %rax
+; CHECK-NEXT:    movq X(%rip), %rax
 ; CHECK-NEXT:    addq %rsi, %rbx
 ; CHECK-NEXT:    addq %rbx, %rdi
 ; CHECK-NEXT:    addq %r9, %r10
@@ -122,7 +122,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r9,%r14), %rbx
 ; CHECK-NEXT:    leaq (%r10,%rbx), %r8
 ; CHECK-NEXT:    addq %rbx, %r8
-; CHECK-NEXT:    movq {{.*}}(%rip), %rbx
+; CHECK-NEXT:    movq X(%rip), %rbx
 ; CHECK-NEXT:    addq %rdi, %rax
 ; CHECK-NEXT:    addq %rax, %r11
 ; CHECK-NEXT:    addq %r10, %r8
@@ -135,7 +135,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r10,%r9), %rax
 ; CHECK-NEXT:    leaq (%r8,%rax), %r15
 ; CHECK-NEXT:    addq %rax, %r15
-; CHECK-NEXT:    movq {{.*}}(%rip), %rax
+; CHECK-NEXT:    movq X(%rip), %rax
 ; CHECK-NEXT:    addq %r11, %rbx
 ; CHECK-NEXT:    addq %rbx, %r14
 ; CHECK-NEXT:    addq %r8, %r15
@@ -148,7 +148,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r8,%r10), %rbx
 ; CHECK-NEXT:    leaq (%r15,%rbx), %rsi
 ; CHECK-NEXT:    addq %rbx, %rsi
-; CHECK-NEXT:    movq {{.*}}(%rip), %rbx
+; CHECK-NEXT:    movq X(%rip), %rbx
 ; CHECK-NEXT:    addq %r14, %rax
 ; CHECK-NEXT:    addq %rax, %r9
 ; CHECK-NEXT:    addq %r15, %rsi
@@ -161,7 +161,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r15,%r8), %rax
 ; CHECK-NEXT:    leaq (%rsi,%rax), %r12
 ; CHECK-NEXT:    addq %rax, %r12
-; CHECK-NEXT:    movq {{.*}}(%rip), %rcx
+; CHECK-NEXT:    movq X(%rip), %rcx
 ; CHECK-NEXT:    addq %r9, %rbx
 ; CHECK-NEXT:    addq %rbx, %r10
 ; CHECK-NEXT:    addq %rsi, %r12
@@ -174,7 +174,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%rsi,%r15), %rbx
 ; CHECK-NEXT:    leaq (%r12,%rbx), %rax
 ; CHECK-NEXT:    addq %rbx, %rax
-; CHECK-NEXT:    movq {{.*}}(%rip), %rbx
+; CHECK-NEXT:    movq X(%rip), %rbx
 ; CHECK-NEXT:    addq %r10, %rcx
 ; CHECK-NEXT:    addq %rcx, %r8
 ; CHECK-NEXT:    addq %r12, %rax
@@ -187,7 +187,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    leaq (%r12,%rsi), %rdx
 ; CHECK-NEXT:    leaq (%rax,%rdx), %rcx
 ; CHECK-NEXT:    addq %rdx, %rcx
-; CHECK-NEXT:    movq {{.*}}(%rip), %rdx
+; CHECK-NEXT:    movq X(%rip), %rdx
 ; CHECK-NEXT:    addq %r8, %rbx
 ; CHECK-NEXT:    addq %rbx, %r15
 ; CHECK-NEXT:    addq %rax, %rcx
@@ -204,7 +204,7 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    addq %rdx, %rsi
 ; CHECK-NEXT:    addq %rcx, %rbx
 ; CHECK-NEXT:    addq %rdx, %rbx
-; CHECK-NEXT:    movq {{.*}}(%rip), %rdx
+; CHECK-NEXT:    movq X(%rip), %rdx
 ; CHECK-NEXT:    bswapq %rdx
 ; CHECK-NEXT:    addq %r10, %rdx
 ; CHECK-NEXT:    leaq (%r15,%r8), %rdi
@@ -218,9 +218,9 @@ define fastcc i64 @foo() nounwind {
 ; CHECK-NEXT:    addq %rdx, %r12
 ; CHECK-NEXT:    addq %rdx, %rdi
 ; CHECK-NEXT:    addq %r15, %rsi
-; CHECK-NEXT:    movq {{.*}}(%rip), %rax
+; CHECK-NEXT:    movq X(%rip), %rax
 ; CHECK-NEXT:    bswapq %rax
-; CHECK-NEXT:    movq %rax, {{.*}}(%rip)
+; CHECK-NEXT:    movq %rax, X(%rip)
 ; CHECK-NEXT:    addq %r8, %rax
 ; CHECK-NEXT:    addq %r12, %rsi
 ; CHECK-NEXT:    addq %rsi, %rax

diff  --git a/llvm/test/CodeGen/X86/WidenArith.ll b/llvm/test/CodeGen/X86/WidenArith.ll
index 8d1eedc96a6e5..194f614d084bc 100644
--- a/llvm/test/CodeGen/X86/WidenArith.ll
+++ b/llvm/test/CodeGen/X86/WidenArith.ll
@@ -11,7 +11,7 @@ define <8 x i32> @test(<8 x float> %a, <8 x float> %b) {
 ; X86-NEXT:    vcmpltps %ymm1, %ymm0, %ymm0
 ; X86-NEXT:    vcmpltps %ymm3, %ymm2, %ymm1
 ; X86-NEXT:    vandps %ymm1, %ymm0, %ymm0
-; X86-NEXT:    vandps {{\.LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0
+; X86-NEXT:    vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0
 ; X86-NEXT:    retl
 ;
 ; X64-LABEL: test:
@@ -22,7 +22,7 @@ define <8 x i32> @test(<8 x float> %a, <8 x float> %b) {
 ; X64-NEXT:    vcmpltps %ymm1, %ymm0, %ymm0
 ; X64-NEXT:    vcmpltps %ymm3, %ymm2, %ymm1
 ; X64-NEXT:    vandps %ymm1, %ymm0, %ymm0
-; X64-NEXT:    vandps {{.*}}(%rip), %ymm0, %ymm0
+; X64-NEXT:    vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
 ; X64-NEXT:    retq
  %c1 = fadd <8 x float> %a, %b
  %b1 = fmul <8 x float> %b, %a

diff  --git a/llvm/test/CodeGen/X86/abi-isel.ll b/llvm/test/CodeGen/X86/abi-isel.ll
index 16a832c3ed9b3..4912cb593f554 100644
--- a/llvm/test/CodeGen/X86/abi-isel.ll
+++ b/llvm/test/CodeGen/X86/abi-isel.ll
@@ -36,9 +36,9 @@
 define dso_local void @foo00() nounwind {
 ; LINUX-64-STATIC-LABEL: foo00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -63,9 +63,9 @@ define dso_local void @foo00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -96,25 +96,25 @@ define dso_local void @foo00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -128,9 +128,9 @@ entry:
 define dso_local void @fxo00() nounwind {
 ; LINUX-64-STATIC-LABEL: fxo00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -155,9 +155,9 @@ define dso_local void @fxo00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: fxo00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -188,25 +188,25 @@ define dso_local void @fxo00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: fxo00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -220,8 +220,8 @@ entry:
 define dso_local void @foo01() nounwind {
 ; LINUX-64-STATIC-LABEL: foo01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -244,8 +244,8 @@ define dso_local void @foo01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -273,22 +273,22 @@ define dso_local void @foo01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -300,8 +300,8 @@ entry:
 define dso_local void @fxo01() nounwind {
 ; LINUX-64-STATIC-LABEL: fxo01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -324,8 +324,8 @@ define dso_local void @fxo01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: fxo01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -353,22 +353,22 @@ define dso_local void @fxo01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: fxo01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: fxo01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: fxo01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; 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 %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -380,9 +380,9 @@ entry:
 define dso_local void @foo02() nounwind {
 ; LINUX-64-STATIC-LABEL: foo02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -410,9 +410,9 @@ define dso_local void @foo02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -447,27 +447,27 @@ define dso_local void @foo02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -482,9 +482,9 @@ entry:
 define dso_local void @fxo02() nounwind {
 ; LINUX-64-STATIC-LABEL: fxo02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -512,9 +512,9 @@ define dso_local void @fxo02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: fxo02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -549,27 +549,27 @@ define dso_local void @fxo02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: fxo02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -584,8 +584,8 @@ entry:
 define dso_local void @foo03() nounwind {
 ; LINUX-64-STATIC-LABEL: foo03:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, {{.*}}(%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: foo03:
@@ -607,8 +607,8 @@ define dso_local void @foo03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl .Ldsrc${{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, .Lddst${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movl .Ldsrc$local(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, .Lddst$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: foo03:
@@ -634,20 +634,20 @@ define dso_local void @foo03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, {{.*}}(%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: foo03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, {{.*}}(%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: foo03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movl _dsrc(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ddst(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -659,7 +659,7 @@ entry:
 define dso_local void @foo04() nounwind {
 ; LINUX-64-STATIC-LABEL: foo04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ddst, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ddst, dptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo04:
@@ -680,8 +680,8 @@ define dso_local void @foo04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: foo04:
@@ -705,20 +705,20 @@ define dso_local void @foo04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -729,8 +729,8 @@ entry:
 define dso_local void @foo05() nounwind {
 ; LINUX-64-STATIC-LABEL: foo05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl dsrc(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -755,8 +755,8 @@ define dso_local void @foo05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl .Ldsrc${{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl .Ldsrc$local(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -786,22 +786,22 @@ define dso_local void @foo05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _dsrc(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _dsrc(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -815,8 +815,8 @@ entry:
 define dso_local void @foo06() nounwind {
 ; LINUX-64-STATIC-LABEL: foo06:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movl %eax, {{.*}}(%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: foo06:
@@ -838,8 +838,8 @@ define dso_local void @foo06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, {{.*}}(%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: foo06:
@@ -865,20 +865,20 @@ define dso_local void @foo06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movl %eax, {{.*}}(%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: foo06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movl %eax, {{.*}}(%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: foo06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movl %eax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movl _lsrc(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ldst(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -890,7 +890,7 @@ entry:
 define dso_local void @foo07() nounwind {
 ; LINUX-64-STATIC-LABEL: foo07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ldst, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ldst, lptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: foo07:
@@ -911,8 +911,8 @@ define dso_local void @foo07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: foo07:
@@ -936,20 +936,20 @@ define dso_local void @foo07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: foo07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: foo07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -960,8 +960,8 @@ entry:
 define dso_local void @foo08() nounwind {
 ; LINUX-64-STATIC-LABEL: foo08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl lsrc(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -986,8 +986,8 @@ define dso_local void @foo08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: foo08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl {{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl lsrc(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1017,22 +1017,22 @@ define dso_local void @foo08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: foo08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl {{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _lsrc(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _lsrc(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1046,9 +1046,9 @@ entry:
 define dso_local void @qux00() nounwind {
 ; LINUX-64-STATIC-LABEL: qux00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1073,9 +1073,9 @@ define dso_local void @qux00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1106,25 +1106,25 @@ define dso_local void @qux00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1137,9 +1137,9 @@ entry:
 define dso_local void @qxx00() nounwind {
 ; LINUX-64-STATIC-LABEL: qxx00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1164,9 +1164,9 @@ define dso_local void @qxx00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qxx00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1197,25 +1197,25 @@ define dso_local void @qxx00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qxx00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1228,9 +1228,9 @@ entry:
 define dso_local void @qux01() nounwind {
 ; LINUX-64-STATIC-LABEL: qux01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1255,9 +1255,9 @@ define dso_local void @qux01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1287,25 +1287,25 @@ define dso_local void @qux01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1317,9 +1317,9 @@ entry:
 define dso_local void @qxx01() nounwind {
 ; LINUX-64-STATIC-LABEL: qxx01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1344,9 +1344,9 @@ define dso_local void @qxx01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qxx01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1376,25 +1376,25 @@ define dso_local void @qxx01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qxx01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    addq $64, %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    addq $64, %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1406,9 +1406,9 @@ entry:
 define dso_local void @qux02() nounwind {
 ; LINUX-64-STATIC-LABEL: qux02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -1436,9 +1436,9 @@ define dso_local void @qux02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -1473,27 +1473,27 @@ define dso_local void @qux02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -1509,9 +1509,9 @@ entry:
 define dso_local void @qxx02() nounwind {
 ; LINUX-64-STATIC-LABEL: qxx02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -1539,9 +1539,9 @@ define dso_local void @qxx02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qxx02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -1576,27 +1576,27 @@ define dso_local void @qxx02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qxx02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -1612,8 +1612,8 @@ entry:
 define dso_local void @qux03() nounwind {
 ; LINUX-64-STATIC-LABEL: qux03:
 ; 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 dsrc+64(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ddst+64(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux03:
@@ -1635,8 +1635,8 @@ define dso_local void @qux03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+{{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, .Lddst$local+{{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+64(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, .Lddst$local+64(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: qux03:
@@ -1662,20 +1662,20 @@ define dso_local void @qux03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux03:
 ; 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 _dsrc+64(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst+64(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux03:
 ; 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 _dsrc+64(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst+64(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux03:
 ; 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 _dsrc+64(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ddst+64(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1687,7 +1687,7 @@ entry:
 define dso_local void @qux04() nounwind {
 ; LINUX-64-STATIC-LABEL: qux04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ddst+64, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ddst+64, dptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux04:
@@ -1708,8 +1708,8 @@ define dso_local void @qux04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst$local+{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local+64(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: qux04:
@@ -1733,20 +1733,20 @@ define dso_local void @qux04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+64(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+64(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ddst+64(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1757,8 +1757,8 @@ entry:
 define dso_local void @qux05() nounwind {
 ; LINUX-64-STATIC-LABEL: qux05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc+{{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl dsrc+64(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -1783,8 +1783,8 @@ define dso_local void @qux05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+{{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+64(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -1814,22 +1814,22 @@ define dso_local void @qux05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _dsrc+64(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+64(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _dsrc+64(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -1844,8 +1844,8 @@ entry:
 define dso_local void @qux06() nounwind {
 ; LINUX-64-STATIC-LABEL: qux06:
 ; 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 lsrc+64(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ldst+64(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux06:
@@ -1867,8 +1867,8 @@ define dso_local void @qux06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux06:
 ; 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 lsrc+64(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, ldst+64(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: qux06:
@@ -1894,20 +1894,20 @@ define dso_local void @qux06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux06:
 ; 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 _lsrc+64(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst+64(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux06:
 ; 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 _lsrc+64(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst+64(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux06:
 ; 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 _lsrc+64(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ldst+64(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1919,7 +1919,7 @@ entry:
 define dso_local void @qux07() nounwind {
 ; LINUX-64-STATIC-LABEL: qux07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ldst+64, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ldst+64, lptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: qux07:
@@ -1940,8 +1940,8 @@ define dso_local void @qux07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    leaq ldst+64(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: qux07:
@@ -1965,20 +1965,20 @@ define dso_local void @qux07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+64(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: qux07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+64(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: qux07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ldst+64(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -1989,8 +1989,8 @@ entry:
 define dso_local void @qux08() nounwind {
 ; LINUX-64-STATIC-LABEL: qux08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl lsrc+64(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2015,8 +2015,8 @@ define dso_local void @qux08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: qux08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl lsrc+64(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2046,22 +2046,22 @@ define dso_local void @qux08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: qux08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _lsrc+64(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+64(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _lsrc+64(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2076,9 +2076,9 @@ entry:
 define dso_local void @ind00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2105,9 +2105,9 @@ define dso_local void @ind00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2141,25 +2141,25 @@ define dso_local void @ind00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2174,9 +2174,9 @@ entry:
 define dso_local void @ixd00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ixd00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2203,9 +2203,9 @@ define dso_local void @ixd00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ixd00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2239,25 +2239,25 @@ define dso_local void @ixd00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ixd00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2273,8 +2273,8 @@ define dso_local void @ind01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; 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:    addq dst at GOTPCREL(%rip), %rdi
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2302,8 +2302,8 @@ define dso_local 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@{{.*}}(%rip), %rdi
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq dst at GOTPCREL(%rip), %rdi
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2338,24 +2338,24 @@ define dso_local 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@{{.*}}(%rip), %rdi
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _dst at GOTPCREL(%rip), %rdi
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rdi
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _dst at GOTPCREL(%rip), %rdi
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rdi
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _dst at GOTPCREL(%rip), %rdi
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2369,8 +2369,8 @@ define dso_local void @ixd01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ixd01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; 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:    addq xdst at GOTPCREL(%rip), %rdi
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2398,8 +2398,8 @@ define dso_local 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@{{.*}}(%rip), %rdi
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq xdst at GOTPCREL(%rip), %rdi
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq %rdi, (%rax)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2434,24 +2434,24 @@ define dso_local 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@{{.*}}(%rip), %rdi
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rdi
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rdi
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rdi
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rdi
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rdi
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq %rdi, (%rax)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2464,9 +2464,9 @@ entry:
 define dso_local void @ind02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ind02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -2496,9 +2496,9 @@ define dso_local void @ind02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -2536,27 +2536,27 @@ define dso_local void @ind02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -2573,9 +2573,9 @@ entry:
 define dso_local void @ixd02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: ixd02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -2605,9 +2605,9 @@ define dso_local void @ixd02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ixd02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -2645,27 +2645,27 @@ define dso_local void @ixd02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ixd02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -2707,9 +2707,9 @@ define dso_local void @ind03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2739,25 +2739,25 @@ define dso_local void @ind03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2773,7 +2773,7 @@ define dso_local 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, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, dptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ind04:
@@ -2797,9 +2797,9 @@ define dso_local void @ind04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: ind04:
@@ -2828,23 +2828,23 @@ define dso_local void @ind04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -2857,7 +2857,7 @@ define dso_local 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 {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -2884,9 +2884,9 @@ define dso_local void @ind05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -2919,25 +2919,25 @@ define dso_local void @ind05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -2978,9 +2978,9 @@ define dso_local void @ind06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3010,25 +3010,25 @@ define dso_local void @ind06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3044,7 +3044,7 @@ define dso_local 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, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: ind07:
@@ -3068,9 +3068,9 @@ define dso_local void @ind07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: ind07:
@@ -3099,23 +3099,23 @@ define dso_local void @ind07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: ind07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: ind07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq (%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -3128,7 +3128,7 @@ define dso_local 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 {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3155,9 +3155,9 @@ define dso_local void @ind08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: ind08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3190,25 +3190,25 @@ define dso_local void @ind08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: ind08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl (%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, (%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3224,9 +3224,9 @@ entry:
 define dso_local void @off00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3253,9 +3253,9 @@ define dso_local void @off00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3289,25 +3289,25 @@ define dso_local void @off00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3323,9 +3323,9 @@ entry:
 define dso_local void @oxf00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: oxf00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3352,9 +3352,9 @@ define dso_local void @oxf00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: oxf00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3388,25 +3388,25 @@ define dso_local void @oxf00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: oxf00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3422,9 +3422,9 @@ entry:
 define dso_local void @off01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%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 ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3451,9 +3451,9 @@ define dso_local void @off01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3487,25 +3487,25 @@ define dso_local void @off01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3519,9 +3519,9 @@ entry:
 define dso_local void @oxf01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: oxf01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%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 ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -3548,9 +3548,9 @@ define dso_local void @oxf01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: oxf01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3584,25 +3584,25 @@ define dso_local void @oxf01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: oxf01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3616,9 +3616,9 @@ entry:
 define dso_local void @off02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: off02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%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 ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -3648,9 +3648,9 @@ define dso_local void @off02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -3688,27 +3688,27 @@ define dso_local void @off02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -3726,9 +3726,9 @@ entry:
 define dso_local void @oxf02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: oxf02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%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 ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -3758,9 +3758,9 @@ define dso_local void @oxf02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: oxf02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -3798,27 +3798,27 @@ define dso_local void @oxf02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: oxf02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -3861,9 +3861,9 @@ define dso_local void @off03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -3893,25 +3893,25 @@ define dso_local void @off03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -3928,7 +3928,7 @@ define dso_local 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, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, dptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: off04:
@@ -3952,9 +3952,9 @@ define dso_local void @off04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: off04:
@@ -3983,23 +3983,23 @@ define dso_local void @off04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4013,7 +4013,7 @@ define dso_local 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 {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4040,9 +4040,9 @@ define dso_local void @off05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4075,25 +4075,25 @@ define dso_local void @off05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4135,9 +4135,9 @@ define dso_local void @off06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4167,25 +4167,25 @@ define dso_local void @off06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4202,7 +4202,7 @@ define dso_local 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, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: off07:
@@ -4226,9 +4226,9 @@ define dso_local void @off07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: off07:
@@ -4257,23 +4257,23 @@ define dso_local void @off07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: off07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: off07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4287,7 +4287,7 @@ define dso_local 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 {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4314,9 +4314,9 @@ define dso_local void @off08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: off08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4349,25 +4349,25 @@ define dso_local void @off08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: off08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 64(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 64(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4384,9 +4384,9 @@ entry:
 define dso_local void @moo00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4411,9 +4411,9 @@ define dso_local void @moo00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4444,25 +4444,25 @@ define dso_local void @moo00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4476,8 +4476,8 @@ define dso_local void @moo01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; 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:    addq dst at GOTPCREL(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4503,8 +4503,8 @@ define dso_local 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@{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    addq dst at GOTPCREL(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4535,24 +4535,24 @@ define dso_local 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@{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4564,9 +4564,9 @@ entry:
 define dso_local void @moo02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -4594,9 +4594,9 @@ define dso_local void @moo02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
@@ -4631,27 +4631,27 @@ define dso_local void @moo02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -4667,8 +4667,8 @@ entry:
 define dso_local void @moo03(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo03:
 ; 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 dsrc+262144(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ddst+262144(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo03:
@@ -4690,8 +4690,8 @@ define dso_local void @moo03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+{{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movl %eax, .Lddst$local+{{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+262144(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, .Lddst$local+262144(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: moo03:
@@ -4717,20 +4717,20 @@ define dso_local void @moo03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo03:
 ; 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 _dsrc+262144(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ddst+262144(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo03:
 ; 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 _dsrc+262144(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ddst+262144(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo03:
 ; 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 _dsrc+262144(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ddst+262144(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4742,7 +4742,7 @@ entry:
 define dso_local void @moo04(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo04:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ddst+262144, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ddst+262144, dptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo04:
@@ -4763,8 +4763,8 @@ define dso_local void @moo04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst$local+{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local+262144(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: moo04:
@@ -4788,20 +4788,20 @@ define dso_local void @moo04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+262144(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+262144(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ddst+262144(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4812,8 +4812,8 @@ entry:
 define dso_local void @moo05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl dsrc+{{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl dsrc+262144(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -4838,8 +4838,8 @@ define dso_local void @moo05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+{{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl .Ldsrc$local+262144(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -4869,22 +4869,22 @@ define dso_local void @moo05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _dsrc+{{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _dsrc+262144(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _dsrc+262144(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _dsrc+262144(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -4899,8 +4899,8 @@ entry:
 define dso_local void @moo06(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo06:
 ; 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 lsrc+262144(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movl %eax, ldst+262144(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo06:
@@ -4922,8 +4922,8 @@ define dso_local void @moo06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo06:
 ; 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 lsrc+262144(%rip), %eax
+; LINUX-64-PIC-NEXT:    movl %eax, ldst+262144(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: moo06:
@@ -4949,20 +4949,20 @@ define dso_local void @moo06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo06:
 ; 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 _lsrc+262144(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movl %eax, _ldst+262144(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo06:
 ; 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 _lsrc+262144(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movl %eax, _ldst+262144(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo06:
 ; 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 _lsrc+262144(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movl %eax, _ldst+262144(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -4974,7 +4974,7 @@ entry:
 define dso_local void @moo07(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo07:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq $ldst+262144, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq $ldst+262144, lptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: moo07:
@@ -4995,8 +4995,8 @@ define dso_local void @moo07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    leaq ldst+262144(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: moo07:
@@ -5020,20 +5020,20 @@ define dso_local void @moo07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+262144(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: moo07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+262144(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: moo07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    leaq _ldst+262144(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -5044,8 +5044,8 @@ entry:
 define dso_local void @moo08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: moo08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movl lsrc+262144(%rip), %eax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5070,8 +5070,8 @@ define dso_local void @moo08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: moo08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movl lsrc+{{.*}}(%rip), %eax
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movl lsrc+262144(%rip), %eax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5101,22 +5101,22 @@ define dso_local void @moo08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: moo08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movl _lsrc+{{.*}}(%rip), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movl _lsrc+262144(%rip), %eax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movl _lsrc+262144(%rip), %eax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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+{{.*}}(%rip), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movl _lsrc+262144(%rip), %eax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5131,9 +5131,9 @@ entry:
 define dso_local void @big00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5160,9 +5160,9 @@ define dso_local void @big00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5196,25 +5196,25 @@ define dso_local void @big00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5230,9 +5230,9 @@ entry:
 define dso_local void @big01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%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 ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5259,9 +5259,9 @@ define dso_local void @big01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq %rax, (%rcx)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5295,25 +5295,25 @@ define dso_local void @big01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq %rax, (%rcx)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5327,9 +5327,9 @@ entry:
 define dso_local void @big02(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: big02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%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 ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
@@ -5359,9 +5359,9 @@ define dso_local void @big02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movq (%rcx), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
@@ -5399,27 +5399,27 @@ define dso_local void @big02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movq (%rcx), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
@@ -5462,9 +5462,9 @@ define dso_local void @big03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5494,25 +5494,25 @@ define dso_local void @big03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5529,7 +5529,7 @@ define dso_local 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, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, dptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: big04:
@@ -5553,9 +5553,9 @@ define dso_local void @big04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, .Ldptr$local(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: big04:
@@ -5584,23 +5584,23 @@ define dso_local void @big04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, _dptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -5614,7 +5614,7 @@ define dso_local 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 {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5641,9 +5641,9 @@ define dso_local void @big05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5676,25 +5676,25 @@ define dso_local void @big05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5736,9 +5736,9 @@ define dso_local void @big06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5768,25 +5768,25 @@ define dso_local void @big06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5803,7 +5803,7 @@ define dso_local 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, {{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: big07:
@@ -5827,9 +5827,9 @@ define dso_local void @big07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; LINUX-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    movq %rax, lptr(%rip)
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: big07:
@@ -5858,23 +5858,23 @@ define dso_local void @big07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-STATIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: big07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-DYNAMIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: big07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
-; DARWIN-64-PIC-NEXT:    movq %rax, {{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    movq %rax, _lptr(%rip)
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -5888,7 +5888,7 @@ define dso_local 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 {{.*}}(%rip), %rcx
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -5915,9 +5915,9 @@ define dso_local void @big08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: big08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -5950,25 +5950,25 @@ define dso_local void @big08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: big08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movl 262144(%rax,%rdi,4), %eax
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl %eax, 262144(%rcx,%rdi,4)
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -5985,7 +5985,7 @@ entry:
 define dso_local i8* @bar00() nounwind {
 ; LINUX-64-STATIC-LABEL: bar00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bar00:
@@ -6005,7 +6005,7 @@ define dso_local i8* @bar00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar00:
@@ -6028,17 +6028,17 @@ define dso_local i8* @bar00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6048,7 +6048,7 @@ entry:
 define dso_local i8* @bxr00() nounwind {
 ; LINUX-64-STATIC-LABEL: bxr00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxr00:
@@ -6068,7 +6068,7 @@ define dso_local i8* @bxr00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxr00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bxr00:
@@ -6091,17 +6091,17 @@ define dso_local i8* @bxr00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxr00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxr00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxr00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6111,7 +6111,7 @@ entry:
 define dso_local i8* @bar01() nounwind {
 ; LINUX-64-STATIC-LABEL: bar01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bar01:
@@ -6131,7 +6131,7 @@ define dso_local i8* @bar01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar01:
@@ -6154,17 +6154,17 @@ define dso_local i8* @bar01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6174,7 +6174,7 @@ entry:
 define dso_local i8* @bxr01() nounwind {
 ; LINUX-64-STATIC-LABEL: bxr01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxr01:
@@ -6194,7 +6194,7 @@ define dso_local i8* @bxr01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxr01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bxr01:
@@ -6217,17 +6217,17 @@ define dso_local i8* @bxr01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxr01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bxr01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bxr01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6237,7 +6237,7 @@ entry:
 define dso_local i8* @bar02() nounwind {
 ; LINUX-64-STATIC-LABEL: bar02:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bar02:
@@ -6257,7 +6257,7 @@ define dso_local i8* @bar02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar02:
@@ -6280,17 +6280,17 @@ define dso_local i8* @bar02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar02:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar02:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6320,7 +6320,7 @@ define dso_local i8* @bar03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar03:
@@ -6343,17 +6343,17 @@ define dso_local i8* @bar03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6383,7 +6383,7 @@ define dso_local i8* @bar04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar04:
@@ -6406,17 +6406,17 @@ define dso_local i8* @bar04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6446,7 +6446,7 @@ define dso_local i8* @bar05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldptr${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldptr$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar05:
@@ -6469,17 +6469,17 @@ define dso_local i8* @bar05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dptr(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dptr(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6509,7 +6509,7 @@ define dso_local i8* @bar06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar06:
@@ -6532,17 +6532,17 @@ define dso_local i8* @bar06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6572,7 +6572,7 @@ define dso_local i8* @bar07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar07:
@@ -6595,17 +6595,17 @@ define dso_local i8* @bar07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6635,7 +6635,7 @@ define dso_local i8* @bar08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bar08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lptr(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bar08:
@@ -6658,17 +6658,17 @@ define dso_local i8* @bar08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bar08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lptr(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bar08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lptr(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bar08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6678,7 +6678,7 @@ entry:
 define dso_local i8* @har00() nounwind {
 ; LINUX-64-STATIC-LABEL: har00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har00:
@@ -6698,7 +6698,7 @@ define dso_local i8* @har00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har00:
@@ -6721,17 +6721,17 @@ define dso_local i8* @har00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6741,7 +6741,7 @@ entry:
 define dso_local i8* @hxr00() nounwind {
 ; LINUX-64-STATIC-LABEL: hxr00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: hxr00:
@@ -6761,7 +6761,7 @@ define dso_local i8* @hxr00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: hxr00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: hxr00:
@@ -6784,17 +6784,17 @@ define dso_local i8* @hxr00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: hxr00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: hxr00:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: hxr00:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6804,7 +6804,7 @@ entry:
 define dso_local i8* @har01() nounwind {
 ; LINUX-64-STATIC-LABEL: har01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har01:
@@ -6824,7 +6824,7 @@ define dso_local i8* @har01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har01:
@@ -6847,17 +6847,17 @@ define dso_local i8* @har01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6867,7 +6867,7 @@ entry:
 define dso_local i8* @hxr01() nounwind {
 ; LINUX-64-STATIC-LABEL: hxr01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: hxr01:
@@ -6887,7 +6887,7 @@ define dso_local i8* @hxr01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: hxr01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: hxr01:
@@ -6910,17 +6910,17 @@ define dso_local i8* @hxr01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: hxr01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: hxr01:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: hxr01:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -6930,7 +6930,7 @@ entry:
 define dso_local 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 at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -6952,7 +6952,7 @@ define dso_local i8* @har02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -6978,19 +6978,19 @@ define dso_local i8* @har02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7023,7 +7023,7 @@ define dso_local i8* @har03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har03:
@@ -7046,17 +7046,17 @@ define dso_local i8* @har03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7086,7 +7086,7 @@ define dso_local i8* @har04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har04:
@@ -7109,17 +7109,17 @@ define dso_local i8* @har04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7129,7 +7129,7 @@ entry:
 define dso_local i8* @har05() nounwind {
 ; LINUX-64-STATIC-LABEL: har05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har05:
@@ -7149,7 +7149,7 @@ define dso_local i8* @har05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har05:
@@ -7172,17 +7172,17 @@ define dso_local i8* @har05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har05:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har05:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7214,7 +7214,7 @@ define dso_local i8* @har06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har06:
@@ -7237,17 +7237,17 @@ define dso_local i8* @har06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7277,7 +7277,7 @@ define dso_local i8* @har07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har07:
@@ -7300,17 +7300,17 @@ define dso_local i8* @har07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7320,7 +7320,7 @@ entry:
 define dso_local i8* @har08() nounwind {
 ; LINUX-64-STATIC-LABEL: har08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: har08:
@@ -7340,7 +7340,7 @@ define dso_local i8* @har08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: har08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: har08:
@@ -7363,17 +7363,17 @@ define dso_local i8* @har08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: har08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: har08:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: har08:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7385,7 +7385,7 @@ entry:
 define dso_local i8* @bat00() nounwind {
 ; LINUX-64-STATIC-LABEL: bat00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7407,7 +7407,7 @@ define dso_local i8* @bat00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7433,19 +7433,19 @@ define dso_local i8* @bat00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7456,7 +7456,7 @@ entry:
 define dso_local i8* @bxt00() nounwind {
 ; LINUX-64-STATIC-LABEL: bxt00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7478,7 +7478,7 @@ define dso_local i8* @bxt00() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxt00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7504,19 +7504,19 @@ define dso_local i8* @bxt00() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxt00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7527,7 +7527,7 @@ entry:
 define dso_local i8* @bat01() nounwind {
 ; LINUX-64-STATIC-LABEL: bat01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7549,7 +7549,7 @@ define dso_local i8* @bat01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7575,19 +7575,19 @@ define dso_local i8* @bat01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7598,7 +7598,7 @@ entry:
 define dso_local i8* @bxt01() nounwind {
 ; LINUX-64-STATIC-LABEL: bxt01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7620,7 +7620,7 @@ define dso_local i8* @bxt01() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bxt01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7646,19 +7646,19 @@ define dso_local i8* @bxt01() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bxt01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7669,7 +7669,7 @@ entry:
 define dso_local 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 at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
@@ -7694,7 +7694,7 @@ define dso_local i8* @bat02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -7724,21 +7724,21 @@ define dso_local i8* @bat02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -7773,7 +7773,7 @@ define dso_local i8* @bat03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local+64(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bat03:
@@ -7796,17 +7796,17 @@ define dso_local i8* @bat03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc+64(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+64(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc+64(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7836,7 +7836,7 @@ define dso_local i8* @bat04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst$local+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local+64(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bat04:
@@ -7859,17 +7859,17 @@ define dso_local i8* @bat04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+64(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+64(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst+64(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -7879,7 +7879,7 @@ entry:
 define dso_local i8* @bat05() nounwind {
 ; LINUX-64-STATIC-LABEL: bat05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -7902,7 +7902,7 @@ define dso_local i8* @bat05() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -7929,19 +7929,19 @@ define dso_local i8* @bat05() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -7975,7 +7975,7 @@ define dso_local i8* @bat06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc+64(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bat06:
@@ -7998,17 +7998,17 @@ define dso_local i8* @bat06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc+64(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+64(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc+64(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8038,7 +8038,7 @@ define dso_local i8* @bat07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst+64(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bat07:
@@ -8061,17 +8061,17 @@ define dso_local i8* @bat07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+64(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bat07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+64(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bat07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst+64(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8081,7 +8081,7 @@ entry:
 define dso_local i8* @bat08() nounwind {
 ; LINUX-64-STATIC-LABEL: bat08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    addq $64, %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -8104,7 +8104,7 @@ define dso_local i8* @bat08() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bat08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-PIC-NEXT:    addq $64, %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -8131,19 +8131,19 @@ define dso_local i8* @bat08() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bat08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    addq $64, %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -8158,7 +8158,7 @@ define dso_local i8* @bam00() nounwind {
 ; LINUX-64-STATIC-LABEL: bam00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-STATIC-NEXT:    addq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam00:
@@ -8180,7 +8180,7 @@ define dso_local 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@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam00:
@@ -8206,19 +8206,19 @@ define dso_local 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@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8229,7 +8229,7 @@ define dso_local i8* @bam01() nounwind {
 ; LINUX-64-STATIC-LABEL: bam01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-STATIC-NEXT:    addq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam01:
@@ -8251,7 +8251,7 @@ define dso_local 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@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam01:
@@ -8277,19 +8277,19 @@ define dso_local 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@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8300,7 +8300,7 @@ define dso_local i8* @bxm01() nounwind {
 ; LINUX-64-STATIC-LABEL: bxm01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-STATIC-NEXT:    addq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bxm01:
@@ -8322,7 +8322,7 @@ define dso_local 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@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bxm01:
@@ -8348,19 +8348,19 @@ define dso_local 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@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8370,7 +8370,7 @@ entry:
 define dso_local 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:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-STATIC-NEXT:    movl $262144, %eax # imm = 0x40000
 ; LINUX-64-STATIC-NEXT:    addq (%rcx), %rax
 ; LINUX-64-STATIC-NEXT:    retq
@@ -8395,7 +8395,7 @@ define dso_local i8* @bam02() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rcx
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rcx
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
 ; LINUX-64-PIC-NEXT:    addq (%rcx), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -8425,21 +8425,21 @@ define dso_local i8* @bam02() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rcx
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rcx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rcx
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rcx
 ; DARWIN-64-PIC-NEXT:    movl $262144, %eax ## imm = 0x40000
 ; DARWIN-64-PIC-NEXT:    addq (%rcx), %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -8474,7 +8474,7 @@ define dso_local i8* @bam03() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local+262144(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam03:
@@ -8497,17 +8497,17 @@ define dso_local i8* @bam03() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc+262144(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam03:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc+262144(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam03:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _dsrc+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc+262144(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8537,7 +8537,7 @@ define dso_local i8* @bam04() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst$local+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local+262144(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam04:
@@ -8560,17 +8560,17 @@ define dso_local i8* @bam04() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst+262144(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam04:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst+262144(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam04:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ddst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst+262144(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8581,7 +8581,7 @@ define dso_local 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 {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq dptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam05:
@@ -8604,7 +8604,7 @@ define dso_local i8* @bam05() nounwind {
 ; LINUX-64-PIC-LABEL: bam05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    movl $262144, %eax # imm = 0x40000
-; LINUX-64-PIC-NEXT:    addq .Ldptr${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq .Ldptr$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam05:
@@ -8631,19 +8631,19 @@ define dso_local 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 {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _dptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8676,7 +8676,7 @@ define dso_local i8* @bam06() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq lsrc+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc+262144(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam06:
@@ -8699,17 +8699,17 @@ define dso_local i8* @bam06() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc+262144(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam06:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc+262144(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam06:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _lsrc+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc+262144(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8739,7 +8739,7 @@ define dso_local i8* @bam07() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: bam07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq ldst+{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst+262144(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam07:
@@ -8762,17 +8762,17 @@ define dso_local i8* @bam07() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: bam07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst+262144(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: bam07:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst+262144(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: bam07:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq _ldst+{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst+262144(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8783,7 +8783,7 @@ define dso_local 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 {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    addq lptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: bam08:
@@ -8806,7 +8806,7 @@ define dso_local 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 {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    addq lptr(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: bam08:
@@ -8833,19 +8833,19 @@ define dso_local 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 {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    addq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    addq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    addq _lptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -8858,7 +8858,7 @@ entry:
 define dso_local i8* @cat00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -8882,7 +8882,7 @@ define dso_local i8* @cat00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -8911,19 +8911,19 @@ define dso_local i8* @cat00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -8937,7 +8937,7 @@ entry:
 define dso_local i8* @cxt00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxt00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -8961,7 +8961,7 @@ define dso_local i8* @cxt00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxt00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -8990,19 +8990,19 @@ define dso_local i8* @cxt00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxt00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9016,7 +9016,7 @@ entry:
 define dso_local i8* @cat01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9040,7 +9040,7 @@ define dso_local i8* @cat01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9069,19 +9069,19 @@ define dso_local i8* @cat01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9095,7 +9095,7 @@ entry:
 define dso_local i8* @cxt01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxt01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9119,7 +9119,7 @@ define dso_local i8* @cxt01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxt01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9148,19 +9148,19 @@ define dso_local i8* @cxt01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxt01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9174,7 +9174,7 @@ entry:
 define dso_local 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 at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
@@ -9201,7 +9201,7 @@ define dso_local i8* @cat02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -9234,21 +9234,21 @@ define dso_local i8* @cat02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -9286,7 +9286,7 @@ define dso_local i8* @cat03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9313,19 +9313,19 @@ define dso_local i8* @cat03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9361,7 +9361,7 @@ define dso_local i8* @cat04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9388,19 +9388,19 @@ define dso_local i8* @cat04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9414,7 +9414,7 @@ entry:
 define dso_local i8* @cat05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9439,7 +9439,7 @@ define dso_local i8* @cat05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9469,19 +9469,19 @@ define dso_local i8* @cat05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9518,7 +9518,7 @@ define dso_local i8* @cat06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9545,19 +9545,19 @@ define dso_local i8* @cat06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9593,7 +9593,7 @@ define dso_local i8* @cat07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9620,19 +9620,19 @@ define dso_local i8* @cat07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9646,7 +9646,7 @@ entry:
 define dso_local i8* @cat08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cat08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9671,7 +9671,7 @@ define dso_local i8* @cat08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cat08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9701,19 +9701,19 @@ define dso_local i8* @cat08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cat08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 64(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9728,7 +9728,7 @@ entry:
 define dso_local i8* @cam00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9752,7 +9752,7 @@ define dso_local i8* @cam00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq src@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq src at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9781,19 +9781,19 @@ define dso_local i8* @cam00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _src@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _src at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _src at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9807,7 +9807,7 @@ entry:
 define dso_local i8* @cxm00(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxm00:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9831,7 +9831,7 @@ define dso_local i8* @cxm00(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxm00:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xsrc@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xsrc at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9860,19 +9860,19 @@ define dso_local i8* @cxm00(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxm00:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xsrc@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xsrc at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xsrc at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xsrc at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9886,7 +9886,7 @@ entry:
 define dso_local i8* @cam01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9910,7 +9910,7 @@ define dso_local i8* @cam01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq dst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq dst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -9939,19 +9939,19 @@ define dso_local i8* @cam01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _dst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -9965,7 +9965,7 @@ entry:
 define dso_local i8* @cxm01(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cxm01:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -9989,7 +9989,7 @@ define dso_local i8* @cxm01(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cxm01:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq xdst@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq xdst at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10018,19 +10018,19 @@ define dso_local i8* @cxm01(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cxm01:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _xdst@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _xdst at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _xdst at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10044,7 +10044,7 @@ entry:
 define dso_local 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 at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
@@ -10071,7 +10071,7 @@ define dso_local i8* @cam02(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam02:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq ptr@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq ptr at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    movq (%rax), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
@@ -10104,21 +10104,21 @@ define dso_local i8* @cam02(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam02:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _ptr@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _ptr at GOTPCREL(%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@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _ptr at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    movq (%rax), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
@@ -10156,7 +10156,7 @@ define dso_local i8* @cam03(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam03:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Ldsrc${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Ldsrc$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10183,19 +10183,19 @@ define dso_local i8* @cam03(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam03:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10231,7 +10231,7 @@ define dso_local i8* @cam04(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam04:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Lddst${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Lddst$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10258,19 +10258,19 @@ define dso_local i8* @cam04(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam04:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ddst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ddst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10284,7 +10284,7 @@ entry:
 define dso_local i8* @cam05(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam05:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq dptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -10309,7 +10309,7 @@ define dso_local i8* @cam05(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam05:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq .Ldptr${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq .Ldptr$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10339,19 +10339,19 @@ define dso_local i8* @cam05(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam05:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _dptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _dptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10388,7 +10388,7 @@ define dso_local i8* @cam06(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam06:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq lsrc(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10415,19 +10415,19 @@ define dso_local i8* @cam06(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam06:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lsrc(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lsrc(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10463,7 +10463,7 @@ define dso_local i8* @cam07(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam07:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq ldst(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10490,19 +10490,19 @@ define dso_local i8* @cam07(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam07:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _ldst(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _ldst(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10516,7 +10516,7 @@ entry:
 define dso_local i8* @cam08(i64 %i) nounwind {
 ; LINUX-64-STATIC-LABEL: cam08:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -10541,7 +10541,7 @@ define dso_local i8* @cam08(i64 %i) nounwind {
 ;
 ; LINUX-64-PIC-LABEL: cam08:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq lptr(%rip), %rax
 ; LINUX-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -10571,19 +10571,19 @@ define dso_local i8* @cam08(i64 %i) nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: cam08:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _lptr(%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 {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _lptr(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    leaq 262144(%rax,%rdi,4), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -10900,7 +10900,7 @@ declare void @y()
 define dso_local void ()* @address() nounwind {
 ; LINUX-64-STATIC-LABEL: address:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
-; LINUX-64-STATIC-NEXT:    movq callee@{{.*}}(%rip), %rax
+; LINUX-64-STATIC-NEXT:    movq callee at GOTPCREL(%rip), %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
 ; LINUX-32-STATIC-LABEL: address:
@@ -10920,7 +10920,7 @@ define dso_local void ()* @address() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: address:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    movq callee@{{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    movq callee at GOTPCREL(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: address:
@@ -10943,17 +10943,17 @@ define dso_local void ()* @address() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: address:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    movq _callee@{{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    movq _callee at GOTPCREL(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: address:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    movq _callee@{{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    movq _callee at GOTPCREL(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: address:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    movq _callee@{{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    movq _callee at GOTPCREL(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -10985,7 +10985,7 @@ define dso_local void ()* @laddress() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: laddress:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq .Llcallee${{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq .Llcallee$local(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: laddress:
@@ -11008,17 +11008,17 @@ define dso_local void ()* @laddress() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: laddress:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _lcallee(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: laddress:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _lcallee(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: laddress:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _lcallee(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -11048,7 +11048,7 @@ define dso_local void ()* @daddress() nounwind {
 ;
 ; LINUX-64-PIC-LABEL: daddress:
 ; LINUX-64-PIC:       # %bb.0: # %entry
-; LINUX-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; LINUX-64-PIC-NEXT:    leaq dcallee(%rip), %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
 ; DARWIN-32-STATIC-LABEL: daddress:
@@ -11071,17 +11071,17 @@ define dso_local void ()* @daddress() nounwind {
 ;
 ; DARWIN-64-STATIC-LABEL: daddress:
 ; DARWIN-64-STATIC:       ## %bb.0: ## %entry
-; DARWIN-64-STATIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-STATIC-NEXT:    leaq _dcallee(%rip), %rax
 ; DARWIN-64-STATIC-NEXT:    retq
 ;
 ; DARWIN-64-DYNAMIC-LABEL: daddress:
 ; DARWIN-64-DYNAMIC:       ## %bb.0: ## %entry
-; DARWIN-64-DYNAMIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-DYNAMIC-NEXT:    leaq _dcallee(%rip), %rax
 ; DARWIN-64-DYNAMIC-NEXT:    retq
 ;
 ; DARWIN-64-PIC-LABEL: daddress:
 ; DARWIN-64-PIC:       ## %bb.0: ## %entry
-; DARWIN-64-PIC-NEXT:    leaq {{.*}}(%rip), %rax
+; DARWIN-64-PIC-NEXT:    leaq _dcallee(%rip), %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
 entry:
@@ -11623,7 +11623,7 @@ define dso_local void @icaller() nounwind {
 ; LINUX-64-STATIC-LABEL: icaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    pushq %rbx
-; LINUX-64-STATIC-NEXT:    movq ifunc@{{.*}}(%rip), %rbx
+; LINUX-64-STATIC-NEXT:    movq ifunc at GOTPCREL(%rip), %rbx
 ; LINUX-64-STATIC-NEXT:    callq *(%rbx)
 ; LINUX-64-STATIC-NEXT:    callq *(%rbx)
 ; LINUX-64-STATIC-NEXT:    popq %rbx
@@ -11658,7 +11658,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; LINUX-64-PIC-NEXT:    movq ifunc at GOTPCREL(%rip), %rbx
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    popq %rbx
@@ -11700,7 +11700,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; DARWIN-64-STATIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    popq %rbx
@@ -11709,7 +11709,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rbx
@@ -11718,7 +11718,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; DARWIN-64-PIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    popq %rbx
@@ -11736,8 +11736,8 @@ define dso_local 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 *{{.*}}(%rip)
-; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    callq *difunc(%rip)
+; LINUX-64-STATIC-NEXT:    callq *difunc(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -11767,8 +11767,8 @@ define dso_local void @dicaller() nounwind {
 ; LINUX-64-PIC-LABEL: dicaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rax
-; LINUX-64-PIC-NEXT:    callq *.Ldifunc${{.*}}(%rip)
-; LINUX-64-PIC-NEXT:    callq *.Ldifunc${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    callq *.Ldifunc$local(%rip)
+; LINUX-64-PIC-NEXT:    callq *.Ldifunc$local(%rip)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -11804,24 +11804,24 @@ define dso_local 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 *{{.*}}(%rip)
-; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *_difunc(%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 *{{.*}}(%rip)
-; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *_difunc(%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 *{{.*}}(%rip)
-; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    callq *_difunc(%rip)
+; DARWIN-64-PIC-NEXT:    callq *_difunc(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -11837,8 +11837,8 @@ define dso_local 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 *{{.*}}(%rip)
-; LINUX-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    callq *lifunc(%rip)
+; LINUX-64-STATIC-NEXT:    callq *lifunc(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -11868,8 +11868,8 @@ define dso_local 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 *{{.*}}(%rip)
-; LINUX-64-PIC-NEXT:    callq *{{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    callq *lifunc(%rip)
+; LINUX-64-PIC-NEXT:    callq *lifunc(%rip)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -11905,24 +11905,24 @@ define dso_local 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 *{{.*}}(%rip)
-; DARWIN-64-STATIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *_lifunc(%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 *{{.*}}(%rip)
-; DARWIN-64-DYNAMIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *_lifunc(%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 *{{.*}}(%rip)
-; DARWIN-64-PIC-NEXT:    callq *{{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    callq *_lifunc(%rip)
+; DARWIN-64-PIC-NEXT:    callq *_lifunc(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -11938,7 +11938,7 @@ define dso_local void @itailcaller() nounwind {
 ; LINUX-64-STATIC-LABEL: itailcaller:
 ; LINUX-64-STATIC:       # %bb.0: # %entry
 ; LINUX-64-STATIC-NEXT:    pushq %rbx
-; LINUX-64-STATIC-NEXT:    movq ifunc@{{.*}}(%rip), %rbx
+; LINUX-64-STATIC-NEXT:    movq ifunc at GOTPCREL(%rip), %rbx
 ; LINUX-64-STATIC-NEXT:    callq *(%rbx)
 ; LINUX-64-STATIC-NEXT:    callq *(%rbx)
 ; LINUX-64-STATIC-NEXT:    popq %rbx
@@ -11973,7 +11973,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; LINUX-64-PIC-NEXT:    movq ifunc at GOTPCREL(%rip), %rbx
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    callq *(%rbx)
 ; LINUX-64-PIC-NEXT:    popq %rbx
@@ -12015,7 +12015,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; DARWIN-64-STATIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-STATIC-NEXT:    popq %rbx
@@ -12024,7 +12024,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; DARWIN-64-DYNAMIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-DYNAMIC-NEXT:    popq %rbx
@@ -12033,7 +12033,7 @@ define dso_local 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@{{.*}}(%rip), %rbx
+; DARWIN-64-PIC-NEXT:    movq _ifunc at GOTPCREL(%rip), %rbx
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    callq *(%rbx)
 ; DARWIN-64-PIC-NEXT:    popq %rbx
@@ -12051,7 +12051,7 @@ define dso_local 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 *{{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    callq *difunc(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -12079,7 +12079,7 @@ define dso_local void @ditailcaller() nounwind {
 ; LINUX-64-PIC-LABEL: ditailcaller:
 ; LINUX-64-PIC:       # %bb.0: # %entry
 ; LINUX-64-PIC-NEXT:    pushq %rax
-; LINUX-64-PIC-NEXT:    callq *.Ldifunc${{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    callq *.Ldifunc$local(%rip)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -12110,21 +12110,21 @@ define dso_local 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 *{{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *_difunc(%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 *{{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *_difunc(%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 *{{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    callq *_difunc(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 
@@ -12138,7 +12138,7 @@ define dso_local 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 *{{.*}}(%rip)
+; LINUX-64-STATIC-NEXT:    callq *lifunc(%rip)
 ; LINUX-64-STATIC-NEXT:    popq %rax
 ; LINUX-64-STATIC-NEXT:    retq
 ;
@@ -12166,7 +12166,7 @@ define dso_local 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 *{{.*}}(%rip)
+; LINUX-64-PIC-NEXT:    callq *lifunc(%rip)
 ; LINUX-64-PIC-NEXT:    popq %rax
 ; LINUX-64-PIC-NEXT:    retq
 ;
@@ -12197,21 +12197,21 @@ define dso_local 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 *{{.*}}(%rip)
+; DARWIN-64-STATIC-NEXT:    callq *_lifunc(%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 *{{.*}}(%rip)
+; DARWIN-64-DYNAMIC-NEXT:    callq *_lifunc(%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 *{{.*}}(%rip)
+; DARWIN-64-PIC-NEXT:    callq *_lifunc(%rip)
 ; DARWIN-64-PIC-NEXT:    popq %rax
 ; DARWIN-64-PIC-NEXT:    retq
 

diff  --git a/llvm/test/CodeGen/X86/xor.ll b/llvm/test/CodeGen/X86/xor.ll
index 9b77c56c3a81b..d8e07983f71c4 100644
--- a/llvm/test/CodeGen/X86/xor.ll
+++ b/llvm/test/CodeGen/X86/xor.ll
@@ -373,18 +373,18 @@ define i32 @test9(i32 %a) nounwind {
 define <4 x i32> @test10(<4 x i32> %a) nounwind {
 ; X86-LABEL: test10:
 ; X86:       # %bb.0:
-; X86-NEXT:    andnps {{\.LCPI[0-9]+_[0-9]+}}, %xmm0
+; X86-NEXT:    andnps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0
 ; X86-NEXT:    retl
 ;
 ; X64-LIN-LABEL: test10:
 ; X64-LIN:       # %bb.0:
-; X64-LIN-NEXT:    andnps {{.*}}(%rip), %xmm0
+; X64-LIN-NEXT:    andnps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
 ; X64-LIN-NEXT:    retq
 ;
 ; X64-WIN-LABEL: test10:
 ; X64-WIN:       # %bb.0:
 ; X64-WIN-NEXT:    movaps (%rcx), %xmm0
-; X64-WIN-NEXT:    andnps __xmm@{{.*}}(%rip), %xmm0
+; X64-WIN-NEXT:    andnps __xmm at 00001000000010000000100000001000(%rip), %xmm0
 ; X64-WIN-NEXT:    retq
   %1 = and <4 x i32> %a, <i32 4096, i32 4096, i32 4096, i32 4096>
   %2 = xor <4 x i32> %1, <i32 4096, i32 4096, i32 4096, i32 4096>

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll
similarity index 74%
rename from llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll
rename to llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll
index 1488c9f5b229b..54d568e0a53c8 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll
@@ -7,6 +7,9 @@
 ;; Check that we accept .seh_proc below the function label.
 ; RUN: llc -mtriple=x86_64-windows -relocation-model=pic < %s | FileCheck %s --check-prefix=WIN
 
+ at gv0 = dso_local global i32 0, align 4
+ at gv1 = dso_preemptable global i32 0, align 4
+
 define hidden i32 @"_Z54bar$ompvariant$bar"() {
 entry:
   ret i32 2
@@ -19,3 +22,11 @@ entry:
 }
 
 declare void @ext()
+
+define i32 @load() {
+entry:
+  %a = load i32, i32* @gv0
+  %b = load i32, i32* @gv1
+  %c = add i32 %a, %b
+  ret i32 %c
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll.expected
similarity index 71%
rename from llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll.expected
rename to llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll.expected
index 000e780cb59c1..87e1db292408a 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_function_name.ll.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-basic.ll.expected
@@ -8,6 +8,9 @@
 ;; Check that we accept .seh_proc below the function label.
 ; RUN: llc -mtriple=x86_64-windows -relocation-model=pic < %s | FileCheck %s --check-prefix=WIN
 
+ at gv0 = dso_local global i32 0, align 4
+ at gv1 = dso_preemptable global i32 0, align 4
+
 define hidden i32 @"_Z54bar$ompvariant$bar"() {
 ; CHECK-LABEL: _Z54bar$ompvariant$bar:
 ; CHECK:       # %bb.0: # %entry
@@ -64,3 +67,30 @@ entry:
 }
 
 declare void @ext()
+
+define i32 @load() {
+; CHECK-LABEL: load:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    movl gv0(%rip), %eax
+; CHECK-NEXT:    movq gv1 at GOTPCREL(%rip), %rcx
+; CHECK-NEXT:    addl (%rcx), %eax
+; CHECK-NEXT:    retq
+;
+; PIC-LABEL: load:
+; PIC:       # %bb.0: # %entry
+; PIC-NEXT:    movl .Lgv0$local(%rip), %eax
+; PIC-NEXT:    movq gv1 at GOTPCREL(%rip), %rcx
+; PIC-NEXT:    addl (%rcx), %eax
+; PIC-NEXT:    retq
+;
+; WIN-LABEL: load:
+; WIN:       # %bb.0: # %entry
+; WIN-NEXT:    movl gv0(%rip), %eax
+; WIN-NEXT:    addl gv1(%rip), %eax
+; WIN-NEXT:    retq
+entry:
+  %a = load i32, i32* @gv0
+  %b = load i32, i32* @gv1
+  %c = add i32 %a, %b
+  ret i32 %c
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll
new file mode 100644
index 0000000000000..f22bfde9a6046
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll
@@ -0,0 +1,18 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse4.2 | FileCheck %s --check-prefixes=ELF
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+sse4.2 | FileCheck %s --check-prefixes=DARWIN
+
+define <4 x i32> @test(<4 x i32> %a) nounwind {
+; ELF-LABEL: test10:
+; ELF:       # %bb.0:
+; ELF-NEXT:    andnps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; ELF-NEXT:    retq
+;
+; DARWIN-LABEL: test10:
+; DARWIN:       ## %bb.0:
+; DARWIN-NEXT:    andnps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; DARWIN-NEXT:    retq
+  %1 = and <4 x i32> %a, <i32 4096, i32 4096, i32 4096, i32 4096>
+  %2 = xor <4 x i32> %1, <i32 4096, i32 4096, i32 4096, i32 4096>
+  ret <4 x i32> %2
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll.expected
new file mode 100644
index 0000000000000..54103878995bc
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86-constant-pool.ll.expected
@@ -0,0 +1,18 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-linux -mattr=+sse4.2 | FileCheck %s --check-prefixes=ELF
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+sse4.2 | FileCheck %s --check-prefixes=DARWIN
+
+define <4 x i32> @test(<4 x i32> %a) nounwind {
+; ELF-LABEL: test:
+; ELF:       # %bb.0:
+; ELF-NEXT:    andnps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; ELF-NEXT:    retq
+;
+; DARWIN-LABEL: test:
+; DARWIN:       ## %bb.0:
+; DARWIN-NEXT:    andnps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; DARWIN-NEXT:    retq
+  %1 = and <4 x i32> %a, <i32 4096, i32 4096, i32 4096, i32 4096>
+  %2 = xor <4 x i32> %1, <i32 4096, i32 4096, i32 4096, i32 4096>
+  ret <4 x i32> %2
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
index 0c7ab2b13aecc..e74cc7c452034 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.generated.expected
@@ -105,7 +105,7 @@ attributes #0 = { noredzone nounwind ssp uwtable "frame-pointer"="all" }
 ; CHECK-NEXT:    subq $20, %rsp
 ; CHECK-NEXT:    movl $0, -20(%rbp)
 ; CHECK-NEXT:    callq OUTLINED_FUNCTION_1
-; CHECK-NEXT:    movl $1, {{.*}}(%rip)
+; CHECK-NEXT:    movl $1, x(%rip)
 ; CHECK-NEXT:    #APP
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    callq OUTLINED_FUNCTION_1

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
index b4424dab201e9..96f3ac99e21bb 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_generated_funcs.ll.nogenerated.expected
@@ -82,7 +82,7 @@ define dso_local i32 @main() #0 {
 ; CHECK-NEXT:    subq $20, %rsp
 ; CHECK-NEXT:    movl $0, -20(%rbp)
 ; CHECK-NEXT:    callq OUTLINED_FUNCTION_1
-; CHECK-NEXT:    movl $1, {{.*}}(%rip)
+; CHECK-NEXT:    movl $1, x(%rip)
 ; CHECK-NEXT:    #APP
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    callq OUTLINED_FUNCTION_1

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/basic.test b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/basic.test
index 36d0f5d9ff7e6..3ef21e665c8ba 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/basic.test
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/basic.test
@@ -12,14 +12,14 @@
 # RUN: echo '; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --extra_scrub' > %t.expected.ll
 # RUN: cat %S/Inputs/basic.ll.expected >> %t.expected.ll
 # RUN: 
diff  -u %t.expected.ll %t.ll
-# RUN: cp -f %S/Inputs/basic.ll %t.ll && %update_llc_test_checks --no_x86_scrub_rip %t.ll
-# RUN: echo '; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_rip' > %t.expected.ll
+# RUN: cp -f %S/Inputs/basic.ll %t.ll && %update_llc_test_checks --x86_scrub_rip %t.ll
+# RUN: echo '; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --x86_scrub_rip' > %t.expected.ll
 # RUN: cat %S/Inputs/basic.ll.expected >> %t.expected.ll
 # RUN: 
diff  -u %t.expected.ll %t.ll
 
 ## Finally, run the script on an already updated file and verify that all previous
 ## CHECK lines are removed.
 # RUN: %update_llc_test_checks %t.ll
-# RUN: echo '; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_rip' > %t.expected.ll
+# RUN: echo '; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --x86_scrub_rip' > %t.expected.ll
 # RUN: cat %S/Inputs/basic.ll.expected >> %t.expected.ll
 # RUN: 
diff  -u %t.expected.ll %t.ll

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-basic.test b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-basic.test
new file mode 100644
index 0000000000000..1071116b65e3e
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-basic.test
@@ -0,0 +1,5 @@
+# REQUIRES: x86-registered-target
+## Check that functions names with '$' are processed correctly
+
+# RUN: cp -f %S/Inputs/x86-basic.ll %t.ll && %update_llc_test_checks %t.ll
+# RUN: 
diff  -u %S/Inputs/x86-basic.ll.expected %t.ll

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-constant-pool.test b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-constant-pool.test
new file mode 100644
index 0000000000000..5bab2f94e69e3
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-constant-pool.test
@@ -0,0 +1,4 @@
+# REQUIRES: x86-registered-target
+
+# RUN: cp -f %S/Inputs/x86-constant-pool.ll %t.ll && %update_llc_test_checks %t.ll
+# RUN: 
diff  -u %S/Inputs/x86-constant-pool.ll.expected %t.ll

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-function-name.test b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-function-name.test
deleted file mode 100644
index d395afb13971f..0000000000000
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-function-name.test
+++ /dev/null
@@ -1,5 +0,0 @@
-# REQUIRES: x86-registered-target
-## Check that functions names with '$' are processed correctly
-
-# RUN: cp -f %S/Inputs/x86_function_name.ll %t.ll && %update_llc_test_checks %t.ll
-# RUN: 
diff  -u %S/Inputs/x86_function_name.ll.expected %t.ll

diff  --git a/llvm/utils/UpdateTestChecks/asm.py b/llvm/utils/UpdateTestChecks/asm.py
index b5546e7d2411a..c29d3ac7ae6da 100644
--- a/llvm/utils/UpdateTestChecks/asm.py
+++ b/llvm/utils/UpdateTestChecks/asm.py
@@ -171,7 +171,7 @@ class string:
         flags=re.M))
 SCRUB_X86_SP_RE = re.compile(r'\d+\(%(esp|rsp)\)')
 SCRUB_X86_RIP_RE = re.compile(r'[.\w]+\(%rip\)')
-SCRUB_X86_LCP_RE = re.compile(r'\.LCPI[0-9]+_[0-9]+')
+SCRUB_X86_LCP_RE = re.compile(r'\.?LCPI[0-9]+_[0-9]+')
 SCRUB_X86_RET_RE = re.compile(r'ret[l|q]')
 
 def scrub_asm_x86(asm, args):
@@ -197,7 +197,7 @@ def scrub_asm_x86(asm, args):
     # Generically match a RIP-relative memory operand.
     asm = SCRUB_X86_RIP_RE.sub(r'{{.*}}(%rip)', asm)
   # Generically match a LCP symbol.
-  asm = SCRUB_X86_LCP_RE.sub(r'{{\.LCPI[0-9]+_[0-9]+}}', asm)
+  asm = SCRUB_X86_LCP_RE.sub(r'{{\.?LCPI[0-9]+_[0-9]+}}', asm)
   if getattr(args, 'extra_scrub', False):
     # Avoid generating 
diff erent checks for 32- and 64-bit because of 'retl' vs 'retq'.
     asm = SCRUB_X86_RET_RE.sub(r'ret{{[l|q]}}', asm)

diff  --git a/llvm/utils/update_llc_test_checks.py b/llvm/utils/update_llc_test_checks.py
index 8a0f572d4f980..d5ff299b42322 100755
--- a/llvm/utils/update_llc_test_checks.py
+++ b/llvm/utils/update_llc_test_checks.py
@@ -33,7 +33,7 @@ def main():
   parser.add_argument(
       '--no_x86_scrub_sp', action='store_false', dest='x86_scrub_sp')
   parser.add_argument(
-      '--x86_scrub_rip', action='store_true', default=True,
+      '--x86_scrub_rip', action='store_true', default=False,
       help='Use more regex for x86 rip matching to reduce 
diff s between various subtargets')
   parser.add_argument(
       '--no_x86_scrub_rip', action='store_false', dest='x86_scrub_rip')


        


More information about the llvm-commits mailing list