Skip to content

Commit 3356eb3

Browse files
authored
[llvm-reduce] Reduce samesign flag from icmp (#115492)
1 parent 2f243a5 commit 3356eb3

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

llvm/test/tools/llvm-reduce/reduce-flags.ll

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,19 @@ define i32 @trunc_nsw_keep(i64 %a) {
272272
%op = trunc nsw i64 %a to i32
273273
ret i32 %op
274274
}
275+
276+
; CHECK-LABEL: @icmp_samesign_drop(
277+
; INTERESTING: = icmp
278+
; RESULT: icmp ult i32
279+
define i1 @icmp_samesign_drop(i32 %a) {
280+
%op = icmp samesign ult i32 %a, 10
281+
ret i1 %op
282+
}
283+
284+
; CHECK-LABEL: @icmp_samesign_keep(
285+
; INTERESTING: = icmp samesign
286+
; RESULT: icmp samesign ult i32
287+
define i1 @icmp_samesign_keep(i32 %a) {
288+
%op = icmp samesign ult i32 %a, 10
289+
ret i1 %op
290+
}

llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ static void reduceFlagsInModule(Oracle &O, ReducerWorkItem &WorkItem) {
4242
} else if (auto *PDI = dyn_cast<PossiblyDisjointInst>(&I)) {
4343
if (PDI->isDisjoint() && !O.shouldKeep())
4444
PDI->setIsDisjoint(false);
45+
} else if (auto *ICmp = dyn_cast<ICmpInst>(&I)) {
46+
if (ICmp->hasSameSign() && !O.shouldKeep())
47+
ICmp->setSameSign(false);
4548
} else if (auto *GEP = dyn_cast<GetElementPtrInst>(&I)) {
4649
GEPNoWrapFlags NW = GEP->getNoWrapFlags();
4750
if (NW.isInBounds() && !O.shouldKeep())

0 commit comments

Comments
 (0)