| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py |
| ; RUN: opt -S -passes=ipsccp < %s | FileCheck %s |
| |
| declare void @foo() |
| declare void @goo() |
| declare void @patatino() |
| |
| define void @test1(i32 %t) { |
| ; CHECK-LABEL: @test1( |
| ; CHECK-NEXT: [[CHOICE:%.*]] = icmp eq i32 undef, -1 |
| ; CHECK-NEXT: switch i1 [[CHOICE]], label [[FIRST:%.*]] [ |
| ; CHECK-NEXT: i1 false, label [[SECOND:%.*]] |
| ; CHECK-NEXT: i1 true, label [[THIRD:%.*]] |
| ; CHECK-NEXT: ] |
| ; CHECK: first: |
| ; CHECK-NEXT: call void @foo() |
| ; CHECK-NEXT: ret void |
| ; CHECK: second: |
| ; CHECK-NEXT: call void @goo() |
| ; CHECK-NEXT: ret void |
| ; CHECK: third: |
| ; CHECK-NEXT: call void @patatino() |
| ; CHECK-NEXT: ret void |
| ; |
| %choice = icmp eq i32 undef, -1 |
| switch i1 %choice, label %first [i1 0, label %second |
| i1 1, label %third] |
| first: |
| call void @foo() |
| ret void |
| second: |
| call void @goo() |
| ret void |
| third: |
| call void @patatino() |
| ret void |
| } |