xref: /llvm-project/clang/test/CodeGen/large-data-threshold.c (revision f05b0812145897ba34bc2d7fda436a54f9fbca22)
1a42787d1SArthur Eubanks // REQUIRES: x86-registered-target
2a42787d1SArthur Eubanks 
3a42787d1SArthur Eubanks // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=medium | FileCheck %s --check-prefix=IR-DEFAULT
4a42787d1SArthur Eubanks // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=medium -mlarge-data-threshold=200 | FileCheck %s --check-prefix=IR-CUSTOM
5*f05b0812SArthur Eubanks // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=large -mlarge-data-threshold=200 | FileCheck %s --check-prefix=IR-CUSTOM
6*f05b0812SArthur Eubanks // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=small -mlarge-data-threshold=200 | FileCheck %s --check-prefix=IR-SMALL
7a42787d1SArthur Eubanks // RUN: %clang_cc1 -triple x86_64-unknown-unknown -S %s -o - -mcmodel=medium -mlarge-data-threshold=200 | FileCheck %s --check-prefix=ASM-SMALL
8a42787d1SArthur Eubanks // RUN: %clang_cc1 -triple x86_64-unknown-unknown -S %s -o - -mcmodel=medium -mlarge-data-threshold=2 | FileCheck %s --check-prefix=ASM-LARGE
9a42787d1SArthur Eubanks 
10*f05b0812SArthur Eubanks // IR-DEFAULT: !{i32 1, !"Large Data Threshold", i64 0}
11a42787d1SArthur Eubanks // IR-CUSTOM: !{i32 1, !"Large Data Threshold", i64 200}
12*f05b0812SArthur Eubanks // IR-SMALL-NOT: !"Large Data Threshold"
13a42787d1SArthur Eubanks 
14a42787d1SArthur Eubanks // ASM-SMALL-NOT: movabsq
15a42787d1SArthur Eubanks // ASM-LARGE: movabsq
16a42787d1SArthur Eubanks 
17a42787d1SArthur Eubanks static int i;
18a42787d1SArthur Eubanks 
f()19a42787d1SArthur Eubanks int f() {
20a42787d1SArthur Eubanks     return i;
21a42787d1SArthur Eubanks }
22a42787d1SArthur Eubanks 
23