From 204e84e138b973491039c1a37cf93a6fa85bb1e1 Mon Sep 17 00:00:00 2001 From: Nate Begeman Date: Mon, 4 Feb 2008 06:00:24 +0000 Subject: [PATCH] The rest of the SSE4.1 intrinsic patterns that are obvious to me. Getting Evan's help with the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46697 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrSSE.td | 53 +++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index 3bdd5e88700..a01aa7fb568 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -3066,7 +3066,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, Intrinsic V2F64Int> { // Intrinsic operation, reg. def SSr_Int : SS4AI, @@ -3074,7 +3074,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Intrinsic operation, mem. def SSm_Int : SS4AI, @@ -3082,7 +3082,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Vector intrinsic operation, reg def PSr_Int : SS4AI, @@ -3090,7 +3090,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Vector intrinsic operation, mem def PSm_Int : SS4AI, @@ -3098,7 +3098,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Intrinsic operation, reg. def SDr_Int : SS4AI, @@ -3106,7 +3106,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Intrinsic operation, mem. def SDm_Int : SS4AI, @@ -3114,7 +3114,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Vector intrinsic operation, reg def PDr_Int : SS4AI, @@ -3122,7 +3122,7 @@ multiclass sse41_fp_unop_rm opcss, bits<8> opcps, // Vector intrinsic operation, mem def PDm_Int : SS4AI, @@ -3196,3 +3196,40 @@ defm PMULLD : SS41I_binop_rm_int<0x40, "pmulld", int_x86_sse41_pmulld, 1>; defm PMULDQ : SS41I_binop_rm_int<0x28, "pmuldq", int_x86_sse41_pmuldq, 1>; + +/// SS41I_binop_rmi_int - SSE 4.1 binary operator with immediate +let isTwoAddress = 1 in { + multiclass SS41I_binop_rmi_int opc, string OpcodeStr, + Intrinsic IntId128, bit Commutable = 0> { + def rri128 : SS4AI, + OpSize { + let isCommutable = Commutable; + } + def rmi128 : SS4AI, + OpSize; + } +} + +defm BLENDPS : SS41I_binop_rmi_int<0x0C, "blendps", + int_x86_sse41_blendps, 0>; +defm BLENDPD : SS41I_binop_rmi_int<0x0D, "blendpd", + int_x86_sse41_blendpd, 0>; +defm PBLENDW : SS41I_binop_rmi_int<0x0E, "pblendw", + int_x86_sse41_pblendw, 0>; +defm DPPS : SS41I_binop_rmi_int<0x40, "dpps", + int_x86_sse41_dpps, 1>; +defm DPPD : SS41I_binop_rmi_int<0x41, "dppd", + int_x86_sse41_dppd, 1>; +defm MPSADBW : SS41I_binop_rmi_int<0x42, "mpsadbw", + int_x86_sse41_mpsadbw, 0>; -- 2.34.1