forked from OSchip/llvm-project
[InstCombine] add tests for select-of-constants; NFC
These are variants of a test that was originally added in: https://reviews.llvm.org/rL75531 ...but removed with: https://reviews.llvm.org/rL159230 llvm-svn: 319327
This commit is contained in:
parent
6a00970ade
commit
e0f906c915
|
@ -18,6 +18,39 @@ define i32 @a(i1 zeroext %x, i1 zeroext %y) {
|
|||
ret i32 %add
|
||||
}
|
||||
|
||||
define i32 @zextsub(i1 %x) {
|
||||
; CHECK-LABEL: @zextsub(
|
||||
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 %x to i32
|
||||
; CHECK-NEXT: [[SUB:%.*]] = sub nsw i32 11, [[ZEXT]]
|
||||
; CHECK-NEXT: ret i32 [[SUB]]
|
||||
;
|
||||
%zext = zext i1 %x to i32
|
||||
%sub = sub i32 11, %zext
|
||||
ret i32 %sub
|
||||
}
|
||||
|
||||
define <2 x i32> @zextsub_splat(<2 x i1> %x) {
|
||||
; CHECK-LABEL: @zextsub_splat(
|
||||
; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32>
|
||||
; CHECK-NEXT: [[SUB:%.*]] = sub nsw <2 x i32> <i32 42, i32 42>, [[ZEXT]]
|
||||
; CHECK-NEXT: ret <2 x i32> [[SUB]]
|
||||
;
|
||||
%zext = zext <2 x i1> %x to <2 x i32>
|
||||
%sub = sub <2 x i32> <i32 42, i32 42>, %zext
|
||||
ret <2 x i32> %sub
|
||||
}
|
||||
|
||||
define <2 x i32> @zextsub_vec(<2 x i1> %x) {
|
||||
; CHECK-LABEL: @zextsub_vec(
|
||||
; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32>
|
||||
; CHECK-NEXT: [[SUB:%.*]] = sub nsw <2 x i32> <i32 11, i32 42>, [[ZEXT]]
|
||||
; CHECK-NEXT: ret <2 x i32> [[SUB]]
|
||||
;
|
||||
%zext = zext <2 x i1> %x to <2 x i32>
|
||||
%sub = sub <2 x i32> <i32 11, i32 42>, %zext
|
||||
ret <2 x i32> %sub
|
||||
}
|
||||
|
||||
define i32 @PR30273_select(i1 %a, i1 %b) {
|
||||
; CHECK-LABEL: @PR30273_select(
|
||||
; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 %a to i32
|
||||
|
|
Loading…
Reference in New Issue