blob: 0a4b3d3cff903ddaa93d53b9519240ff6e156077 [file] [edit]
; 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
}