[RISCV] Add PACKW and PACKH to isSignExtendingOpW in RISCVSExtWRemoval.
authorCraig Topper <craig.topper@sifive.com>
Mon, 14 Nov 2022 04:00:34 +0000 (20:00 -0800)
committerCraig Topper <craig.topper@sifive.com>
Mon, 14 Nov 2022 04:00:34 +0000 (20:00 -0800)
PACKW sign extends like other W instructions.
PACKH zeroes bits 63:16 which means bits 63:31 are all zero.

llvm/lib/Target/RISCV/RISCVSExtWRemoval.cpp

index 8a6c728..ebd6494 100644 (file)
@@ -250,6 +250,7 @@ static bool isSignExtendingOpW(MachineInstr &MI, MachineRegisterInfo &MRI,
   case RISCV::CLZW:
   case RISCV::CTZW:
   case RISCV::CPOPW:
+  case RISCV::PACKW:
   case RISCV::FCVT_W_H:
   case RISCV::FCVT_WU_H:
   case RISCV::FCVT_W_S:
@@ -276,6 +277,7 @@ static bool isSignExtendingOpW(MachineInstr &MI, MachineRegisterInfo &MRI,
   case RISCV::CLZ:
   case RISCV::CPOP:
   case RISCV::CTZ:
+  case RISCV::PACKH:
     return true;
   // shifting right sufficiently makes the value 32-bit sign-extended
   case RISCV::SRAI: