[WWW] Update index.html and gcc-5/changes.html to AVX-512* changes.

2014-12-12 Thread Kirill Yukhin
. + Code was contributed by Sergey Guriev, Alexander Ivchenko, + Maxim Kuznetsov, Sergey Lega, Anna Tikhonova, Ilya Tocar, + Andrey Turetskiy, Ilya Verbin, Kirill Yukhin and + Michael Zolotukhin of Intel, Corp./dd/dt Index: htdocs/gcc-5/changes.html

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-11-12 Thread Kirill Yukhin
Hello Richard, On 12 Nov 10:23, Richard Biener wrote: On Wed, 5 Nov 2014, Ilya Verbin wrote: Yes please. Please make sure that regular LTO bootstrap still works - LTO is only tested lightly in the testsuite. Current main trunk fails to bootstrap w/ `bootstrap-lto': git/gcc/configure

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-11-12 Thread Kirill Yukhin
On 12 Nov 15:09, Richard Biener wrote: On Wed, 12 Nov 2014, Kirill Yukhin wrote: Hello Richard, On 12 Nov 10:23, Richard Biener wrote: On Wed, 5 Nov 2014, Ilya Verbin wrote: Yes please. Please make sure that regular LTO bootstrap still works - LTO is only tested lightly

Re: [x86, 6/n] Replace builtins with vector extensions

2014-11-11 Thread Kirill Yukhin
Hello Marc, Uroš, On 10 Nov 21:33, Uros Bizjak wrote: On Sun, Nov 9, 2014 at 5:26 PM, Marc Glisse marc.gli...@inria.fr wrote: Hello, and == for integer vectors of size 128. I was surprised not to find _mm_cmplt_epi64 anywhere. Note that I can do the same for size 256, but not 512,

Re: [x86, 6/n] Replace builtins with vector extensions

2014-11-11 Thread Kirill Yukhin
On 11 Nov 10:28, Marc Glisse wrote: On Tue, 11 Nov 2014, Kirill Yukhin wrote: Hello Marc, Uroš, On 10 Nov 21:33, Uros Bizjak wrote: On Sun, Nov 9, 2014 at 5:26 PM, Marc Glisse marc.gli...@inria.fr wrote: Hello, and == for integer vectors of size 128. I was surprised not to find

Re: [PATCH 2/n] OpenMP 4.0 offloading infrastructure: LTO streaming

2014-11-07 Thread Kirill Yukhin
Hello Richard, On 05 Nov 13:50, Jakub Jelinek wrote: On Wed, Nov 05, 2014 at 03:46:55PM +0300, Ilya Verbin wrote: + node-register_symbol (); LGTM. Are you ok with the patch? Jakub -- Thanks, K

Re: [PATCHv5][Kasan] Allow to override Asan shadow offset from command line

2014-11-05 Thread Kirill Yukhin
Hello, On 24 Oct 17:56, Yury Gribov wrote: ... +const struct test_data_t test_data[] = { + { STRTOL, -0x8000, 0, -0x8000L, 0 }, ... + switch (test_data[i].fun) + { + case STRTOL: + res = strtol (test_data[i].nptr, 0, test_data[i].base); + break; As

Re: [PATCH] x86: extend vect-args testcase to AVX flavors

2014-10-31 Thread Kirill Yukhin
On 30 Oct 09:32, Uros Bizjak wrote: On Thu, Oct 30, 2014 at 8:50 AM, Jan Beulich jbeul...@suse.com wrote: gcc/testsuite: 2014-10-30 Jan Beulich jbeul...@suse.com * gcc.target/i386/i386.exp: Extend option set to test vect-args.c with to include -mavx, -mavx2, and

Re: [PATCH 4/n] OpenMP 4.0 offloading infrastructure: lto-wrapper

2014-10-29 Thread Kirill Yukhin
Hello Richard, Jan, On 16 Oct 13:22, Jakub Jelinek wrote: On Thu, Oct 16, 2014 at 03:17:36PM +0400, Ilya Verbin wrote: The rest LGTM, but please run it through LTO review (Richard/Honza) too. Ping? -- Thanks, k Jakub

Re: [PATCH 3/n] OpenMP 4.0 offloading infrastructure: offload tables

2014-10-29 Thread Kirill Yukhin
Hello Richard, Jan, On 08 Oct 11:23, Jakub Jelinek wrote: On Tue, Sep 30, 2014 at 06:53:20PM +0400, Ilya Verbin wrote: Bootstrapped and regtested on top of patch 2. Is it OK for trunk? LGTM, with the requested var/section renames. Would like if Honza and/or Richard had a look at the

Re: [PATCH AVX512] [81.1/n] Extend `function_code' field in `tree_var_decl' structure.

