Skip to content

Commit 3574456

Browse files
committed
[GlobalISel] add KnownBits tracking for G_UMULH and G_SMULH
1 parent 4abcbb0 commit 3574456

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,22 @@ void GISelValueTracking::computeKnownBitsImpl(Register R, KnownBits &Known,
366366
Known = KnownBits::mul(Known, Known2);
367367
break;
368368
}
369+
case TargetOpcode::G_UMULH: {
370+
computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
371+
Depth + 1);
372+
computeKnownBitsImpl(MI.getOperand(1).getReg(), Known2, DemandedElts,
373+
Depth + 1);
374+
Known = KnownBits::mulhu(Known, Known2);
375+
break;
376+
}
377+
case TargetOpcode::G_SMULH: {
378+
computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
379+
Depth + 1);
380+
computeKnownBitsImpl(MI.getOperand(1).getReg(), Known2, DemandedElts,
381+
Depth + 1);
382+
Known = KnownBits::mulhs(Known, Known2);
383+
break;
384+
}
369385
case TargetOpcode::G_SELECT: {
370386
computeKnownBitsMin(MI.getOperand(2).getReg(), MI.getOperand(3).getReg(),
371387
Known, DemandedElts, Depth + 1);

0 commit comments

Comments
 (0)