blob: 9048b5680c7521b35753920a813789ed0673b10d [file] [log] [blame]
Sanjay Patel3e9664f2016-03-28 22:12:21 +00001; NOTE: Assertions have been autogenerated by update_test_checks.py
David Majnemerc82f27a2013-06-03 20:43:12 +00002; RUN: opt < %s -simplifycfg -S | FileCheck %s
3
David Majnemerc82f27a2013-06-03 20:43:12 +00004@b = extern_weak global i32
Rafael Espindolaa5e536a2013-06-04 14:11:59 +00005
David Majnemerc82f27a2013-06-03 20:43:12 +00006define i32 @foo(i1 %y) {
Sanjay Patel3e9664f2016-03-28 22:12:21 +00007; CHECK-LABEL: @foo(
8; CHECK: [[COND_I:%.*]] = phi i32 [ srem (i32 1, i32 zext (i1 icmp eq (i32* @b, i32* null) to i32)), %bb2 ], [ 0, %0 ]
9; CHECK-NEXT: ret i32 [[COND_I]]
10;
David Majnemerc82f27a2013-06-03 20:43:12 +000011 br i1 %y, label %bb1, label %bb2
12bb1:
13 br label %bb3
14bb2:
15 br label %bb3
16bb3:
17 %cond.i = phi i32 [ 0, %bb1 ], [ srem (i32 1, i32 zext (i1 icmp eq (i32* @b, i32* null) to i32)), %bb2 ]
18 ret i32 %cond.i
19}
Rafael Espindolaa5e536a2013-06-04 14:11:59 +000020
21define i32 @foo2(i1 %x) {
Sanjay Patel3e9664f2016-03-28 22:12:21 +000022; CHECK-LABEL: @foo2(
23; CHECK: [[COND:%.*]] = phi i32 [ 0, %bb1 ], [ srem (i32 1, i32 zext (i1 icmp eq (i32* @b, i32* null) to i32)), %bb0 ]
24; CHECK-NEXT: ret i32 [[COND]]
25;
Rafael Espindolaa5e536a2013-06-04 14:11:59 +000026bb0:
27 br i1 %x, label %bb1, label %bb2
28bb1:
29 br label %bb2
30bb2:
31 %cond = phi i32 [ 0, %bb1 ], [ srem (i32 1, i32 zext (i1 icmp eq (i32* @b, i32* null) to i32)), %bb0 ]
Rafael Espindolaa5e536a2013-06-04 14:11:59 +000032 ret i32 %cond
33}