2014-10-22 Thread Kirill Yukhin
Hello, Patch was separated into two parts: tree-core.h changes and target changes. On 21 Oct 16:20, Jakub Jelinek wrote: On Tue, Oct 21, 2014 at 06:08:15PM +0400, Kirill Yukhin wrote: --- a/gcc/tree.h +++ b/gcc/tree.h @@ -2334,6 +2334,10 @@ extern void decl_value_expr_insert (tree, tree

Re: [PATCH i386 AVX512] [81/n] Add new built-ins.

2014-10-22 Thread Kirill Yukhin
Hello, On 22 Oct 10:09, Richard Biener wrote: On Tue, Oct 21, 2014 at 5:08 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: On 21 Oct 18:47, Kirill Yukhin wrote: On 21 Oct 16:20, Jakub Jelinek wrote: On Tue, Oct 21, 2014 at 06:08:15PM +0400, Kirill Yukhin wrote: --- a/gcc/tree.h

[PATCH i386 AVX512] [82/n] Add gather built-ins.

2014-10-22 Thread Kirill Yukhin
Hello, This patch introduces built-ins for gather insns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF, IX86_BUILTIN_GATHER3ALTDIV8SF,

[PATCH i386 AVX512] [83/n] Add scatter built-ins.

2014-10-22 Thread Kirill Yukhin
Hello, This patch adds built-ins for scatter insns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,

[PATCH i386 AVX512] [84/n] Add missing immediate checks.

2014-10-22 Thread Kirill Yukhin
Hello, This tiny patch adds couple of missing immediate checks. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask, avx_shufpd256_mask,

[PATCH i386 AVX512] [86/n] Add tests for options.

2014-10-22 Thread Kirill Yukhin
Hello, This patch extends sse-* and avx-* tests which checks immediates/options. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * testsuite/g++.dg/other/i386-2.C: Add new options. * testsuite/g++.dg/other/i386-3.C: Ditto.

[PATCH i386 AVX512] [85/n] Add intrinsics headers.

2014-10-22 Thread Kirill Yukhin
Hello, This patch introduces necessary AVX-512* intrinsics headers. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/avx512bwintrin.h: New. * config/i386/avx512dqintrin.h: Ditto. *

[PATCH i386 AVX512] [87/n] Add rest of the tests.

2014-10-22 Thread Kirill Yukhin
Hello, This patch adds tests for new intrinsics. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * testsuite/gcc.target/i386/avx512bw-check.h: New. * testsuite/gcc.target/i386/avx512bw-kunpckdq-1.c: Ditto. *

[PATCH i386 AVX512] [88/n] Add missed avx512bw/avx512vl cmp intrinsics.

2014-10-22 Thread Kirill Yukhin
Hello, This patch introduces rest of intrinsics (compare). Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/avx512bwintrin.h: Add new intrinsics. * config/i386/avx512vlbwintrin.h: Ditto. *

[PATCH i386 AVX512] [89/n] Improve mask move insn generation.

2014-10-22 Thread Kirill Yukhin
Hello, This patch fixes kmov* insn generation and adds memory alternative to `movqi_internal' pattern Reg-test included. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.md (movhi_internal): Always detect mskmov.

Re: [PATCH i386 AVX512] [87/n] Add rest of the tests.

2014-10-22 Thread Kirill Yukhin
On 22 Oct 16:48, Kirill Yukhin wrote: Hello, This patch adds tests for new intrinsics. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * testsuite/gcc.target/i386/avx512bw-check.h: New. Please, disregard testsuite/gcc.target

Re: [PATCH i386 AVX512] [86/n] Add tests for options.

2014-10-22 Thread Kirill Yukhin
On 22 Oct 16:37, Kirill Yukhin wrote: gcc/ * testsuite/g++.dg/other/i386-2.C: Add new options. Please, disregard testsuite/gcc.target in overall ChangeLog entry. -- Thanks, K

Re: [PATCH i386 AVX512] [88/n] Add missed avx512bw/avx512vl cmp intrinsics.

2014-10-22 Thread Kirill Yukhin
On 22 Oct 16:51, Kirill Yukhin wrote: gcc/ * testsuite/gcc.target/i386/avx512bw-vpcmpequb-1.c: New. Please, disregard testsuite/ in overall ChangeLog entry. -- Thanks, K

Re: [PATCH i386 AVX512] [81/n] Add new built-ins.

2014-10-21 Thread Kirill Yukhin
Hello, On 21 Oct 11:17, Richard Biener wrote: On Mon, Oct 20, 2014 at 3:50 PM, Jakub Jelinek ja...@redhat.com wrote: On Mon, Oct 20, 2014 at 05:41:25PM +0400, Kirill Yukhin wrote: Hello, This patch adds (almost) all built-ins needed by AVX-512VL,BW,DQ intrinsics. Main questionable

Re: [PATCH i386 AVX512] [81/n] Add new built-ins.

2014-10-21 Thread Kirill Yukhin
On 21 Oct 16:20, Jakub Jelinek wrote: On Tue, Oct 21, 2014 at 06:08:15PM +0400, Kirill Yukhin wrote: --- a/gcc/tree.h +++ b/gcc/tree.h @@ -2334,6 +2334,10 @@ extern void decl_value_expr_insert (tree, tree); #define DECL_COMDAT(NODE) \ (DECL_WITH_VIS_CHECK (NODE

Re: [PATCH i386 AVX512] [81/n] Add new built-ins.

2014-10-21 Thread Kirill Yukhin
On 21 Oct 18:47, Kirill Yukhin wrote: On 21 Oct 16:20, Jakub Jelinek wrote: On Tue, Oct 21, 2014 at 06:08:15PM +0400, Kirill Yukhin wrote: --- a/gcc/tree.h +++ b/gcc/tree.h @@ -2334,6 +2334,10 @@ extern void decl_value_expr_insert (tree, tree); #define DECL_COMDAT(NODE

Re: [PATCH i386 AVX512] [56/n] Add plus/minus/abs/neg/andnot insn patterns.

2014-10-20 Thread Kirill Yukhin
Hello, On 20 Oct 14:36, Jakub Jelinek wrote: On Tue, Oct 14, 2014 at 11:18:28AM +0400, Kirill Yukhin wrote: * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend to support AVX-512BW. (define_mode_iterator VI124_AVX2_48_AVX512F): Remove. (define_expand

Re: [PATCH i386 AVX512] [75/n] Update vec_init.

2014-10-17 Thread Kirill Yukhin
Hello Jakub, On 15 Oct 18:23, Jakub Jelinek wrote: On Thu, Oct 09, 2014 at 04:13:25PM +0400, Kirill Yukhin wrote: --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -39821,6 +39823,9 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, enum machine_mode mode, goto widen

Re: [PATCH i386 AVX512] [80/n] Extend expand_sse2_mulvxdi3.

2014-10-17 Thread Kirill Yukhin
Hello Uroš, On 16 Oct 14:29, Uros Bizjak wrote: + if (mode == V4DImode) + emit_insn (gen_avx512dq_mulv4di3 (op0, op1, op2)); + else if (mode == V2DImode) + emit_insn (gen_avx512dq_mulv4di3 (op0, op1, op2)); Should this be v2di ? Right, copy-and-paste

Re: [PATCH i386 AVX512 Boostrap] [80/n] Extend expand_sse2_mulvxdi3.

2014-10-17 Thread Kirill Yukhin
Hello, This is fix for bootstrap failure. Is it OK? gcc/ * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor conditions to fix bootstrap. -- Thanks, K diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7040200..3ddaf3d 100644 --- a/gcc/config/i386/i386.c

[PATCH i386 AVX512] [78/n] Use blend for inserting.

2014-10-16 Thread Kirill Yukhin
Hello, This patch extends insertion hook. AVX-512* tests on top of patch-set all pass under simulator. gcc/ * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF, V16SI, V32HI, V64QI modes. -- Thanks, K diff --git a/gcc/config/i386/i386.c

[PATCH i386 AVX512] [79/n] Extend expand_mul_widen_hilo.

2014-10-16 Thread Kirill Yukhin
Hello, This patch extends expand_mul_widen_hilo to 512-bit QI,SI,HI modes. Bootstrapped and regtested gcc/ * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI, V64QI modes. Is it ok for trunk? -- Thanks, K diff --git a/gcc/config/i386/i386.c

[PATCH i386 AVX512] [80/n] Extend expand_sse2_mulvxdi3.

2014-10-16 Thread Kirill Yukhin
Hello, This patch extends expand_sse2_mulvxdi3. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend expand_sse2_mulvxdi3. -- Thanks, K diff --git a/gcc/config/i386/i386.c

Re: [PATCH i386 AVX512] [76/n] Extend int 2 float conversions.

2014-10-15 Thread Kirill Yukhin
Hello Uroš, On 09 Oct 18:05, Uros Bizjak wrote: On Thu, Oct 9, 2014 at 5:01 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7c34431..8a7853e 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -18811,6

Re: [PATCH i386 AVX512] [56/n] Add plus/minus/abs/neg/andnot insn patterns.

2014-10-14 Thread Kirill Yukhin
Hello Uroš, It seems like I missed to post uppdated patch. On 25 Sep 20:11, Uros Bizjak wrote: I'd rather go with the second approach, it is less confusing from the maintainer POV. All other patterns with masking use some consistent template, so I'd suggest using the same approach for

Re: [patch] Excessive alignment in ix86_data_alignment

2014-10-09 Thread Kirill Yukhin
On 08 Oct 23:02, Petr Murzin wrote: Hi, I have measured performance impact on Haswell platform according to this input: https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00978.html Same in plain text: For `-O2': TestPrevious Current Ratio(%) 400.perlbench 46.2000 46.2000 +0%

[PATCH i386 AVX512] [64/n] Add rest of VI1-AVX2: vpack[us]wb.

2014-10-09 Thread Kirill Yukhin
Hello, This patch adds rest of vpack instruction patterns. Bootstrapped. gcc.target/i386.exp tests on top of patch-set show no regressions. under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn sse2_avx2_packsswbmask_name): Add masking. (define_insn

[PATCH i386 AVX512] [65/n] Add rest of VI1-AVX2: mul insn pattern.

2014-10-09 Thread Kirill Yukhin
Hello, This tiny patch extend mulmode insn pattern to support masking. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand mulmode3mask_name): Add masking. -- Thanks, K diff --git

