~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/Transforms/LoopVectorize/loop-form.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}