| ; Check that modelling of CC/CCRegs does not stop MachineCSE from |
| ; removing a compare. MachineCSE will not extend a live range of an |
| ; allocatable or reserved phys reg. |
| ; |
| ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s |
| |
| declare void @bar(i8) |
| |
| ; Check the low end of the CH range. |
| define void @f1(i32 %lhs) { |
| ; CHECK-LABEL: %bb.1: |
| ; CHECK-NOT: cijlh %r0, 1, .LBB0_3 |
| |
| entry: |
| %and188 = and i32 %lhs, 255 |
| %cmp189 = icmp ult i32 %and188, 2 |
| br i1 %cmp189, label %if.then.191, label %if.else.201 |
| |
| if.then.191: |
| %cmp194 = icmp eq i32 %and188, 1 |
| br i1 %cmp194, label %if.then.196, label %if.else.198 |
| |
| if.then.196: |
| call void @bar(i8 1); |
| br label %if.else.201 |
| |
| if.else.198: |
| call void @bar(i8 0); |
| br label %if.else.201 |
| |
| if.else.201: |
| ret void |
| } |
| |