Lines Matching refs:OpNode

632 multiclass avx512_fp_broadcast<bits<8> opc, SDNode OpNode, RegisterClass SrcRC,
636 "$src", "$src", (_.VT (OpNode (svt SrcRC:$src)))>,
643 (_.VT (OpNode (_.ScalarLdFrag addr:$src)))>,
648 multiclass avx512_fp_broadcast_vl<bits<8> opc, SDNode OpNode,
650 defm Z : avx512_fp_broadcast<opc, OpNode, VR128X, _.info128.VT, _.info512>,
654 defm Z256 : avx512_fp_broadcast<opc, OpNode, VR128X, _.info128.VT, _.info256>,
679 multiclass avx512_broadcast_pat<string InstName, SDNode OpNode,
682 def : Pat<(_.VT (OpNode (_.EltVT SrcRC_s:$src))),
688 (OpNode (_.EltVT SrcRC_s:$src)), _.RC:$src0)),
693 (OpNode (_.EltVT SrcRC_s:$src)), _.ImmAllZerosV)),
900 multiclass avx512_perm_imm<bits<8> opc, string OpcodeStr, SDNode OpNode,
908 (_.VT (OpNode _.RC:$src1, (i8 imm:$src2))))]>,
915 (_.VT (OpNode (_.LdFrag addr:$src1),
993 SDNode OpNode, ValueType OpVT, RegisterClass KRC> {
1000 (OpVT (OpNode RC:$src1, RC:$src2, RC:$src3)))]>,
1009 (OpNode RC:$src1, RC:$src2,
1021 (OpNode RC:$src1, RC:$src2,
1032 (OpVT (OpNode RC:$src1, RC:$src2,
1042 (OpNode RC:$src1, RC:$src2,
1055 (OpNode RC:$src1, RC:$src2,
1077 SDNode OpNode, ValueType OpVT, RegisterClass KRC,
1079 avx512_perm_3src<opc, "vpermt2"##Suffix, RC, mem_frag, x86memop, OpNode,
1220 SDNode OpNode, ValueType VT,
1226 [(set VK1:$dst, (OpNode (VT RC:$src1), RC:$src2, imm:$cc))],
1232 [(set VK1:$dst, (OpNode (VT RC:$src1),
1256 multiclass avx512_icmp_packed<bits<8> opc, string OpcodeStr, SDNode OpNode,
1261 [(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2)))],
1267 [(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1),
1275 (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2))))],
1283 (OpNode (_.VT _.RC:$src1),
1289 multiclass avx512_icmp_packed_rmb<bits<8> opc, string OpcodeStr, SDNode OpNode,
1291 avx512_icmp_packed<opc, OpcodeStr, OpNode, _> {
1297 [(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1),
1307 (OpNode (_.VT _.RC:$src1),
1314 multiclass avx512_icmp_packed_vl<bits<8> opc, string OpcodeStr, SDNode OpNode,
1317 defm Z : avx512_icmp_packed<opc, OpcodeStr, OpNode, VTInfo.info512>,
1321 defm Z256 : avx512_icmp_packed<opc, OpcodeStr, OpNode, VTInfo.info256>,
1323 defm Z128 : avx512_icmp_packed<opc, OpcodeStr, OpNode, VTInfo.info128>,
1329 SDNode OpNode, AVX512VLVectorVTInfo VTInfo,
1332 defm Z : avx512_icmp_packed_rmb<opc, OpcodeStr, OpNode, VTInfo.info512>,
1336 defm Z256 : avx512_icmp_packed_rmb<opc, OpcodeStr, OpNode, VTInfo.info256>,
1338 defm Z128 : avx512_icmp_packed_rmb<opc, OpcodeStr, OpNode, VTInfo.info128>,
1385 multiclass avx512_icmp_cc<bits<8> opc, string Suffix, SDNode OpNode,
1391 [(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
1399 [(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1),
1410 (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
1421 (OpNode (_.VT _.RC:$src1),
1457 multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, SDNode OpNode,
1459 avx512_icmp_cc<opc, Suffix, OpNode, _> {
1466 [(set _.KRC:$dst, (OpNode (_.VT _.RC:$src1),
1477 (OpNode (_.VT _.RC:$src1),
1501 multiclass avx512_icmp_cc_vl<bits<8> opc, string Suffix, SDNode OpNode,
1504 defm Z : avx512_icmp_cc<opc, Suffix, OpNode, VTInfo.info512>, EVEX_V512;
1507 defm Z256 : avx512_icmp_cc<opc, Suffix, OpNode, VTInfo.info256>, EVEX_V256;
1508 defm Z128 : avx512_icmp_cc<opc, Suffix, OpNode, VTInfo.info128>, EVEX_V128;
1512 multiclass avx512_icmp_cc_rmb_vl<bits<8> opc, string Suffix, SDNode OpNode,
1515 defm Z : avx512_icmp_cc_rmb<opc, Suffix, OpNode, VTInfo.info512>,
1519 defm Z256 : avx512_icmp_cc_rmb<opc, Suffix, OpNode, VTInfo.info256>,
1521 defm Z128 : avx512_icmp_cc_rmb<opc, Suffix, OpNode, VTInfo.info128>,
1817 RegisterClass KRC, SDPatternOperator OpNode,
1822 [(set KRC:$dst, (OpNode KRC:$src))]>;
1826 SDPatternOperator OpNode> {
1827 defm B : avx512_mask_unop<opc, !strconcat(OpcodeStr, "b"), VK8, OpNode,
1829 defm W : avx512_mask_unop<opc, !strconcat(OpcodeStr, "w"), VK16, OpNode,
1831 defm D : avx512_mask_unop<opc, !strconcat(OpcodeStr, "d"), VK32, OpNode,
1833 defm Q : avx512_mask_unop<opc, !strconcat(OpcodeStr, "q"), VK64, OpNode,
1870 RegisterClass KRC, SDPatternOperator OpNode,
1876 [(set KRC:$dst, (OpNode KRC:$src1, KRC:$src2))]>;
1880 SDPatternOperator OpNode> {
1881 defm B : avx512_mask_binop<opc, !strconcat(OpcodeStr, "b"), VK8, OpNode,
1883 defm W : avx512_mask_binop<opc, !strconcat(OpcodeStr, "w"), VK16, OpNode,
1885 defm D : avx512_mask_binop<opc, !strconcat(OpcodeStr, "d"), VK32, OpNode,
1887 defm Q : avx512_mask_binop<opc, !strconcat(OpcodeStr, "q"), VK64, OpNode,
1931 multiclass avx512_binop_pat<SDPatternOperator OpNode, Instruction Inst> {
1933 def : Pat<(OpNode VK8:$src1, VK8:$src2),
1977 SDNode OpNode> {
1981 [(set EFLAGS, (OpNode KRC:$src1, KRC:$src2))]>;
1984 multiclass avx512_mask_testop_w<bits<8> opc, string OpcodeStr, SDNode OpNode> {
1985 defm W : avx512_mask_testop<opc, !strconcat(OpcodeStr, "w"), VK16, OpNode>,
1988 defm B : avx512_mask_testop<opc, !strconcat(OpcodeStr, "b"), VK8, OpNode>,
1991 defm Q : avx512_mask_testop<opc, !strconcat(OpcodeStr, "q"), VK64, OpNode>,
1993 defm D : avx512_mask_testop<opc, !strconcat(OpcodeStr, "d"), VK32, OpNode>,
2002 SDNode OpNode> {
2007 [(set KRC:$dst, (OpNode KRC:$src, (i8 imm:$imm)))]>;
2011 SDNode OpNode> {
2012 defm W : avx512_mask_shiftop<opc1, !strconcat(OpcodeStr, "w"), VK16, OpNode>,
2015 defm B : avx512_mask_shiftop<opc1, !strconcat(OpcodeStr, "b"), VK8, OpNode>,
2018 defm Q : avx512_mask_shiftop<opc2, !strconcat(OpcodeStr, "q"), VK64, OpNode>,
2021 defm D : avx512_mask_shiftop<opc2, !strconcat(OpcodeStr, "d"), VK32, OpNode>,
2510 SDNode OpNode, ValueType vt,
2515 [(set VR128X:$dst, (vt (OpNode VR128X:$src1,
2849 multiclass avx512_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
2855 (_.VT (OpNode _.RC:$src1, _.RC:$src2)),
2863 (_.VT (OpNode _.RC:$src1,
2869 multiclass avx512_binop_rmb<bits<8> opc, string OpcodeStr, SDNode OpNode,
2872 avx512_binop_rm<opc, OpcodeStr, OpNode, _, itins, IsCommutable> {
2878 (_.VT (OpNode _.RC:$src1,
2885 multiclass avx512_binop_rm_vl<bits<8> opc, string OpcodeStr, SDNode OpNode,
2889 defm Z : avx512_binop_rm<opc, OpcodeStr, OpNode, VTInfo.info512, itins,
2893 defm Z256 : avx512_binop_rm<opc, OpcodeStr, OpNode, VTInfo.info256, itins,
2895 defm Z128 : avx512_binop_rm<opc, OpcodeStr, OpNode, VTInfo.info128, itins,
2900 multiclass avx512_binop_rmb_vl<bits<8> opc, string OpcodeStr, SDNode OpNode,
2904 defm Z : avx512_binop_rmb<opc, OpcodeStr, OpNode, VTInfo.info512, itins,
2908 defm Z256 : avx512_binop_rmb<opc, OpcodeStr, OpNode, VTInfo.info256, itins,
2910 defm Z128 : avx512_binop_rmb<opc, OpcodeStr, OpNode, VTInfo.info128, itins,
2915 multiclass avx512_binop_rm_vl_q<bits<8> opc, string OpcodeStr, SDNode OpNode,
2918 defm NAME : avx512_binop_rmb_vl<opc, OpcodeStr, OpNode, avx512vl_i64_info,
2923 multiclass avx512_binop_rm_vl_d<bits<8> opc, string OpcodeStr, SDNode OpNode,
2926 defm NAME : avx512_binop_rmb_vl<opc, OpcodeStr, OpNode, avx512vl_i32_info,
2930 multiclass avx512_binop_rm_vl_w<bits<8> opc, string OpcodeStr, SDNode OpNode,
2933 defm NAME : avx512_binop_rm_vl<opc, OpcodeStr, OpNode, avx512vl_i16_info,
2937 multiclass avx512_binop_rm_vl_b<bits<8> opc, string OpcodeStr, SDNode OpNode,
2940 defm NAME : avx512_binop_rm_vl<opc, OpcodeStr, OpNode, avx512vl_i8_info,
2945 SDNode OpNode, OpndItins itins, Predicate prd,
2947 defm Q : avx512_binop_rm_vl_q<opc_q, OpcodeStr, OpNode, itins, prd,
2950 defm D : avx512_binop_rm_vl_d<opc_d, OpcodeStr, OpNode, itins, prd,
2955 SDNode OpNode, OpndItins itins, Predicate prd,
2957 defm W : avx512_binop_rm_vl_w<opc_w, OpcodeStr, OpNode, itins, prd,
2960 defm B : avx512_binop_rm_vl_b<opc_b, OpcodeStr, OpNode, itins, prd,
2966 string OpcodeStr, SDNode OpNode,
2968 defm NAME : avx512_binop_rm_vl_dq<opc_d, opc_q, OpcodeStr, OpNode,
2970 avx512_binop_rm_vl_bw<opc_b, opc_w, OpcodeStr, OpNode,
2975 SDNode OpNode,X86VectorVTInfo _Src,
2980 (_Dst.VT (OpNode
2989 (_Dst.VT (OpNode (_Src.VT _Src.RC:$src1),
2999 (_Dst.VT (OpNode (_Src.VT _Src.RC:$src1), (bc_v16i32
3082 multiclass avx512_unpack_fp<bits<8> opc, SDNode OpNode, ValueType vt,
3089 (vt (OpNode RC:$src1, RC:$src2)))],
3094 (vt (OpNode RC:$src1,
3112 multiclass avx512_unpack_int<bits<8> opc, string OpcodeStr, SDNode OpNode,
3118 [(set RC:$dst, (OpVT (OpNode (OpVT RC:$src1), (OpVT RC:$src2))))],
3123 [(set RC:$dst, (OpVT (OpNode (OpVT RC:$src1),
3144 SDNode OpNode, PatFrag mem_frag,
3151 (OpVT (OpNode RC:$src1, (i8 imm:$src2))))]>,
3158 (OpVT (OpNode (mem_frag addr:$src1),
3182 SDNode OpNode, SDNode VecNode, OpndItins itins,
3204 [(set _.FRC:$dst, (OpNode _.FRC:$src1, _.FRC:$src2))],
3209 [(set _.FRC:$dst, (OpNode _.FRC:$src1,
3234 multiclass avx512_binop_s_round<bits<8> opc, string OpcodeStr, SDNode OpNode,
3237 defm SSZ : avx512_fp_scalar<opc, OpcodeStr#"ss", f32x_info, OpNode, VecNode,
3242 defm SDZ : avx512_fp_scalar<opc, OpcodeStr#"sd", f64x_info, OpNode, VecNode,
3249 multiclass avx512_binop_s_sae<bits<8> opc, string OpcodeStr, SDNode OpNode,
3252 defm SSZ : avx512_fp_scalar<opc, OpcodeStr#"ss", f32x_info, OpNode, VecNode,
3257 defm SDZ : avx512_fp_scalar<opc, OpcodeStr#"sd", f64x_info, OpNode, VecNode,
3270 multiclass avx512_fp_packed<bits<8> opc, string OpcodeStr, SDNode OpNode,
3275 (_.VT (OpNode _.RC:$src1, _.RC:$src2))>, EVEX_4V;
3280 (OpNode _.RC:$src1, (_.LdFrag addr:$src2))>, EVEX_4V;
3285 (OpNode _.RC:$src1, (_.VT (X86VBroadcast
3300 multiclass avx512_fp_binop_p<bits<8> opc, string OpcodeStr, SDNode OpNode,
3302 defm PSZ : avx512_fp_packed<opc, OpcodeStr, OpNode, v16f32_info,
3305 defm PDZ : avx512_fp_packed<opc, OpcodeStr, OpNode, v8f64_info,
3311 defm PSZ128 : avx512_fp_packed<opc, OpcodeStr, OpNode, v4f32x_info,
3314 defm PSZ256 : avx512_fp_packed<opc, OpcodeStr, OpNode, v8f32x_info,
3317 defm PDZ128 : avx512_fp_packed<opc, OpcodeStr, OpNode, v2f64x_info,
3320 defm PDZ256 : avx512_fp_packed<opc, OpcodeStr, OpNode, v4f64x_info,
3369 SDNode OpNode, ValueType vt> {
3373 [(set KRC:$dst, (OpNode (vt RC:$src1), (vt RC:$src2)))],
3378 [(set KRC:$dst, (OpNode (vt RC:$src1),
3410 string OpcodeStr, SDNode OpNode, X86VectorVTInfo _> {
3414 (_.VT (OpNode _.RC:$src1, (i8 imm:$src2))),
3420 (_.VT (OpNode (_.VT (bitconvert (_.LdFrag addr:$src1))),
3426 string OpcodeStr, SDNode OpNode, X86VectorVTInfo _> {
3431 (_.VT (OpNode (X86VBroadcast (_.ScalarLdFrag addr:$src1)), (i8 imm:$src2))),
3435 multiclass avx512_shift_rrm<bits<8> opc, string OpcodeStr, SDNode OpNode,
3441 (_.VT (OpNode _.RC:$src1, (SrcVT VR128X:$src2))),
3446 (_.VT (OpNode _.RC:$src1, (bc_frag (loadv2i64 addr:$src2)))),
3451 multiclass avx512_shift_sizes<bits<8> opc, string OpcodeStr, SDNode OpNode,
3455 defm Z : avx512_shift_rrm<opc, OpcodeStr, OpNode, SrcVT, bc_frag,
3459 defm Z256 : avx512_shift_rrm<opc, OpcodeStr, OpNode, SrcVT, bc_frag,
3462 defm Z128 : avx512_shift_rrm<opc, OpcodeStr, OpNode, SrcVT, bc_frag,
3469 string OpcodeStr, SDNode OpNode> {
3470 defm D : avx512_shift_sizes<opcd, OpcodeStr#"d", OpNode, v4i32, bc_v4i32,
3472 defm Q : avx512_shift_sizes<opcq, OpcodeStr#"q", OpNode, v2i64, bc_v2i64,
3474 defm W : avx512_shift_sizes<opcw, OpcodeStr#"w", OpNode, v8i16, bc_v8i16,
3479 string OpcodeStr, SDNode OpNode,
3482 defm Z: avx512_shift_rmi<opc, ImmFormR, ImmFormM, OpcodeStr, OpNode,
3484 avx512_shift_rmbi<opc, ImmFormM, OpcodeStr, OpNode,
3487 defm Z256: avx512_shift_rmi<opc, ImmFormR, ImmFormM, OpcodeStr, OpNode,
3489 avx512_shift_rmbi<opc, ImmFormM, OpcodeStr, OpNode,
3491 defm Z128: avx512_shift_rmi<opc, ImmFormR, ImmFormM, OpcodeStr, OpNode,
3493 avx512_shift_rmbi<opc, ImmFormM, OpcodeStr, OpNode,
3500 string OpcodeStr, SDNode OpNode> {
3502 defm WZ: avx512_shift_rmi<opcw, ImmFormR, ImmFormM, OpcodeStr, OpNode,
3505 defm WZ256: avx512_shift_rmi<opcw, ImmFormR, ImmFormM, OpcodeStr, OpNode,
3507 defm WZ128: avx512_shift_rmi<opcw, ImmFormR, ImmFormM, OpcodeStr, OpNode,
3514 string OpcodeStr, SDNode OpNode> {
3515 defm D: avx512_shift_rmi_sizes<opcd, ImmFormR, ImmFormM, OpcodeStr#"d", OpNode,
3517 defm Q: avx512_shift_rmi_sizes<opcq, ImmFormR, ImmFormM, OpcodeStr#"q", OpNode,
3540 multiclass avx512_var_shift<bits<8> opc, string OpcodeStr, SDNode OpNode,
3545 (_.VT (OpNode _.RC:$src1, (_.VT _.RC:$src2))),
3551 (_.VT (OpNode _.RC:$src1, (_.LdFrag addr:$src2))),
3556 multiclass avx512_var_shift_mb<bits<8> opc, string OpcodeStr, SDNode OpNode,
3563 (_.VT (OpNode _.RC:$src1, (_.VT (X86VBroadcast
3568 multiclass avx512_var_shift_sizes<bits<8> opc, string OpcodeStr, SDNode OpNode,
3571 defm Z : avx512_var_shift<opc, OpcodeStr, OpNode, _.info512>,
3572 avx512_var_shift_mb<opc, OpcodeStr, OpNode, _.info512>, EVEX_V512;
3575 defm Z256 : avx512_var_shift<opc, OpcodeStr, OpNode, _.info256>,
3576 avx512_var_shift_mb<opc, OpcodeStr, OpNode, _.info256>, EVEX_V256;
3577 defm Z128 : avx512_var_shift<opc, OpcodeStr, OpNode, _.info128>,
3578 avx512_var_shift_mb<opc, OpcodeStr, OpNode, _.info128>, EVEX_V128;
3583 SDNode OpNode> {
3584 defm D : avx512_var_shift_sizes<opc, OpcodeStr#"d", OpNode,
3586 defm Q : avx512_var_shift_sizes<opc, OpcodeStr#"q", OpNode,
3591 SDNode OpNode> {
3593 defm WZ: avx512_var_shift<opc, OpcodeStr, OpNode, v32i16_info>,
3597 defm WZ256: avx512_var_shift<opc, OpcodeStr, OpNode, v16i16x_info>,
3599 defm WZ128: avx512_var_shift<opc, OpcodeStr, OpNode, v8i16x_info>,
3636 multiclass avx512_replicate_sfp<bits<8> op, SDNode OpNode, string OpcodeStr,
3641 [(set RC:$dst, (vt (OpNode RC:$src)))]>, EVEX;
3645 [(set RC:$dst, (OpNode (mem_frag addr:$src)))]>, EVEX;
3693 // Omitting the parameter OpNode (= null_frag) disables ISel pattern matching.
3695 SDPatternOperator OpNode = null_frag> {
3699 (_.VT (OpNode _.RC:$src1, _.RC:$src2, _.RC:$src3))>,
3706 (_.VT (OpNode _.RC:$src1, _.RC:$src2, (_.LdFrag addr:$src3)))>,
3713 (OpNode _.RC:$src1,
3720 // Omitting the parameter OpNode (= null_frag) disables ISel pattern matching.
3723 SDPatternOperator OpNode> {
3727 (_.VT ( OpNode _.RC:$src1, _.RC:$src2, _.RC:$src3, (i32 imm:$rc)))>,
3733 X86VectorVTInfo VTI, SDPatternOperator OpNode> {
3735 VTI, OpNode>, EVEX_CD8<VTI.EltSize, CD8VF>;
3740 SDPatternOperator OpNode> {
3742 VTI, OpNode>, EVEX_CD8<VTI.EltSize, CD8VF>;
3749 SDPatternOperator OpNode,
3753 v16f32_info, OpNode>,
3757 v8f32x_info, OpNode>, EVEX_V256;
3759 v4f32x_info, OpNode>, EVEX_V128;
3763 v8f64_info, OpNode>,
3767 v4f64x_info, OpNode>,
3770 v2f64x_info, OpNode>,
3783 multiclass avx512_fma3p_m132<bits<8> opc, string OpcodeStr, SDNode OpNode,
3789 [(set _.RC:$dst, (_.VT (OpNode _.RC:$src1, (_.LdFrag addr:$src2),
3796 (OpNode _.RC:$src1, (_.VT (X86VBroadcast
3802 multiclass avx512_fma3p_m132_f<bits<8> opc, string OpcodeStr, SDNode OpNode> {
3806 OpNode,v16f32_info>, EVEX_V512,
3809 OpNode, v8f32x_info>, EVEX_V256,
3812 OpNode, v4f32x_info>, EVEX_V128,
3817 OpNode, v8f64_info>, EVEX_V512,
3820 OpNode, v4f64x_info>, EVEX_V256,
3823 OpNode, v2f64x_info>, EVEX_V128,
3837 multiclass avx512_fma3s_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
3847 (OpVT (OpNode RC:$src2, RC:$src1, RC:$src3)))]>;
3854 (OpVT (OpNode RC:$src2, RC:$src1,
4058 SDNode OpNode, X86MemOperand x86memop, PatFrag ld_frag,
4062 [(set DstRC:$dst, (OpNode SrcRC:$src))]>, EVEX;
4065 [(set DstRC:$dst, (OpNode (ld_frag addr:$src)))]>, EVEX;
4138 RegisterClass DstRC, SDNode OpNode, PatFrag mem_frag,
4145 (OpVT (OpNode (InVT SrcRC:$src))))], d>, EVEX;
4153 (OpVT (OpNode (InVT (bitconvert (mem_frag addr:$src))))))], d>, EVEX;
4158 RegisterClass DstRC, SDNode OpNode, PatFrag mem_frag,
4165 (OpVT (OpNode (InVT SrcRC:$src))))], d>, EVEX;
4170 (OpVT (OpNode (InVT (bitconvert (mem_frag addr:$src))))))], d>, EVEX;
4452 multiclass avx512_fp14_p<bits<8> opc, string OpcodeStr, SDNode OpNode,
4456 (_.FloatVT (OpNode _.RC:$src))>, EVEX, T8PD;
4460 (OpNode (_.FloatVT
4465 (OpNode (_.FloatVT
4471 multiclass avx512_fp14_p_vl_all<bits<8> opc, string OpcodeStr, SDNode OpNode> {
4472 defm PSZ : avx512_fp14_p<opc, !strconcat(OpcodeStr, "ps"), OpNode, v16f32_info>,
4474 defm PDZ : avx512_fp14_p<opc, !strconcat(OpcodeStr, "pd"), OpNode, v8f64_info>,
4480 OpNode, v4f32x_info>,
4483 OpNode, v8f32x_info>,
4486 OpNode, v2f64x_info>,
4489 OpNode, v4f64x_info>,
4513 SDNode OpNode> {
4518 (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
4524 (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
4530 (OpNode (_.VT _.RC:$src1),
4535 multiclass avx512_eri_s<bits<8> opc, string OpcodeStr, SDNode OpNode> {
4536 defm SS : avx512_fp28_s<opc, OpcodeStr#"ss", f32x_info, OpNode>,
4538 defm SD : avx512_fp28_s<opc, OpcodeStr#"sd", f64x_info, OpNode>,
4549 SDNode OpNode> {
4553 (OpNode (_.VT _.RC:$src), (i32 FROUND_CURRENT))>;
4558 (OpNode (_.VT _.RC:$src), (i32 FROUND_NO_EXC)),
4563 (OpNode (_.FloatVT
4569 (OpNode (_.FloatVT
4574 multiclass avx512_eri<bits<8> opc, string OpcodeStr, SDNode OpNode> {
4575 defm PS : avx512_fp28_p<opc, OpcodeStr#"ps", v16f32_info, OpNode>,
4577 defm PD : avx512_fp28_p<opc, OpcodeStr#"pd", v8f64_info, OpNode>,
4589 SDNode OpNode, X86VectorVTInfo _>{
4592 (_.FloatVT (OpNode _.RC:$src))>, EVEX;
4596 (OpNode (_.FloatVT
4602 (OpNode (_.FloatVT
4670 SDNode OpNode> {
4671 defm PSZ : avx512_sqrt_packed<opc, !strconcat(OpcodeStr, "ps"), OpNode,
4674 defm PDZ : avx512_sqrt_packed<opc, !strconcat(OpcodeStr, "pd"), OpNode,
4680 OpNode, v4f32x_info>,
4683 OpNode, v8f32x_info>,
4686 OpNode, v2f64x_info>,
4689 OpNode, v4f64x_info>,
4957 RegisterClass DstRC, RegisterClass SrcRC, SDNode OpNode,
4964 [(set DstRC:$dst, (OpVT (OpNode (InVT SrcRC:$src))))]>, EVEX;
4981 (OpVT (OpNode (InVT (bitconvert (mem_frag addr:$src))))))]>,