forked from OSchip/llvm-project
[InstCombine] Remove redundant test case.
Patch by Sonam Kumari! Differential Revision: http://reviews.llvm.org/D5284 llvm-svn: 217865
This commit is contained in:
parent
e41d8e3923
commit
40fc9595c8
|
@ -138,45 +138,35 @@ define i32 @test11(i32 %A, i32 %B) {
|
||||||
; CHECK-NEXT: ret i32 0
|
; CHECK-NEXT: ret i32 0
|
||||||
}
|
}
|
||||||
|
|
||||||
define i32 @test12(i32 %A, i32 %B) {
|
define i32 @test12(i32 %a, i32 %b) {
|
||||||
%xor1 = xor i32 %B, %A
|
|
||||||
%not = xor i32 %A, -1
|
|
||||||
%xor2 = xor i32 %not, %B
|
|
||||||
%and = and i32 %xor1, %xor2
|
|
||||||
ret i32 %and
|
|
||||||
; CHECK-LABEL: @test12(
|
|
||||||
; CHECK-NEXT: ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
define i32 @test13(i32 %a, i32 %b) {
|
|
||||||
%negb = xor i32 %b, -1
|
%negb = xor i32 %b, -1
|
||||||
%and = and i32 %a, %negb
|
%and = and i32 %a, %negb
|
||||||
%nega = xor i32 %a, -1
|
%nega = xor i32 %a, -1
|
||||||
%xor = xor i32 %and, %nega
|
%xor = xor i32 %and, %nega
|
||||||
ret i32 %xor
|
ret i32 %xor
|
||||||
|
; CHECK-LABEL: @test12(
|
||||||
|
; CHECK-NEXT: %1 = and i32 %a, %b
|
||||||
|
; CHECK-NEXT: %xor = xor i32 %1, -1
|
||||||
|
}
|
||||||
|
|
||||||
|
define i32 @test13(i32 %a, i32 %b) {
|
||||||
|
%nega = xor i32 %a, -1
|
||||||
|
%negb = xor i32 %b, -1
|
||||||
|
%and = and i32 %a, %negb
|
||||||
|
%xor = xor i32 %nega, %and
|
||||||
|
ret i32 %xor
|
||||||
; CHECK-LABEL: @test13(
|
; CHECK-LABEL: @test13(
|
||||||
; CHECK-NEXT: %1 = and i32 %a, %b
|
; CHECK-NEXT: %1 = and i32 %a, %b
|
||||||
; CHECK-NEXT: %xor = xor i32 %1, -1
|
; CHECK-NEXT: %xor = xor i32 %1, -1
|
||||||
}
|
}
|
||||||
|
|
||||||
define i32 @test14(i32 %a, i32 %b) {
|
|
||||||
%nega = xor i32 %a, -1
|
|
||||||
%negb = xor i32 %b, -1
|
|
||||||
%and = and i32 %a, %negb
|
|
||||||
%xor = xor i32 %nega, %and
|
|
||||||
ret i32 %xor
|
|
||||||
; CHECK-LABEL: @test14(
|
|
||||||
; CHECK-NEXT: %1 = and i32 %a, %b
|
|
||||||
; CHECK-NEXT: %xor = xor i32 %1, -1
|
|
||||||
}
|
|
||||||
|
|
||||||
; (A ^ C) ^ (A | B) -> ((~A) & B) ^ C
|
; (A ^ C) ^ (A | B) -> ((~A) & B) ^ C
|
||||||
define i32 @test15(i32 %a, i32 %b, i32 %c) {
|
define i32 @test14(i32 %a, i32 %b, i32 %c) {
|
||||||
%neg = xor i32 %a, %c
|
%neg = xor i32 %a, %c
|
||||||
%or = or i32 %a, %b
|
%or = or i32 %a, %b
|
||||||
%xor = xor i32 %neg, %or
|
%xor = xor i32 %neg, %or
|
||||||
ret i32 %xor
|
ret i32 %xor
|
||||||
; CHECK-LABEL: @test15(
|
; CHECK-LABEL: @test14(
|
||||||
; CHECK-NEXT: %[[not:.*]] = xor i32 %a, -1
|
; CHECK-NEXT: %[[not:.*]] = xor i32 %a, -1
|
||||||
; CHECK-NEXT: %[[and:.*]] = and i32 %[[not]], %b
|
; CHECK-NEXT: %[[and:.*]] = and i32 %[[not]], %b
|
||||||
; CHECK-NEXT: %[[xor:.*]] = xor i32 %[[and]], %c
|
; CHECK-NEXT: %[[xor:.*]] = xor i32 %[[and]], %c
|
||||||
|
|
Loading…
Reference in New Issue