Add compile command to each testcase
[gcc-vect-testsuite.git] / O3-pr49087.ll
blobb693787d82e80603b86c9c25df588e027cb148dc
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 O3-pr49087.c
4 ; opt -correlated-propagation -mem2reg -instcombine -loop-simplify -indvars -instnamer O3-pr49087.s > O3-pr49087.ll
6 ; ModuleID = 'O3-pr49087.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 %struct.S0 = type { i32 }
12 @g = common global i32 0, align 4
13 @s0 = common global %struct.S0 zeroinitializer, align 4
15 define i32 @foo(i32 %arg) nounwind uwtable {
16 entry:
17   br label %for.cond
19 for.cond:                                         ; preds = %for.inc20, %entry
20   %tmp = phi i32 [ 0, %entry ], [ %add22, %for.inc20 ]
21   %cmp = icmp slt i32 %tmp, 10
22   br i1 %cmp, label %for.body, label %for.end23.loopexit
24 for.body:                                         ; preds = %for.cond
25   br label %for.cond1
27 for.cond1:                                        ; preds = %for.inc17, %for.body
28   %tmp1 = phi i32 [ 0, %for.body ], [ %add, %for.inc17 ]
29   %cmp3 = icmp slt i32 %tmp1, 1
30   br i1 %cmp3, label %for.body4, label %for.end19
32 for.body4:                                        ; preds = %for.cond1
33   %tobool = icmp eq i32 %arg, 0
34   br i1 %tobool, label %if.end, label %if.then
36 if.then:                                          ; preds = %for.body4
37   br label %for.cond8
39 for.cond8:                                        ; preds = %if.then
40   %cmp10 = icmp slt i32 %arg, 10
41   br i1 %cmp10, label %for.body11, label %for.end
43 for.body11:                                       ; preds = %for.cond8
44   br label %for.end23
46 for.inc:                                          ; No predecessors!
47   unreachable
49 for.end:                                          ; preds = %for.cond8
50   br label %if.end
52 if.end:                                           ; preds = %for.body4, %for.end
53   %call13 = call signext i8 @func2()
54   %conv14 = sext i8 %call13 to i32
55   %tmp15 = load i32* getelementptr inbounds (%struct.S0* @s0, i64 0, i32 0), align 4
56   %xor = xor i32 %conv14, %tmp15
57   store i32 %xor, i32* @g, align 4
58   br label %for.inc17
60 for.inc17:                                        ; preds = %if.end
61   %add = add nsw i32 %tmp1, 1
62   br label %for.cond1
64 for.end19:                                        ; preds = %for.cond1
65   br label %for.inc20
67 for.inc20:                                        ; preds = %for.end19
68   %add22 = add nsw i32 %tmp, 1
69   br label %for.cond
71 for.end23.loopexit:                               ; preds = %for.cond
72   br label %for.end23
74 for.end23:                                        ; preds = %for.end23.loopexit, %for.body11
75   ret i32 undef
78 define internal signext i8 @func2() nounwind uwtable {
79 entry:
80   ret i8 undef
82 ; CHECK: define