store i32 %conv820, i32* %p
ret void
}
+
+; CHECK-LABEL: foo:
+
+declare void @bar(i64)
+
+define fastcc void @foo(i32 %t) {
+bb:
+ %tmp = add i32 %t, -1 ; <i32> [#uses=1]
+ br label %bb1
+
+bb1: ; preds = %bb
+ %tmp2 = zext i32 %tmp to i64 ; <i64> [#uses=2]
+ %tmp3 = add i64 %tmp2, 1 ; <i64> [#uses=1]
+ %tmp4 = xor i64 %tmp2, 536870911 ; <i64> [#uses=1]
+ %tmp5 = and i64 %tmp3, %tmp4 ; <i64> [#uses=1]
+ %tmp6 = shl i64 %tmp5, 3 ; <i64> [#uses=1]
+ %tmp7 = sub i64 64, %tmp6 ; <i64> [#uses=1]
+ %tmp8 = and i64 %tmp7, 4294967288 ; <i64> [#uses=1]
+ %tmp9 = lshr i64 -1, %tmp8 ; <i64> [#uses=1]
+ call void @bar(i64 %tmp9)
+ ret void
+}