Lines Matching full:imm

23     return isUInt<6>(Imm) && (Imm != 0);
24 return isUInt<5>(Imm) && (Imm != 0);
30 int64_t Imm;
31 if (!MCOp.evaluateAsConstantImm(Imm))
34 return isUInt<6>(Imm) && (Imm != 0);
35 return isUInt<5>(Imm) && (Imm != 0);
41 int64_t Imm;
42 if (MCOp.evaluateAsConstantImm(Imm))
43 return isInt<6>(Imm);
49 ImmLeaf<XLenVT, [{return (Imm != 0) && isInt<6>(Imm);}]> {
55 int64_t Imm;
56 if (MCOp.evaluateAsConstantImm(Imm))
57 return (Imm != 0) && isInt<6>(Imm);
63 ImmLeaf<XLenVT, [{return (Imm == 0);}]> {
81 ImmLeaf<XLenVT, [{return (Imm != 0) &&
82 (isUInt<5>(Imm) ||
83 (Imm >= 0xfffe0 && Imm <= 0xfffff));}]> {
89 int64_t Imm;
90 if (MCOp.evaluateAsConstantImm(Imm))
91 return (Imm != 0) && (isUInt<5>(Imm) ||
92 (Imm >= 0xfffe0 && Imm <= 0xfffff));
99 ImmLeaf<XLenVT, [{return isShiftedUInt<5, 2>(Imm);}]> {
105 int64_t Imm;
106 if (!MCOp.evaluateAsConstantImm(Imm))
108 return isShiftedUInt<5, 2>(Imm);
114 ImmLeaf<XLenVT, [{return isShiftedUInt<6, 2>(Imm);}]> {
120 int64_t Imm;
121 if (!MCOp.evaluateAsConstantImm(Imm))
123 return isShiftedUInt<6, 2>(Imm);
129 ImmLeaf<XLenVT, [{return isShiftedUInt<5, 3>(Imm);}]> {
135 int64_t Imm;
136 if (!MCOp.evaluateAsConstantImm(Imm))
138 return isShiftedUInt<5, 3>(Imm);
144 ImmLeaf<XLenVT, [{return isShiftedInt<8, 1>(Imm);}]> {
150 int64_t Imm;
151 if (MCOp.evaluateAsConstantImm(Imm))
152 return isShiftedInt<8, 1>(Imm);
160 ImmLeaf<XLenVT, [{return isShiftedUInt<6, 3>(Imm);}]> {
166 int64_t Imm;
167 if (!MCOp.evaluateAsConstantImm(Imm))
169 return isShiftedUInt<6, 3>(Imm);
177 [{return isShiftedUInt<8, 2>(Imm) && (Imm != 0);}]> {
183 int64_t Imm;
184 if (!MCOp.evaluateAsConstantImm(Imm))
186 return isShiftedUInt<8, 2>(Imm) && (Imm != 0);
193 [{return (Imm != 0) && isShiftedInt<6, 4>(Imm);}]> {
199 int64_t Imm;
200 if (!MCOp.evaluateAsConstantImm(Imm))
202 return isShiftedInt<6, 4>(Imm) && (Imm != 0);
208 ImmLeaf<XLenVT, [{return isShiftedInt<11, 1>(Imm);}]> {
214 int64_t Imm;
215 if (MCOp.evaluateAsConstantImm(Imm))
216 return isShiftedInt<11, 1>(Imm);
240 : RVInst16CI<funct3, 0b10, (outs cls:$rd), (ins SPMem:$rs1, opnd:$imm),
241 OpcodeStr, "$rd, ${imm}(${rs1})">;
246 : RVInst16CSS<funct3, 0b10, (outs), (ins cls:$rs2, SPMem:$rs1, opnd:$imm),
247 OpcodeStr, "$rs2, ${imm}(${rs1})">;
252 : RVInst16CL<funct3, 0b00, (outs cls:$rd), (ins GPRCMem:$rs1, opnd:$imm),
253 OpcodeStr, "$rd, ${imm}(${rs1})">;
258 : RVInst16CS<funct3, 0b00, (outs), (ins cls:$rs2,GPRCMem:$rs1, opnd:$imm),
259 OpcodeStr, "$rs2, ${imm}(${rs1})">;
263 : RVInst16CB<funct3, 0b01, (outs), (ins GPRC:$rs1, simm9_lsb0:$imm),
264 OpcodeStr, "$rs1, $imm"> {
267 let Inst{12} = imm{7};
268 let Inst{11-10} = imm{3-2};
269 let Inst{6-5} = imm{6-5};
270 let Inst{4-3} = imm{1-0};
271 let Inst{2} = imm{4};
277 (ins GPRC:$rs1, uimmlog2xlennonzero:$imm),
278 OpcodeStr, "$rs1, $imm"> {
280 let Inst{12} = imm{5};
282 let Inst{6-2} = imm{4-0};
302 (ins SP:$rs1, uimm10_lsb00nonzero:$imm),
303 "c.addi4spn", "$rd, $rs1, $imm">,
306 let Inst{12-11} = imm{5-4};
307 let Inst{10-7} = imm{9-6};
308 let Inst{6} = imm{2};
309 let Inst{5} = imm{3};
315 bits<8> imm;
316 let Inst{12-10} = imm{5-3};
317 let Inst{6-5} = imm{7-6};
322 bits<7> imm;
323 let Inst{12-10} = imm{5-3};
324 let Inst{6} = imm{2};
325 let Inst{5} = imm{6};
331 bits<7> imm;
332 let Inst{12-10} = imm{5-3};
333 let Inst{6} = imm{2};
334 let Inst{5} = imm{6};
341 bits<7> imm;
342 let Inst{12-10} = imm{5-3};
343 let Inst{6} = imm{2};
344 let Inst{5} = imm{6};
350 bits<8> imm;
351 let Inst{12-10} = imm{5-3};
352 let Inst{6-5} = imm{7-6};
358 bits<8> imm;
359 let Inst{12-10} = imm{5-3};
360 let Inst{6-5} = imm{7-6};
365 bits<7> imm;
366 let Inst{12-10} = imm{5-3};
367 let Inst{6} = imm{2};
368 let Inst{5} = imm{6};
374 bits<7> imm;
375 let Inst{12-10} = imm{5-3};
376 let Inst{6} = imm{2};
377 let Inst{5} = imm{6};
384 bits<7> imm;
385 let Inst{12-10} = imm{5-3};
386 let Inst{6} = imm{2};
387 let Inst{5} = imm{6};
393 bits<8> imm;
394 let Inst{12-10} = imm{5-3};
395 let Inst{6-5} = imm{7-6};
402 let imm = 0;
407 (ins GPRNoX0:$rd, simm6nonzero:$imm),
408 "c.addi", "$rd, $imm">,
416 def PseudoC_ADDI_NOP : Pseudo<(outs GPRX0:$rd), (ins GPRX0:$rs1, immzero:$imm),
417 [], "c.addi", "$rd, $imm">;
428 (ins GPRNoX0:$rd, simm6:$imm),
429 "c.addiw", "$rd, $imm">,
435 def C_LI : RVInst16CI<0b010, 0b01, (outs GPRNoX0:$rd), (ins simm6:$imm),
436 "c.li", "$rd, $imm">,
441 (ins SP:$rd, simm10_lsb0000nonzero:$imm),
442 "c.addi16sp", "$rd, $imm">,
445 let Inst{12} = imm{9};
447 let Inst{6} = imm{4};
448 let Inst{5} = imm{6};
449 let Inst{4-3} = imm{8-7};
450 let Inst{2} = imm{5};
455 (ins c_lui_imm:$imm),
456 "c.lui", "$rd, $imm">,
465 def C_ANDI : RVInst16CB<0b100, 0b01, (outs GPRC:$rd), (ins GPRC:$rs1, simm6:$imm),
466 "c.andi", "$rs1, $imm">,
469 let Inst{12} = imm{5};
471 let Inst{6-2} = imm{4-0};
503 (ins GPRNoX0:$rd, uimmlog2xlennonzero:$imm),
504 "c.slli", "$rd, $imm">,
512 let Inst{4-2} = imm{8-6};
517 let Inst{3-2} = imm{7-6};
523 let Inst{3-2} = imm{7-6};
530 let Inst{3-2} = imm{7-6};
536 let Inst{4-2} = imm{8-6};
572 let Inst{9-7} = imm{8-6};
577 let Inst{8-7} = imm{7-6};
583 let Inst{8-7} = imm{7-6};
590 let Inst{8-7} = imm{7-6};
596 let Inst{9-7} = imm{8-6};
616 def C_NOP_HINT : RVInst16CI<0b000, 0b01, (outs), (ins simm6nonzero:$imm),
617 "c.nop", "$imm">, Sched<[WriteNop]> {
622 (ins GPRNoX0:$rd, immzero:$imm),
623 "c.addi", "$rd, $imm">,
626 let imm = 0;
630 def C_LI_HINT : RVInst16CI<0b010, 0b01, (outs GPRX0:$rd), (ins simm6:$imm),
631 "c.li", "$rd, $imm">,
638 (ins c_lui_imm:$imm),
639 "c.lui", "$rd, $imm">,
661 (ins GPRX0:$rd, uimmlog2xlennonzero:$imm),
662 "c.slli", "$rd, $imm">,
673 let imm = 0;
705 def : InstAlias<"c.addi x0, $imm", (C_NOP_HINT simm6nonzero:$imm), 0>;
860 def : CompressPat<(ADDI GPRC:$rd, SP:$rs1, uimm10_lsb00nonzero:$imm),
861 (C_ADDI4SPN GPRC:$rd, SP:$rs1, uimm10_lsb00nonzero:$imm)>;
865 def : CompressPat<(FLD FPR64C:$rd, GPRCMem:$rs1, uimm8_lsb000:$imm),
866 (C_FLD FPR64C:$rd, GPRCMem:$rs1, uimm8_lsb000:$imm)>;
870 def : CompressPat<(LW GPRC:$rd, GPRCMem:$rs1, uimm7_lsb00:$imm),
871 (C_LW GPRC:$rd, GPRCMem:$rs1, uimm7_lsb00:$imm)>;
874 def : CompressPat<(LW_INX GPRF32C:$rd, GPRCMem:$rs1, uimm7_lsb00:$imm),
875 (C_LW_INX GPRF32C:$rd, GPRCMem:$rs1, uimm7_lsb00:$imm)>;
879 def : CompressPat<(FLW FPR32C:$rd, GPRCMem:$rs1, uimm7_lsb00:$imm),
880 (C_FLW FPR32C:$rd, GPRCMem:$rs1, uimm7_lsb00:$imm)>;
884 def : CompressPat<(LD GPRC:$rd, GPRCMem:$rs1, uimm8_lsb000:$imm),
885 (C_LD GPRC:$rd, GPRCMem:$rs1, uimm8_lsb000:$imm)>;
889 def : CompressPat<(FSD FPR64C:$rs2, GPRCMem:$rs1, uimm8_lsb000:$imm),
890 (C_FSD FPR64C:$rs2, GPRCMem:$rs1, uimm8_lsb000:$imm)>;
894 def : CompressPat<(SW GPRC:$rs2, GPRCMem:$rs1, uimm7_lsb00:$imm),
895 (C_SW GPRC:$rs2, GPRCMem:$rs1, uimm7_lsb00:$imm)>;
898 def : CompressPat<(SW_INX GPRF32C:$rs2, GPRCMem:$rs1, uimm7_lsb00:$imm),
899 (C_SW_INX GPRF32C:$rs2, GPRCMem:$rs1, uimm7_lsb00:$imm)>;
903 def : CompressPat<(FSW FPR32C:$rs2, GPRCMem:$rs1, uimm7_lsb00:$imm),
904 (C_FSW FPR32C:$rs2, GPRCMem:$rs1, uimm7_lsb00:$imm)>;
908 def : CompressPat<(SD GPRC:$rs2, GPRCMem:$rs1, uimm8_lsb000:$imm),
909 (C_SD GPRC:$rs2, GPRCMem:$rs1, uimm8_lsb000:$imm)>;
915 def : CompressPat<(ADDI GPRNoX0:$rs1, GPRNoX0:$rs1, simm6nonzero:$imm),
916 (C_ADDI GPRNoX0:$rs1, simm6nonzero:$imm)>;
925 def : CompressPat<(ADDIW GPRNoX0:$rs1, GPRNoX0:$rs1, simm6:$imm),
926 (C_ADDIW GPRNoX0:$rs1, simm6:$imm)>;
930 def : CompressPat<(ADDI GPRNoX0:$rd, X0, simm6:$imm),
931 (C_LI GPRNoX0:$rd, simm6:$imm)>;
932 def : CompressPat<(ADDI X2, X2, simm10_lsb0000nonzero:$imm),
933 (C_ADDI16SP X2, simm10_lsb0000nonzero:$imm)>;
934 def : CompressPat<(LUI GPRNoX0X2:$rd, c_lui_imm:$imm),
935 (C_LUI GPRNoX0X2:$rd, c_lui_imm:$imm)>;
936 def : CompressPat<(SRLI GPRC:$rs1, GPRC:$rs1, uimmlog2xlennonzero:$imm),
937 (C_SRLI GPRC:$rs1, uimmlog2xlennonzero:$imm)>;
938 def : CompressPat<(SRAI GPRC:$rs1, GPRC:$rs1, uimmlog2xlennonzero:$imm),
939 (C_SRAI GPRC:$rs1, uimmlog2xlennonzero:$imm)>;
940 def : CompressPat<(ANDI GPRC:$rs1, GPRC:$rs1, simm6:$imm),
941 (C_ANDI GPRC:$rs1, simm6:$imm)>;
963 def : CompressPat<(ADDIW GPRNoX0:$rd, X0, simm6:$imm),
964 (C_LI GPRNoX0:$rd, simm6:$imm)>;
977 def : CompressPat<(BEQ GPRC:$rs1, X0, simm9_lsb0:$imm),
978 (C_BEQZ GPRC:$rs1, simm9_lsb0:$imm)>;
980 def : CompressPat<(BEQ X0, GPRC:$rs1, simm9_lsb0:$imm),
981 (C_BEQZ GPRC:$rs1, simm9_lsb0:$imm)>;
982 def : CompressPat<(BNE GPRC:$rs1, X0, simm9_lsb0:$imm),
983 (C_BNEZ GPRC:$rs1, simm9_lsb0:$imm)>;
985 def : CompressPat<(BNE X0, GPRC:$rs1, simm9_lsb0:$imm),
986 (C_BNEZ GPRC:$rs1, simm9_lsb0:$imm)>;
991 def : CompressPat<(SLLI GPRNoX0:$rs1, GPRNoX0:$rs1, uimmlog2xlennonzero:$imm),
992 (C_SLLI GPRNoX0:$rs1, uimmlog2xlennonzero:$imm)>;
996 def : CompressPat<(FLD FPR64:$rd, SPMem:$rs1, uimm9_lsb000:$imm),
997 (C_FLDSP FPR64:$rd, SPMem:$rs1, uimm9_lsb000:$imm)>;
1001 def : CompressPat<(LW GPRNoX0:$rd, SPMem:$rs1, uimm8_lsb00:$imm),
1002 (C_LWSP GPRNoX0:$rd, SPMem:$rs1, uimm8_lsb00:$imm)>;
1005 def : CompressPat<(LW_INX GPRF32NoX0:$rd, SPMem:$rs1, uimm8_lsb00:$imm),
1006 (C_LWSP_INX GPRF32NoX0:$rd, SPMem:$rs1, uimm8_lsb00:$imm)>;
1010 def : CompressPat<(FLW FPR32:$rd, SPMem:$rs1, uimm8_lsb00:$imm),
1011 (C_FLWSP FPR32:$rd, SPMem:$rs1, uimm8_lsb00:$imm)>;
1015 def : CompressPat<(LD GPRNoX0:$rd, SPMem:$rs1, uimm9_lsb000:$imm),
1016 (C_LDSP GPRNoX0:$rd, SPMem:$rs1, uimm9_lsb000:$imm)>;
1042 def : CompressPat<(FSD FPR64:$rs2, SPMem:$rs1, uimm9_lsb000:$imm),
1043 (C_FSDSP FPR64:$rs2, SPMem:$rs1, uimm9_lsb000:$imm)>;
1047 def : CompressPat<(SW GPR:$rs2, SPMem:$rs1, uimm8_lsb00:$imm),
1048 (C_SWSP GPR:$rs2, SPMem:$rs1, uimm8_lsb00:$imm)>;
1051 def : CompressPat<(SW_INX GPRF32:$rs2, SPMem:$rs1, uimm8_lsb00:$imm),
1052 (C_SWSP_INX GPRF32:$rs2, SPMem:$rs1, uimm8_lsb00:$imm)>;
1056 def : CompressPat<(FSW FPR32:$rs2, SPMem:$rs1, uimm8_lsb00:$imm),
1057 (C_FSWSP FPR32:$rs2, SPMem:$rs1, uimm8_lsb00:$imm)>;
1061 def : CompressPat<(SD GPR:$rs2, SPMem:$rs1, uimm9_lsb000:$imm),
1062 (C_SDSP GPR:$rs2, SPMem:$rs1, uimm9_lsb000:$imm)>;