Skip to content

Commit e4241f7

Browse files
author
git apple-llvm automerger
committed
Merge commit '358f9182e06a' from apple/master into swift/master-next
2 parents 47d0343 + 358f918 commit e4241f7

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ bool CSEConfigFull::shouldCSEOpc(unsigned Opc) {
5959
case TargetOpcode::G_UNMERGE_VALUES:
6060
case TargetOpcode::G_TRUNC:
6161
case TargetOpcode::G_PTR_ADD:
62+
case TargetOpcode::G_EXTRACT:
6263
return true;
6364
}
6465
return false;

llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ void CSEMIRBuilder::profileDstOp(const DstOp &Op,
7070
void CSEMIRBuilder::profileSrcOp(const SrcOp &Op,
7171
GISelInstProfileBuilder &B) const {
7272
switch (Op.getSrcOpKind()) {
73+
case SrcOp::SrcType::Ty_Imm:
74+
B.addNodeIDImmediate(static_cast<int64_t>(Op.getImm()));
75+
break;
7376
case SrcOp::SrcType::Ty_Predicate:
7477
B.addNodeIDImmediate(static_cast<int64_t>(Op.getPredicate()));
7578
break;

llvm/unittests/CodeGen/GlobalISel/CSETest.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ TEST_F(AArch64GISelMITest, TestCSE) {
9696
auto CSEFMul =
9797
CSEB.buildInstr(TargetOpcode::G_AND, {s32}, {Copies[0], Copies[1]});
9898
EXPECT_EQ(&*CSEFMul, &*NonCSEFMul);
99+
100+
auto ExtractMIB = CSEB.buildInstr(TargetOpcode::G_EXTRACT, {s16},
101+
{Copies[0], static_cast<uint64_t>(0)});
102+
auto ExtractMIB1 = CSEB.buildInstr(TargetOpcode::G_EXTRACT, {s16},
103+
{Copies[0], static_cast<uint64_t>(0)});
104+
auto ExtractMIB2 = CSEB.buildInstr(TargetOpcode::G_EXTRACT, {s16},
105+
{Copies[0], static_cast<uint64_t>(1)});
106+
EXPECT_EQ(&*ExtractMIB, &*ExtractMIB1);
107+
EXPECT_NE(&*ExtractMIB, &*ExtractMIB2);
99108
}
100109

101110
TEST_F(AArch64GISelMITest, TestCSEConstantConfig) {

0 commit comments

Comments
 (0)