Re: [PATCH, PR68337] Don't fold memcpy/memmove we want to instrument

2015-11-23 Thread Ilya Enkovich
On 23 Nov 10:39, Richard Biener wrote: > On Fri, Nov 20, 2015 at 3:30 PM, Ilya Enkovich <enkovich@gmail.com> wrote: > > On 20 Nov 14:54, Richard Biener wrote: > >> On Fri, Nov 20, 2015 at 2:08 PM, Ilya Enkovich <enkovich@gmail.com> > >> wrote: >

Re: [PATCH] Avoid false vector mask conversion

2015-11-23 Thread Ilya Enkovich
Ping 2015-11-13 16:17 GMT+03:00 Ilya Enkovich <enkovich@gmail.com>: > 2015-11-13 13:03 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >> On Thu, Nov 12, 2015 at 5:08 PM, Ilya Enkovich <enkovich@gmail.com> >> wrote: >>> Hi, >>>

Re: [PATCH, PR68337] Don't fold memcpy/memmove we want to instrument

2015-11-23 Thread Ilya Enkovich
On 23 Nov 14:29, Richard Biener wrote: > On Mon, Nov 23, 2015 at 12:33 PM, Ilya Enkovich <enkovich@gmail.com> > wrote: > > > > I see. But it should still be OK to check type in case of strict aliasing, > > right? > > No, memcpy is always "no-s

Re: [PATCH, PR68337] Don't fold memcpy/memmove we want to instrument

2015-11-20 Thread Ilya Enkovich
On 20 Nov 14:54, Richard Biener wrote: > On Fri, Nov 20, 2015 at 2:08 PM, Ilya Enkovich <enkovich@gmail.com> wrote: > > On 19 Nov 18:19, Richard Biener wrote: > >> On November 19, 2015 6:12:30 PM GMT+01:00, Bernd Schmidt > >> <bschm...@redhat.com> wr

Re: [PATCH, PR tree-optimization/68327] Compute vectype for live phi nodes when copmputing VF

2015-11-20 Thread Ilya Enkovich
On 20 Nov 14:31, Ilya Enkovich wrote: > 2015-11-20 14:28 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > > On Wed, Nov 18, 2015 at 2:53 PM, Ilya Enkovich <enkovich@gmail.com> > > wrote: > >> 2015-11-18 16:44 GMT+03:00 Richard Biener <richard.gu

Re: [PATCH, PR tree-optimization/68327] Compute vectype for live phi nodes when copmputing VF

2015-11-20 Thread Ilya Enkovich
2015-11-20 14:28 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Wed, Nov 18, 2015 at 2:53 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> 2015-11-18 16:44 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >>> On Wed, Nov 18, 2015

Re: [PATCH, PR68337] Don't fold memcpy/memmove we want to instrument

2015-11-20 Thread Ilya Enkovich
On 19 Nov 18:19, Richard Biener wrote: > On November 19, 2015 6:12:30 PM GMT+01:00, Bernd Schmidt > <bschm...@redhat.com> wrote: > >On 11/19/2015 05:31 PM, Ilya Enkovich wrote: > >> Currently we fold all memcpy/memmove calls with a known data size. > >&

[PATCH, PR68337] Don't fold memcpy/memmove we want to instrument

2015-11-19 Thread Ilya Enkovich
Ilya Enkovich <enkovich@gmail.com> * gimple-fold.c (gimple_fold_builtin_memory_op): Don't fold non-useless call if we are going to instrument it. gcc/testsuite/ 2015-11-19 Ilya Enkovich <enkovich@gmail.com> * gcc.target/i386/mpx/pr68337.c: New

Re: [PATCH] Get rid of insn-codes.h in optabs-tree.c

2015-11-19 Thread Ilya Enkovich
On 19 Nov 16:46, Bernd Schmidt wrote: > On 11/19/2015 03:28 PM, Ilya Enkovich wrote: > >This is a refactoring patch discussed in another thread [1]. It gets > >rid of CODE_FOR_nothing usage in optabs-tree.c by introducing boolean > >predicated in optabs-query. Boot

[PATCH] Get rid of insn-codes.h in optabs-tree.c

