Home | History | Annotate | Download | only in X86
      1 ; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7
      2 
      3 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-S128"
      4 target triple = "x86_64-apple-macosx10.8.0"
      5 
      6 define void @main() {
      7 entry:
      8   br label %for.body
      9 
     10 for.body:                                         ; preds = %for.end44, %entry
     11   br label %for.cond4.preheader
     12 
     13 for.cond4.preheader:                              ; preds = %if.then25, %for.body
     14   br label %for.body6
     15 
     16 for.body6:                                        ; preds = %for.inc21, %for.cond4.preheader
     17   br label %for.body12
     18 
     19 for.body12:                                       ; preds = %if.end, %for.body6
     20   %fZImg.069 = phi double [ undef, %for.body6 ], [ %add19, %if.end ]
     21   %fZReal.068 = phi double [ undef, %for.body6 ], [ %add20, %if.end ]
     22   %mul13 = fmul double %fZReal.068, %fZReal.068
     23   %mul14 = fmul double %fZImg.069, %fZImg.069
     24   %add15 = fadd double %mul13, %mul14
     25   %cmp16 = fcmp ogt double %add15, 4.000000e+00
     26   br i1 %cmp16, label %for.inc21, label %if.end
     27 
     28 if.end:                                           ; preds = %for.body12
     29   %mul18 = fmul double undef, %fZImg.069
     30   %add19 = fadd double undef, %mul18
     31   %sub = fsub double %mul13, %mul14
     32   %add20 = fadd double undef, %sub
     33   br i1 undef, label %for.body12, label %for.inc21
     34 
     35 for.inc21:                                        ; preds = %if.end, %for.body12
     36   br i1 undef, label %for.end23, label %for.body6
     37 
     38 for.end23:                                        ; preds = %for.inc21
     39   br i1 undef, label %if.then25, label %if.then26
     40 
     41 if.then25:                                        ; preds = %for.end23
     42   br i1 undef, label %for.end44, label %for.cond4.preheader
     43 
     44 if.then26:                                        ; preds = %for.end23
     45   unreachable
     46 
     47 for.end44:                                        ; preds = %if.then25
     48   br i1 undef, label %for.end48, label %for.body
     49 
     50 for.end48:                                        ; preds = %for.end44
     51   ret void
     52 }
     53 
     54 %struct.hoge = type { double, double, double}
     55 
     56 define void @zot(%struct.hoge* %arg) {
     57 bb:
     58   %tmp = load double, double* undef, align 8
     59   %tmp1 = fsub double %tmp, undef
     60   %tmp2 = load double, double* undef, align 8
     61   %tmp3 = fsub double %tmp2, undef
     62   %tmp4 = fmul double %tmp3, undef
     63   %tmp5 = fmul double %tmp3, undef
     64   %tmp6 = fsub double %tmp5, undef
     65   %tmp7 = getelementptr inbounds %struct.hoge, %struct.hoge* %arg, i64 0, i32 1
     66   store double %tmp6, double* %tmp7, align 8
     67   %tmp8 = fmul double %tmp1, undef
     68   %tmp9 = fsub double %tmp8, undef
     69   %tmp10 = getelementptr inbounds %struct.hoge, %struct.hoge* %arg, i64 0, i32 2
     70   store double %tmp9, double* %tmp10, align 8
     71   br i1 undef, label %bb11, label %bb12
     72 
     73 bb11:                                             ; preds = %bb
     74   br label %bb14
     75 
     76 bb12:                                             ; preds = %bb
     77   %tmp13 = fmul double undef, %tmp2
     78   br label %bb14
     79 
     80 bb14:                                             ; preds = %bb12, %bb11
     81   ret void
     82 }
     83 
     84 
     85 %struct.rc4_state.0.24 = type { i32, i32, [256 x i32] }
     86 
     87 define void @rc4_crypt(%struct.rc4_state.0.24* nocapture %s) {
     88 entry:
     89   %x1 = getelementptr inbounds %struct.rc4_state.0.24, %struct.rc4_state.0.24* %s, i64 0, i32 0
     90   %y2 = getelementptr inbounds %struct.rc4_state.0.24, %struct.rc4_state.0.24* %s, i64 0, i32 1
     91   br i1 undef, label %for.body, label %for.end
     92 
     93 for.body:                                         ; preds = %for.body, %entry
     94   %x.045 = phi i32 [ %conv4, %for.body ], [ undef, %entry ]
     95   %conv4 = and i32 undef, 255
     96   %conv7 = and i32 undef, 255
     97   %idxprom842 = zext i32 %conv7 to i64
     98   br i1 undef, label %for.end, label %for.body
     99 
    100 for.end:                                          ; preds = %for.body, %entry
    101   %x.0.lcssa = phi i32 [ undef, %entry ], [ %conv4, %for.body ]
    102   %y.0.lcssa = phi i32 [ undef, %entry ], [ %conv7, %for.body ]
    103   store i32 %x.0.lcssa, i32* %x1, align 4
    104   store i32 %y.0.lcssa, i32* %y2, align 4
    105   ret void
    106 }
    107 
    108