On Tue, Jan 21, 2014 at 7:52 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote:
> Hello,
> This is non-trivial part of the patch.
>
>> On 15 Jan 20:53, Uros Bizjak wrote:
>> On Tue, Jan 14, 2014 at 7:13 AM, Kirill Yukhin <kirill.yuk...@gmail.com> 
>> wrote:
>> Did you try to add DF/SF mode to the unspec? I am not familiar with
>> this insn, but shouldn't the mode of mem access be somehow similar to
>> the avx512f_scattersi<mode> access?
> avx512f_scattersi<mode> is different in its appearence.
> It has explicit type of destination which discriminates SF/DF modes. 
> Prefetches
> has no such.
>
>> Also, you can use double macroization with MODEF iterator for SF and DFmode.
> I think I cannot. Because DF/SF types of the insn incurs different vidx 
> iterators.
> E.g.:
> Currently we have for SF:
> (define_expand "avx512pf_scatterpf<VI48_512:mode>sf"
>   [(unspec
>      [(match_operand:<avx512fmaskmode> 0 "register_or_constm1_operand")
>       (mem:SF
>         (match_par_dup 5
>           [(match_operand 2 "vsib_address_operand")
>            (match_operand:VI48_512 1 "register_operand")
>            (match_operand:SI 3 "const1248_operand")]))
>       (match_operand:SI 4 "const_0_to_1_operand")]
>      UNSPEC_SCATTER_PREFETCH)]
>
> and for DF:
> (define_expand "avx512pf_scatterpf<mode>df"
>   [(unspec
>      [(match_operand:<avx512fmaskmode> 0 "register_or_constm1_operand")
>       (mem:DF
>        (match_par_dup 5
>          [(match_operand 2 "vsib_address_operand")
>           (match_operand:VI4_256_8_512 1 "register_operand")
>           (match_operand:SI 3 "const1248_operand")]))
>       (match_operand:SI 4 "const_0_to_1_operand")]
>      UNSPEC_SCATTER_PREFETCH)]
>
> We have this correspondence between, say, main and index modes:
>   SF -> (V16SI, V8DI)
>   DF -> (V8SI , V8DI)

It looks to me that you should use V16SF and V8DF instead of SF and DF
modes here.

Other than this, the patch looks OK to me. Please wait a day if Jakub
has any remark here.

Thanks,
Uros.

Reply via email to