Sanjay Patel | 3e9664f | 2016-03-28 22:12:21 +0000 | [diff] [blame] | 1 | ; NOTE: Assertions have been autogenerated by update_test_checks.py |
David Majnemer | c82f27a | 2013-06-03 20:43:12 +0000 | [diff] [blame] | 2 | ; RUN: opt < %s -simplifycfg -S | FileCheck %s |
| 3 | |
David Majnemer | c82f27a | 2013-06-03 20:43:12 +0000 | [diff] [blame] | 4 | @b = extern_weak global i32 |
Rafael Espindola | a5e536a | 2013-06-04 14:11:59 +0000 | [diff] [blame] | 5 | |
David Majnemer | c82f27a | 2013-06-03 20:43:12 +0000 | [diff] [blame] | 6 | define i32 @foo(i1 %y) { |
Sanjay Patel | 3e9664f | 2016-03-28 22:12:21 +0000 | [diff] [blame] | 7 | ; 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 Majnemer | c82f27a | 2013-06-03 20:43:12 +0000 | [diff] [blame] | 11 | br i1 %y, label %bb1, label %bb2 |
| 12 | bb1: |
| 13 | br label %bb3 |
| 14 | bb2: |
| 15 | br label %bb3 |
| 16 | bb3: |
| 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 Espindola | a5e536a | 2013-06-04 14:11:59 +0000 | [diff] [blame] | 20 | |
| 21 | define i32 @foo2(i1 %x) { |
Sanjay Patel | 3e9664f | 2016-03-28 22:12:21 +0000 | [diff] [blame] | 22 | ; 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 Espindola | a5e536a | 2013-06-04 14:11:59 +0000 | [diff] [blame] | 26 | bb0: |
| 27 | br i1 %x, label %bb1, label %bb2 |
| 28 | bb1: |
| 29 | br label %bb2 |
| 30 | bb2: |
| 31 | %cond = phi i32 [ 0, %bb1 ], [ srem (i32 1, i32 zext (i1 icmp eq (i32* @b, i32* null) to i32)), %bb0 ] |
Rafael Espindola | a5e536a | 2013-06-04 14:11:59 +0000 | [diff] [blame] | 32 | ret i32 %cond |
| 33 | } |