Transform (sub 0, (zext bool to A)) to (sext bool to A) and

(sub 0, (sext bool to A)) to (zext bool to A).

Patch by Muhammad Ahmad
Reviewed by Duncan Sands


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173093 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Paul Redmond
2013-01-21 21:57:20 +00:00
parent e4b1efef8a
commit 8e528100d2
4 changed files with 22 additions and 4 deletions

View File

@@ -138,8 +138,7 @@ define i32 @test16(i32 %b, i1 %c) {
; e = b & (a >> 31)
%e = mul i32 %d, %b ; <i32> [#uses=1]
ret i32 %e
; CHECK: [[TEST16:%.*]] = zext i1 %c to i32
; CHECK-NEXT: %1 = sub i32 0, [[TEST16]]
; CHECK: [[TEST16:%.*]] = sext i1 %c to i32
; CHECK-NEXT: %e = and i32 %1, %b
; CHECK-NEXT: ret i32 %e
}