2015-11-19 Thread Ilya Enkovich
/msg02973.html -- gcc/ 2015-11-19 Ilya Enkovich <enkovich@gmail.com> * optabs-query.h (get_vec_cmp_icode): Remove 'static'. (get_vcond_mask_icode): Likewise. (get_extend_icode): New. (get_float_icode): New. (get_fix_icode): New. (can_ex

Re: x32 libraries

2015-11-18 Thread Ilya Enkovich
For libmpx the reason is that MPX ISA doesn't support x32. I.e. MPX instructions can't use 32bit bounds in 64bit mode. Ilya 2015-11-18 9:34 GMT+03:00 Ulrich Drepper : > Is there a reason why libmpx and libgccjit aren't build for x32? This > is in the case when building IA-32,

[PATCH, PR target/68405, i386, committed] Add missing break

2015-11-18 Thread Ilya Enkovich
Hi, This patch adds missing break for ix86_expand_mask_vec_cmp. Bootstrapped and tested on x86_64-unknown-linux-gnu. Committed to trunk as obvious. Thanks, Ilya -- gcc/ 2015-11-18 Ilya Enkovich <enkovich@gmail.com> PR target/68405 * config/i386/

[PATCH, PR tree-optimization/68327] Compute vectype for live phi nodes when copmputing VF

2015-11-18 Thread Ilya Enkovich
-linux-gnu. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-18 Ilya Enkovich <enkovich@gmail.com> PR tree-optimization/68327 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't skip non-relevant live phi nodes. gcc/testsuite/ 2015-11-18 Ilya En

Re: [PATCH, PR tree-optimization/68327] Compute vectype for live phi nodes when copmputing VF

2015-11-18 Thread Ilya Enkovich
2015-11-18 16:44 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Wed, Nov 18, 2015 at 12:34 PM, Ilya Enkovich <enkovich@gmail.com> > wrote: >> Hi, >> >> When we compute vectypes we skip non-relevant phi nodes. But we process >> non-r

Re: [PATCH, PR middle-end/68134] Reject scalar modes in default get_mask_mode hook

2015-11-17 Thread Ilya Enkovich
2015-11-17 15:26 GMT+03:00 Bernd Schmidt <bschm...@redhat.com>: > On 11/17/2015 12:49 PM, Ilya Enkovich wrote: >> >> Default hook for get_mask_mode is supposed to return integer vector >> modes. This means it should reject calar modes returned by >> mode_for_ve

[PATCH, PR middle-end/68134] Reject scalar modes in default get_mask_mode hook

2015-11-17 Thread Ilya Enkovich
Ilya Enkovich <enkovich@gmail.com> PR middle-end/68134 * targhooks.c (default_get_mask_mode): Filter out scalar modes returned by mode_for_vector. gcc/testsuite/ 2015-11-17 Ilya Enkovich <enkovich@gmail.com> PR middle-end/68134

Re: [PATCH] Fix ICE for boolean comparison

2015-11-13 Thread Ilya Enkovich
2015-11-13 14:28 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Fri, Nov 13, 2015 at 11:52 AM, Ilya Enkovich <enkovich@gmail.com> > wrote: >> 2015-11-13 13:38 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >>> On Thu, Nov 12, 2

Re: [PATCH] Fix ICE for boolean comparison

2015-11-13 Thread Ilya Enkovich
2015-11-13 13:38 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Thu, Nov 12, 2015 at 4:44 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> Currently compiler may ICE when loaded boolean is compared with vector >> invariant or ano

Re: [PATCH] Avoid false vector mask conversion

2015-11-13 Thread Ilya Enkovich
2015-11-13 13:03 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Thu, Nov 12, 2015 at 5:08 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> When we use LTO for fortran we may have a mix 32bit and 1bit scalar >> booleans. It means we

[PATCH, PR68286] Fix vector comparison expand

2015-11-12 Thread Ilya Enkovich
on powerpc64le-unknown-linux-gnu. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-12 Ilya Enkovich <enkovich@gmail.com> * expr.c (do_store_flag): Expand vector comparison as VEC_COND_EXPR if vector comparison is not supported by target. gcc/testsuite/ 2015-11-12

Re: Recent patch craters vector tests on powerpc64le-linux-gnu

2015-11-12 Thread Ilya Enkovich
2015-11-12 12:48 GMT+03:00 James Greenhalgh : > On Wed, Nov 11, 2015 at 05:12:29PM -0600, Bill Schmidt wrote: >> Hi Ilya, >> >> The patch committed as r230098 has caused a number of ICEs on >> powerpc64le-linux-gnu. > > And arm-none-linux-gnueabihf, and

[PATCH, PR tree-optimization/PR68305] Support masked COND_EXPR in SLP

2015-11-12 Thread Ilya Enkovich
Hi, This patch fixes a way operand is chosen by its num for COND_EXPR. Bootstrapped and regtested on x86_64-unknown-linux-gnu. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-12 Ilya Enkovich <enkovich@gmail.com> PR tree-optimization/68305 * tree-vect

Re: [mask-vec_cond, patch 1/2] Support vectorization of VEC_COND_EXPR with no embedded comparison

2015-11-12 Thread Ilya Enkovich
2015-11-12 13:03 GMT+03:00 Ramana Radhakrishnan <ramana@googlemail.com>: > On Thu, Oct 8, 2015 at 4:50 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> This patch allows COND_EXPR with no embedded comparison to be vectorized. >> It's

Re: [PATCH] New version of libmpx with new memmove wrapper

2015-11-12 Thread Ilya Enkovich
2015-11-05 13:37 GMT+03:00 Aleksandra Tsvetkova : > New version of libmpx was added. There is a new function get_bd() that > allows to get bounds directory. Wrapper for memmove was modified. Now > it moves data and then moves corresponding bounds directly from one > bounds

[PATCH] Fix ICE for masked store of boolean value

2015-11-12 Thread Ilya Enkovich
Hi, We may get ICE in vectorizer in case stored value get vectype not compatible with a storage. This may happen for bool values. This patch fixes ICE. Bootstrapped and tested on x86_64-unknown-linux-gnu. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-12 Ilya Enkovich <enkov

[PATCH, doc] Document some standard pattern names

2015-11-12 Thread Ilya Enkovich
Hi, This patch adds description for several standard pattern names. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-12 Ilya Enkovich <enkovich@gmail.com> * doc/md.texi (vec_cmp@var{m}@var{n}): New item. (vec_cmpu@var{m}@var{n}): New item. (vcond@var{m}

[PATCH] Fix ICE for boolean comparison

2015-11-12 Thread Ilya Enkovich
but also needs to be fixed for comparison. This patch was bootstrapped and tested on x86_64-unknown-linux-gnu. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-12 Ilya Enkovich <enkovich@gmail.com> * tree-vect-loop.c (vect_determine_vectorization_factor): Check mix of b

[PATCH] Enable libmpx by default on supported target

2015-11-12 Thread Ilya Enkovich
Hi, libmpx was added close to release date and therefore was disabled by default for all targets. This patch enables it by default for supported targets. Is it OK for trunk? Thanks, Ilya -- 2015-11-12 Tsvetkova Alexandra * configure.ac: Enable

[PATCH] Avoid false vector mask conversion

2015-11-12 Thread Ilya Enkovich
=1,18 if(a(i).gt.0.d0) then b(i)=.true. else b(i)=.false. endif enddo Bootstrapped and tested on x86_64-unknown-linux-gnu. OK for trunk? Thanks, Ilya -- gcc/ 2015-11-12 Ilya Enkovich <enkovich@gmail.com> * tree-vect-patt

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-10 Thread Ilya Enkovich
2015-11-10 17:46 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Tue, Nov 10, 2015 at 1:48 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> 2015-11-10 15:33 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >>> On Fri, Nov 6, 201

Re: [mask conversion, patch 2/2, i386] Add pack/unpack patterns for scalar masks

2015-11-10 Thread Ilya Enkovich
On 19 Oct 15:30, Ilya Enkovich wrote: > Hi, > > This patch adds patterns to be used for vector masks pack/unpack for AVX512. > Bootstrapped and tested on x86_64-unknown-linux-gnu. Does it look OK? > > Thanks, > Ilya Here is a modified version which reflects changes

Re: [RFC] Combine vectorized loops with its scalar remainder.

2015-11-10 Thread Ilya Enkovich
2015-11-10 15:30 GMT+03:00 Richard Biener : > On Tue, Nov 3, 2015 at 1:08 PM, Yuri Rumyantsev wrote: >> Richard, >> >> It looks like misunderstanding - we assume that for GCCv6 the simple >> scheme of remainder will be used through introducing new

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-10 Thread Ilya Enkovich
2015-11-10 15:33 GMT+03:00 Richard Biener : > On Fri, Nov 6, 2015 at 2:28 PM, Yuri Rumyantsev wrote: >> Richard, >> >> I tried it but 256-bit precision integer type is not yet supported. > > What's the symptom? The compare cannot be expanded? Just

Re: [vec-cmp, patch 2/6] Vectorization factor computation

2015-11-09 Thread Ilya Enkovich
2015-10-20 16:45 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Wed, Oct 14, 2015 at 1:21 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> 2015-10-13 16:37 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >>> On Thu, Oct 8, 2015

Re: [PATCH] Use signed boolean type for boolean vectors

2015-11-09 Thread Ilya Enkovich
On 03 Nov 14:42, Richard Biener wrote: > On Wed, Oct 28, 2015 at 4:30 PM, Ilya Enkovich <enkovich@gmail.com> wrote: > > 2015-10-28 18:21 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > >> On Wed, Oct 28, 2015 at 2:13 PM, Ilya Enkovich <enkovich

Re: [vec-cmp, patch 3/6] Vectorize comparison

2015-11-09 Thread Ilya Enkovich
On 26 Oct 16:09, Richard Biener wrote: > On Wed, Oct 14, 2015 at 6:12 PM, Ilya Enkovich <enkovich@gmail.com> wrote: > > + > > + ops.release (); > > + vec_defs.release (); > > No need to release auto_vec<>s

Re: [vec-cmp, patch 4/6] Support vector mask invariants

2015-11-09 Thread Ilya Enkovich
On 26 Oct 16:21, Richard Biener wrote: > On Wed, Oct 14, 2015 at 6:13 PM, Ilya Enkovich <enkovich@gmail.com> wrote: > > - val = fold_unary (VIEW_CONVERT_EXPR, TREE_TYPE (type), val); > > + { > > + /* Can't use VIEW_CONVER

Re: [PATCH] Fix c-c++-common/torture/vector-compare-1.c on powerpc

2015-11-05 Thread Ilya Enkovich
ted on powerpc64le-unknown-linux-gnu and x86_64-unknown-linux-gnu. Applied to trunk. Thanks, Ilya -- gcc/ 2015-11-05 Ilya Enkovich <enkovich@gmail.com> * tree-vect-generic.c (do_compare): Use -1 for true result instead of 1. diff --git a/gcc/tree-vect-generic.

Re: [vec-cmp, patch 1/6] Add optabs for vector comparison

2015-11-05 Thread Ilya Enkovich
2015-10-27 23:52 GMT+03:00 Jeff Law : > > Sigh. I searched for the enum type, not for CODE_FOR_nothing ;( My bad. > > If it's easy to get rid of, yes. I believe we've got 3 uses of > CODE_FOR_nothing. AFAICT in none of those cases do we care about the code > other than does it

[PATCH, PR tree-optimization/68145] Fix vectype computation in vectorizable_operation

2015-11-05 Thread Ilya Enkovich
vectype in such cases, this should always work fine for operations on booleans. Bootstrapped on x86_64-unknown-linux-gnu. Regression tesing is in progress. Ok if no regressions? Thanks, Ilya -- gcc/ 2015-11-05 Ilya Enkovich <enkovich@gmail.com> PR tree-optimization

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-29 Thread Ilya Enkovich
On 28 Oct 22:37, Ilya Enkovich wrote: > Seems the problem occurs in this check in expand_vector_operations_1: > > /* A scalar operation pretending to be a vector one. */ > if (VECTOR_BOOLEAN_TYPE_P (type) > && !VECTOR_MODE_P (TYPE_MODE (type)) > &

[PATCH] Fix c-c++-common/torture/vector-compare-1.c on powerpc

2015-10-29 Thread Ilya Enkovich
have comparison of doubles be lowered but following VEC_COND_EXPR not lowered. It causes wrong VEC_COND_EXPR result. i checked this patch fixes the test. Full regression testing on powerpc64le-unknown-linux-gnu is in progress. OK if no regression? Thanks, Ilya -- gcc/ 2015-10-29 Ilya

[PATCH] Use signed boolean type for boolean vectors

2015-10-28 Thread Ilya Enkovich
-- gcc/ 2015-10-28 Ilya Enkovich <enkovich@gmail.com> * optabs.c (expand_vec_cond_expr): Always get sign from type. * tree.c (wide_int_to_tree): Support negative values for boolean. (build_nonstandard_boolean_type): Use signed type for booleans with pre

Re: [mask-load, patch 1/2] Use boolean predicate for masked loads and store

2015-10-28 Thread Ilya Enkovich
On 23 Oct 13:36, Ilya Enkovich wrote: > 2015-10-23 13:32 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > > > > No, we'd get > > > > mask_1 = bool != 1; > > > > and the 'mask' variable should have been simplified to 'bool' > > (yes,

Re: [PATCH] Use signed boolean type for boolean vectors

2015-10-28 Thread Ilya Enkovich
2015-10-28 18:21 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Wed, Oct 28, 2015 at 2:13 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> Testing boolean vector conversions I found several runtime regressions >> and investigation

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-28 Thread Ilya Enkovich
Seems the problem occurs in this check in expand_vector_operations_1: /* A scalar operation pretending to be a vector one. */ if (VECTOR_BOOLEAN_TYPE_P (type) && !VECTOR_MODE_P (TYPE_MODE (type)) && TYPE_MODE (type) != BLKmode) return; This is to filter out scalar operations

Re: [PATCH, PR68062] Fix uniform vector operation lowering

2015-10-26 Thread Ilya Enkovich
On 26 Oct 10:56, Richard Biener wrote: > On Mon, Oct 26, 2015 at 10:35 AM, Ilya Enkovich <enkovich@gmail.com> > wrote: > > On 26 Oct 10:09, Richard Biener wrote: > >> On Sat, Oct 24, 2015 at 12:29 AM, Ilya Enkovich <enkovich@gmail.com> > >> wr

Re: [PATCH, PR68062] Fix uniform vector operation lowering

2015-10-26 Thread Ilya Enkovich
On 26 Oct 10:09, Richard Biener wrote: > On Sat, Oct 24, 2015 at 12:29 AM, Ilya Enkovich <enkovich@gmail.com> > wrote: > > 2015-10-24 0:32 GMT+03:00 Jeff Law <l...@redhat.com>: > >> On 10/23/2015 09:26 AM, Ilya Enkovich wrote: > >>> > >>&

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-23 Thread Ilya Enkovich
On 23 Oct 11:40, Richard Biener wrote: > On Thu, Oct 22, 2015 at 6:21 PM, Ilya Enkovich <enkovich@gmail.com> wrote: > > On 22 Oct 12:37, Andreas Schwab wrote: > >> Ilya Enkovich <enkovich@gmail.com> writes: > >> > >> > 2015-1

Re: [mask-load, patch 1/2] Use boolean predicate for masked loads and store

2015-10-23 Thread Ilya Enkovich
2015-10-23 12:59 GMT+03:00 Richard Biener : > > ICK. So what does the above do? It basically preserves the boolean condition > as "mask" unless ... we ought to swap it (formerly easy, just swap arguments > of the cond_expr, now a bit harder, we need to invert the

Re: [mask-load, patch 1/2] Use boolean predicate for masked loads and store

2015-10-23 Thread Ilya Enkovich
2015-10-23 13:32 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Fri, Oct 23, 2015 at 12:23 PM, Ilya Enkovich <enkovich@gmail.com> > wrote: >> 2015-10-23 12:59 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >>> >>> ICK. So

[PATCH, committed] Fix uninitialized variable warning

2015-10-23 Thread Ilya Enkovich
Hi, This patch fixes uninitialized variable warning. Applied to trunk. Thanks, Ilya -- gcc/ 2015-10-23 Ilya Enkovich <enkovich@gmail.com> * tree-vect-generic.c (expand_vector_condition): Avoid uninitialized variable warning. diff --git a/gcc/tree-vect-generic.c

[PATCH, PR68062] Fix uniform vector operation lowering

2015-10-23 Thread Ilya Enkovich
/ 2015-10-23 Ilya Enkovich <enkovich@gmail.com> * tree-vect-generic.c (expand_vector_operations_1): Check optab exists before use it. gcc/testsuite/ 2015-10-23 Ilya Enkovich <enkovich@gmail.com> * g++.dg/pr68062.C: New test. diff --git a/gcc/test

Re: [PATCH, PR68062] Fix uniform vector operation lowering

2015-10-23 Thread Ilya Enkovich
2015-10-24 0:32 GMT+03:00 Jeff Law <l...@redhat.com>: > On 10/23/2015 09:26 AM, Ilya Enkovich wrote: >> >> Hi, >> >> This patch checks optab exists before using it vector vector statement >> lowering. It fixes compilation of test from PR68062 with -funs

Re: [vec-cmp, patch 1/6] Add optabs for vector comparison

2015-10-22 Thread Ilya Enkovich
2015-10-21 20:25 GMT+03:00 Jeff Law <l...@redhat.com>: > On 10/08/2015 08:52 AM, Ilya Enkovich wrote: >> >> Hi, >> >> This series introduces autogeneration of vector comparison and its support >> on i386 target. It lets comparison statements to be vecto

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-22 Thread Ilya Enkovich
2015-10-22 13:13 GMT+03:00 Andreas Schwab : > FAIL: gcc.c-torture/compile/pr54713-1.c -O0 (internal compiler error) Can't reproduce it on i386. What's config used? Ilya

Re: [vec-cmp, patch 5/6] Disable bool patterns when possible

2015-10-22 Thread Ilya Enkovich
On 21 Oct 11:45, Jeff Law wrote: > On 10/08/2015 09:15 AM, Ilya Enkovich wrote: > >Hi, > > > >This patch disables transformation of boolean computations into integer ones > >in case target supports vector comparison. Pattern still applies to > >transform res

Re: [vec-cmp, patch 1/6] Add optabs for vector comparison

2015-10-22 Thread Ilya Enkovich
2015-10-22 18:52 GMT+03:00 Jeff Law <l...@redhat.com>: > On 10/22/2015 04:35 AM, Ilya Enkovich wrote: >> >> 2015-10-21 20:25 GMT+03:00 Jeff Law <l...@redhat.com>: >>> >>> On 10/08/2015 08:52 AM, Ilya Enkovich wrote: >>>> >>>&g

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-22 Thread Ilya Enkovich
On 22 Oct 12:37, Andreas Schwab wrote: > Ilya Enkovich <enkovich@gmail.com> writes: > > > 2015-10-22 13:13 GMT+03:00 Andreas Schwab <sch...@suse.de>: > >> FAIL: gcc.c-torture/compile/pr54713-1.c -O0 (internal compiler error) > > > > Can't reprod

Re: [PATCH] Fix ICE for SIMD clones usage in LTO

2015-10-21 Thread Ilya Enkovich
Ping 2015-10-05 19:13 GMT+03:00 Ilya Enkovich <enkovich@gmail.com>: > Hi, > > When SIMD clone is created original function may be defined in another > partition. In this case SIMD clone also has to have in_other_partition flag. > Now it doesn't and we get an I

Re: [mask-vec_cond, patch 3/2] SLP support

2015-10-20 Thread Ilya Enkovich
2015-10-19 19:05 GMT+03:00 Jeff Law <l...@redhat.com>: > On 10/19/2015 05:21 AM, Ilya Enkovich wrote: >> >> Hi, >> >> This patch adds missing support for cond_expr with no embedded comparison >> in SLP. No new test added because vec cmp SLP test beco

[vec-cmp, patch 7/6] Vector comparison enabling in SLP

2015-10-19 Thread Ilya Enkovich
Hi, It appeared our testsuite doesn't have a test which would require vector comparison support in SLP even after boolean pattern disabling. This patch adds such tests and allow comparison for SLP. Is it OK? Thanks, Ilya -- gcc/ 2015-10-19 Ilya Enkovich <enkovich@gmail.

[mask conversion, patch 1/2] Add pattern for mask conversions

2015-10-19 Thread Ilya Enkovich
. It is applied on top of all other boolean vector series. Does it look OK? Thanks, Ilya -- gcc/ 2015-10-19 Ilya Enkovich <enkovich@gmail.com> * optabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab. * tree-vect-

[mask conversion, patch 2/2, i386] Add pack/unpack patterns for scalar masks

2015-10-19 Thread Ilya Enkovich
Hi, This patch adds patterns to be used for vector masks pack/unpack for AVX512. Bootstrapped and tested on x86_64-unknown-linux-gnu. Does it look OK? Thanks, Ilya -- gcc/ 2015-10-19 Ilya Enkovich <enkovich@gmail.com> * config/i386/sse.md (HALFMASKMODE): New att

[mask-vec_cond, patch 3/2] SLP support

2015-10-19 Thread Ilya Enkovich
Hi, This patch adds missing support for cond_expr with no embedded comparison in SLP. No new test added because vec cmp SLP test becomes (due to changes in bool patterns by the first patch) a regression test for this patch. Does it look OK? Thanks, Ilya -- gcc/ 2015-10-19 Ilya Enkovich

[PATCH, libmpx, PR66887] Remove redundant code

2015-10-15 Thread Ilya Enkovich
Hi, This patch removes redundant memset and memcpy calls from libmpx. Bootstrapped and tested w/ MPX on x86_64-unknown-linux-gnu. Applied to trunk. Thanks, Ilya -- libmpx/ 2015-10-15 Ilya Enkovich <enkovich@gmail.com> PR other/66887 * mpxrt/mpxrt.c (read_mpx_stat

Re: [vec-cmp, patch 3/6] Vectorize comparison

2015-10-14 Thread Ilya Enkovich
On 14 Oct 15:06, Ilya Enkovich wrote: > > Will send an updated version after testing. > > Thanks, > Ilya > Here is an updated patch version. Thanks, Ilya -- gcc/ 2015-10-14 Ilya Enkovich <enkovich@gmail.com> * tree-vect-data-refs.c (vect_ge

Re: [vec-cmp, patch 4/6] Support vector mask invariants

2015-10-14 Thread Ilya Enkovich
On 14 Oct 13:50, Ilya Enkovich wrote: > 2015-10-14 11:49 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > > On Tue, Oct 13, 2015 at 4:52 PM, Ilya Enkovich <enkovich@gmail.com> > > wrote: > >> I don't understand what you mean. vect_get_vec_def_f

Re: [vec-cmp, patch 4/6] Support vector mask invariants

2015-10-14 Thread Ilya Enkovich
2015-10-14 11:49 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Tue, Oct 13, 2015 at 4:52 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> I don't understand what you mean. vect_get_vec_def_for_operand has two >> changes made. >&

Re: [vec-cmp, patch 2/6] Vectorization factor computation

2015-10-14 Thread Ilya Enkovich
2015-10-13 16:37 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Thu, Oct 8, 2015 at 4:59 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> This patch handles statements with boolean result in vectorization factor >> computation. F

Re: [vec-cmp, patch 3/6] Vectorize comparison

2015-10-14 Thread Ilya Enkovich
2015-10-13 16:45 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Thu, Oct 8, 2015 at 5:03 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> This patch supports comparison statements vectrization basing on introduced >> opt

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-13 Thread Ilya Enkovich
2015-10-13 16:17 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Fri, Oct 9, 2015 at 10:43 PM, Jeff Law <l...@redhat.com> wrote: >> On 10/02/2015 07:59 AM, Ilya Enkovich wrote: >>> >>> 2015-10-02 Ilya Enkovich <enkovich@gmail.com&g

Re: [Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-13 Thread Ilya Enkovich
On 09 Oct 14:43, Jeff Law wrote: > On 10/02/2015 07:59 AM, Ilya Enkovich wrote: > >+This hook returns mode to be used for a mask to be used for a vector > >+of specified @var{length} with @var{nunits} elements. > >+@end deftypefn > Does it make sense to indicate the default

Re: [[Boolean Vector, patch 5/5] Support boolean vectors in vector lowering

2015-10-13 Thread Ilya Enkovich
2015-10-12 13:37 GMT+03:00 Alan Lawrence : > On 09/10/15 22:01, Jeff Law wrote: > >> So my question for the series as a whole is whether or not we need to do >> something for the other languages, particularly Fortran. I was a bit >> surprised to see this stuff bleed into

Re: [Boolean Vector, patch 3/5] Use boolean vector in C/C++ FE

2015-10-13 Thread Ilya Enkovich
On 09 Oct 14:51, Jeff Law wrote: > On 10/02/2015 08:04 AM, Ilya Enkovich wrote: > >Hi, > > > >This patch makes C/C++ FE to use boolean vector as a resulting type for > >vector comparison. As a result vector comparison in source code now parsed > >into VEC_COND

Re: [vec-cmp, patch 4/6] Support vector mask invariants

2015-10-13 Thread Ilya Enkovich
2015-10-13 16:54 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Thu, Oct 8, 2015 at 5:11 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> Hi, >> >> This patch adds a special handling of boolean vector invariants. We need >> additio

Re: [[Boolean Vector, patch 5/5] Support boolean vectors in vector lowering

2015-10-13 Thread Ilya Enkovich
2015-10-13 18:35 GMT+03:00 Jeff Law <l...@redhat.com>: > On 10/13/2015 08:56 AM, Ilya Enkovich wrote: >> >> 2015-10-12 13:37 GMT+03:00 Alan Lawrence <alan.lawre...@arm.com>: >>> >>> On 09/10/15 22:01, Jeff Law wrote: >>> >>>> So my

Re: [Boolean Vector, patch 3/5] Use boolean vector in C/C++ FE

2015-10-13 Thread Ilya Enkovich
2015-10-13 18:42 GMT+03:00 Jeff Law <l...@redhat.com>: > On 10/13/2015 08:14 AM, Ilya Enkovich wrote: >>>> >>>> + >>>> +static tree >>>> +build_vec_cmp (tree_code code, tree type, >>>> + tree arg0, tree arg1

[vec-cmp, patch 2/6] Vectorization factor computation

2015-10-08 Thread Ilya Enkovich
type is propagated into other boolean operations. Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * tree-vect-loop.c (vect_determine_vectorization_factor): Ignore mask operations for VF. Add mask type computation. * tree-vect-s

[vec-cmp, patch 4/6] Support vector mask invariants

2015-10-08 Thread Ilya Enkovich
and expand such vectors. Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * expr.c (const_vector_mask_from_tree): New. (const_vector_from_tree): Use const_vector_mask_from_tree for boolean vectors. * tree-vect-stmts.c (vect_init_vector): S

[mask-load, patch 2/2, i386] Add/modify mask load/store patterns

2015-10-08 Thread Ilya Enkovich
Hi, This patch reflects changes in maskload and maskstore optabs and adds patterns for AVX-512. Thanks, Ilya -- 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * config/i386/sse.md (maskload): Rename to ... (maskload): ... this. (maskstore):

[vec-cmp, patch 1/6] Add optabs for vector comparison

2015-10-08 Thread Ilya Enkovich
of bolean vectors series [1]. This patch introduces optabs for vector comparison. [1] https://gcc.gnu.org/ml/gcc-patches/2015-10/msg00215.html Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask r

[mask-load, patch 1/2] Use boolean predicate for masked loads and store

2015-10-08 Thread Ilya Enkovich
of boolean vector patch series. Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes. (expand_MASK_STORE): Adjust to maskstore optab changes. * optabs-query.c (can_vec_mask_load_store_p

[mask-vec_cond, patch 1/2] Support vectorization of VEC_COND_EXPR with no embedded comparison

2015-10-08 Thread Ilya Enkovich
by target. Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * optabs-query.h (get_vcond_mask_icode): New. * optabs-tree.c (expand_vec_cond_expr_p): Use get_vcond_mask_icode for VEC_COND_EXPR with mask. * optabs.c (expand_vec_cond_mas

[mask-vec_cond, patch 2/2, i386] Add patterns for vcond_mask_optab

2015-10-08 Thread Ilya Enkovich
Hi, This patch add patterns for vcond_mask_optab. No new expand code is required, existing ix86_expand_sse_movcc is used. Thanks, Ilya -- gcc/ChangeLog: 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * config/i386/i386-protos.h (ix86_expand_sse_movcc): New. * confi

[vec-cmp, patch 3/6] Vectorize comparison

2015-10-08 Thread Ilya Enkovich
Hi, This patch supports comparison statements vectrization basing on introduced optabs. Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var. (vect_create_destination_var): Li

[vec-cmp, patch 5/6] Disable bool patterns when possible

2015-10-08 Thread Ilya Enkovich
Hi, This patch disables transformation of boolean computations into integer ones in case target supports vector comparison. Pattern still applies to transform resulting boolean value into integer or avoid COND_EXPR with SSA_NAME as condition. Thanks, Ilya -- 2015-10-08 Ilya Enkovich

[vec-cmp, patch 6/6, i386] Add i386 support for vector comparison

2015-10-08 Thread Ilya Enkovich
Hi, This patch adds patterns for vec_cmp optabs. Vector comparison expand code was moved from VEC_COND_EXPR expanders into a separate functions. AVX-512 patterns use more simple masked versions. Thanks, Ilya -- gcc/ 2015-10-08 Ilya Enkovich <enkovich@gmail.com> * confi

[PATCH] Fix ICE for SIMD clones usage in LTO

2015-10-05 Thread Ilya Enkovich
, Ilya -- gcc/ 2015-10-05 Ilya Enkovich <enkovich@gmail.com> * omp-low.c (simd_clone_create): Set in_other_partition for created clones. gcc/testsuite/ 2015-10-05 Ilya Enkovich <enkovich@gmail.com> * gcc.dg/lto/simd-function_0.c: New test. diff --g

[Boolean Vector, patch 2/5] Change vector comparison IL requirement

2015-10-02 Thread Ilya Enkovich
Hi, This patch change vector comparison to require boolean vector resulting type. Thanks, Ilya -- gcc/ 2015-10-02 Ilya Enkovich <enkovich@gmail.com> * tree-cfg.c (verify_gimple_comparison) Require boolean vector type for vector comp

[Boolean Vector, patch 4/5] Use boolean vectors in VEC_COND_EXPR

2015-10-02 Thread Ilya Enkovich
Hi, This patch forces boolean vector usage in VEC_COND_EXPR generated by vectorizer. VEC_COND_EXPR expand is fixed appropriately. Thanks, Ilya -- gcc/ 2015-10-02 Ilya Enkovich <enkovich@gmail.com> * optabs.c (expand_vec_cond_expr): Accept boolean vector as con

[Boolean Vector, patch 1/5] Introduce boolean vector to be used as a vector comparison type

2015-10-02 Thread Ilya Enkovich
in a single chunk. Patch series was bootstrapped and tested on x86_64-unknown-linux-gnu. The first patch introduces a target hook and functions to produce new vector type. Thanks, Ilya -- 2015-10-02 Ilya Enkovich <enkovich@gmail.com> * doc/tm.texi: Regenerated.

[Boolean Vector, patch 3/5] Use boolean vector in C/C++ FE

2015-10-02 Thread Ilya Enkovich
Hi, This patch makes C/C++ FE to use boolean vector as a resulting type for vector comparison. As a result vector comparison in source code now parsed into VEC_COND_EXPR, it required a testcase fix-up. Thanks, Ilya -- gcc/c 2015-10-02 Ilya Enkovich <enkovich@gmail.com>

[[Boolean Vector, patch 5/5] Support boolean vectors in vector lowering

2015-10-02 Thread Ilya Enkovich
Hi, This patch supports boolean vectors in vector lowering. Main change is to lower vector comparison into comparisons, not cond_exprs. Thanks, Ilya -- 2015-10-02 Ilya Enkovich <enkovich@gmail.com> * tree-vect-generic.c (elem_op_func): Add new operand to hold vecto

Re: [PATCH, testsuite]: Fix gcc.target/i386/pr65105-1.c test

2015-10-01 Thread Ilya Enkovich
2015-10-01 13:12 GMT+03:00 Uros Bizjak : > Hello! > > Attached patch fixes gcc.target/i386/pr65105-1.c: Thanks! Ilya > > a) As a runtime SSE2 test, we have to check for target SSE2 support > and use proper test infrastructure. > > b) A runtime test can't check output assembly

Re: [PATCH, PR target/67761] Fix i686-*-* bootstrap comparison failure

2015-09-30 Thread Ilya Enkovich
bootstrap. I bootstrapped with --with-cpu=slm also. > >> gcc/ >> >> 2015-09-29 Ilya Enkovich <enkovich@gmail.com> >> >> * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore >> debug insns. >> (scalar_chain::convert_reg)

[PATCH, PR target/67761] Fix i686-*-* bootstrap comparison failure

2015-09-29 Thread Ilya Enkovich
} is in progress. OK for trunk if pass? Thanks, Ilya -- gcc/ 2015-09-29 Ilya Enkovich <enkovich@gmail.com> * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore debug insns. (scalar_chain::convert_reg): Likewise. gcc/testsuite/ 2015-09-29 Ilya En

Re: [RFC] Try vector as a new representation for vector masks

2015-09-25 Thread Ilya Enkovich
2015-09-23 16:53 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Wed, Sep 23, 2015 at 3:41 PM, Ilya Enkovich <enkovich@gmail.com> wrote: >> 2015-09-18 16:40 GMT+03:00 Ilya Enkovich <enkovich@gmail.com>: >>> 2015-09-18 15:22 GMT+03:00 Richar

Re: [PATCH, PR67405, committed] Avoid NULL pointer dereference

2015-09-24 Thread Ilya Enkovich
2015-09-15 14:01 GMT+03:00 Ilya Enkovich <enkovich@gmail.com>: > 2015-09-15 13:32 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: >> On Tue, Sep 15, 2015 at 11:28 AM, Ilya Enkovich <enkovich@gmail.com> >> wrote: >> >> I see. I

Re: [RFC, PR target/65105] Use vector instructions for scalar 64bit computations on 32bit target

2015-09-23 Thread Ilya Enkovich
; "!TARGET_64BIT && TARGET_STV && TARGET_SSE2" > "#" > "&& reload_completed" > [(set (match_dup 0) (zero_extend:SI (match_dup 1))) >(set (match_dup 2) (const_int 0))] > "split_double_mode (DImode,

<    1   2   3   4   5   6   7   8   9   10   >