<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal" style="margin-left:.5in">Hi, <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">I have a simple test case,<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">// 1.c<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:gray">#include</span><span style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span style="font-size:9.5pt;font-family:Consolas;color:#A31515"><stdio.h></span><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> b[1000];<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">main() {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">      
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> a[1000];<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">      
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> sum = 0;<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">             
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">      
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">for</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> (</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black">
 i = 0; i < 1000; i++) {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">              a[i] = i + 10;<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">       }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">      
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">for</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> (</span><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black">
 i = 0; i < 1000; i += 1) {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">              sum = sum + a[i]; 
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">       }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">       printf(</span><span style="font-size:9.5pt;font-family:Consolas;color:#A31515">"sum = %ld\n"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">,
 sum);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:9.5pt;font-family:Consolas;color:black">}<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><b><span style="color:#0070C0">Compilation:</span></b><span style="color:#0070C0">   </span><span style="color:#0070C0">clang -m64 -fuse-ld=lld -flto -S -emit-llvm -o 1.ll  1.c<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><b><span style="color:#0070C0">SCEV DUMP:</span></b><span style="color:#0070C0">  opt -S  -loop-accesses -mem2reg -analyze -indvars -loop-simplify -scalar-evolution 1.ll<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><b><span style="color:#0070C0"><o:p> </o:p></span></b></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#0070C0">Due to unrolling and Vectorization,
<b> </b></span><span style="color:#0070C0">Scev  determines that some of the access are outside the range [ 0 – 999 ]  --------------- [ 0 – 1020 ] as highlighted below in red, not sure if this issue is a known issue in Scev ?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><b><span style="color:#0070C0"><o:p> </o:p></span></b></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Printing analysis 'Loop Access Analysis' for function 'main':<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  vector.body33:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Memory dependences are safe<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Dependences:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Run-time memory checks:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Grouped accesses:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Store to invariant address was not found in loop.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    SCEV assumptions:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Expressions re-written:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  vector.body:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Report: loop control flow is not understood by analyzer<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Dependences:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Run-time memory checks:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Grouped accesses:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Store to invariant address was not found in loop.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    SCEV assumptions:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">    Expressions re-written:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Printing analysis 'Promote Memory to Register' for function 'main':<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Pass::print not implemented for pass: 'Promote Memory to Register'!<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Printing analysis 'Induction Variable Simplification':<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Pass::print not implemented for pass: 'Induction Variable Simplification'!<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Printing analysis 'Induction Variable Simplification':<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Pass::print not implemented for pass: 'Induction Variable Simplification'!<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Printing analysis 'Canonicalize natural loops' for function 'main':<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Pass::print not implemented for pass: 'Canonicalize natural loops'!<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Printing analysis 'Scalar Evolution Analysis' for function 'main':<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Classifying expressions for: @main<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %a = alloca [1000 x i32], align 16<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  %a U: [0,-15) S: [-9223372036854775808,9223372036854775793)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %0 = bitcast [1000 x i32]* %a to i8*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  %a U: [0,-15) S: [-9223372036854775808,9223372036854775793)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index = phi i64 [ 0, %entry ], [ %index.next.3, %vector.body.1 ]<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {0,+,32}<nuw><nsw><%vector.body> U: [0,993) S: [0,993)           Exits: 992              LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %1 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {%a,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)           Exits: (3968 + %a)              LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %4 = bitcast i32* %1 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {%a,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)           Exits: (3968 + %a)              LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %5 = getelementptr inbounds i32, i32* %1, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(16 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (3984 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %6 = bitcast i32* %5 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(16 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (3984 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next = or i64 %index, 8<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {8,+,32}<nuw><nsw><%vector.body> U: [8,1001) S: [8,1001)         Exits: 1000             LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index37 = phi i64 [ %index.next38.4, %vector.body33 ], [ 0, %vector.body33.preheader ]<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {0,+,40}<nuw><nsw><%vector.body33> U: [0,961) S: [0,961)         Exits: 960              LoopDispositions: { %vector.body33: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %8 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index37<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {%a,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)         Exits: (3840 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %9 = bitcast i32* %8 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {%a,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)         Exits: (3840 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %10 = getelementptr inbounds i32, i32* %8, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(16 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3856 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %11 = bitcast i32* %10 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(16 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3856 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next38 = add nuw nsw i64 %index37, 8<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {8,+,40}<nuw><nsw><%vector.body33> U: [8,969) S: [8,969)         Exits: 968              LoopDispositions: { %vector.body33: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %14 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next38<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"> -->  {(32 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3872 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %15 = bitcast i32* %14 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(32 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3872 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %16 = getelementptr inbounds i32, i32* %14, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(48 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)          Exits: (3888 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %17 = bitcast i32* %16 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(48 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)          Exits: (3888 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next38.1 = add nuw nsw i64 %index37, 16<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {16,+,40}<nuw><nsw><%vector.body33> U: [16,977) S: [16,977)              Exits: 976              LoopDispositions: { %vector.body33: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %20 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next38.1<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(64 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3904 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %21 = bitcast i32* %20 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(64 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3904 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %22 = getelementptr inbounds i32, i32* %20, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(80 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)          Exits: (3920 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %23 = bitcast i32* %22 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(80 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)          Exits: (3920 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next38.2 = add nuw nsw i64 %index37, 24<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {24,+,40}<nuw><nsw><%vector.body33> U: [24,985) S: [24,985)              Exits: 984              LoopDispositions: { %vector.body33: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %26 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next38.2<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(96 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3936 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %27 = bitcast i32* %26 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(96 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)             Exits: (3936 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %28 = getelementptr inbounds i32, i32* %26, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(112 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)         Exits: (3952 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %29 = bitcast i32* %28 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(112 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)         Exits: (3952 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next38.3 = add nuw nsw i64 %index37, 32<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {32,+,40}<nuw><nsw><%vector.body33> U: [32,993) S: [32,993)              Exits: 992              LoopDispositions: { %vector.body33: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"> %32 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next38.3<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(128 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)            Exits: (3968 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %33 = bitcast i32* %32 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(128 + %a)<nsw>,+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)            Exits: (3968 + %a)              LoopDispositions: { %vector.body33:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %34 = getelementptr inbounds i32, i32* %32, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(144 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)         Exits: (3984 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %35 = bitcast i32* %34 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(144 + %a),+,160}<nsw><%vector.body33> U: [0,-15) S: [-9223372036854775808,9223372036854775793)         Exits: (3984 + %a)              LoopDispositions: { %vector.body33: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next38.4 = add nuw nsw i64 %index37, 40<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {40,+,40}<nuw><nsw><%vector.body33> U: [40,1001) S: [40,1001)            Exits: 1000             LoopDispositions: { %vector.body33: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %39 = extractelement <4 x i32> %bin.rdx46, i32 0<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  %39 U: full-set S: full-set<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i32 %39)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  %call U: full-set S: full-set<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %40 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(32 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (4000 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %43 = bitcast i32* %40 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(32 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (4000 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %44 = getelementptr inbounds i32, i32* %40, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(48 + %a),+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)            Exits: (4016 + %a)              LoopDispositions: { %vector.body: Computable
<b>}                                  </b></span><b><span style="font-family:Wingdings;color:red">ß</span><span style="color:red">-----------------------------------------OUTSIDE RANGE  4016/4 = 1004<o:p></o:p></span></b></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %45 = bitcast i32* %44 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(48 + %a),+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)            Exits: (4016 + %a)              LoopDispositions: { %vector.body: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next.1 = or i64 %index, 16<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {16,+,32}<nuw><nsw><%vector.body> U: [16,1009) S: [16,1009)              Exits: 1008             LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %46 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next.1<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(64 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (4032 + %a)              LoopDispositions: { %vector.body:
 Computable <b>}                      </b></span><b><span style="font-family:Wingdings;color:red">ß</span><span style="color:red">-----------------------------------------OUTSIDE RANGE  4032/4 = 1008<o:p></o:p></span></b></p>
<p class="MsoNormal" style="margin-left:.5in"><b><span style="color:#00B0F0"><o:p> </o:p></span></b></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %49 = bitcast i32* %46 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(64 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (4032 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %50 = getelementptr inbounds i32, i32* %46, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(80 + %a),+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)            Exits: (4048 + %a)              LoopDispositions: { %vector.body: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %51 = bitcast i32* %50 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(80 + %a),+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)            Exits: (4048 + %a)              LoopDispositions: { %vector.body: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next.2 = or i64 %index, 24<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {24,+,32}<nuw><nsw><%vector.body> U: [24,1017) S: [24,1017)              Exits: 1016             LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %52 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 0, i64 %index.next.2<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(96 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (4064 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %55 = bitcast i32* %52 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(96 + %a)<nsw>,+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)               Exits: (4064 + %a)              LoopDispositions: { %vector.body:
 Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %56 = getelementptr inbounds i32, i32* %52, i64 4<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(112 + %a),+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)           Exits: (4080 + %a)              LoopDispositions: { %vector.body: Computable
 }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %57 = bitcast i32* %56 to <4 x i32>*<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {(112 + %a),+,128}<nsw><%vector.body> U: [0,-15) S: [-9223372036854775808,9223372036854775793)           Exits: (4080 + %a)              LoopDispositions: { %vector.body: Computable
</span><b><span style="color:red">}                                         </span>
</b><b><span style="font-family:Wingdings;color:red">ß</span><span style="color:red">-----------------------------------------OUTSIDE RANGE  4080/4 = 1020<o:p></o:p></span></b></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  %index.next.3 = add nuw nsw i64 %index, 32<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">  -->  {32,+,32}<nuw><nsw><%vector.body> U: [32,1025) S: [32,1025)              Exits: 1024             LoopDispositions: { %vector.body: Computable }<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Determining loop execution counts for: @main<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body33: backedge-taken count is 24<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body33: max backedge-taken count is 24<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body33: Predicated backedge-taken count is 24<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Predicates:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body33: Trip multiple is 25<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body: backedge-taken count is 31<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body: max backedge-taken count is 31<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body: Predicated backedge-taken count is 31<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Predicates:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">Loop %vector.body: Trip multiple is 32<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#00B0F0">$<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Thanks<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">M Suresh<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>