Lines Matching full:riscv
35 #include "RISCV.h"
45 #define DEBUG_TYPE "riscv-opt-w-instrs"
52 static cl::opt<bool> DisableSExtWRemoval("riscv-disable-sextw-removal",
55 static cl::opt<bool> DisableStripWSuffix("riscv-disable-strip-w-suffix",
96 unsigned MCOpcode = RISCV::getRVVMCOpcode(MI.getOpcode());
112 RISCV::getVectorLowDemandedScalarBits(MCOpcode, Log2SEW);
154 case RISCV::ADDIW:
155 case RISCV::ADDW:
156 case RISCV::DIVUW:
157 case RISCV::DIVW:
158 case RISCV::MULW:
159 case RISCV::REMUW:
160 case RISCV::REMW:
161 case RISCV::SLLIW:
162 case RISCV::SLLW:
163 case RISCV::SRAIW:
164 case RISCV::SRAW:
165 case RISCV::SRLIW:
166 case RISCV::SRLW:
167 case RISCV::SUBW:
168 case RISCV::ROLW:
169 case RISCV::RORW:
170 case RISCV::RORIW:
171 case RISCV::CLZW:
172 case RISCV::CTZW:
173 case RISCV::CPOPW:
174 case RISCV::SLLI_UW:
175 case RISCV::FMV_W_X:
176 case RISCV::FCVT_H_W:
177 case RISCV::FCVT_H_WU:
178 case RISCV::FCVT_S_W:
179 case RISCV::FCVT_S_WU:
180 case RISCV::FCVT_D_W:
181 case RISCV::FCVT_D_WU:
185 case RISCV::SEXT_B:
186 case RISCV::PACKH:
190 case RISCV::SEXT_H:
191 case RISCV::FMV_H_X:
192 case RISCV::ZEXT_H_RV32:
193 case RISCV::ZEXT_H_RV64:
194 case RISCV::PACKW:
199 case RISCV::PACK:
204 case RISCV::SRLI: {
218 case RISCV::SLLI:
223 case RISCV::ANDI: {
230 case RISCV::ORI: {
238 case RISCV::SLL:
239 case RISCV::BSET:
240 case RISCV::BCLR:
241 case RISCV::BINV:
251 case RISCV::SRA:
252 case RISCV::SRL:
253 case RISCV::ROL:
254 case RISCV::ROR:
260 case RISCV::ADD_UW:
261 case RISCV::SH1ADD_UW:
262 case RISCV::SH2ADD_UW:
263 case RISCV::SH3ADD_UW:
270 case RISCV::BEXTI:
275 case RISCV::SB:
280 case RISCV::SH:
285 case RISCV::SW:
293 case RISCV::COPY:
294 case RISCV::PHI:
296 case RISCV::ADD:
297 case RISCV::ADDI:
298 case RISCV::AND:
299 case RISCV::MUL:
300 case RISCV::OR:
301 case RISCV::SUB:
302 case RISCV::XOR:
303 case RISCV::XORI:
305 case RISCV::ANDN:
306 case RISCV::BREV8:
307 case RISCV::CLMUL:
308 case RISCV::ORC_B:
309 case RISCV::ORN:
310 case RISCV::SH1ADD:
311 case RISCV::SH2ADD:
312 case RISCV::SH3ADD:
313 case RISCV::XNOR:
314 case RISCV::BSETI:
315 case RISCV::BCLRI:
316 case RISCV::BINVI:
320 case RISCV::PseudoCCMOVGPR:
329 case RISCV::CZERO_EQZ:
330 case RISCV::CZERO_NEZ:
331 case RISCV::VT_MASKC:
332 case RISCV::VT_MASKCN:
362 case RISCV::SRAI:
364 case RISCV::SRLI:
367 case RISCV::ADDI:
368 return MI.getOperand(1).isReg() && MI.getOperand(1).getReg() == RISCV::X0;
370 case RISCV::ANDI:
373 case RISCV::ORI:
376 case RISCV::BSETI:
378 MI.getOperand(1).getReg() == RISCV::X0;
380 case RISCV::COPY:
381 return MI.getOperand(1).getReg() == RISCV::X0;
383 case RISCV::PseudoAtomicLoadNand32:
385 case RISCV::PseudoVMV_X_S: {
435 case RISCV::COPY: {
449 if (CopySrcReg == RISCV::X10) {
461 (--II)->getOpcode() != RISCV::ADJCALLSTACKUP)
491 case RISCV::BCLRI:
492 case RISCV::BINVI:
493 case RISCV::BSETI:
497 case RISCV::REM:
498 case RISCV::ANDI:
499 case RISCV::ORI:
500 case RISCV::XORI:
508 case RISCV::PseudoCCADDW:
509 case RISCV::PseudoCCADDIW:
510 case RISCV::PseudoCCSUBW:
511 case RISCV::PseudoCCSLLW:
512 case RISCV::PseudoCCSRLW:
513 case RISCV::PseudoCCSRAW:
514 case RISCV::PseudoCCSLLIW:
515 case RISCV::PseudoCCSRLIW:
516 case RISCV::PseudoCCSRAIW:
522 case RISCV::REMU:
523 case RISCV::AND:
524 case RISCV::OR:
525 case RISCV::XOR:
526 case RISCV::ANDN:
527 case RISCV::ORN:
528 case RISCV::XNOR:
529 case RISCV::MAX:
530 case RISCV::MAXU:
531 case RISCV::MIN:
532 case RISCV::MINU:
533 case RISCV::PseudoCCMOVGPR:
534 case RISCV::PseudoCCAND:
535 case RISCV::PseudoCCOR:
536 case RISCV::PseudoCCXOR:
537 case RISCV::PHI: {
547 case RISCV::PHI:
551 case RISCV::PseudoCCMOVGPR:
555 case RISCV::PseudoCCAND:
556 case RISCV::PseudoCCOR:
557 case RISCV::PseudoCCXOR:
574 case RISCV::CZERO_EQZ:
575 case RISCV::CZERO_NEZ:
576 case RISCV::VT_MASKC:
577 case RISCV::VT_MASKCN:
586 case RISCV::SLLI:
591 case RISCV::ADDI:
592 case RISCV::ADD:
593 case RISCV::LD:
594 case RISCV::LWU:
595 case RISCV::MUL:
596 case RISCV::SUB:
612 case RISCV::ADDI:
613 return RISCV::ADDIW;
614 case RISCV::ADD:
615 return RISCV::ADDW;
616 case RISCV::LD:
617 case RISCV::LWU:
618 return RISCV::LW;
619 case RISCV::MUL:
620 return RISCV::MULW;
621 case RISCV::SLLI:
622 return RISCV::SLLIW;
623 case RISCV::SUB:
624 return RISCV::SUBW;
641 if (!RISCV::isSEXT_W(MI))
693 case RISCV::ADDW: Opc = RISCV::ADD; break;
694 case RISCV::ADDIW: Opc = RISCV::ADDI; break;
695 case RISCV::MULW: Opc = RISCV::MUL; break;
696 case RISCV::SLLIW: Opc = RISCV::SLLI; break;
721 case RISCV::ADD:
722 WOpc = RISCV::ADDW;
724 case RISCV::ADDI:
725 WOpc = RISCV::ADDIW;
727 case RISCV::SUB:
728 WOpc = RISCV::SUBW;
730 case RISCV::MUL:
731 WOpc = RISCV::MULW;
733 case RISCV::SLLI:
737 WOpc = RISCV::SLLIW;
739 case RISCV::LD:
740 case RISCV::LWU:
741 WOpc = RISCV::LW;