Skip to content

Commit

Permalink
Add a test for the foldSelectICmpAndOr fix committed in r180779.
Browse files Browse the repository at this point in the history
This tests a case where C1 and C2 were the same but X and Y were different
widths.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180907 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
majnemer committed May 2, 2013
1 parent d4201b6 commit 304099a
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions test/Transforms/InstCombine/select.ll
Original file line number Diff line number Diff line change
Expand Up @@ -915,6 +915,19 @@ define i32 @select_icmp_eq_and_4096_0_or_4096(i32 %x, i32 %y) {
ret i32 %select
}

; CHECK: @select_icmp_eq_0_and_1_or_1
; CHECK-NEXT: [[AND:%[a-z0-9]+]] = and i64 %x, 1
; CHECK-NEXT: [[ZEXT:%[a-z0-9]+]] = trunc i64 [[AND]] to i32
; CHECK-NEXT: [[OR:%[a-z0-9]+]] = or i32 [[XOR]], %y
; CHECK-NEXT: ret i32 [[OR]]
define i32 @select_icmp_eq_0_and_1_or_1(i64 %x, i32 %y) {
%and = and i64 %x, 1
%cmp = icmp eq i64 %and, 0
%or = or i32 %y, 1
%select = select i1 %cmp, i32 %y, i32 %or
ret i32 %select
}

; CHECK: @select_icmp_ne_0_and_4096_or_32
; CHECK-NEXT: [[LSHR:%[a-z0-9]+]] = lshr i32 %x, 7
; CHECK-NEXT: [[AND:%[a-z0-9]+]] = and i32 [[LSHR]], 32
Expand Down

0 comments on commit 304099a

Please sign in to comment.