@@ -135,31 +135,50 @@ TEST_P(RISCVInstrInfoTest, IsCopyInstrImpl) {
135135 EXPECT_EQ (MI4Res->Destination ->getReg (), RISCV::F1_D);
136136 EXPECT_EQ (MI4Res->Source ->getReg (), RISCV::F2_D);
137137
138- // ADD.
139- MachineInstr *MI5 = BuildMI (*MF, DL, TII->get (RISCV::ADD), RISCV::X1)
140- .addReg (RISCV::X2)
141- .addReg (RISCV::X3)
142- .getInstr ();
143- auto MI5Res = TII->isCopyInstrImpl (*MI5);
144- EXPECT_FALSE (MI5Res.has_value ());
138+ // ADD/OR/XOR.
139+ for (unsigned Opc : {RISCV::ADD, RISCV::OR, RISCV::XOR}) {
140+ MachineInstr *MI5 = BuildMI (*MF, DL, TII->get (Opc), RISCV::X1)
141+ .addReg (RISCV::X2)
142+ .addReg (RISCV::X3)
143+ .getInstr ();
144+ auto MI5Res = TII->isCopyInstrImpl (*MI5);
145+ EXPECT_FALSE (MI5Res.has_value ());
146+
147+ MachineInstr *MI6 = BuildMI (*MF, DL, TII->get (Opc), RISCV::X1)
148+ .addReg (RISCV::X0)
149+ .addReg (RISCV::X2)
150+ .getInstr ();
151+ auto MI6Res = TII->isCopyInstrImpl (*MI6);
152+ ASSERT_TRUE (MI6Res.has_value ());
153+ EXPECT_EQ (MI6Res->Destination ->getReg (), RISCV::X1);
154+ EXPECT_EQ (MI6Res->Source ->getReg (), RISCV::X2);
155+
156+ MachineInstr *MI7 = BuildMI (*MF, DL, TII->get (Opc), RISCV::X1)
157+ .addReg (RISCV::X2)
158+ .addReg (RISCV::X0)
159+ .getInstr ();
160+ auto MI7Res = TII->isCopyInstrImpl (*MI7);
161+ ASSERT_TRUE (MI7Res.has_value ());
162+ EXPECT_EQ (MI7Res->Destination ->getReg (), RISCV::X1);
163+ EXPECT_EQ (MI7Res->Source ->getReg (), RISCV::X2);
164+ }
145165
146- MachineInstr *MI6 = BuildMI (*MF, DL, TII->get (RISCV::ADD), RISCV::X1)
166+ // SUB.
167+ MachineInstr *MI8 = BuildMI (*MF, DL, TII->get (RISCV::SUB), RISCV::X1)
147168 .addReg (RISCV::X0)
148169 .addReg (RISCV::X2)
149170 .getInstr ();
150- auto MI6Res = TII->isCopyInstrImpl (*MI6);
151- ASSERT_TRUE (MI6Res.has_value ());
152- EXPECT_EQ (MI6Res->Destination ->getReg (), RISCV::X1);
153- EXPECT_EQ (MI6Res->Source ->getReg (), RISCV::X2);
171+ auto MI8Res = TII->isCopyInstrImpl (*MI8);
172+ EXPECT_FALSE (MI8Res.has_value ());
154173
155- MachineInstr *MI7 = BuildMI (*MF, DL, TII->get (RISCV::ADD ), RISCV::X1)
174+ MachineInstr *MI9 = BuildMI (*MF, DL, TII->get (RISCV::SUB ), RISCV::X1)
156175 .addReg (RISCV::X2)
157176 .addReg (RISCV::X0)
158177 .getInstr ();
159- auto MI7Res = TII->isCopyInstrImpl (*MI7 );
160- ASSERT_TRUE (MI7Res .has_value ());
161- EXPECT_EQ (MI7Res ->Destination ->getReg (), RISCV::X1);
162- EXPECT_EQ (MI7Res ->Source ->getReg (), RISCV::X2);
178+ auto MI9Res = TII->isCopyInstrImpl (*MI9 );
179+ ASSERT_TRUE (MI9Res .has_value ());
180+ EXPECT_EQ (MI9Res ->Destination ->getReg (), RISCV::X1);
181+ EXPECT_EQ (MI9Res ->Source ->getReg (), RISCV::X2);
163182}
164183
165184TEST_P (RISCVInstrInfoTest, GetMemOperandsWithOffsetWidth) {
0 commit comments