[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #17 from Uroš Bizjak --- (In reply to Uroš Bizjak from comment #16) > (In reply to Jakub Jelinek from comment #15) > > Yes, but do they preserve all the bits and never modify any bit patterns, > > including qNaNs and sNaNs? I

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #16 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #15) > Yes, but do they preserve all the bits and never modify any bit patterns, > including qNaNs and sNaNs? I thought the point of using the fistp was that > it

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #14 from Uroš Bizjak --- (In reply to Uroš Bizjak from comment #13) > DFmode loads and stores *are* atomic, this is what the optimization is based > on. Loads and stores to/from x87 and SSE registers, to be clear.

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #13 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #12) > They do. Though, in the combined patch I'm still a little bit worried about > the first 4 modified peephole2s, the last 4 look good to me. > The last 4 are

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #11 from Uroš Bizjak --- Jakub, do these two patches fix your failures?

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #10 from Uroš Bizjak --- (In reply to Uroš Bizjak from comment #9) > (In reply to Jakub Jelinek from comment #8) > > I think there are 8 those peephole2s rather than just 4 (I've been looking > > for > > rtx_equal_p (XEXP.*, 0) in

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #9 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #8) > I think there are 8 those peephole2s rather than just 4 (I've been looking > for > rtx_equal_p (XEXP.*, 0) in sync.md No, the other are not problematic.

[Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686

2021-04-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED CC|uros at gcc

[Bug target/100119] [x86] Conversion unsigned int -> double produces -0 (-m32 -msse2 -mfpmath=sse)

2021-04-19 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100119 --- Comment #2 from Uroš Bizjak --- diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c index dda08ff67f2..5a7a00c13bd 100644 --- a/gcc/config/i386/i386-expand.c +++ b/gcc/config/i386/i386-expand.c @@ -1550,6 +1550,8 @@

[Bug target/100041] ICE in curr_insn_transform, at lra-constraints.c:4022

2021-04-12 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100041 Uroš Bizjak changed: What|Removed |Added Target Milestone|11.0|12.0 --- Comment #20 from Uroš Bizjak

[Bug target/100041] ICE in curr_insn_transform, at lra-constraints.c:4022

2021-04-12 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100041 --- Comment #18 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #17) > Can we go with #c15 for GCC11 and do #c16 for GCC12? I'd like to kill the option for GCC11, and the solution is safer than #c15.

[Bug target/100041] ICE in curr_insn_transform, at lra-constraints.c:4022

2021-04-12 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100041 Uroš Bizjak changed: What|Removed |Added Target|x86_64-linux-musl |x86_64 Target Milestone|---

[Bug target/100041] ICE in curr_insn_transform, at lra-constraints.c:4022

2021-04-12 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100041 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned

[Bug target/100041] ICE in curr_insn_transform, at lra-constraints.c:4022

2021-04-12 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100041 --- Comment #15 from Uroš Bizjak --- (In reply to Richard Biener from comment #12) > A possible solution might be to disallow the -m64 -m96bit-long-double > combination, the documentation suggests -m128bit-long-double was intended > as an

[Bug target/100041] ICE in curr_insn_transform, at lra-constraints.c:4022

2021-04-12 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100041 --- Comment #13 from Uroš Bizjak --- See PR79514.

[Bug target/100021] [9/10/11 Regression] std::clamp unprofitable vectorization on -march=nehalem/.../broadwell

2021-04-11 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100021 --- Comment #2 from Uroš Bizjak --- Also, you are passing -march=sandybridge, but the profiler seems to show Skylake (SKX) target. The STV pass heavily depends on target costs, and when -march=skylake is passed, the conversion is avoided.

[Bug target/100021] [9/10/11 Regression] std::clamp unprofitable vectorization on -march=nehalem/.../broadwell

2021-04-11 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100021 --- Comment #1 from Uroš Bizjak --- This is not vectorization, but the compiler uses vector registers to perform scalar operations. This is STV (scalar-to-vector) pass in action, you can use -mno-stv to avoid transformation. The transformation

[Bug rtl-optimization/99930] Failure to optimize floating point -abs(x) in nontrivial code at -O2/3

2021-04-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99930 --- Comment #6 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #4) > Is there some reason why the patterns are written that way rather than split > immediately into the AND or XOR? Perhaps it could be done on SUBREGs to > make it

[Bug target/99652] inline doesn't with -mno-sse

2021-03-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99652 --- Comment #5 from Uroš Bizjak --- inline long double foo (void) { return 1.0; } gcc -S -O2 -mno-80387 double.c double.c: In function ‘foo’: double.c:3:1: error: x87 register return with x87 disabled 3 | { | ^

[Bug c++/99601] [11 regression] g++.dg/modules/iostream-1_b.C on x86_64 with -m32

2021-03-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99601 --- Comment #3 from Uroš Bizjak --- (In reply to CVS Commits from comment #1) > The master branch has been updated by Nathan Sidwell : > > https://gcc.gnu.org/g:770d3487ef18a71f65626c182625889eee29f580 There is a typo in the selector: +// {

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #34 from Uroš Bizjak --- (In reply to rguent...@suse.de from comment #32) > what about reload_completed? We really only want to do this after RA. No need for it, this is peephole2 pass that *always* runs after reload.

[Bug target/99405] Rotate with mask not optimized on x86 for QI/HImode rotates

2021-03-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99405 --- Comment #2 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #1) > Created attachment 50306 [details] > gcc11-pr99405.patch > > Untested fix. - (match_operand:SI 2 "register_operand" "c") +

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #31 from Uroš Bizjak --- (In reply to Richard Biener from comment #29) > The simplified variant below works but IMHO matches cases we do not > want to transform. I can't find any example on how to achieve that > though. I think

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #28 from Uroš Bizjak --- (In reply to Uroš Bizjak from comment #27) > (In reply to Richard Biener from comment #26) > > but that doesn't seem to match for some unknown reason. > Try this: The latency problem with the original

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #27 from Uroš Bizjak --- (In reply to Richard Biener from comment #26) > but that doesn't seem to match for some unknown reason. Try this: (define_peephole2 [(match_scratch:DI 5 "Yv") (set (match_operand:DI 0

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #24 from Uroš Bizjak --- (In reply to Richard Biener from comment #22) > That works to avoid the vpinsrq. I guess the case of a mem operand > behaves similar to a gpr (plus the load uop), at least I don't have any > contrary

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-04 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #21 from Uroš Bizjak --- (In reply to Uroš Bizjak from comment #20) > (In reply to Richard Biener from comment #18) > > Even on Skylake it's 2 (movq) + 3 (vpinsr), so there it's 6 vs. 3. Not > > sure if we should somehow do this

[Bug tree-optimization/98856] [11 Regression] botan AES-128/XTS is slower by ~17% since r11-6649-g285fa338b06b804e72997c4d876ecf08a9c083af

2021-03-04 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98856 --- Comment #20 from Uroš Bizjak --- (In reply to Richard Biener from comment #18) > Even on Skylake it's 2 (movq) + 3 (vpinsr), so there it's 6 vs. 3. Not > sure if we should somehow do this late somehow (peephole or splitter) since > it

[Bug middle-end/26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)

2021-02-25 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 Bug 26163 depends on bug 99083, which changed state. Bug 99083 Summary: Big run-time regressions of 519.lbm_r with LTO https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 What|Removed |Added

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-25 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 Uroš Bizjak changed: What|Removed |Added Status|RESOLVED|REOPENED Keywords|

[Bug middle-end/26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)

2021-02-21 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 Bug 26163 depends on bug 99083, which changed state. Bug 99083 Summary: Big run-time regressions of 519.lbm_r with LTO https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 What|Removed |Added

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-21 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 Uroš Bizjak changed: What|Removed |Added Target Milestone|--- |11.0

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-21 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 Uroš Bizjak changed: What|Removed |Added Resolution|--- |FIXED Status|NEW

[Bug target/99115] ICE in extract_insn, at recog.c:2309 on alpha (error: unrecognizable insn) with -O2

2021-02-17 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99115 --- Comment #4 from Uroš Bizjak --- Compiles OK with: GNU C++14 (GCC) version 8.4.1 20210216 [releases/gcc-8 revision c6513400d84:39c49bc104d:1f3a07da9b6bcfa4733750826746bd18ac6f20db] (alpha-unknown-openbsd6.8) built as a cross from

[Bug target/99115] ICE in extract_insn, at recog.c:2309 on alpha (error: unrecognizable insn) with -O2

2021-02-16 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99115 Uroš Bizjak changed: What|Removed |Added Known to work||11.0 --- Comment #3 from Uroš Bizjak ---

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #10 from Uroš Bizjak --- (In reply to Richard Biener from comment #7) > There are a lot of targets that define REG_ALLOC_ORDER ^ > HONOR_REG_ALLOC_ORDER and thus are affected by this change... The following patch should solve this

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #8 from Uroš Bizjak --- (In reply to Richard Biener from comment #7) > Btw, for GCC 11 it might be tempting to simply revert the "no-op" change? I agree, this is the safest way at this time. The situation now looks like going into

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #6 from Uroš Bizjak --- As a side note, it is strange that ADJUST_REG_ALLOC_ORDER somehow require REG_ALLOC_ORDER to be defined (c.f. Comment #3), while its documentation says: The macro body should not assume anything about

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #5 from Uroš Bizjak --- Martin, can you please benchmark the patch from Comment #4? The patch is not totally trivial, because it introduces HONOR_REG_ALLOC_ORDER to x86 and this define disables some other code in ira-color.c,

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #4 from Uroš Bizjak --- Created attachment 50185 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50185=edit Proposed patch Proposed patch that fixes ira-color.c and introduces HONOR_REG_ALLOC_ORDER.

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-15 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #3 from Uroš Bizjak --- It looks to me another one is in reload1.c, find_reg: if (this_cost < best_cost /* Among registers with equal cost, prefer caller-saved ones, or use REG_ALLOC_ORDER if

[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO

2021-02-13 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083 --- Comment #1 from Uroš Bizjak --- This should be a no-op. According to the documentation: --q-- Macro: REG_ALLOC_ORDER If defined, an initializer for a vector of integers, containing the numbers of hard registers in the order in which

[Bug target/99025] [11 Regression] ICE Segmentation fault since r11-6351-g12ae2bc70846a2be

2021-02-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99025 --- Comment #2 from Uroš Bizjak --- Comment on attachment 50154 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50154 gcc11-pr99025.patch >2021-02-09 Jakub Jelinek >+ if (SUBREG_P (operands[1])) >+operands[1] = force_reg

[Bug rtl-optimization/98962] Perform bitops on floats directly with SSE

2021-02-04 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98962 --- Comment #4 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #3) > Another possibility is add x/v constraints to *andsi_1 and *anddi_1 with the > immediates and disparage that alternative enough to reflect the fact that > the

[Bug rtl-optimization/98961] Failure to optimize successive comparisons with 0 into clz

2021-02-04 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98961 --- Comment #3 from Uroš Bizjak --- Please note that LZCNT insn has it own set of problems (e.g. TARGET_AVOID_FALSE_DEP_FOR_BMI), so I'm not convinced that even: int z (int i) { return i == 0; } benefits from using LZCNT: 0: 31 c0

[Bug rtl-optimization/98961] Failure to optimize successive comparisons with 0 into clz

2021-02-04 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98961 Uroš Bizjak changed: What|Removed |Added CC||ubizjak at gmail dot com --- Comment #2

[Bug target/98737] Atomic operation on x86 no optimized to use flags

2021-01-19 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98737 --- Comment #2 from Uroš Bizjak --- This can be optimized with peephole2, we already have similar case in sync.md: ;; This peephole2 and following insn optimize ;; __sync_fetch_and_add (x, -N) == N into just lock {add,sub,inc,dec} ;; followed

[Bug target/98612] _mm_comieq_sd has wrong semantics

2021-01-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98612 --- Comment #8 from Uroš Bizjak --- (In reply to Hongtao.liu from comment #7) > I asked my colleagues within intel to revise the descriptions in the > intrinsics guide to make it more explicit about NAN operands. > > I'll fix this issue after

[Bug ada/98724] [11 Regression] gnat build failure on alpha-linux-gnu

2021-01-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98724 --- Comment #1 from Uroš Bizjak --- Sorry, I don't have access to alpha anymore. (And I'm surprised that gnat even builds, because I've never tried.)

[Bug middle-end/98713] Failure to generate branch version of abs if user requested it

2021-01-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98713 --- Comment #4 from Uroš Bizjak --- Please see PR 56309 (and PR 85559 meta bug). Quote from Honza: The decision on whether to use cmov or jmp was always tricky on x86 architectures. Cmov increase dependency chains, register pressure (both

[Bug tree-optimization/96674] Failure to optimize combination of comparisons to dec+compare

2021-01-14 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96674 --- Comment #8 from Uroš Bizjak --- Comment on attachment 49969 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49969 Optimize combination of comparisons to dec+compare >+/* y == XXX_MIN || x < y --> x <= y - 1 */ Can we use TYPE_MIN

[Bug target/98671] gcc/config/i386/i386-options.c:787:redundantAssignment

2021-01-14 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98671 --- Comment #6 from Uroš Bizjak --- (In reply to David Binderman from comment #5) > (In reply to Uroš Bizjak from comment #4) > > I'm not sure if solving this would bring us anything. > > For clarity, at very most a 4% reduction in the size of

[Bug target/98683] Non-canonical compare produced with the VAX backend

2021-01-14 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98683 --- Comment #1 from Uroš Bizjak --- Maybe TARGET_CANONICALIZE_COMPARISON would help here? x86 had a similar issue with ficom x87 insn where float RTX was always the first operand, but the compare was with the float extend of the second one.

[Bug target/98671] gcc/config/i386/i386-options.c:787:redundantAssignment

2021-01-14 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98671 Uroš Bizjak changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED

[Bug target/98671] gcc/config/i386/i386-options.c:787:redundantAssignment

2021-01-14 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98671 Uroš Bizjak changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Ever confirmed|0

[Bug target/98482] -mfentry creates invalid call for -mcmodel=large

2021-01-08 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98482 --- Comment #14 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #10) > If we are emitting for nested functions > pushq %r10 > 1:call__fentry__ > popq%r10 > (is it ok to misalign the stack for __fentry__?

[Bug target/98482] -mfentry creates invalid call for -mcmodel=large

2021-01-08 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98482 --- Comment #9 from Uroš Bizjak --- (In reply to Topi Miettinen from comment #8) > I'm unfortunately ignorant to GCC internals and usage of %r10, but otherwise > the patch looks good to me. > > For -mcmodel=large -fPIC, the call sequence

[Bug target/98482] -mfentry creates invalid call for -mcmodel=large

2021-01-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98482 --- Comment #5 from Uroš Bizjak --- (In reply to Topi Miettinen from comment #4) > Sorry, I didn't check the ABI. It seems that %r11 and maybe %r10 should be > usable: %r11 is already used as PROFILE_COUNT_REGISTER for !NO_PROFILE_COUNTERS

[Bug target/98482] -mfentry creates invalid call for -mcmodel=large

2021-01-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98482 --- Comment #3 from Uroš Bizjak --- (In reply to Uroš Bizjak from comment #2) > (In reply to Hongtao.liu from comment #1) > > and by the time of output __fentry__ in gcc, register is already accocated, > > is there any regs supposed to be safe

[Bug target/98482] -mfentry creates invalid call for -mcmodel=large

2021-01-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98482 --- Comment #2 from Uroš Bizjak --- (In reply to Hongtao.liu from comment #1) > and by the time of output __fentry__ in gcc, register is already accocated, > is there any regs supposed to be safe in the entry of function? or we need > to spill

[Bug target/98567] Failure to optimize using ZF flag from blsi

2021-01-06 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98567 --- Comment #2 from Uroš Bizjak --- Comment on attachment 49901 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49901 gcc11-pr98567.patch >+(define_insn "*bmi_blsi__cmp" >+ [(set (reg:CCZ FLAGS_REG) >+ (compare:CCZ >+

[Bug target/98522] _mm_cvttps_pi32 and _mm_cvtps_pi32 raise spurious FP exceptions

2021-01-06 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98522 Uroš Bizjak changed: What|Removed |Added Target Milestone|--- |10.3 Status|ASSIGNED

[Bug target/98521] [x86] _mm256_cmov_si256 XOP function is missing

2021-01-06 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98521 Uroš Bizjak changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED

[Bug target/98521] [x86] _mm256_cmov_si256 XOP function is missing

2021-01-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98521 Uroš Bizjak changed: What|Removed |Added Ever confirmed|0 |1 Assignee|unassigned at gcc

[Bug target/98522] _mm_cvttps_pi32 and _mm_cvtps_pi32 raise spurious FP exceptions

2021-01-05 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98522 Uroš Bizjak changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|

[Bug target/64243] Passing and returning structures with single member of floating type via SSE registers is wrong on Windows x86-64 ABI

2020-12-30 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64243 Uroš Bizjak changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work|

[Bug target/64243] Passing and returning structures with single member of floating type via SSE registers is wrong on Windows x86-64 ABI

2020-12-30 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64243 --- Comment #5 from Uroš Bizjak --- This is fixed in gcc-11: --cut here-- struct TestFloat { float x; }; struct TestDouble { double x; }; struct TestFloat foo (struct TestFloat x) { return x; } struct TestDouble bar (struct TestDouble x) {

[Bug target/64243] Passing and returning structures with single member of floating type via SSE registers is wrong on Windows x86-64 ABI

2020-12-30 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64243 Uroš Bizjak changed: What|Removed |Added CC||10walls at gmail dot com --- Comment #4

[Bug rtl-optimization/98439] [11 Regression] ICE in final_scan_insn_1, at final.c:3096

2020-12-28 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98439 --- Comment #3 from Uroš Bizjak --- I don't think this is a backend bug. The position of split pass in the pass sequence assumes that no split candidates will be emitted after regstack, as can be seen from the gate function of the

[Bug rtl-optimization/97684] [11 Regression] ICE in reg_preferred_class, at reginfo.c:789

2020-12-27 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97684 Uroš Bizjak changed: What|Removed |Added Component|target |rtl-optimization Ever confirmed|0

[Bug rtl-optimization/98439] [11 Regression] ICE in final_scan_insn_1, at final.c:3096

2020-12-27 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98439 Uroš Bizjak changed: What|Removed |Added Component|target |rtl-optimization Last reconfirmed|

[Bug target/92658] x86 lacks vector extend / truncate

2020-12-25 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92658 --- Comment #22 from Uroš Bizjak --- (In reply to Hongtao.liu from comment #21) > Add define_code_attr like aarch64/iterators.md? > > -- > ;; Map rtl objects to optab names > (define_code_attr optab [(ashift "ashl") >

[Bug target/96793] __builtin_floor produces wrong result when rounding direction is FE_DOWNWARD

2020-12-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793 Uroš Bizjak changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED

[Bug target/96793] __builtin_floor produces wrong result when rounding direction is FE_DOWNWARD

2020-12-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793 --- Comment #22 from Uroš Bizjak --- https://gcc.gnu.org/g:edb28850520d1137d12a1cc1c0e89c11e6b0c6ef commit r8-10691-gedb28850520d1137d12a1cc1c0e89c11e6b0c6ef Author: Uros Bizjak Date: Wed Dec 23 09:18:12 2020 +0100 i386: Fix

[Bug target/96793] __builtin_floor produces wrong result when rounding direction is FE_DOWNWARD

2020-12-23 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793 --- Comment #21 from Uroš Bizjak --- https://gcc.gnu.org/g:c40b640ebcef1aae78eaca56e04d204dda9e4cad commit r9-9126-gc40b640ebcef1aae78eaca56e04d204dda9e4cad Author: Uros Bizjak Date: Wed Dec 23 09:09:29 2020 +0100 i386: Fix

[Bug target/96793] __builtin_floor produces wrong result when rounding direction is FE_DOWNWARD

2020-12-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793 --- Comment #20 from Uroš Bizjak --- https://gcc.gnu.org/g:0bf0e0b86d3e2f12555479096baaf0ca7a9f7ac6 commit r10-9164-g0bf0e0b86d3e2f12555479096baaf0ca7a9f7ac6 Author: Uros Bizjak Date: Tue Dec 22 21:11:51 2020 +0100 i386: Fix

[Bug target/96793] __builtin_floor produces wrong result when rounding direction is FE_DOWNWARD

2020-12-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793 --- Comment #19 from Uroš Bizjak --- https://gcc.gnu.org/g:337ed0eb490b14899f4049bc4c8922eb1d8a2e67 commit r11-6303-g337ed0eb490b14899f4049bc4c8922eb1d8a2e67 Author: Uros Bizjak Date: Tue Dec 22 18:13:24 2020 +0100 i386: Fix

[Bug middle-end/98420] New: Invalid simplification of x - x with -frounding-math

2020-12-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98420 Bug ID: 98420 Summary: Invalid simplification of x - x with -frounding-math Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3

[Bug target/96793] __builtin_floor produces wrong result when rounding direction is FE_DOWNWARD

2020-12-22 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96793 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at

[Bug target/98060] Failure to optimize cmp+setnb+add to cmp+sbb

2020-12-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98060 Uroš Bizjak changed: What|Removed |Added Target Milestone|--- |12.0

[Bug other/98375] [meta bug] GCC 12 pending patches

2020-12-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98375 Uroš Bizjak changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|

[Bug other/98375] New: [meta bug] GCC 12 pending patches

2020-12-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98375 Bug ID: 98375 Summary: [meta bug] GCC 12 pending patches Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: other

[Bug target/98218] [TARGET_MMX_WITH_SSE] Miss vec_cmpmn/vcondmn expander for 64bit vector

2020-12-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98218 Uroš Bizjak changed: What|Removed |Added Severity|normal |enhancement Target|x86_64-*-*

[Bug target/98218] [TARGET_MMX_WITH_SSE] Miss vec_cmpmn/vcondmn expander for 64bit vector

2020-12-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98218 --- Comment #3 from Uroš Bizjak --- Testcase 1: --cut here-- typedef short vec __attribute__((vector_size(8))); typedef unsigned short uvec __attribute__((vector_size(8))); vec lt (vec a, vec b) { return a < b; } vec le (vec a, vec b) { return

[Bug target/98218] [TARGET_MMX_WITH_SSE] Miss vec_cmpmn/vcondmn expander for 64bit vector

2020-12-18 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98218 --- Comment #2 from Uroš Bizjak --- Created attachment 49796 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49796=edit Proposed patch to implement integer vector compares Attached patch implements integer vector compares.

[Bug tree-optimization/98169] isnan pattern not folded

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98169 --- Comment #7 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #6) > Not familiar with the 64-bit vector support myself, CCing Uros on that. PR98218

[Bug tree-optimization/91384] [8/9/10/11 Regression] Compare with negation is not eliminated

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91384 --- Comment #8 from Uroš Bizjak --- (In reply to Jakub Jelinek from comment #1) > Started with r223689. Though, generally that change looks like a useful > GIMPLE canonicalization. How about we amend the above change to: diff --git

[Bug tree-optimization/91384] [8/9/10/11 Regression] Compare with negation is not eliminated

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91384 --- Comment #7 from Uroš Bizjak --- Still happens on trunk.

[Bug rtl-optimization/78952] Combine does not convert 8-bit sign-extract to a zero-extract for QImode operations

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78952 Uroš Bizjak changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Bug rtl-optimization/78952] Combine does not convert 8-bit sign-extract to a zero-extract for QImode operations

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78952 Uroš Bizjak changed: What|Removed |Added Target Milestone|--- |9.0 --- Comment #7 from Uroš Bizjak ---

[Bug target/95046] Vectorize V2SFmode operations

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95046 Uroš Bizjak changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|---

[Bug target/95750] [x86] Use dummy atomic insn instead of mfence in __atomic_thread_fence(seq_cst)

2020-12-10 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95750 Uroš Bizjak changed: What|Removed |Added Target Milestone|--- |11.0 Resolution|---

[Bug rtl-optimization/98212] [10/11 Regression] X86 unoptimal code for float equallity comparison followed by jump

2020-12-09 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98212 --- Comment #2 from Uroš Bizjak --- f1 is currently unoptimal by design, the compiler is unable to merge trapping and non-trapping instructions. There is already a PR for that. f2 is not optimal. The conditional jump to the unconditional jump

[Bug target/92469] ICE: output_operand: invalid use of register 'frame' in 7/8/9/10

2020-12-08 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92469 --- Comment #11 from Uroš Bizjak --- *** Bug 98194 has been marked as a duplicate of this bug. ***

[Bug target/98194] [9/10/11 Regression]internal compiler error: output_operand: invalid use of register 'frame'

2020-12-08 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98194 Uroš Bizjak changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED

[Bug rtl-optimization/98178] Combine splitter does not split to single instruction

2020-12-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98178 --- Comment #2 from Uroš Bizjak --- On a related note, the combine splitter is a very mysterious beast, and does not easily tell, why the particular combination is rejected. Without any debug in debug logs it is very frustrating to figure out

[Bug rtl-optimization/98178] Combine splitter does not split to single instruction

2020-12-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98178 --- Comment #1 from Uroš Bizjak --- The attached patch with the following testcase: --cut here-- int test (int a, int b) { return a << (b & 31); } --cut here-- fails to generate a single shift insn, because it does not trigger the call to

[Bug rtl-optimization/98178] New: Combine splitter does not split to single instruction

2020-12-07 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98178 Bug ID: 98178 Summary: Combine splitter does not split to single instruction Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3

[Bug target/98086] [9/10/11 Regression] ICE in extract_insn, at recog.c:2315

2020-12-03 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98086 Uroš Bizjak changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED

[Bug target/98086] [9/10/11 Regression] ICE in extract_insn, at recog.c:2315

2020-12-03 Thread ubizjak at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98086 --- Comment #7 from Uroš Bizjak --- https://gcc.gnu.org/g:521c839fad4e4a30cdadda254fb3f07706285033 commit r9-9096-g521c839fad4e4a30cdadda254fb3f07706285033 Author: Uros Bizjak Date: Thu Dec 3 19:08:23 2020 +0100 i386: Fix up

<    3   4   5   6   7   8   9   >