Lines Matching refs:FR32
334 (COPY_TO_REGCLASS (v4f32 VR128:$src), FR32)>;
373 def : Pat<(v4f32 (scalar_to_vector FR32:$src)),
374 (COPY_TO_REGCLASS FR32:$src, VR128)>;
375 def : Pat<(v8f32 (scalar_to_vector FR32:$src)),
376 (COPY_TO_REGCLASS FR32:$src, VR128)>;
455 def FsFLD0SS : I<0, Pseudo, (outs FR32:$dst), (ins), "",
456 [(set FR32:$dst, fp32imm0)]>, Requires<[HasSSE1]>;
505 // Move Instructions. Register-to-register movss/movsd is not used for FR32/64
568 defm MOVSS : sse12_move<FR32, X86Movss, v4f32, f32mem, "movss",
574 defm MOVSS : sse12_move_rm<FR32, f32mem, loadf32, "movss",
622 (VMOVSSmr addr:$dst, (COPY_TO_REGCLASS (v4f32 VR128:$src), FR32))>;
627 (COPY_TO_REGCLASS (v4i32 VR128:$src2), FR32))>;
630 (COPY_TO_REGCLASS (v4f32 VR128:$src2), FR32))>;
684 def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector FR32:$src)))),
685 (MOVSSrr (v4f32 (V_SET0)), FR32:$src)>;
687 (MOVSSrr (v4f32 (V_SET0)), (COPY_TO_REGCLASS VR128:$src, FR32))>;
689 (MOVSSrr (v4i32 (V_SET0)), (COPY_TO_REGCLASS VR128:$src, FR32))>;
705 (MOVSSmr addr:$dst, (COPY_TO_REGCLASS VR128:$src, FR32))>;
709 (MOVSSrr VR128:$src1, (COPY_TO_REGCLASS VR128:$src2, FR32))>;
711 (MOVSSrr VR128:$src1, (COPY_TO_REGCLASS VR128:$src2, FR32))>;
1080 // Alias instruction to load FR32 or FR64 from f128mem using movaps. Upper
1084 def FsVMOVAPSrm : VPSI<0x28, MRMSrcMem, (outs FR32:$dst), (ins f128mem:$src),
1086 [(set FR32:$dst, (alignedloadfsf32 addr:$src))],
1092 def FsMOVAPSrm : PSI<0x28, MRMSrcMem, (outs FR32:$dst), (ins f128mem:$src),
1094 [(set FR32:$dst, (alignedloadfsf32 addr:$src))],
1481 defm VCVTTSS2SI : sse12_cvt_s<0x2C, FR32, GR32, fp_to_sint, f32mem, loadf32,
1485 defm VCVTTSS2SI64 : sse12_cvt_s<0x2C, FR32, GR64, fp_to_sint, f32mem, loadf32,
1499 (VCVTTSS2SIrr GR32:$dst, FR32:$src), 0>;
1507 (VCVTTSS2SI64rr GR64:$dst, FR32:$src), 0>;
1519 defm VCVTSI2SS : sse12_vcvt_avx<0x2A, GR32, FR32, i32mem, "cvtsi2ss{l}">,
1521 defm VCVTSI2SS64 : sse12_vcvt_avx<0x2A, GR64, FR32, i64mem, "cvtsi2ss{q}">,
1553 defm CVTTSS2SI : sse12_cvt_s<0x2C, FR32, GR32, fp_to_sint, f32mem, loadf32,
1556 defm CVTTSS2SI64 : sse12_cvt_s<0x2C, FR32, GR64, fp_to_sint, f32mem, loadf32,
1565 defm CVTSI2SS : sse12_cvt_s<0x2A, GR32, FR32, sint_to_fp, i32mem, loadi32,
1568 defm CVTSI2SS64 : sse12_cvt_s<0x2A, GR64, FR32, sint_to_fp, i64mem, loadi64,
1579 (CVTTSS2SIrr GR32:$dst, FR32:$src), 0>;
1587 (CVTTSS2SI64rr GR64:$dst, FR32:$src), 0>;
1787 def VCVTSD2SSrr : VSDI<0x5A, MRMSrcReg, (outs FR32:$dst),
1793 def VCVTSD2SSrm : I<0x5A, MRMSrcMem, (outs FR32:$dst),
1804 def CVTSD2SSrr : SDI<0x5A, MRMSrcReg, (outs FR32:$dst), (ins FR64:$src),
1806 [(set FR32:$dst, (fround FR64:$src))],
1808 def CVTSD2SSrm : I<0x5A, MRMSrcMem, (outs FR32:$dst), (ins f64mem:$src),
1810 [(set FR32:$dst, (fround (loadf64 addr:$src)))],
1853 (ins FR32:$src1, FR32:$src2),
1860 (ins FR32:$src1, f32mem:$src2),
1867 def : Pat<(f64 (fextend FR32:$src)),
1868 (VCVTSS2SDrr FR32:$src, FR32:$src)>, Requires<[UseAVX]>;
1879 def CVTSS2SDrr : I<0x5A, MRMSrcReg, (outs FR64:$dst), (ins FR32:$src),
1881 [(set FR64:$dst, (fextend FR32:$src))],
2318 defm VCMPSS : sse12_cmp_scalar<FR32, f32mem, AVXCC, X86cmps, f32, loadf32,
2329 defm CMPSS : sse12_cmp_scalar<FR32, f32mem, SSECC, X86cmps, f32, loadf32,
2396 defm VUCOMISS : sse12_ord_cmp<0x2E, FR32, X86cmp, f32, f32mem, loadf32,
2401 defm VCOMISS : sse12_ord_cmp<0x2F, FR32, undef, f32, f32mem, loadf32,
2418 defm UCOMISS : sse12_ord_cmp<0x2E, FR32, X86cmp, f32, f32mem, loadf32,
2424 defm COMISS : sse12_ord_cmp<0x2F, FR32, undef, f32, f32mem, loadf32,
2802 FR32, f32, f128mem, loadf32_128, SSEPackedSingle, itins, 0>,
2810 defm PS : sse12_fp_packed<opc, !strconcat(OpcodeStr, "ps"), OpNode, FR32,
2996 OpNode, FR32, f32mem, SSEPackedSingle, itins.s, 0>,
3004 OpNode, FR32, f32mem, SSEPackedSingle,
3107 FR32:$src))))),
3109 (COPY_TO_REGCLASS FR32:$src, VR128))>;
3122 FR32:$src))), (i8 1))),
3124 (COPY_TO_REGCLASS FR32:$src, VR128))>;
3139 FR32:$src))), (i8 1))),
3141 (COPY_TO_REGCLASS FR32:$src, VR128))>;
3462 defm SS : sse_fp_unop_s<opc, OpcodeStr##ss, FR32, v4f32, f32, f32mem,
3466 defm V#NAME#SS : avx_fp_unop_s<opc, "v"#OpcodeStr##ss, FR32, v4f32, f32,
4694 def VMOVDI2SSrr : VS2I<0x6E, MRMSrcReg, (outs FR32:$dst), (ins GR32:$src),
4696 [(set FR32:$dst, (bitconvert GR32:$src))],
4699 def VMOVDI2SSrm : VS2I<0x6E, MRMSrcMem, (outs FR32:$dst), (ins i32mem:$src),
4701 [(set FR32:$dst, (bitconvert (loadi32 addr:$src)))],
4704 def MOVDI2SSrr : S2I<0x6E, MRMSrcReg, (outs FR32:$dst), (ins GR32:$src),
4706 [(set FR32:$dst, (bitconvert GR32:$src))],
4709 def MOVDI2SSrm : S2I<0x6E, MRMSrcMem, (outs FR32:$dst), (ins i32mem:$src),
4711 [(set FR32:$dst, (bitconvert (loadi32 addr:$src)))],
4816 def VMOVSS2DIrr : VS2I<0x7E, MRMDestReg, (outs GR32:$dst), (ins FR32:$src),
4818 [(set GR32:$dst, (bitconvert FR32:$src))],
4820 def VMOVSS2DImr : VS2I<0x7E, MRMDestMem, (outs), (ins i32mem:$dst, FR32:$src),
4822 [(store (i32 (bitconvert FR32:$src)), addr:$dst)],
4824 def MOVSS2DIrr : S2I<0x7E, MRMDestReg, (outs GR32:$dst), (ins FR32:$src),
4826 [(set GR32:$dst, (bitconvert FR32:$src))],
4828 def MOVSS2DImr : S2I<0x7E, MRMDestMem, (outs), (ins i32mem:$dst, FR32:$src),
4830 [(store (i32 (bitconvert FR32:$src)), addr:$dst)],
6382 (outs FR32:$dst), (ins FR32:$src1, FR32:$src2, i32u8imm:$src3),
6468 def : Pat<(ffloor FR32:$src),
6469 (VROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0x9))>;
6472 def : Pat<(f32 (fnearbyint FR32:$src)),
6473 (VROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0xC))>;
6476 def : Pat<(f32 (fceil FR32:$src)),
6477 (VROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0xA))>;
6480 def : Pat<(f32 (frint FR32:$src)),
6481 (VROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0x4))>;
6484 def : Pat<(f32 (ftrunc FR32:$src)),
6485 (VROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0xB))>;
6544 def : Pat<(ffloor FR32:$src),
6545 (ROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0x9))>;
6548 def : Pat<(f32 (fnearbyint FR32:$src)),
6549 (ROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0xC))>;
6552 def : Pat<(f32 (fceil FR32:$src)),
6553 (ROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0xA))>;
6556 def : Pat<(f32 (frint FR32:$src)),
6557 (ROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0x4))>;
6560 def : Pat<(f32 (ftrunc FR32:$src)),
6561 (ROUNDSSr (f32 (IMPLICIT_DEF)), FR32:$src, (i32 0xB))>;
7109 def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector FR32:$src)))),
7110 (VMOVSSrr (v4f32 (V_SET0)), FR32:$src)>;
7128 (v4f32 (scalar_to_vector FR32:$src)), (iPTR 0)))),
7130 (v4f32 (VMOVSSrr (v4f32 (V_SET0)), FR32:$src)),
7766 def : Pat<(nontemporalstore FR32:$src, addr:$dst),
7767 (MOVNTSS addr:$dst, (COPY_TO_REGCLASS FR32:$src, VR128))>;
8233 def : Pat<(fp_to_f16 FR32:$src),
8235 (COPY_TO_REGCLASS FR32:$src, VR128), 4)), sub_16bit))>;
8239 (COPY_TO_REGCLASS (MOVSX32rr16 GR16:$src), VR128)), FR32)) >;
8241 def : Pat<(f16_to_fp (i16 (fp_to_f16 FR32:$src))),
8243 (VCVTPS2PHrr (COPY_TO_REGCLASS FR32:$src, VR128), 4)), FR32)) >;
8350 def : Pat<(v4f32 (X86VBroadcast FR32:$src)),
8351 (VBROADCASTSSrr (COPY_TO_REGCLASS FR32:$src, VR128))>;
8352 def : Pat<(v8f32 (X86VBroadcast FR32:$src)),
8353 (VBROADCASTSSYrr (COPY_TO_REGCLASS FR32:$src, VR128))>;
8413 def : Pat<(v4f32 (X86VBroadcast FR32:$src)),
8414 (VPSHUFDri (COPY_TO_REGCLASS FR32:$src, VR128), 0)>;
8415 def : Pat<(v8f32 (X86VBroadcast FR32:$src)),
8417 (VPSHUFDri (COPY_TO_REGCLASS FR32:$src, VR128), 0), sub_xmm),
8418 (VPSHUFDri (COPY_TO_REGCLASS FR32:$src, VR128), 0), 1)>;