Lines Matching full:linux
1 // RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefixes=LINU…
5 // LINUX: $foo.resolver = comdat any
6 // LINUX: $foo_dupes.resolver = comdat any
7 // LINUX: $unused.resolver = comdat any
8 // LINUX: $foo_inline.resolver = comdat any
9 // LINUX: $foo_inline2.resolver = comdat any
19 // LINUX: @__cpu_model = external dso_local global { i32, i32, i32, [1 x i32] }
20 // LINUX: @__cpu_features2 = external dso_local global [3 x i32]
25 // LINUX: @internal.ifunc = internal alias i32 (), ptr @internal
26 // LINUX: @foo.ifunc = weak_odr alias i32 (), ptr @foo
27 // LINUX: @foo_dupes.ifunc = weak_odr alias void (), ptr @foo_dupes
28 // LINUX: @unused.ifunc = weak_odr alias void (), ptr @unused
29 // LINUX: @foo_inline.ifunc = weak_odr alias i32 (), ptr @foo_inline
30 // LINUX: @foo_inline2.ifunc = weak_odr alias i32 (), ptr @foo_inline2
31 // LINUX: @foo_used_no_defn.ifunc = weak_odr alias i32 (), ptr @foo_used_no_defn
32 // LINUX: @isa_level.ifunc = weak_odr alias i32 (i32), ptr @isa_level
34 // LINUX: @internal = internal ifunc i32 (), ptr @internal.resolver
35 // LINUX: @foo = weak_odr ifunc i32 (), ptr @foo.resolver
36 // LINUX: @foo_dupes = weak_odr ifunc void (), ptr @foo_dupes.resolver
37 // LINUX: @unused = weak_odr ifunc void (), ptr @unused.resolver
38 // LINUX: @foo_inline = weak_odr ifunc i32 (), ptr @foo_inline.resolver
39 // LINUX: @foo_inline2 = weak_odr ifunc i32 (), ptr @foo_inline2.resolver
40 // LINUX: @foo_used_no_defn = weak_odr ifunc i32 (), ptr @foo_used_no_defn.resolver
41 // LINUX: @isa_level = weak_odr ifunc i32 (i32), ptr @isa_level.resolver
47 // LINUX: define internal ptr @internal.resolver() {
52 // LINUX: define {{.*}}i32 @foo.sse4.2.0()
53 // LINUX: define {{.*}}i32 @foo.default.1()
54 // LINUX: define weak_odr ptr @foo.resolver() comdat
55 // LINUX: ret ptr @foo.sse4.2.0
56 // LINUX: ret ptr @foo.default.1
71 // LINUX: define {{.*}}void @foo_dupes.default.1()
72 // LINUX: define {{.*}}void @foo_dupes.sse4.2.0()
73 // LINUX: define weak_odr ptr @foo_dupes.resolver() comdat
74 // LINUX: ret ptr @foo_dupes.sse4.2.0
75 // LINUX: ret ptr @foo_dupes.default.1
90 // LINUX: define {{.*}}void @bar2() in bar2()
94 // LINUX: call void @foo_dupes() in bar2()
100 // LINUX: define {{.*}}i32 @bar() #[[DEF:[0-9]+]] in bar()
104 // LINUX: call i32 @foo() in bar()
110 // LINUX: define {{.*}}void @unused.default.1()
111 // LINUX: define {{.*}}void @unused.arch_ivybridge.0()
112 // LINUX: define weak_odr ptr @unused.resolver() comdat
113 // LINUX: ret ptr @unused.arch_ivybridge.0
114 // LINUX: ret ptr @unused.default.1
135 // LINUX: define {{.*}}i32 @bar3() in bar3()
139 // LINUX: call i32 @foo_inline() in bar3()
140 // LINUX: call i32 @foo_inline2() in bar3()
147 // LINUX: define weak_odr ptr @foo_inline.resolver() comdat
148 // LINUX: ret ptr @foo_inline.arch_sandybridge.0
149 // LINUX: ret ptr @foo_inline.sse4.2.1
150 // LINUX: ret ptr @foo_inline.default.2
164 // LINUX: define weak_odr ptr @foo_inline2.resolver() comdat
165 // LINUX: ret ptr @foo_inline2.arch_sandybridge.0
166 // LINUX: ret ptr @foo_inline2.sse4.2.1
167 // LINUX: ret ptr @foo_inline2.default.2
187 // LINUX: define {{.*}}i32 @test_foo_used_no_defn() in test_foo_used_no_defn()
191 // LINUX: call i32 @foo_used_no_defn() in test_foo_used_no_defn()
197 // LINUX: define weak_odr ptr @foo_used_no_defn.resolver() comdat
198 // LINUX: ret ptr @foo_used_no_defn.sse4.2.0
199 // LINUX: ret ptr @foo_used_no_defn.default.1
211 // LINUX: define{{.*}} i32 @isa_level.default.4(
212 // LINUX: define{{.*}} i32 @isa_level.arch_x86-64.0(
213 // LINUX: define{{.*}} i32 @isa_level.arch_x86-64-v2.1(
214 // LINUX: define{{.*}} i32 @isa_level.arch_x86-64-v3.2(
215 // LINUX: define{{.*}} i32 @isa_level.arch_x86-64-v4.3(
216 // LINUX: define weak_odr ptr @isa_level.resolver() comdat
217 // LINUX: call void @__cpu_indicator_init()
218 // LINUX-NEXT: load i32, ptr getelementptr inbounds ([3 x i32], ptr @__cpu_features2, i32 0, i32 …
219 // LINUX-NEXT: and i32 %[[#]], 4
220 // LINUX: ret ptr @isa_level.arch_x86-64-v4.3
221 // LINUX: load i32, ptr getelementptr inbounds ([3 x i32], ptr @__cpu_features2, i32 0, i32 …
222 // LINUX-NEXT: and i32 %[[#]], 2
223 // LINUX: ret ptr @isa_level.arch_x86-64-v3.2
224 // LINUX: load i32, ptr getelementptr inbounds ([3 x i32], ptr @__cpu_features2, i32 0, i32 …
225 // LINUX-NEXT: and i32 %[[#]], 1
226 // LINUX: ret ptr @isa_level.arch_x86-64-v2.1
227 // LINUX: load i32, ptr getelementptr inbounds ([3 x i32], ptr @__cpu_features2, i32 0, i32 …
228 // LINUX-NEXT: and i32 %[[#]], -2147483648
229 // LINUX: ret ptr @isa_level.arch_x86-64.0
230 // LINUX: ret ptr @isa_level.default.4
255 // LINUX: define linkonce i32 @foo_inline.arch_sandybridge.0() #[[SB:[0-9]+]]
256 // LINUX: define linkonce i32 @foo_inline.default.2() #[[DEF:[0-9]+]]
257 // LINUX: define linkonce i32 @foo_inline.sse4.2.1() #[[SSE42:[0-9]+]]
268 // LINUX: define linkonce i32 @foo_inline2.arch_sandybridge.0() #[[SB]]
269 // LINUX: define linkonce i32 @foo_inline2.default.2() #[[DEF]]
270 // LINUX: define linkonce i32 @foo_inline2.sse4.2.1() #[[SSE42]]
281 // LINUX: declare i32 @foo_used_no_defn.default.1()
282 // LINUX: declare i32 @foo_used_no_defn.sse4.2.0()