| ; RUN: llc --mtriple=powerpc64le-linux-gnu < %s | FileCheck %s |
| |
| ; It tests in function DAGCombiner::visitSIGN_EXTEND_INREG |
| ; signext will not be combined with extload, and causes extra zext. |
| |
| declare void @g(i32 signext) |
| |
| define void @foo(i8* %p) { |
| entry: |
| br label %while.body |
| |
| while.body: |
| %0 = load i8, i8* %p, align 1 |
| %conv = zext i8 %0 to i32 |
| %cmp = icmp sgt i8 %0, 0 |
| br i1 %cmp, label %if.then, label %while.body |
| ; CHECK: lbz |
| ; CHECK: extsb. |
| ; CHECK-NOT: rlwinm |
| ; CHECK: ble |
| |
| if.then: |
| tail call void @g(i32 signext %conv) |
| br label %while.body |
| } |
| |