[PATCH i386 AVX512] [66/n] Extend vpalignr insn patterns.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends vpalignr insn patterns. It also introduces dedicated `masked' version of pattern w/o substing. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_iterator SSESCALARMODE):

[PATCH i386 AVX512] [67/n] Update constraints in vec_dup insn pattern.

2014-10-09 Thread Kirill Yukhin
Hello, This tiny patch updates constraints in vec_dup insn pattern. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn vec_dupmode): Update constraints. -- Thanks, K diff --git

[PATCH i386 AVX512] [68/n] Add vpmullw, vpacksdw, pmaddwd insn patterns.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends vpmullw, vpacksdw and pmaddwd insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_c_enum unspec): Add UNSPEC_PMADDWD512. (define_mode_iterator VI2_AVX2):

Re: [PATCH i386 AVX512] [68/n] Add vpmullw, vpacksdw, pmaddwd insn patterns.

2014-10-09 Thread Kirill Yukhin
On 09 Oct 15:07, Kirill Yukhin wrote: +(define_insn *mulmode3mask_name + [(set (match_operand:VI2_AVX2 0 register_operand =x,v) + (mult:VI2_AVX2 (match_operand:VI2_AVX2 1 nonimmediate_operand %0,v) +(match_operand:VI2_AVX2 2 nonimmediate_operand xm,vm

[PATCH i386 AVX512] [69/n] Add vpmulhrsw insn support.

2014-10-09 Thread Kirill Yukhin
Hello, This patch adds support for vpmulhrsw insn. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn avx512bw_umulhrswv32hi3mask_name): New. (define_expand ssse3_avx2_pmulhrswmode3_mask):

[PATCH i386 AVX512] [70/n]

2014-10-09 Thread Kirill Yukhin
Hello, This patch further extends maxmin patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn *codemode3_finitemask_nameround_saeonly_name): Fix pattern conditions order.

[PATCH i386 AVX512] [71/n] [Obvious?] Remove redudant iterator attribute.

2014-10-09 Thread Kirill Yukhin
Hello, This obvious patch removes redundant iterator attribute Bootstrapped. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove. -- Thanks, K diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index a833cd9..cf415c3 100644 ---

[PATCH i386 AVX512] [72/n] Extend VI itterator.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends VI mode iterator. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes. * config/i386/sse.md

[PATCH i386 AVX512] [73/n] Extend reduc min/max autogen.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends pattern for reducation maxmin autogen. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes. -- Thanks, K diff

[PATCH i386 AVX512] [74/n] Add byte/word max/mix reduction.

2014-10-09 Thread Kirill Yukhin
Hello, Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (emit_reduc_half): Handle V64QI and V32HI mode. * config/i386/sse.md (define_mode_iterator VI_AVX512BW): New. (define_expand

[PATCH i386 AVX512] [75/n] Update vec_init.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends vec_init-related routines/patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI and V32HI modes, update V8HI, V16QI,

[PATCH i386 AVX512] [76/n] Extend int 2 float conversions.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends autogeneration of SI-2-SF conversions. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): Handle V16SI mode and TARGET_AVX512VL. --

[PATCH i386 AVX512] [77/n] Use blend for cond-set V32HI and V64QI.

2014-10-09 Thread Kirill Yukhin
Hello, This patch extends movcc/vcond autogen. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_sse_movcc): Handle V64QI and V32HI mode. (ix86_expand_int_vcond): Ditto. -- Thanks, K

Re: [i386] Replace builtins with vector extensions

2014-10-09 Thread Kirill Yukhin
Hello folks, On 09 Oct 14:57, Uros Bizjak wrote: On Thu, Oct 9, 2014 at 2:28 PM, Marc Glisse marc.gli...@inria.fr wrote: On Thu, 9 Oct 2014, Uros Bizjak wrote: OK, let's go in the proposed way, more detailed: - we begin with +-*/ of float/double vectors. IMO, this would result in a

Re: [PATCH 5/n] OpenMP 4.0 offloading infrastructure: libgomp

2014-10-08 Thread Kirill Yukhin
Hello Jakub, On 07 Oct 21:40, Jakub Jelinek wrote: On Tue, Oct 07, 2014 at 10:12:22PM +0400, Ilya Verbin wrote: OT, from the various IRC discussions with Kirill on IRC, it seems you or your colleges typed pretty much all target related tests from OpenMP 4.0.1 examples, can those be also

Re: [RFC PATCH] Enable V32HI/V64QI const permutations

2014-10-06 Thread Kirill Yukhin
Hello Jakub, On 03 Oct 16:39, Jakub Jelinek wrote: --- gcc/config/i386/sse.md.jj 2014-09-26 10:33:18.0 +0200 +++ gcc/config/i386/sse.md2014-10-03 15:03:44.170446452 +0200 @@ -10386,7 +10386,8 @@ (define_mode_iterator VEC_PERM_CONST (V8SI TARGET_AVX) (V4DI TARGET_AVX)

[PATCH i386 AVX512] [63/n] Add vpshufb, perm autogen.

2014-10-06 Thread Kirill Yukhin
Hello, This patch extends permutations for AVX-512*. Comments are welcome! Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle V64QImode, V8HImode, V16HImode,

Re: [PATCH i386 AVX512] [60/n] Update 128bit ashrv insn pattern.

2014-10-03 Thread Kirill Yukhin
Hello Uroš, On 29 Sep 09:54, Uros Bizjak wrote: +(define_expand vashrv2di3mask_name + [(set (match_operand:V2DI 0 register_operand) + (ashiftrt:V2DI + (match_operand:V2DI 1 register_operand) + (match_operand:V2DI 2 nonimmediate_operand)))] + TARGET_XOP ||

Re: [PATCH i386 AVX512] [61/n] Update FP logic insn patterns.

2014-10-03 Thread Kirill Yukhin
Hello Uroš, On 29 Sep 10:00, Uros Bizjak wrote: + /* There is no vandnp[sd] in avx512f. Use vpandn[qd]. */ + if (!TARGET_AVX512DQ) All other patterns also have mask_applied condition here. Is the above condition correct? I think this is correct since in this pattern we use AVX-512

Re: [PATCH i386 AVX512] [62/n] Add vpmaddubsw,vdbpsadbw insn patterns.

2014-10-03 Thread Kirill Yukhin
Hello Uroš, On 29 Sep 10:08, Uros Bizjak wrote: On Fri, Sep 26, 2014 at 4:09 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: +(define_insn avx512bw_pmaddubsw512modemask_name + [(set (match_operand:VI2_AVX512VL 0 register_operand =v) + (unspec:VI2_AVX512VL

[PATCH i386 AVX512] [57/n] Extend blend/cmp/brodcast insn patterns.

2014-09-26 Thread Kirill Yukhin
Hello, Patch in the bottom extends blend/cmp/brodcast insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn avx512f_blendmmode): Delete. (define_insn

[PATCH i386 AVX512] [58/n] Add vpmul[u]dq insn patterns.

2014-09-26 Thread Kirill Yukhin
Hello, Patch in the bottom adds support for vpmul[u]dq insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand vec_widen_umult_even_v8simask_name): Add masking. (define_insn

[PATCH i386 AVX512] [59/n] Add vptest[n]m, ucmp, cmpeq insn patterns.

2014-09-26 Thread Kirill Yukhin
Hello, Patch in the bottom adds support for vptest[n]m, ucmp, cmpeq. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,

[PATCH i386 AVX512] [60/n] Update 128bit ashrv insn pattern.

2014-09-26 Thread Kirill Yukhin
Hello, This tiny patch extends 128bit ashrv expander. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete. (define_expand vashrmode3mask_name):

[PATCH i386 AVX512] [61/n] Update FP logic insn patterns.

2014-09-26 Thread Kirill Yukhin
Hello, This patch extends andnot and any_logic insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn sse_andnotVF_128_256:mode3mask_name): Add masking, use VF_128_256 mode

[PATCH i386 AVX512] [62/n] Add vpmaddubsw,vdbpsadbw insn patterns.

2014-09-26 Thread Kirill Yukhin
Hello, This patch introduces patterns for vpmaddubsw and vdbpsadbw insn. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_c_enum unspec): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.

Re: [PATCH i386 AVX512] [52.1/n] Add vec2mask and mask2vec insn patterns.

2014-09-25 Thread Kirill Yukhin
Author: Kirill Yukhin kirill.yuk...@intel.com Date: Thu Sep 25 12:01:15 2014 +0400 AVX-512. 52.1. D2M and M2D patterns. diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index 690bed5..9566884 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md

Re: [PATCH i386 AVX512] [52.1/n] Add vec2mask and mask2vec insn patterns.

2014-09-25 Thread Kirill Yukhin
On 25 Sep 13:42, Kirill Yukhin wrote: Hello, As suggested, this is splitted out part of [52/n] patch, which introduces new vec2mask and mask2vec insn patterns. As suggested, I've got rid off use of UNSPEC_CVTINT2MASK unspec. Unfortunatelly, only partially. I suppose, that vec2mask generic

[PATCH i386 AVX512] [56/n] Add plus/minus/abs/neg/andnot insn patterns.

2014-09-25 Thread Kirill Yukhin
Hello, Patch in the bottom extends plus/minus/abs/andnot patterns to support AVX-512. I've used questionable hack in the patterns. Instead of writing dozen similar patterns with masking I've simply substed them, prohibiting non-mask variant in the pattern condition. E.g.: (define_expand

[PATCH i386 AVX512] [51/n] Add pd2dq and dq2pd converts.

2014-09-24 Thread Kirill Yukhin
Hello, Patch in the bottom adds support for pd2dq and dq2pd conversions. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...

[PATCH i386 AVX512] [52/n] Add convert ps2pd and ps2dq.

2014-09-24 Thread Kirill Yukhin
Hello, Patch in the bottom adds support for ps2dq and ps2pd conversions. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_c_enum unspec): Add UNSPEC_CVTINT2MASK. (define_insn

[PATCH, bootstrap PR63235] Fix bootstrap.

2014-09-24 Thread Kirill Yukhin
Hello, Patch in the bottom fixes bootstrap (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63235) gcc/ * varpool.c (varpool_node::add): Pass decl attributes to lookup_attribute. Is it ok for trunk? -- Thanks, K diff --git a/gcc/varpool.c b/gcc/varpool.c index 8001c93..3761f14

[PATCH i386 AVX512] [53/n] Update vec_setmode_0 pattern constraints.

2014-09-24 Thread Kirill Yukhin
Hello, Patch in the bottom extends to EVEX constraints of vec_setmode_0 insn pattern. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn vec_setmode_0): Add EVEX version. -- Thanks, K diff --git

[PATCH i386 AVX512] [54/n] Add mov[dlh]dup insns support.

2014-09-24 Thread Kirill Yukhin
Hello, patch in the bottom introduces support for vmov[dlh]dup insns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn avx_movshdup256mask_name): Add masking. (define_insn

[PATCH i386 AVX512] [55/n] Extend `perm' insn patterns.

