2010-01-19 06:00:46 +08:00
|
|
|
; RUN: opt < %s -instcombine -S | FileCheck %s
|
2008-03-09 16:16:40 +08:00
|
|
|
|
|
|
|
define i32 @test1(i32 %X, i32 %Y) {
|
2010-01-19 06:00:46 +08:00
|
|
|
%C = icmp ne i32 %X, %Y
|
2008-03-09 16:16:40 +08:00
|
|
|
br i1 %C, label %T, label %F
|
|
|
|
|
2010-01-19 06:00:46 +08:00
|
|
|
; CHECK: @test1
|
|
|
|
; CHECK: %C = icmp eq i32 %X, %Y
|
|
|
|
; CHECK: br i1 %C, label %F, label %T
|
2008-03-09 16:16:40 +08:00
|
|
|
|
2010-01-19 06:00:46 +08:00
|
|
|
T:
|
|
|
|
ret i32 12
|
|
|
|
F:
|
2008-03-09 16:16:40 +08:00
|
|
|
ret i32 123
|
2004-02-27 14:27:07 +08:00
|
|
|
}
|
|
|
|
|
2008-03-09 16:16:40 +08:00
|
|
|
define i32 @test2(i32 %X, i32 %Y) {
|
2010-01-19 06:00:46 +08:00
|
|
|
%C = icmp ule i32 %X, %Y
|
2008-03-09 16:16:40 +08:00
|
|
|
br i1 %C, label %T, label %F
|
|
|
|
|
2010-01-19 06:00:46 +08:00
|
|
|
; CHECK: @test2
|
|
|
|
; CHECK: %C = icmp ugt i32 %X, %Y
|
|
|
|
; CHECK: br i1 %C, label %F, label %T
|
2008-03-09 16:16:40 +08:00
|
|
|
|
2010-01-19 06:00:46 +08:00
|
|
|
T:
|
|
|
|
ret i32 12
|
|
|
|
F:
|
2008-03-09 16:16:40 +08:00
|
|
|
ret i32 123
|
2004-02-27 14:27:07 +08:00
|
|
|
}
|
2008-03-09 16:16:40 +08:00
|
|
|
|
|
|
|
define i32 @test3(i32 %X, i32 %Y) {
|
2010-01-19 06:00:46 +08:00
|
|
|
%C = icmp uge i32 %X, %Y
|
2008-03-09 16:16:40 +08:00
|
|
|
br i1 %C, label %T, label %F
|
|
|
|
|
2010-01-19 06:00:46 +08:00
|
|
|
; CHECK: @test3
|
|
|
|
; CHECK: %C = icmp ult i32 %X, %Y
|
|
|
|
; CHECK: br i1 %C, label %F, label %T
|
2008-03-09 16:16:40 +08:00
|
|
|
|
2010-01-19 06:00:46 +08:00
|
|
|
T:
|
|
|
|
ret i32 12
|
|
|
|
F:
|
2008-03-09 16:16:40 +08:00
|
|
|
ret i32 123
|
2004-02-27 14:27:07 +08:00
|
|
|
}
|
2008-03-09 16:16:40 +08:00
|
|
|
|