[Bug target/109279] RISC-V: complex constants synthesized should be improved

2024-11-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #22 from GCC Commits --- The master branch has been updated by Jeff Law : https://gcc.gnu.org/g:df2e832c90fe0915c0ab89e5c115bd0c6536c833 commit r15-5602-gdf2e832c90fe0915c0ab89e5c115bd0c6536c833 Author: Jeff Law Date: Fri Nov 22

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2024-11-21 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #21 from Jeffrey A. Law --- WRT c#20. Those cases are pretty easy to handle with the additional work Raphael and I have done over the last year. Let me that that.

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2024-11-12 Thread wojciech_mula at poczta dot onet.pl via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #20 from Wojciech Mula --- This constants is worth checking (appears in division by 10): ``` unsigned long ccd() { return 0xcccd; } ``` riscv64-unknown-linux-gnu-g++ (crosstool-NG UNKNOWN) 15.0.0 2024 (experime

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-10-06 Thread vineetg at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #19 from Vineet Gupta --- FWIW with today's change, splitter is now hidden from IRA, but we are still getting the extraneous mv. 2023-10-06 c1bc7513b1d7 RISC-V: const: hide mvconst splitter from IRA

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-10-06 Thread vineetg at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #18 from Vineet Gupta --- (In reply to Vineet Gupta from comment #17) > (In reply to Vineet Gupta from comment #16) > > > Which is what this produces: > > > ``` > > > long long f(void) > > > { > > > unsigned t = 16843009; > > > l

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-08-15 Thread vineetg at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #17 from Vineet Gupta --- (In reply to Vineet Gupta from comment #16) > > Which is what this produces: > > ``` > > long long f(void) > > { > > unsigned t = 16843009; > > long long t1 = t; > > long long t2 = ((unsigned long long

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-05-19 Thread vineetg at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #16 from Vineet Gupta --- > Which is what this produces: > ``` > long long f(void) > { > unsigned t = 16843009; > long long t1 = t; > long long t2 = ((unsigned long long )t) << 32; > asm("":"+r"(t1)); > return t1 | t2; > }

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-05-19 Thread vineetg at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 Vineet Gupta changed: What|Removed |Added CC||vineetg at gcc dot gnu.org S

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-30 Thread vineet.gupta at linux dot dev via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #14 from Vineet Gupta --- (In reply to Andrew Pinski from comment #12) > Here is something to look into: > #define const1 0x0101010101010101ULL > #define const0 const1 > unsigned long long f(unsigned long long occ, const unsigned

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread vineet.gupta at linux dot dev via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #13 from Vineet Gupta --- Ok it seems I missed _some_ improvement with prev change, although not ideal still. With 2e886eef7f2b li a0,0x0101_ addia0,a0,0x0101 sllia0,a0,16 addia0

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #12 from Andrew Pinski --- Here is something to look into: #define const1 0x0101010101010101ULL #define const2 0x0080402010080400ULL #define const0 const1 unsigned long long g(unsigned long long occ, const unsigned int sq) { retu

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread vineet.gupta at linux dot dev via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #11 from Vineet Gupta --- With change suggested by @pinksia, I do see that in split1, riscv_move_integer() -> riscv_split_integer() is now called.

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread vineet.gupta at linux dot dev via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #10 from Vineet Gupta --- I tried removing the in_splitter check (in 2 places), but no change in results. @@ -1313,7 +1313,7 @@ riscv_force_temporary (rtx dest, rtx value, bool in_splitter) - if (can_create_pseudo_p () && !in_spl

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #9 from Andrew Pinski --- The comment in riscv.cc: /* We can't call gen_reg_rtx from a splitter, because this might realloc the regno_reg_rtx array, which would invalidate reg rtx pointers in the combine undo buffer. */

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #8 from Andrew Pinski --- oh right this is because can_create_pseudo is false This code is just so broken ...

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 --- Comment #7 from Andrew Pinski --- riscv_split_integer does something similarlly to what I was suggesting but for some reason it is not kicking in for this case ...

[Bug target/109279] RISC-V: complex constants synthesized should be improved

2023-03-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2023-03-24 Status|UNCONFIRM