| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 |
| ; RUN: llc -verify-machineinstrs < %s -relocation-model=pic -code-model=large | FileCheck %s |
| |
| ; ensure that emitted relocations are valid |
| ; RUN: llc -verify-machineinstrs < %s -relocation-model=pic -code-model=large -filetype=obj |
| |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" |
| target triple = "x86_64-linux-gnu" |
| |
| @g = external dso_local constant i8, code_model "small" |
| |
| define ptr @f(i64 %0) { |
| ; CHECK-LABEL: f: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: .L0$pb: |
| ; CHECK-NEXT: leaq .L0$pb(%rip), %rax |
| ; CHECK-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L0$pb, %rcx |
| ; CHECK-NEXT: addq %rax, %rcx |
| ; CHECK-NEXT: movabsq $g@GOTOFF, %rax |
| ; CHECK-NEXT: cmpq $1, %rdi |
| ; CHECK-NEXT: adcq %rcx, %rax |
| ; CHECK-NEXT: retq |
| %2 = icmp eq i64 %0, 0 |
| %3 = zext i1 %2 to i64 |
| %4 = getelementptr i8, ptr @g, i64 %3 |
| ret ptr %4 |
| } |