Home
last modified time | relevance | path

Searched refs:FPR64 (Results 1 – 25 of 30) sorted by relevance

12

/freebsd/contrib/llvm-project/llvm/lib/Target/LoongArch/
H A DLoongArchFloat64InstrInfo.td20 def FADD_D : FP_ALU_3R<0x01010000, FPR64>;
21 def FSUB_D : FP_ALU_3R<0x01030000, FPR64>;
22 def FMUL_D : FP_ALU_3R<0x01050000, FPR64>;
23 def FDIV_D : FP_ALU_3R<0x01070000, FPR64>;
24 def FMADD_D : FP_ALU_4R<0x08200000, FPR64>;
25 def FMSUB_D : FP_ALU_4R<0x08600000, FPR64>;
26 def FNMADD_D : FP_ALU_4R<0x08a00000, FPR64>;
27 def FNMSUB_D : FP_ALU_4R<0x08e00000, FPR64>;
28 def FMAX_D : FP_ALU_3R<0x01090000, FPR64>;
29 def FMIN_D : FP_ALU_3R<0x010b0000, FPR64>;
[all …]
H A DLoongArchLSXInstrInfo.td1797 def : Pat<(vector_insert v2f64:$vd, FPR64:$fj, uimm1:$imm),
1798 (VINSGR2VR_D $vd, (COPY_TO_REGCLASS FPR64:$fj, GPR), uimm1:$imm)>;
1803 def : Pat<(v2f64 (scalar_to_vector FPR64:$fj)),
1804 (SUBREG_TO_REG (i64 0), FPR64:$fj, sub_64)>;
1975 def : Pat<(lsxsplatf64 FPR64:$fj),
1976 (VREPLVEI_D (SUBREG_TO_REG (i64 0), FPR64:$fj, sub_64), 0)>;
2386 def : Pat<(f64 (fceil FPR64:$fj)),
2388 (SUBREG_TO_REG (i64 0), FPR64:$fj, sub_64), 0)), sub_64))>;
2392 def : Pat<(f64 (ffloor FPR64:$fj)),
2394 (SUBREG_TO_REG (i64 0), FPR64:$fj, sub_64), 0)), sub_64))>;
[all …]
H A DLoongArchFloatInstrFormats.td19 // Some FP instructions are defined twice, for accepting FPR32 and FPR64, but
H A DLoongArchRegisterInfo.td179 def FPR64 : RegisterClass<"LoongArch", [f64], 64, (sequence "F%u_64", 0, 31)>;
H A DLoongArchLASXInstrInfo.td1599 def : Pat<(vector_insert v4f64:$vd, FPR64:$fj, uimm2:$imm),
1600 (XVINSGR2VR_D $vd, (COPY_TO_REGCLASS FPR64:$fj, GPR), uimm2:$imm)>;
1605 def : Pat<(v4f64 (scalar_to_vector FPR64:$fj)),
1606 (SUBREG_TO_REG (i64 0), FPR64:$fj, sub_64)>;
1774 def : Pat<(lasxsplatf64 FPR64:$fj),
1775 (XVREPLVE0_D (SUBREG_TO_REG (i64 0), FPR64:$fj, sub_64))>;
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVInstrInfoD.td59 def DExt : ExtInfo<"", "", [HasStdExtD], f64, FPR64, FPR32, FPR64, ?>;
74 def FLD : FPLoad_r<0b011, "fld", FPR64, WriteFLD64>;
79 def FSD : FPStore_r<0b011, "fsd", FPR64, WriteFST64>;
175 def FMV_X_D : FPUnaryOp_r<0b1110001, 0b00000, 0b000, GPR, FPR64, "fmv.x.d">,
179 def FMV_D_X : FPUnaryOp_r<0b1111001, 0b00000, 0b000, FPR64, GPR, "fmv.d.x">,
187 def : InstAlias<"fld $rd, (${rs1})", (FLD FPR64:$rd, GPR:$rs1, 0), 0>;
188 def : InstAlias<"fsd $rs2, (${rs1})", (FSD FPR64:$rs2, GPR:$rs1, 0), 0>;
190 def : InstAlias<"fmv.d $rd, $rs", (FSGNJ_D FPR64:$rd, FPR64:$rs, FPR64:$rs)>;
191 def : InstAlias<"fabs.d $rd, $rs", (FSGNJX_D FPR64:$rd, FPR64:$rs, FPR64:$rs)>;
192 def : InstAlias<"fneg.d $rd, $rs", (FSGNJN_D FPR64:$rd, FPR64:$rs, FPR64:$rs)>;
[all …]
H A DRISCVInstrInfoZfa.td118 def FLI_D : FPFLI_r<0b1111001, 0b00001, 0b000, FPR64, "fli.d">,
122 def FMINM_D: FPALU_rr<0b0010101, 0b010, "fminm.d", FPR64, Commutable=1>;
123 def FMAXM_D: FPALU_rr<0b0010101, 0b011, "fmaxm.d", FPR64, Commutable=1>;
126 def FROUND_D : FPUnaryOp_r_frm<0b0100001, 0b00100, FPR64, FPR64, "fround.d">,
128 def FROUNDNX_D : FPUnaryOp_r_frm<0b0100001, 0b00101, FPR64, FPR64, "froundnx.d">,
133 : FPUnaryOp_r_rtz<0b1100001, 0b01000, GPR, FPR64, "fcvtmod.w.d">,
137 def FLTQ_D : FPCmp_rr<0b1010001, 0b101, "fltq.d", FPR64>;
138 def FLEQ_D : FPCmp_rr<0b1010001, 0b100, "fleq.d", FPR64>;
144 def FMVH_X_D : FPUnaryOp_r<0b1110001, 0b00001, 0b000, GPR, FPR64, "fmvh.x.d">,
146 def FMVP_D_X : FPBinaryOp_rr<0b1011001, 0b000, FPR64, GPR, "fmvp.d.x">,
[all …]
H A DRISCVInstrInfoZfbfmin.td67 def : Pat<(bf16 (fpround FPR64:$rs1)),
68 (FCVT_BF16_S (FCVT_S_D FPR64:$rs1, FRM_DYN), FRM_DYN)>;
H A DRISCVScheduleXSf.td29 foreach f = ["FPR16", "FPR32", "FPR64"] in {
53 foreach f = ["FPR16", "FPR32", "FPR64"] in {
H A DRISCVInstrInfoC.td508 def C_FLDSP : CStackLoad<0b001, "c.fldsp", FPR64, uimm9_lsb000>,
568 def C_FSDSP : CStackStore<0b101, "c.fsdsp", FPR64, uimm9_lsb000>,
738 def : InstAlias<"c.fldsp $rd, (${rs1})", (C_FLDSP FPR64:$rd, SPMem:$rs1, 0)>;
739 def : InstAlias<"c.fsdsp $rs2, (${rs1})", (C_FSDSP FPR64:$rs2, SPMem:$rs1, 0)>;
988 def : CompressPat<(FLD FPR64:$rd, SPMem:$rs1, uimm9_lsb000:$imm),
989 (C_FLDSP FPR64:$rd, SPMem:$rs1, uimm9_lsb000:$imm)>;
1034 def : CompressPat<(FSD FPR64:$rs2, SPMem:$rs1, uimm9_lsb000:$imm),
1035 (C_FSDSP FPR64:$rs2, SPMem:$rs1, uimm9_lsb000:$imm)>;
H A DRISCVInstrInfoZfh.td60 ?, ?, FPR32, FPR64, FPR16>;
62 ?, ?, FPR32, FPR64, FPR16>;
597 def : Pat<(f16 (any_fpround FPR64:$rs1)), (FCVT_H_D FPR64:$rs1, FRM_DYN)>;
601 def : Pat<(f16 (fcopysign FPR16:$rs1, FPR64:$rs2)),
603 def : Pat<(fcopysign FPR64:$rs1, (f16 FPR16:$rs2)), (FSGNJ_D $rs1, (FCVT_D_H $rs2, FRM_RNE))>;
H A DRISCVInstrInfoXTHead.td457 def TH_FLRD : THLoadIndexed<FPR64, 0b01100, "th.flrd">,
459 def TH_FSRD : THStoreIndexed<FPR64, 0b01100, "th.fsrd">,
471 def TH_FLURD : THLoadIndexed<FPR64, 0b01110, "th.flurd">,
473 def TH_FSURD : THStoreIndexed<FPR64, 0b01110, "th.fsurd">,
826 defm : StIdxPat<store, TH_FSRD, FPR64, f64>;
836 defm : StZextIdxPat<store, TH_FSURD, FPR64, f64>;
H A DRISCVInstrInfoQ.td18 def QExt : ExtInfo<"", "", [HasStdExtQ], f128, FPR128, FPR32, FPR64, ?>;
H A DRISCVInstrInfoXSf.td735 !eq(Sew, 64) : FPR64);
739 !eq(Scalar, f64) : "FPR64");
H A DRISCVSchedSiFive7.td1043 foreach f = ["FPR16", "FPR32", "FPR64"] in {
1059 foreach f = ["FPR16", "FPR32", "FPR64"] in {
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64InstrInfo.td2293 def FJCVTZS : BaseFPToIntegerUnscaled<0b01, 0b11, 0b110, FPR64, GPR32,
2296 (int_aarch64_fjcvtzs FPR64:$Rn))]> {
2584 (COPY_TO_REGCLASS (MOVi64imm (bitcast_fpimm_to_i64 f64:$in)), FPR64)>;
3708 // Match all load 64 bits width whose type is compatible with FPR64
3831 // Match all load 64 bits width whose type is compatible with FPR64
4028 // Match all load 64 bits width whose type is compatible with FPR64
4508 // Match all store 64 bits width whose type is compatible with FPR64
4511 defm : VecROStorePat<ro64, v2i32, FPR64, STRDroW, STRDroX>;
4512 defm : VecROStorePat<ro64, v2f32, FPR64, STRDroW, STRDroX>;
4513 defm : VecROStorePat<ro64, v4i16, FPR64, STRDroW, STRDroX>;
[all …]
H A DAArch64InstrFormats.td5274 def UWDr : BaseFPToIntegerUnscaled<0b01, rmode, opcode, FPR64, GPR32, asm,
5275 [(set GPR32:$Rd, (OpN (f64 FPR64:$Rn)))]> {
5280 def UXDr : BaseFPToIntegerUnscaled<0b01, rmode, opcode, FPR64, GPR64, asm,
5281 [(set GPR64:$Rd, (OpN (f64 FPR64:$Rn)))]> {
5288 def SDr : BaseFPToIntegerUnscaled<0b01, rmode, opcode, FPR64, FPR32, asm,
5300 def DHr : BaseFPToIntegerUnscaled<0b11, rmode, opcode, FPR16, FPR64, asm,
5306 def DSr : BaseFPToIntegerUnscaled<0b00, rmode, opcode, FPR32, FPR64, asm,
5351 def SWDri : BaseFPToInteger<0b01, rmode, opcode, FPR64, GPR32,
5353 [(set GPR32:$Rd, (OpN (fmul FPR64:$Rn,
5360 def SXDri : BaseFPToInteger<0b01, rmode, opcode, FPR64, GPR64,
[all …]
H A DAArch64RegisterInfo.td515 def FPR64 : RegisterClass<"AArch64", [f64, i64, v2f32, v1f64, v8i8, v4i16, v2i32,
523 64, (trunc FPR64, 16)>;
554 def DSeqPairs : RegisterTuples<[dsub0, dsub1], [(rotl FPR64, 0), (rotl FPR64, 1)]>;
556 [(rotl FPR64, 0), (rotl FPR64, 1),
557 (rotl FPR64, 2)]>;
559 [(rotl FPR64, 0), (rotl FPR64, 1),
560 (rotl FPR64, 2), (rotl FPR64, 3)]>;
607 def V64 : RegisterOperand<FPR64, "printVRegOperand"> {
760 defm VecListOne : VectorList<1, FPR64, FPR128>;
788 def FPR64Op : RegisterOperand<FPR64, "printOperand"> {
[all …]
H A DAArch64InstrGISel.td287 def : Pat<(f32 (fadd (vector_extract (v2f32 FPR64:$Rn), (i64 0)),
288 (vector_extract (v2f32 FPR64:$Rn), (i64 1)))),
289 (f32 (FADDPv2i32p (v2f32 FPR64:$Rn)))>;
H A DAArch64FrameLowering.cpp3186 enum RegType { GPR, FPR64, FPR128, PPR, ZPR, VG } Type; enumerator
3276 RPI.Type = RegPairInfo::FPR64; in computeCalleeSaveRegisterPairs()
3314 case RegPairInfo::FPR64: in computeCalleeSaveRegisterPairs()
3522 case RegPairInfo::FPR64: in spillCalleeSavedRegisters()
3752 case RegPairInfo::FPR64: in restoreCalleeSavedRegisters()
H A DAArch64SVEInstrInfo.td943 def : Pat<(nxv2f64 (splat_vector (f64 FPR64:$src))),
944 (DUP_ZZI_D (INSERT_SUBREG (IMPLICIT_DEF), FPR64:$src, dsub), 0)>;
3321 def : Pat<(nxv2i64 (vector_insert (nxv2i64 (undef)), (i64 FPR64:$src), 0)),
3322 (INSERT_SUBREG (nxv2i64 (IMPLICIT_DEF)), FPR64:$src, dsub)>;
3340 def : Pat<(nxv2f64 (vector_insert (nxv2f64 (undef)), (f64 FPR64:$src), 0)),
3341 (INSERT_SUBREG (nxv2f64 (IMPLICIT_DEF)), FPR64:$src, dsub)>;
3359 def : Pat<(nxv2f64 (vector_insert nxv2f64:$vec, (f64 FPR64:$src), 0)),
3360 (SEL_ZPZZ_D (PTRUE_D 1), (INSERT_SUBREG (IMPLICIT_DEF), FPR64:$src, dsub), ZPR:$vec)>;
3437 def : Pat<(nxv2f64 (vector_insert nxv2f64:$vec, (f64 FPR64:$src), GPR64:$index)),
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZRegisterInfo.td221 class FPR64<bits<16> num, string n, FPR32 high>
228 class FPR128<bits<16> num, string n, FPR64 low, FPR64 high>
239 def F#I#D : FPR64<I, "f"#I, !cast<FPR32>("F"#I#"S")>,
245 def F#I#D : FPR64<I, "v"#I, !cast<FPR32>("F"#I#"S")>,
250 def F#I#Q : FPR128<I, "f"#I, !cast<FPR64>("F"#!add(I, 2)#"D"),
251 !cast<FPR64>("F"#I#"D")>;
270 // A full 128-bit vector register, with an FPR64 as its high part.
271 class VR128<bits<16> num, string n, FPR64 high>
279 def V#I : VR128<I, "v"#I, !cast<FPR64>("F"#I#"D")>,
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/
H A DAArch64MCTargetDesc.cpp323 const auto &FPR64 = AArch64MCRegisterClasses[AArch64::FPR64RegClassID]; in isFpOrNEON() local
332 return FPR128.contains(Reg) || FPR64.contains(Reg) || FPR32.contains(Reg) || in isFpOrNEON()
/freebsd/contrib/llvm-project/llvm/lib/Target/CSKY/
H A DCSKYRegisterInfo.td196 def FPR64 : RegisterClass<"CSKY", [f64], 32,
H A DCSKYInstrInfoF2.td26 let MIOperandInfo = (ops FPR64, uimm5);
30 def FPR64Op : RegisterOperand<FPR64, "printFPR">;

12