1 ; Check that we do not try to evaluate function calls with signature
3 ; RUN: opt -passes=globalopt,instcombine %s -S -o - | FileCheck %s
5 ; CHECK: @_q = dso_local global %struct.Q zeroinitializer
6 ; CHECK: @llvm.global_ctors
8 source_filename = "main.cpp"
9 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
10 target triple = "x86_64-none-linux-gnu"
12 %struct.Q = type { i32 }
14 $_ZN1QC2Ev = comdat any
16 @_q = dso_local global %struct.Q zeroinitializer, align 4
17 @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_main.cpp, ptr null }]
19 define internal void @__cxx_global_var_init() section ".text.startup" {
20 call void @_ZN1QC2Ev(ptr @_q)
24 define linkonce_odr dso_local void @_ZN1QC2Ev(ptr) unnamed_addr #1 comdat align 2 {
25 %2 = alloca ptr, align 8
26 store ptr %0, ptr %2, align 8
27 %3 = load ptr, ptr %2, align 8
28 %4 = call i32 @fmodf(float 0x40091EB860000000, float 2.000000e+00)
29 store i32 %4, ptr %3, align 4
33 define dso_local i32 @main(i32, ptr) {
34 %3 = alloca i32, align 4
35 %4 = alloca i32, align 4
36 %5 = alloca ptr, align 8
37 store i32 0, ptr %3, align 4
38 store i32 %0, ptr %4, align 4
39 store ptr %1, ptr %5, align 8
40 %6 = load i32, ptr @_q, align 4
44 ; Function Attrs: nounwind
45 declare dso_local float @fmodf(float, float)
47 ; Function Attrs: noinline uwtable
48 define internal void @_GLOBAL__sub_I_main.cpp() section ".text.startup" {
49 call void @__cxx_global_var_init()