2014-09-24 Thread Kirill Yukhin
Hello, Patch in the bottom extends `perm' insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand avx2_avx512f_permmode): Rename to ... (define_expand avx2_avx512bw_permmode):

[PATCH i386 AVX512] [46/n] Add widening pmov.

2014-09-23 Thread Kirill Yukhin
Hello, Patch in the bottom extends pmov insns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn avx2_codev16qiv16hi2mask_name): Add masking. (define_insn

[PATCH i386 AVX512] [47/n] Add insert insn patterns.

2014-09-23 Thread Kirill Yukhin
Hello, Patch in the bottom extends insert insn patterns. It also removes some exapnds. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk?

[PATCH i386 AVX512] [48/n] Add shuffles (pd, 32x4, etc.).

2014-09-23 Thread Kirill Yukhin
Hello, Patch in the bottom extends more shuffle patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd, CODE_FOR_sse2_sse2_shufpd_mask,

[PATCH i386 AVX512] [49/n] Add vpshuf[lh]w insn patterns.

2014-09-23 Thread Kirill Yukhin
Hello, Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_c_enum unspec): Add

[PATCH i386 AVX512] [50/n] Add cvtps2 insn patterns.

2014-09-23 Thread Kirill Yukhin
Hello, Patch in the bottom extends truncation insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ *

Re: [PATCH i386 AVX512] [49/n] Add vpshuf[lh]w insn patterns.

2014-09-23 Thread Kirill Yukhin
Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? Forgot to mention, that patch adds support for PSHUF[HL]W insns. -- Thanks, K

[PATCH i386 AVX512] [42/n] Add masked vunpck[lh]pd.

2014-09-18 Thread Kirill Yukhin
Hello, Patch in the bottom extends/adds patterns for masked unpack instructions. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn avx_unpckhpd256mask_name): Add masking. (define_insn

[PATCH i386 AVX512] [43/n] Add rest of vunpck[lh]ps.

2014-09-18 Thread Kirill Yukhin
Hello, This patch adds rest of unpack insn patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn avx_unpckhps256mask_name): Add masking. (define_insn

[PATCH i386 AVX512] [44/n] Add vsgufps insn patterns.

2014-09-18 Thread Kirill Yukhin
Hello, Patch in the bottom extends AVX-512 shufps. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand avx_shufps256mask_expand4_name): Add masking. (define_insn

[PATCH i386 AVX512] [45/n] Add vshufpd insn patterns.

2014-09-18 Thread Kirill Yukhin
Hello, This patch supports AVX-512's vshufpd insns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand avx_shufpd256mask_expand4_name): Add masking. (define_insn

Re: [PATCH i386 AVX512] [41/n] Extend extract insn patterns.

2014-09-16 Thread Kirill Yukhin
Hello Uroš, On 16 Sep 09:47, Uros Bizjak wrote: + TARGET_AVX512DQ (INTVAL (operands[2]) = INTVAL (operands[3]) - 1) Ouch, you have assignment instead of comparison here! Thanks, fixed! + (set (attr memory) + (if_then_else (match_test MEM_P (operands[0])) + (const_string

[PATCH i386 AVX512] [41/n] Extend extract insn patterns.

2014-09-15 Thread Kirill Yukhin
Hello, This patch extends extract insn patterns. It also fixes ICE on testsuite when F16C switched off. Also it fixes condition in old xtract pattern. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c

[PATCH i386 AVX512] [39/n] Extend ashrv insn patterns.

2014-09-12 Thread Kirill Yukhin
Hello, Patch in the bottom (derived with git diff -w) extends ashrv insns patterns. I choosen to add `_1' to `VI24_AVX512BW_1' mode iterator because of it is irregular. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ *

