Home | History | Annotate | Download | only in LoopVectorize
      1 ; RUN: opt -S -loop-vectorize < %s | FileCheck %s
      2 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
      3 
      4 ; Check that we vectorize only bottom-tested loops.
      5 ; This is a reduced testcase from PR21302.
      6 ;
      7 ; rdar://problem/18886083
      8 
      9 %struct.X = type { i32, i16 }
     10 ; CHECK-LABEL: @foo(
     11 ; CHECK-NOT: vector.body
     12 
     13 define void @foo(i32 %n) {
     14 entry:
     15   br label %for.cond
     16 
     17 for.cond:
     18   %i = phi i32 [ 0, %entry ], [ %inc, %for.body ]
     19   %cmp = icmp slt i32 %i, %n
     20   br i1 %cmp, label %for.body, label %if.end
     21 
     22 for.body:
     23   %iprom = sext i32 %i to i64
     24   %b = getelementptr inbounds %struct.X, %struct.X* undef, i64 %iprom, i32 1
     25   store i16 0, i16* %b, align 4
     26   %inc = add nsw i32 %i, 1
     27   br label %for.cond
     28 
     29 if.end:
     30   ret void
     31 }
     32