1 ; RUN: opt %loadPolly %defaultOpts -polly-codegen -enable-polly-vector -dce -S %s | FileCheck %s
2 ; Obtained from C source as:
3 ; clang -S -emit-llvm -O0 pr33804.c
4 ; opt -correlated-propagation -mem2reg -instcombine -loop-simplify -indvars -instnamer pr33804.s > pr33804.ll
6 ; ModuleID = 'pr33804.s'
7 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"
8 target triple = "x86_64-unknown-linux-gnu"
10 define void @f(i8* %s, i8* %d, i32 %n) nounwind uwtable {
14 for.cond: ; preds = %for.inc, %entry
15 %indvar = phi i64 [ %indvar.next, %for.inc ], [ 0, %entry ]
16 %tmp = mul i64 %indvar, 4
17 %tmp7 = add i64 %tmp, 3
18 %arrayidx57 = getelementptr i8* %d, i64 %tmp7
19 %arrayidx50 = getelementptr i8* %s, i64 %tmp7
20 %tmp8 = add i64 %tmp, 2
21 %arrayidx41 = getelementptr i8* %d, i64 %tmp8
22 %arrayidx34 = getelementptr i8* %s, i64 %tmp8
23 %tmp9 = add i64 %tmp, 1
24 %arrayidx25 = getelementptr i8* %d, i64 %tmp9
25 %arrayidx18 = getelementptr i8* %s, i64 %tmp9
26 %arrayidx9 = getelementptr i8* %d, i64 %tmp
27 %arrayidx = getelementptr i8* %s, i64 %tmp
28 %i.0 = trunc i64 %tmp to i32
29 %cmp = icmp slt i32 %i.0, %n
30 br i1 %cmp, label %for.body, label %for.end
32 for.body: ; preds = %for.cond
33 %tmp4 = load i8* %arrayidx, align 1
34 %tmp10 = load i8* %arrayidx9, align 1
35 %add12 = add i8 %tmp10, %tmp4
36 store i8 %add12, i8* %arrayidx9, align 1
37 %tmp19 = load i8* %arrayidx18, align 1
38 %tmp26 = load i8* %arrayidx25, align 1
39 %add28 = add i8 %tmp26, %tmp19
40 store i8 %add28, i8* %arrayidx25, align 1
41 %tmp35 = load i8* %arrayidx34, align 1
42 %tmp42 = load i8* %arrayidx41, align 1
43 %add44 = add i8 %tmp42, %tmp35
44 store i8 %add44, i8* %arrayidx41, align 1
45 %tmp51 = load i8* %arrayidx50, align 1
46 %tmp58 = load i8* %arrayidx57, align 1
47 %add60 = add i8 %tmp58, %tmp51
48 store i8 %add60, i8* %arrayidx57, align 1
51 for.inc: ; preds = %for.body
52 %indvar.next = add i64 %indvar, 1
55 for.end: ; preds = %for.cond