1 ; RUN: opt %loadPolly %defaultOpts -polly-codegen -enable-polly-vector -dce -S %s | FileCheck %s
2 ; ModuleID = 'pr37174.s'
4 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"
5 target triple = "x86_64-unknown-linux-gnu"
7 %struct.Bar = type { i32*, i32*, [4 x [4 x [4 x i32*]]] }
9 @_ZN3BarC1Ev = alias void (%struct.Bar*)* @_ZN3BarC2Ev
11 define void @_ZN3BarC2Ev(%struct.Bar* %this) unnamed_addr uwtable align 2 {
13 %call = call i32* @_Z6getFoov()
14 %foo1 = getelementptr inbounds %struct.Bar* %this, i64 0, i32 0
15 store i32* %call, i32** %foo1, align 8
16 %call2 = call i32* @_Z6getFoov()
17 %foo2 = getelementptr inbounds %struct.Bar* %this, i64 0, i32 1
18 store i32* %call2, i32** %foo2, align 8
21 for.cond: ; preds = %for.inc27, %entry
22 %indvar1 = phi i64 [ %indvar.next2, %for.inc27 ], [ 0, %entry ]
23 %exitcond6 = icmp ne i64 %indvar1, 4
24 br i1 %exitcond6, label %for.body, label %for.end30
26 for.body: ; preds = %for.cond
29 for.cond4: ; preds = %for.inc23, %for.body
30 %indvar3 = phi i64 [ %indvar.next4, %for.inc23 ], [ 0, %for.body ]
31 %exitcond5 = icmp ne i64 %indvar3, 4
32 br i1 %exitcond5, label %for.body7, label %for.end26
34 for.body7: ; preds = %for.cond4
37 for.cond9: ; preds = %for.inc, %for.body7
38 %indvar = phi i64 [ %indvar.next, %for.inc ], [ 0, %for.body7 ]
39 %arrayidx21 = getelementptr %struct.Bar* %this, i64 0, i32 2, i64 %indvar1, i64 %indvar3, i64 %indvar
40 %exitcond = icmp ne i64 %indvar, 4
41 br i1 %exitcond, label %for.body12, label %for.end
43 for.body12: ; preds = %for.cond9
44 %foo113 = getelementptr inbounds %struct.Bar* %this, i64 0, i32 0
45 %tmp14 = load i32** %foo113, align 8
46 store i32* %tmp14, i32** %arrayidx21, align 8
49 for.inc: ; preds = %for.body12
50 %indvar.next = add i64 %indvar, 1
53 for.end: ; preds = %for.cond9
56 for.inc23: ; preds = %for.end
57 %indvar.next4 = add i64 %indvar3, 1
60 for.end26: ; preds = %for.cond4
63 for.inc27: ; preds = %for.end26
64 %indvar.next2 = add i64 %indvar1, 1
67 for.end30: ; preds = %for.cond
71 declare i32* @_Z6getFoov()