1 ; RUN: opt %loadPolly %defaultOpts -polly-codegen -enable-polly-vector -dce -S %s | FileCheck %s
2 ; ModuleID = 'param-max-aliased-pr26197.s'
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
4 target triple = "x86_64-unknown-linux-gnu"
6 %struct.B = type { [2 x i32*], i32* }
8 define void @_Z3barv() uwtable {
10 %ref.tmp = alloca %struct.B, align 8
11 call void @_ZN1BC1Ev(%struct.B* %ref.tmp)
12 %tmp = bitcast %struct.B* %ref.tmp to i8*
13 invoke void @_Z1gPKv(i8* %tmp)
14 to label %invoke.cont unwind label %lpad
16 invoke.cont: ; preds = %entry
17 call void @_ZN1BD1Ev(%struct.B* %ref.tmp)
20 lpad: ; preds = %entry
21 %exn = call i8* @llvm.eh.exception() nounwind
22 %tmp1 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %exn, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 0) nounwind
23 invoke void @_ZN1BD1Ev(%struct.B* %ref.tmp)
24 to label %invoke.cont1 unwind label %terminate.lpad
26 invoke.cont1: ; preds = %lpad
29 eh.resume: ; preds = %invoke.cont1
30 call void @llvm.eh.resume(i8* %exn, i32 %tmp1) noreturn
33 terminate.lpad: ; preds = %lpad
34 %exn2 = call i8* @llvm.eh.exception() nounwind
35 %tmp2 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %exn2, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) nounwind
36 call void @_ZSt9terminatev() noreturn nounwind
40 define linkonce_odr void @_ZN1BC1Ev(%struct.B* %this) unnamed_addr uwtable align 2 {
42 call void @_ZN1BC2Ev(%struct.B* %this)
46 declare void @_Z1gPKv(i8*)
48 declare i8* @llvm.eh.exception() nounwind readonly
50 declare i32 @__gxx_personality_v0(...)
52 declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind
54 declare i32 @llvm.eh.typeid.for(i8*) nounwind
56 declare void @llvm.eh.resume(i8*, i32)
58 define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) unnamed_addr uwtable align 2 {
60 call void @_ZN1BD2Ev(%struct.B* %this)
64 declare void @_ZSt9terminatev()
66 define linkonce_odr void @_ZN1BD2Ev(%struct.B* %this) unnamed_addr uwtable align 2 {
68 %p = getelementptr inbounds %struct.B* %this, i64 0, i32 1
69 %tmp = load i32** %p, align 8
70 %tmp1 = bitcast i32* %tmp to i8*
71 call void @_Z1gPKv(i8* %tmp1)
75 define linkonce_odr void @_ZN1BC2Ev(%struct.B* %this) unnamed_addr nounwind uwtable align 2 {
79 for.cond: ; preds = %for.inc, %entry
80 %indvar = phi i64 [ %indvar.next, %for.inc ], [ 0, %entry ]
81 %p.0 = getelementptr %struct.B* %this, i64 0, i32 0, i64 %indvar
82 %add.ptr = getelementptr inbounds %struct.B* %this, i64 0, i32 0, i64 4
83 %cmp = icmp ult i32** %p.0, %add.ptr
84 br i1 %cmp, label %for.body, label %for.end
86 for.body: ; preds = %for.cond
87 store i32* null, i32** %p.0, align 8
90 for.inc: ; preds = %for.body
91 %indvar.next = add i64 %indvar, 1
94 for.end: ; preds = %for.cond