Skip to content

Commit edfc89d

Browse files
authored
[InstCombine] Add select freeze poison store tests [NFC] (#129775)
1 parent 86cf4ed commit edfc89d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

llvm/test/Transforms/InstCombine/select.ll

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4901,3 +4901,41 @@ define i32 @src_simplify_2x_at_once_and(i32 %x, i32 %y) {
49014901
%cond = select i1 %and0, i32 %sub, i32 %xor
49024902
ret i32 %cond
49034903
}
4904+
4905+
define void @select_freeze_poison_parameter(ptr noundef %addr.src, ptr %addr.tgt, i1 %cond) {
4906+
; CHECK-LABEL: @select_freeze_poison_parameter(
4907+
; CHECK-NEXT: [[ADDR_SRC:%.*]] = select i1 [[COND:%.*]], ptr [[ADDR_SRC1:%.*]], ptr null
4908+
; CHECK-NEXT: store ptr [[ADDR_SRC]], ptr [[ADDR_TGT:%.*]], align 8
4909+
; CHECK-NEXT: ret void
4910+
;
4911+
%freeze = freeze ptr poison
4912+
%select.addr = select i1 %cond, ptr %addr.src, ptr %freeze
4913+
store ptr %select.addr, ptr %addr.tgt
4914+
ret void
4915+
}
4916+
4917+
@glb = global ptr null
4918+
4919+
define void @select_freeze_poison_global(ptr %addr.tgt, i1 %cond) {
4920+
; CHECK-LABEL: @select_freeze_poison_global(
4921+
; CHECK-NEXT: [[SELECT_ADDR:%.*]] = select i1 [[COND:%.*]], ptr @glb, ptr null
4922+
; CHECK-NEXT: store ptr [[SELECT_ADDR]], ptr [[ADDR_TGT:%.*]], align 8
4923+
; CHECK-NEXT: ret void
4924+
;
4925+
%freeze = freeze ptr poison
4926+
%select.addr = select i1 %cond, ptr @glb, ptr %freeze
4927+
store ptr %select.addr, ptr %addr.tgt
4928+
ret void
4929+
}
4930+
4931+
define void @select_freeze_poison_constant(ptr %addr.tgt, i1 %cond) {
4932+
; CHECK-LABEL: @select_freeze_poison_constant(
4933+
; CHECK-NEXT: [[SELECT_ADDR:%.*]] = select i1 [[COND:%.*]], i32 72, i32 0
4934+
; CHECK-NEXT: store i32 [[SELECT_ADDR]], ptr [[ADDR_TGT:%.*]], align 4
4935+
; CHECK-NEXT: ret void
4936+
;
4937+
%freeze = freeze i32 poison
4938+
%select.addr = select i1 %cond, i32 72, i32 %freeze
4939+
store i32 %select.addr, ptr %addr.tgt
4940+
ret void
4941+
}

0 commit comments

Comments
 (0)