Fixed some bugs in register stack pass.
[llvm/zpu.git] / test / CodeGen / SystemZ / 2009-07-05-Shifts.ll
blob68ccb848980cdb2fcf4e1358e52bfbd4f621ef1e
1 ; RUN: llc < %s
3 target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
4 target triple = "s390x-ibm-linux"
6 define signext i32 @bit_place_piece(i32 signext %col, i32 signext %player, i64* nocapture %b1, i64* nocapture %b2) nounwind {
7 entry:
8         br i1 undef, label %for.body, label %return
10 for.body:               ; preds = %entry
11         %add = add i32 0, %col          ; <i32> [#uses=1]
12         %sh_prom = zext i32 %add to i64         ; <i64> [#uses=1]
13         %shl = shl i64 1, %sh_prom              ; <i64> [#uses=1]
14         br i1 undef, label %if.then13, label %if.else
16 if.then13:              ; preds = %for.body
17         ret i32 0
19 if.else:                ; preds = %for.body
20         %or34 = or i64 undef, %shl              ; <i64> [#uses=0]
21         ret i32 0
23 return:         ; preds = %entry
24         ret i32 1