[llvm] r218051 - [SKX] Deriving rmb multiclasses from general one (avx512_icmp_packed_rmb and avx512_icmp_cc_rmb).

Adam Nemet anemet at apple.com
Thu Sep 18 10:01:26 PDT 2014


Cool, thanks!  And welcome back!

Adam

On Sep 18, 2014, at 7:06 AM, Robert Khasanov <rob.khasanov at gmail.com> wrote:

> Author: rkhasanov
> Date: Thu Sep 18 09:06:55 2014
> New Revision: 218051
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=218051&view=rev
> Log:
> [SKX] Deriving rmb multiclasses from general one (avx512_icmp_packed_rmb and avx512_icmp_cc_rmb).
> Thanks Adam Nemet for notice about this.
> 
> Modified:
>    llvm/trunk/lib/Target/X86/X86InstrAVX512.td
> 
> Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=218051&r1=218050&r2=218051&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
> +++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Thu Sep 18 09:06:55 2014
> @@ -1054,7 +1054,8 @@ multiclass avx512_icmp_packed<bits<8> op
> }
> 
> multiclass avx512_icmp_packed_rmb<bits<8> opc, string OpcodeStr, SDNode OpNode,
> -              X86VectorVTInfo _> {
> +              X86VectorVTInfo _> :
> +           avx512_icmp_packed<opc, OpcodeStr, OpNode, _> {
>   let mayLoad = 1 in {
>   def rmb : AVX512BI<opc, MRMSrcMem,
>               (outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2),
> @@ -1114,15 +1115,11 @@ defm VPCMPEQW : avx512_icmp_packed_vl<0x
>                       avx512vl_i16_info, HasBWI>,
>                 EVEX_CD8<16, CD8VF>;
> 
> -defm VPCMPEQD : avx512_icmp_packed_vl<0x76, "vpcmpeqd", X86pcmpeqm,
> -                      avx512vl_i32_info, HasAVX512>,
> -                avx512_icmp_packed_rmb_vl<0x76, "vpcmpeqd", X86pcmpeqm,
> +defm VPCMPEQD : avx512_icmp_packed_rmb_vl<0x76, "vpcmpeqd", X86pcmpeqm,
>                       avx512vl_i32_info, HasAVX512>,
>                 EVEX_CD8<32, CD8VF>;
> 
> -defm VPCMPEQQ : avx512_icmp_packed_vl<0x29, "vpcmpeqq", X86pcmpeqm,
> -                      avx512vl_i64_info, HasAVX512>,
> -                avx512_icmp_packed_rmb_vl<0x29, "vpcmpeqq", X86pcmpeqm,
> +defm VPCMPEQQ : avx512_icmp_packed_rmb_vl<0x29, "vpcmpeqq", X86pcmpeqm,
>                       avx512vl_i64_info, HasAVX512>,
>                 T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
> 
> @@ -1134,15 +1131,11 @@ defm VPCMPGTW : avx512_icmp_packed_vl<0x
>                       avx512vl_i16_info, HasBWI>,
>                 EVEX_CD8<16, CD8VF>;
> 
> -defm VPCMPGTD : avx512_icmp_packed_vl<0x66, "vpcmpgtd", X86pcmpgtm,
> -                      avx512vl_i32_info, HasAVX512>,
> -                avx512_icmp_packed_rmb_vl<0x66, "vpcmpgtd", X86pcmpgtm,
> +defm VPCMPGTD : avx512_icmp_packed_rmb_vl<0x66, "vpcmpgtd", X86pcmpgtm,
>                       avx512vl_i32_info, HasAVX512>,
>                 EVEX_CD8<32, CD8VF>;
> 
> -defm VPCMPGTQ : avx512_icmp_packed_vl<0x37, "vpcmpgtq", X86pcmpgtm,
> -                      avx512vl_i64_info, HasAVX512>,
> -                avx512_icmp_packed_rmb_vl<0x37, "vpcmpgtq", X86pcmpgtm,
> +defm VPCMPGTQ : avx512_icmp_packed_rmb_vl<0x37, "vpcmpgtq", X86pcmpgtm,
>                       avx512vl_i64_info, HasAVX512>,
>                 T8PD, VEX_W, EVEX_CD8<64, CD8VF>;
> 
> @@ -1227,7 +1220,8 @@ multiclass avx512_icmp_cc<bits<8> opc, s
> }
> 
> multiclass avx512_icmp_cc_rmb<bits<8> opc, string Suffix, SDNode OpNode,
> -                              X86VectorVTInfo _> {
> +                              X86VectorVTInfo _> :
> +           avx512_icmp_cc<opc, Suffix, OpNode, _> {
>   let mayLoad = 1 in {
>   def rmib : AVX512AIi8<opc, MRMSrcMem,
>              (outs _.KRC:$dst), (ins _.RC:$src1, _.ScalarMemOp:$src2,
> @@ -1306,22 +1300,14 @@ defm VPCMPW : avx512_icmp_cc_vl<0x3F, "w
> defm VPCMPUW : avx512_icmp_cc_vl<0x3E, "uw", X86cmpmu, avx512vl_i16_info,
>                                  HasBWI>, VEX_W, EVEX_CD8<16, CD8VF>;
> 
> -defm VPCMPD : avx512_icmp_cc_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
> -                                HasAVX512>,
> -              avx512_icmp_cc_rmb_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
> +defm VPCMPD : avx512_icmp_cc_rmb_vl<0x1F, "d", X86cmpm, avx512vl_i32_info,
>                                     HasAVX512>, EVEX_CD8<32, CD8VF>;
> -defm VPCMPUD : avx512_icmp_cc_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
> -                                 HasAVX512>,
> -               avx512_icmp_cc_rmb_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
> +defm VPCMPUD : avx512_icmp_cc_rmb_vl<0x1E, "ud", X86cmpmu, avx512vl_i32_info,
>                                      HasAVX512>, EVEX_CD8<32, CD8VF>;
> 
> -defm VPCMPQ : avx512_icmp_cc_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
> -                                HasAVX512>,
> -              avx512_icmp_cc_rmb_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
> +defm VPCMPQ : avx512_icmp_cc_rmb_vl<0x1F, "q", X86cmpm, avx512vl_i64_info,
>                                     HasAVX512>, VEX_W, EVEX_CD8<64, CD8VF>;
> -defm VPCMPUQ : avx512_icmp_cc_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
> -                                 HasAVX512>,
> -               avx512_icmp_cc_rmb_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
> +defm VPCMPUQ : avx512_icmp_cc_rmb_vl<0x1E, "uq", X86cmpmu, avx512vl_i64_info,
>                                      HasAVX512>, VEX_W, EVEX_CD8<64, CD8VF>;
> 
> // avx512_cmp_packed - compare packed instructions
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list