https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #11 from Andrew Pinski ---
I know the missed optimization is fixed in GCC 10 at the RTL level.
But shouldn't these optimized at gimple level to similar to:
```
__m256i cvt_setr1(__m128i low)
{
return __builtin_shufflevector (low,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #10 from CVS Commits ---
The master branch has been updated by Jakub Jelinek :
https://gcc.gnu.org/g:f82617f229b336d856c18313339b14657e05c129
commit r10-6499-gf82617f229b336d856c18313339b14657e05c129
Author: Jakub Jelinek
Date: F
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #9 from Marc Glisse ---
(In reply to Jakub Jelinek from comment #6)
> if we change the cast patterns so that they are a
> vec_concat of the operand and UNSPEC_CAST that then represents just the
> uninitialized higher part, simplify-rt
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #8 from Jakub Jelinek ---
_mm256_permute2x128_si256 issue moved to separate PR93613.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #7 from Jakub Jelinek ---
The _mm256_permute2x128_si256 issues are similar, but really unrelated and IMHO
should be tracked in a separate PR. The problem there is that the pattern we
use doesn't really describe what the instruction d
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #6 from Jakub Jelinek ---
Created attachment 47789
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47789&action=edit
gcc10-pr93594-2.patch
Actually, thinking about it some more, rather than having a special pattern to
handle UNS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #5 from CVS Commits ---
The master branch has been updated by Jakub Jelinek :
https://gcc.gnu.org/g:3f740c67dbb90177aa71d3c60ef9b0fd2f44dbd9
commit r10-6472-g3f740c67dbb90177aa71d3c60ef9b0fd2f44dbd9
Author: Jakub Jelinek
Date: Th
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #4 from Marc Glisse ---
The versions involving _mm256_cast* may be related to PR50829 and others
(UNSPEC hiding the semantics of the operation).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #3 from andysem at mail dot ru ---
...and probably other permute variants involving zeroed input registers, e.g.:
__m256i cvt_permute_zero_v1(__m128i low)
{
return _mm256_permute2x128_si256(_mm256_setzero_si256(),
_mm256_castsi128
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
--- Comment #2 from andysem at mail dot ru ---
Another test case:
__m256i cvt_permute(__m128i low)
{
return _mm256_permute2x128_si256(_mm256_castsi128_si256(low),
_mm256_castsi128_si256(low), 0x80);
}
https://gcc.godbolt.org/z/4Ddt3C
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93594
Jakub Jelinek changed:
What|Removed |Added
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed|
11 matches
Mail list logo