~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/lsr-i386.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: llc -march=x86 < %s | FileCheck %s
 
2
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
 
3
target triple = "i386-pc-linux-gnu"
 
4
; PR7651
 
5
 
 
6
; CHECK: align
 
7
; CHECK: align
 
8
; CHECK: align
 
9
; CHECK: movl  $0, (%e
 
10
; CHECK-NEXT: addl  $4, %e
 
11
; CHECK-NEXT: decl  %e
 
12
; CHECK-NEXT: jne
 
13
 
 
14
%struct.anon = type { [72 x i32], i32 }
 
15
 
 
16
@mp2grad_ = external global %struct.anon
 
17
 
 
18
define void @chomp2g_setup_(i32 %n, i32 %m) nounwind {
 
19
entry:
 
20
  br label %bb1
 
21
 
 
22
bb1:                                              ; preds = %bb6, %bb
 
23
  %indvar11 = phi i32 [ %indvar.next12, %bb6 ], [ 0, %entry ] ; <i32> [#uses=2]
 
24
  %tmp21 = add i32 %indvar11, 1                   ; <i32> [#uses=1]
 
25
  %t = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @mp2grad_, i32 0, i32 1)
 
26
  %tmp15 = mul i32 %n, %t                      ; <i32> [#uses=1]
 
27
  %tmp16 = add i32 %tmp21, %tmp15                 ; <i32> [#uses=1]
 
28
  %tmp17 = shl i32 %tmp16, 3                      ; <i32> [#uses=1]
 
29
  %tmp18 = add i32 %tmp17, -8                     ; <i32> [#uses=1]
 
30
  br label %bb2
 
31
 
 
32
bb2:                                              ; preds = %bb2, %bb2.preheader
 
33
  %indvar = phi i32 [ 0, %bb1 ], [ %indvar.next, %bb2 ] ; <i32> [#uses=2]
 
34
  %tmp19 = add i32 %tmp18, %indvar                ; <i32> [#uses=1]
 
35
  %scevgep = getelementptr %struct.anon, %struct.anon* @mp2grad_, i32 0, i32 0, i32 %tmp19 ; <i32*> [#uses=1]
 
36
  store i32 0, i32* %scevgep
 
37
  %indvar.next = add i32 %indvar, 1               ; <i32> [#uses=1]
 
38
  %c = icmp ne i32 %indvar.next, %m
 
39
  br i1 %c, label %bb2, label %bb6
 
40
 
 
41
bb6:                                              ; preds = %bb2, %bb1
 
42
  %indvar.next12 = add i32 %indvar11, 1           ; <i32> [#uses=1]
 
43
  br label %bb1
 
44
}