Lines Matching refs:OpNode
20 multiclass sse12_fp_scalar<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode,
30 [(set RC:$dst, (OpNode RC:$src1, RC:$src2))], d>,
37 [(set RC:$dst, (OpNode RC:$src1, (load addr:$src2)))], d>,
44 SDPatternOperator OpNode, RegisterClass RC,
53 [(set RC:$dst, (VT (OpNode RC:$src1, RC:$src2)))], d>,
60 [(set RC:$dst, (VT (OpNode RC:$src1, (mem_frags addr:$src2))))], d>,
66 multiclass sse12_fp_packed<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode,
76 [(set RC:$dst, (vt (OpNode RC:$src1, RC:$src2)))], d>,
83 [(set RC:$dst, (OpNode RC:$src1, (mem_frag addr:$src2)))],
194 multiclass sse12_move_rr<SDNode OpNode, ValueType vt, string base_opc,
200 [(set VR128:$dst, (vt (OpNode VR128:$src1, VR128:$src2)))], d>,
211 multiclass sse12_move<RegisterClass RC, SDNode OpNode, ValueType vt,
216 defm V#NAME : sse12_move_rr<OpNode, vt, OpcodeStr,
227 defm NAME : sse12_move_rr<OpNode, vt, OpcodeStr,
856 SDPatternOperator OpNode, X86MemOperand x86memop, PatFrag ld_frag,
863 [(set DstRC:$dst, (OpNode SrcRC:$src))]>,
867 [(set DstRC:$dst, (OpNode (ld_frag addr:$src)))]>,
1038 ValueType DstVT, ValueType SrcVT, SDNode OpNode,
1044 [(set DstRC:$dst, (DstVT (OpNode (SrcVT SrcRC:$src))))]>,
1048 [(set DstRC:$dst, (DstVT (OpNode (SrcVT (mem_frags addr:$src)))))]>,
1842 Operand memop, SDNode OpNode, ValueType VT,
1848 [(set VR128:$dst, (OpNode (VT VR128:$src1),
1854 [(set VR128:$dst, (OpNode (VT VR128:$src1),
1862 [(set RC:$dst, (OpNode RC:$src1, RC:$src2, timm:$cc))]>,
1866 [(set RC:$dst, (OpNode RC:$src1,
1895 multiclass sse12_ord_cmp<bits<8> opc, RegisterClass RC, SDPatternOperator OpNode,
1902 [(set EFLAGS, (OpNode (vt RC:$src1), RC:$src2))]>,
1907 [(set EFLAGS, (OpNode (vt RC:$src1),
1914 multiclass sse12_ord_cmp_int<bits<8> opc, RegisterClass RC, SDNode OpNode,
1922 [(set EFLAGS, (OpNode (vt RC:$src1), RC:$src2))]>,
1927 [(set EFLAGS, (OpNode (vt RC:$src1),
2120 multiclass sse12_unpack_interleave<bits<8> opc, SDNode OpNode, ValueType vt,
2129 (vt (OpNode RC:$src1, RC:$src2)))], d>,
2134 (vt (OpNode RC:$src1,
2263 multiclass PDI_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
2273 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2)))]>,
2280 [(set RC:$dst, (OpVT (OpNode RC:$src1, (memop_frag addr:$src2))))]>,
2647 SDPatternOperator OpNode, X86SchedWriteSizes sched> {
2650 defm V#NAME#PS : sse12_fp_packed<opc, !strconcat(OpcodeStr, "ps"), OpNode,
2653 defm V#NAME#PD : sse12_fp_packed<opc, !strconcat(OpcodeStr, "pd"), OpNode,
2658 OpNode, VR256, v8f32, f256mem, loadv8f32,
2661 OpNode, VR256, v4f64, f256mem, loadv4f64,
2666 defm PS : sse12_fp_packed<opc, !strconcat(OpcodeStr, "ps"), OpNode, VR128,
2669 defm PD : sse12_fp_packed<opc, !strconcat(OpcodeStr, "pd"), OpNode, VR128,
2676 multiclass basic_sse12_fp_binop_s<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode,
2680 OpNode, FR32, f32mem, SSEPackedSingle, sched.PS.Scl, 0>,
2683 OpNode, FR64, f64mem, SSEPackedDouble, sched.PD.Scl, 0>,
2688 OpNode, FR32, f32mem, SSEPackedSingle,
2691 OpNode, FR64, f64mem, SSEPackedDouble,
2698 SDPatternOperator OpNode,
2701 defm V#NAME#SS : sse12_fp_scalar_int<opc, OpNode, VR128, v4f32,
2704 defm V#NAME#SD : sse12_fp_scalar_int<opc, OpNode, VR128, v2f64,
2709 defm SS : sse12_fp_scalar_int<opc, OpNode, VR128, v4f32,
2712 defm SD : sse12_fp_scalar_int<opc, OpNode, VR128, v2f64,
2849 SDPatternOperator OpNode, Domain d,
2854 [(set RC:$dst, (OpNode RC:$src1))], d>, Sched<[sched]>,
2859 [(set RC:$dst, (OpNode (load addr:$src1)))], d>,
2914 Operand intmemop, SDPatternOperator OpNode, Domain d,
2947 def : Pat<(OpNode RC:$src), (!cast<Instruction>(NAME#r)
2951 def : Pat<(ScalarVT (OpNode (load addr:$src))),
2958 multiclass sse1_fp_unop_p<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode,
2964 [(set VR128:$dst, (v4f32 (OpNode VR128:$src)))]>,
2969 [(set VR128:$dst, (OpNode (loadv4f32 addr:$src)))]>,
2974 [(set VR256:$dst, (v8f32 (OpNode VR256:$src)))]>,
2979 [(set VR256:$dst, (OpNode (loadv8f32 addr:$src)))]>,
2985 [(set VR128:$dst, (v4f32 (OpNode VR128:$src)))]>,
2989 [(set VR128:$dst, (OpNode (memopv4f32 addr:$src)))]>,
2995 SDPatternOperator OpNode, X86SchedWriteWidths sched> {
3000 [(set VR128:$dst, (v2f64 (OpNode VR128:$src)))]>,
3005 [(set VR128:$dst, (OpNode (loadv2f64 addr:$src)))]>,
3010 [(set VR256:$dst, (v4f64 (OpNode VR256:$src)))]>,
3015 [(set VR256:$dst, (OpNode (loadv4f64 addr:$src)))]>,
3021 [(set VR128:$dst, (v2f64 (OpNode VR128:$src)))]>,
3025 [(set VR128:$dst, (OpNode (memopv2f64 addr:$src)))]>,
3039 multiclass sse1_fp_unop_s<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode,
3042 ssmem, OpNode, SSEPackedSingle, sched.Scl, UseSSE1>, TB, XS;
3044 f32mem, ssmem, OpNode, SSEPackedSingle, sched.Scl, AVXTarget>,
3048 multiclass sse2_fp_unop_s<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode,
3051 sdmem, OpNode, SSEPackedDouble, sched.Scl, UseSSE2>, TB, XD;
3053 f64mem, sdmem, OpNode, SSEPackedDouble, sched.Scl, AVXTarget>,
3074 multiclass scalar_unary_math_patterns<SDPatternOperator OpNode, string OpcPrefix, SDNode Move,
3078 (OpNode (extractelt VT:$src, 0))))),
3085 (OpNode (extractelt VT:$src, 0))))),
3474 multiclass PDI_binop_rm2<bits<8> opc, string OpcodeStr, SDNode OpNode,
3484 [(set RC:$dst, (DstVT (OpNode (SrcVT RC:$src1), RC:$src2)))]>,
3491 [(set RC:$dst, (DstVT (OpNode (SrcVT RC:$src1),
3580 string OpcodeStr, SDNode OpNode,
3592 [(set RC:$dst, (DstVT (OpNode RC:$src1, (SrcVT VR128:$src2))))]>,
3599 [(set RC:$dst, (DstVT (OpNode RC:$src1,
3612 string OpcodeStr, SDNode OpNode,
3619 OpNode, OpNode2, VR128, sched.XMM, schedImm.XMM,
3623 OpNode, OpNode2, VR256, sched.YMM, schedImm.YMM,
3627 defm NAME : PDI_binop_rmi<opc, opc2, ImmForm, OpcodeStr, OpNode, OpNode2,
3633 SDNode OpNode, RegisterClass RC, ValueType VT,
3639 [(set RC:$dst, (VT (OpNode RC:$src1, (i8 timm:$src2))))]>,
3644 SDNode OpNode, X86SchedWriteWidths sched> {
3646 defm V#NAME : PDI_binop_ri<opc, ImmForm, !strconcat("v", OpcodeStr), OpNode,
3649 defm V#NAME#Y : PDI_binop_ri<opc, ImmForm, !strconcat("v", OpcodeStr), OpNode,
3653 defm NAME : PDI_binop_ri<opc, ImmForm, OpcodeStr, OpNode, VR128, v16i8,
3714 SDNode OpNode, X86SchedWriteWidths sched,
3722 (vt128 (OpNode VR128:$src1, (i8 timm:$src2))))]>,
3729 (vt128 (OpNode (load addr:$src1),
3740 (vt256 (OpNode VR256:$src1, (i8 timm:$src2))))]>,
3747 (vt256 (OpNode (load addr:$src1),
3758 (vt128 (OpNode VR128:$src1, (i8 timm:$src2))))]>,
3765 (vt128 (OpNode (memop addr:$src1),
3785 ValueType ArgVT, SDNode OpNode, RegisterClass RC,
3795 (OutVT (OpNode (ArgVT RC:$src1), RC:$src2)))]>,
3804 (OutVT (OpNode (ArgVT RC:$src1),
3810 ValueType ArgVT, SDNode OpNode, RegisterClass RC,
3820 (OutVT (OpNode (ArgVT RC:$src1), RC:$src2)))]>,
3829 (OutVT (OpNode (ArgVT RC:$src1),
3886 SDNode OpNode, RegisterClass RC, X86MemOperand x86memop,
3894 [(set RC:$dst, (vt (OpNode RC:$src1, RC:$src2)))]>,
3901 [(set RC:$dst, (vt (OpNode RC:$src1, (ld_frag addr:$src2))))]>,
4418 multiclass sse3_replicate_sfp<bits<8> op, SDNode OpNode, string OpcodeStr,
4423 [(set RC:$dst, (vt (OpNode RC:$src)))]>,
4427 [(set RC:$dst, (OpNode (mem_frag addr:$src)))]>,
4608 X86MemOperand x86memop, SDNode OpNode,
4616 [(set RC:$dst, (vt (OpNode RC:$src1, RC:$src2)))]>,
4623 [(set RC:$dst, (vt (OpNode RC:$src1, (ld_frag addr:$src2))))]>,
4628 X86MemOperand x86memop, SDNode OpNode,
4636 [(set RC:$dst, (vt (OpNode RC:$src1, RC:$src2)))]>,
4643 [(set RC:$dst, (vt (OpNode RC:$src1, (ld_frag addr:$src2))))]>,
4692 SDNode OpNode, X86SchedWriteWidths sched, PatFrag ld_frag> {
4696 [(set VR128:$dst, (vt (OpNode VR128:$src)))]>,
4703 (vt (OpNode (ld_frag addr:$src))))]>,
4709 SDNode OpNode, X86SchedWriteWidths sched> {
4713 [(set VR256:$dst, (vt (OpNode VR256:$src)))]>,
4720 (vt (OpNode (load addr:$src))))]>,
4757 multiclass SS3I_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
4767 [(set RC:$dst, (DstVT (OpNode (OpVT RC:$src1), RC:$src2)))]>,
4775 (DstVT (OpNode (OpVT RC:$src1), (memop_frag addr:$src2))))]>,
5486 ValueType VT, PatFrag mem_frag, SDPatternOperator OpNode,
5495 [(set RC:$dst, (VT (OpNode RC:$src1, timm:$src2)))]>,
5504 (VT (OpNode (mem_frag addr:$src1), timm:$src2)))]>,
5580 SDNode OpNode, bit Is2Addr = 1> {
5590 [(set VR128:$dst, (VT32 (OpNode VR128:$src1, VR128:$src2, timm:$src3)))]>,
5601 (OpNode VR128:$src1, (sse_load_f32 addr:$src2), timm:$src3))]>,
5613 [(set VR128:$dst, (VT64 (OpNode VR128:$src1, VR128:$src2, timm:$src3)))]>,
5624 (OpNode VR128:$src1, (sse_load_f64 addr:$src2), timm:$src3))]>,
5825 SDNode OpNode, PatFrag ld_frag,
5830 [(set VR128:$dst, (v8i16 (OpNode (v8i16 VR128:$src))))]>,
5836 (v8i16 (OpNode (ld_frag addr:$src))))]>,
5851 multiclass SS48I_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
5861 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2)))]>,
5869 (OpVT (OpNode RC:$src1, (memop_frag addr:$src2))))]>,
6011 multiclass SS41I_binop_rmi<bits<8> opc, string OpcodeStr, SDNode OpNode,
6023 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2, timm:$src3)))]>,
6033 (OpVT (OpNode RC:$src1, (memop_frag addr:$src2), timm:$src3)))]>,
6167 multiclass SS41I_blend_rmi<bits<8> opc, string OpcodeStr, SDNode OpNode,
6180 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2, timm:$src3)))]>,
6190 (OpVT (OpNode RC:$src1, (memop_frag addr:$src2), timm:$src3)))]>,
6195 def : Pat<(OpVT (OpNode (memop_frag addr:$src2), RC:$src1, timm:$src3)),
6317 PatFrag mem_frag, SDNode OpNode,
6323 [(set RC:$dst, (VT (OpNode RC:$src3, RC:$src2, RC:$src1)))],
6332 (OpNode RC:$src3, (mem_frag addr:$src2),
6451 SDNode OpNode, X86FoldableSchedWrite sched> {
6457 (VT (OpNode XMM0, VR128:$src2, VR128:$src1)))]>,
6465 (OpNode XMM0, (mem_frag addr:$src2), VR128:$src1))]>,
6574 multiclass SS42I_binop_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
6583 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2)))]>,
6591 (OpVT (OpNode RC:$src1, (memop_frag addr:$src2))))]>,
7354 multiclass avx_vnni_rm<bits<8> opc, string OpcodeStr, SDNode OpNode,
7360 [(set VR128:$dst, (v4i32 (OpNode VR128:$src1,
7367 [(set VR128:$dst, (v4i32 (OpNode VR128:$src1, VR128:$src2,
7377 [(set VR256:$dst, (v8i32 (OpNode VR256:$src1,
7384 [(set VR256:$dst, (v8i32 (OpNode VR256:$src1, VR256:$src2,
7549 multiclass AVX2_blend_rmi<bits<8> opc, string OpcodeStr, SDNode OpNode,
7558 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2, timm:$src3)))]>,
7565 (OpVT (OpNode RC:$src1, (load addr:$src2), timm:$src3)))]>,
7569 def : Pat<(OpVT (OpNode (load addr:$src2), RC:$src1, timm:$src3)),
8012 multiclass avx2_var_shift<bits<8> opc, string OpcodeStr, SDNode OpNode,
8018 (vt128 (OpNode VR128:$src1, (vt128 VR128:$src2))))]>,
8024 (vt128 (OpNode VR128:$src1,
8032 (vt256 (OpNode VR256:$src1, (vt256 VR256:$src2))))]>,
8038 (vt256 (OpNode VR256:$src1,
8126 SDNode OpNode, RegisterClass RC, PatFrag MemOpFrag,
8134 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2, timm:$src3)))],
8138 [(set RC:$dst, (OpVT (OpNode RC:$src1,
8145 multiclass GF2P8AFFINE_common<bits<8> Op, string OpStr, SDNode OpNode> {
8148 defm NAME : GF2P8AFFINE_rmi<Op, OpStr, v16i8, OpNode,
8151 defm V#NAME : GF2P8AFFINE_rmi<Op, "v"#OpStr, v16i8, OpNode, VR128,
8154 defm V#NAME#Y : GF2P8AFFINE_rmi<Op, "v"#OpStr, v32i8, OpNode, VR256,
8181 multiclass avx_ifma_rm<bits<8> opc, string OpcodeStr, SDNode OpNode> {
8188 [(set VR128:$dst, (v2i64 (OpNode VR128:$src2,
8195 [(set VR128:$dst, (v2i64 (OpNode VR128:$src2,
8202 [(set VR256:$dst, (v4i64 (OpNode VR256:$src2,
8209 [(set VR256:$dst, (v4i64 (OpNode VR256:$src2,
8221 X86MemOperand X86memop, SDNode OpNode,
8228 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2, RC:$src3)))]>,
8233 [(set RC:$dst, (OpVT (OpNode RC:$src1, RC:$src2,