[PATCH i386 AVX512] [40/n] Extend vcvtps2ph insn patterns.

2014-09-12 Thread Kirill Yukhin
Hello, Patch in the bottom extends vcvtps2ph insn patterns Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_insn vcvtph2psmask_name): Add masking. (define_insn *vcvtph2ps_loadmask_name):

[PATCH i386 AVX512] [37/n] Extend max/min insn patterns.

2014-09-11 Thread Kirill Yukhin
Hello, Patch in the bottom extends integer max/min patterns. Also, it seems, like rounding variant was generated for maxmin patterns. Bug fixed. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (VI128_256): Delete.

[PATCH i386 AVX512] [38/n] Extend vpternlog, valign, vrotate insn patterns.

2014-09-11 Thread Kirill Yukhin
Hello, Patch in the bottom extends patterns for rotate, ternlog and align. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_iterator VI48_AVX512VL): New. (define_expand

[PATCH i386 AVX512] [34/n] AVX-512. Extend vpermvar insn patterns.

2014-09-10 Thread Kirill Yukhin
Hello, patch in the bottom extends PERMVAR based patterns. Hello, Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_attr avx2_avx512): Rename from avx2_avx512bw. (define_mode_iterator

[PATCH i386 AVX512] [35/n] Add vperm[it]2 insns support.

2014-09-10 Thread Kirill Yukhin
Hello, Patch in the bottom extends perm[t|i] patterns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand avx512_vpermi2varmode3_maskz with VI48F mode iterator): Rename from

