https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122776
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |avieira at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #1)
> Not only due to this check the following testcase fails to use fully masking
> or a masked epilog. I'm not sure how common it would be to have both
> inbranch
> and notinbranch variants, I did not check if there's a syntax to get both
> created for a function definition.
>
> #pragma omp declare simd simdlen(16) inbranch
> int __attribute__((const)) baz (int x);
> #pragma omp declare simd simdlen(16) notinbranch
> int __attribute__((const)) baz (int x);
Note, just
#pragma omp declare simd simdlen(16)
int __attribute__((const)) baz (int x);
should create both inbranch and notinbranch clones, or you can use
#pragma omp declare simd simdlen(16) inbranch
#pragma omp declare simd simdlen(16) notinbranch
int __attribute__((const)) baz (int x);
too.
I believe the #c0 mentioned hunk is from Andre, and if
LOOP_VINFO_FULLY_MASKED_P isn't computed until late, I think we need some
alternative for that.