diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td @@ -650,6 +650,14 @@ // Pseudo Instructions //===----------------------------------------------------------------------===// +let Predicates = [HasStdExtZbpOrZbkb, IsRV32] in { +def : InstAlias<"zext.h $rd, $rs", (PACK GPR:$rd, GPR:$rs, X0), 0>; +} + +let Predicates = [HasStdExtZbpOrZbkb, IsRV64] in { +def : InstAlias<"zext.h $rd, $rs", (PACKW GPR:$rd, GPR:$rs, X0), 0>; +} + let Predicates = [HasStdExtZba, IsRV64] in { def : InstAlias<"zext.w $rd, $rs", (ADD_UW GPR:$rd, GPR:$rs, X0)>; }