[PATCH i386 AVX512] [36/n] Extend gather insn patterns.

2014-09-10 Thread Kirill Yukhin
Hello, Patch in the bottom extends gather instructions support. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_expand avx512_gathersimode): Rename from avx512f_gathersimode.

Re: [PATCH i386 AVX512] [30/n] Add FMA patterns.

2014-09-09 Thread Kirill Yukhin
Hello Uroš, On 28 Aug 20:44, Uros Bizjak wrote: On Thu, Aug 28, 2014 at 3:48 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: Please document these changes as: [new_pattern_name]: Rename from [old_pattern_name] and use VF_AVXyy mode iterator. -(define_insn

Re: [PATCH i386 AVX512] [33/n] Add patterns for compress, expand.

2014-09-09 Thread Kirill Yukhin
Hello Uroš, On 30 Aug 10:37, Uros Bizjak wrote: On Fri, Aug 29, 2014 at 4:00 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: Please note that you can use UNSPEC_COMPRESS everywhere, there is no need for UNSPEC_COMPRESS_STORE and can be deleted. On a related note, it looks to me

Re: [PATCH i386 AVX512] [32/n] Add reduce,range,fpclass.

2014-09-09 Thread Kirill Yukhin
On 30 Aug 10:21, Uros Bizjak wrote: Hello, It looks to me that _SCALAR unspecs are redundant, and should be possible to use UNSPEC_REDUCE for all patterns without unwanted matching. Updated patch in the bottom gcc/ * config/i386/i386.c (ix86_expand_args_builtin): Handle

Re: [PATCH i386 AVX512] [29/n] Add narrowing vpmov.

2014-08-29 Thread Kirill Yukhin
Hello Uroš, On 28 Aug 20:34, Uros Bizjak wrote: On Thu, Aug 28, 2014 at 3:15 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: Is it ok for trunk? There is one inconsistency - existing pattern is named ..._mask_store, new ones are named ..._store_mask. Is there a reason for this difference

Re: [PATCH i386 AVX512] [30/n] Add FMA patterns.

2014-08-29 Thread Kirill Yukhin
Hello Uroš, On 28 Aug 20:44, Uros Bizjak wrote: On Thu, Aug 28, 2014 at 3:48 PM, Kirill Yukhin kirill.yuk...@gmail.com wrote: Is it ok for trunk? I'd suggest to put noavx512 at the beginning, so: noavx512_sd_mask_codeforfma_fmsub_modesd_maskz_nameround_name This is not possible currently

[PATCH i386 AVX512] [31/n] Update float unspec namely storeu,rcp14,rsqrt14,scalef,getexp,fixupimm,rndscale,getmant.

2014-08-29 Thread Kirill Yukhin
Hello, Patch in the bottom updates few UNSPEC insn patterns w/ new mode iterator. Additionally names were slightly changed. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (avx512f_getmantv2df_round):

[PATCH i386 AVX512] [32/n] Add reduce,range,fpclass.

2014-08-29 Thread Kirill Yukhin
Hello, Patch in the bottom adds support for reduce,range,fpclass. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/i386.c (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,

[PATCH i386 AVX512] [33/n] Add patterns for compress, expand.

2014-08-29 Thread Kirill Yukhin
Hello, Patch in the bottom extends support of compress and expand insns. Bootstrapped. AVX-512* tests on top of patch-set all pass under simulator. Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_iterator VI48F): New. (define_insn avx512f_compressmode_mask):

<    1   2   3   4   5   6   7   8   9   >