forked from OSchip/llvm-project
[InstCombine] Add more tests to nonnull-select.ll (NFC)
This commit is contained in:
parent
a205fa5cd9
commit
3b8cfef486
|
@ -27,8 +27,47 @@ define nonnull i32* @nonnull_ret(i1 %cond, i32* %p) {
|
|||
ret i32* %res
|
||||
}
|
||||
|
||||
define nonnull i32* @nonnull_ret2(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_ret2(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* null, i32* [[P:%.*]]
|
||||
; CHECK-NEXT: ret i32* [[RES]]
|
||||
;
|
||||
%res = select i1 %cond, i32* null, i32* %p
|
||||
ret i32* %res
|
||||
}
|
||||
|
||||
define nonnull noundef i32* @nonnull_noundef_ret(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_noundef_ret(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* [[P:%.*]], i32* null
|
||||
; CHECK-NEXT: ret i32* [[RES]]
|
||||
;
|
||||
%res = select i1 %cond, i32* %p, i32* null
|
||||
ret i32* %res
|
||||
}
|
||||
|
||||
define nonnull noundef i32* @nonnull_noundef_ret2(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_noundef_ret2(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* null, i32* [[P:%.*]]
|
||||
; CHECK-NEXT: ret i32* [[RES]]
|
||||
;
|
||||
%res = select i1 %cond, i32* null, i32* %p
|
||||
ret i32* %res
|
||||
}
|
||||
|
||||
|
||||
define void @nonnull_call(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_call(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* [[P:%.*]], i32* null
|
||||
; CHECK-NEXT: call void @f(i32* nonnull [[RES]])
|
||||
; CHECK-NEXT: ret void
|
||||
;
|
||||
%res = select i1 %cond, i32* %p, i32* null
|
||||
call void @f(i32* nonnull %res)
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @nonnull_call2(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_call2(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* null, i32* [[P:%.*]]
|
||||
; CHECK-NEXT: call void @f(i32* nonnull [[RES]])
|
||||
; CHECK-NEXT: ret void
|
||||
|
@ -38,4 +77,26 @@ define void @nonnull_call(i1 %cond, i32* %p) {
|
|||
ret void
|
||||
}
|
||||
|
||||
define void @nonnull_noundef_call(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_noundef_call(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* [[P:%.*]], i32* null
|
||||
; CHECK-NEXT: call void @f(i32* noundef nonnull [[RES]])
|
||||
; CHECK-NEXT: ret void
|
||||
;
|
||||
%res = select i1 %cond, i32* %p, i32* null
|
||||
call void @f(i32* nonnull noundef %res)
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @nonnull_noundef_call2(i1 %cond, i32* %p) {
|
||||
; CHECK-LABEL: @nonnull_noundef_call2(
|
||||
; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], i32* null, i32* [[P:%.*]]
|
||||
; CHECK-NEXT: call void @f(i32* noundef nonnull [[RES]])
|
||||
; CHECK-NEXT: ret void
|
||||
;
|
||||
%res = select i1 %cond, i32* null, i32* %p
|
||||
call void @f(i32* nonnull noundef %res)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @f(i32*)
|
||||
|
|
Loading…
Reference in New Issue