Skip to content

Commit 036445d

Browse files
committed
fixup! [InstCombine] Use known bits to simplify mask in foldSelectICmpAnd
1 parent 17c8b66 commit 036445d

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

llvm/test/Transforms/InstCombine/select-icmp-and.ll

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -922,3 +922,25 @@ define i16 @select_icmp_bittest_range(i16 range (i16 0, 512) %a) {
922922
%res = select i1 %cmp, i16 0, i16 256
923923
ret i16 %res
924924
}
925+
926+
define i16 @select_icmp_bittest_range_negative_test(i16 range (i16 0, 513) %a) {
927+
; CHECK-LABEL: @select_icmp_bittest_range_negative_test(
928+
; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ult i16 [[A:%.*]], 256
929+
; CHECK-NEXT: [[RES:%.*]] = select i1 [[CMP]], i16 0, i16 256
930+
; CHECK-NEXT: ret i16 [[RES]]
931+
;
932+
%cmp = icmp ult i16 %a, 256
933+
%res = select i1 %cmp, i16 0, i16 256
934+
ret i16 %res
935+
}
936+
937+
define i16 @select_icmp_bittest_range_negative_test2(i16 range (i16 0, 512) %a) {
938+
; CHECK-LABEL: @select_icmp_bittest_range_negative_test2(
939+
; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ult i16 [[A:%.*]], 255
940+
; CHECK-NEXT: [[RES:%.*]] = select i1 [[CMP]], i16 0, i16 255
941+
; CHECK-NEXT: ret i16 [[RES]]
942+
;
943+
%cmp = icmp ult i16 %a, 255
944+
%res = select i1 %cmp, i16 0, i16 255
945+
ret i16 %res
946+
}

0 commit comments

Comments
 (0)