xref: /llvm-project/llvm/test/CodeGen/X86/relocimm-code-model.ll (revision 86eaf6083b2cd27b8811f4791ad2eb8dacbb0e5f)
1; RUN: llc < %s | FileCheck %s --check-prefix=CHECK-SMALL
2; RUN: llc --code-model=medium -large-data-threshold=100 < %s | FileCheck %s --check-prefix=CHECK-SMALL
3; RUN: llc --code-model=medium < %s | FileCheck %s --check-prefix=CHECK-LARGE
4; RUN: llc --code-model=large -large-data-threshold=100 < %s | FileCheck %s --check-prefix=CHECK-SMALL
5; RUN: llc --code-model=large < %s | FileCheck %s --check-prefix=CHECK-LARGE
6; RUN: llc --code-model=kernel < %s | FileCheck %s --check-prefix=CHECK-SMALL
7
8target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
9target triple = "x86_64-unknown-linux-gnu"
10
11@a = external dso_local global i32, align 4
12
13declare void @f()
14
15define void @foo(i64 %b) {
16; CHECK-LARGE: cmpq %rax, %rdi
17; CHECK-SMALL: cmpq $a, %rdi
18entry:
19  %cmp = icmp eq i64 %b, ptrtoint (ptr @a to i64)
20  br i1 %cmp, label %if.then, label %if.end
21
22if.then:                                          ; preds = %entry
23  tail call void @f()
24  br label %if.end
25
26if.end:                                           ; preds = %if.then, %entry
27  ret void
28}
29
30