@@ -135,31 +135,50 @@ TEST_P(RISCVInstrInfoTest, IsCopyInstrImpl) {
135
135
EXPECT_EQ (MI4Res->Destination ->getReg (), RISCV::F1_D);
136
136
EXPECT_EQ (MI4Res->Source ->getReg (), RISCV::F2_D);
137
137
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
+ }
145
165
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)
147
168
.addReg (RISCV::X0)
148
169
.addReg (RISCV::X2)
149
170
.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 ());
154
173
155
- MachineInstr *MI7 = BuildMI (*MF, DL, TII->get (RISCV::ADD ), RISCV::X1)
174
+ MachineInstr *MI9 = BuildMI (*MF, DL, TII->get (RISCV::SUB ), RISCV::X1)
156
175
.addReg (RISCV::X2)
157
176
.addReg (RISCV::X0)
158
177
.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);
163
182
}
164
183
165
184
TEST_P (RISCVInstrInfoTest, GetMemOperandsWithOffsetWidth) {
0 commit comments