Skip to content

Commit acf0d16

Browse files
committed
[InstCombine] Precommit tests for PR83225
1 parent e1405e4 commit acf0d16

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

llvm/test/Transforms/InstCombine/select.ll

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3708,3 +3708,47 @@ define i32 @src_select_xxory_eq0_xorxy_y(i32 %x, i32 %y) {
37083708
%cond = select i1 %xor0, i32 %xor, i32 %y
37093709
ret i32 %cond
37103710
}
3711+
3712+
define i32 @sequence_select_with_same_cond_flase (i1 %c1, i1 %c2){
3713+
; CHECK-LABEL: @sequence_select_with_same_cond_flase(
3714+
; CHECK-NEXT: [[S1:%.*]] = select i1 [[C1:%.*]], i32 23, i32 45
3715+
; CHECK-NEXT: [[S2:%.*]] = select i1 [[C2:%.*]], i32 666, i32 [[S1]]
3716+
; CHECK-NEXT: [[S3:%.*]] = select i1 [[C1]], i32 789, i32 [[S2]]
3717+
; CHECK-NEXT: ret i32 [[S3]]
3718+
;
3719+
%s1 = select i1 %c1, i32 23, i32 45
3720+
%s2 = select i1 %c2, i32 666, i32 %s1
3721+
%s3 = select i1 %c1, i32 789, i32 %s2
3722+
ret i32 %s3
3723+
}
3724+
3725+
; https://alive2.llvm.org/ce/z/HHF-VD
3726+
define i32 @sequence_select_with_same_cond_true (i1 %c1, i1 %c2){
3727+
; CHECK-LABEL: @sequence_select_with_same_cond_true(
3728+
; CHECK-NEXT: [[S1:%.*]] = select i1 [[C1:%.*]], i32 45, i32 23
3729+
; CHECK-NEXT: [[S2:%.*]] = select i1 [[C2:%.*]], i32 [[S1]], i32 666
3730+
; CHECK-NEXT: [[S3:%.*]] = select i1 [[C1]], i32 [[S2]], i32 789
3731+
; CHECK-NEXT: ret i32 [[S3]]
3732+
;
3733+
%s1 = select i1 %c1, i32 45, i32 23
3734+
%s2 = select i1 %c2, i32 %s1, i32 666
3735+
%s3 = select i1 %c1, i32 %s2, i32 789
3736+
ret i32 %s3
3737+
}
3738+
3739+
declare void @use32(i32)
3740+
3741+
define i32 @sequence_select_with_same_cond_extra_use (i1 %c1, i1 %c2){
3742+
; CHECK-LABEL: @sequence_select_with_same_cond_extra_use(
3743+
; CHECK-NEXT: [[S1:%.*]] = select i1 [[C1:%.*]], i32 23, i32 45
3744+
; CHECK-NEXT: call void @use32(i32 [[S1]])
3745+
; CHECK-NEXT: [[S2:%.*]] = select i1 [[C2:%.*]], i32 666, i32 [[S1]]
3746+
; CHECK-NEXT: [[S3:%.*]] = select i1 [[C1]], i32 789, i32 [[S2]]
3747+
; CHECK-NEXT: ret i32 [[S3]]
3748+
;
3749+
%s1 = select i1 %c1, i32 23, i32 45
3750+
call void @use32(i32 %s1)
3751+
%s2 = select i1 %c2, i32 666, i32 %s1
3752+
%s3 = select i1 %c1, i32 789, i32 %s2
3753+
ret i32 %s3
3754+
}

0 commit comments

Comments
 (0)