[Bug libstdc++/114417] New: simd parameters are passed by memory on x64 , not using the available sse registers

2024-03-21 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114417 Bug ID: 114417 Summary: simd parameters are passed by memory on x64 , not using the available sse registers Product: gcc Version: unknown Status: UNCONFIRMED S

[Bug target/114417] simd parameters are passed by memory on x64 , not using the available sse registers

2024-03-21 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114417 --- Comment #2 from Imple Lee --- (In reply to Andrew Pinski from comment #1) > I doubt this can change since this is the abi gcc decided on a long time ago. If we implement the simd class as a wrapper around a vector, the parameter can still b

[Bug target/114417] simd parameters are passed by memory on x64 , not using the available sse registers

2024-03-21 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114417 --- Comment #3 from Imple Lee --- Oh, I didn't make it clear. I am describing libstdc++'s std::experimental::simd class.

[Bug libstdc++/114417] std::experimental::simd is not a POD (by ABI definitions) and is always passed by reference instead of by value

2024-03-21 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114417 --- Comment #7 from Imple Lee --- I tried to dig into the source code and it seems like it was designed to be "passed via the stack". Not sure whether this was specified by the specification (did not find relevant requirements, but I am not quit

[Bug libstdc++/114417] std::experimental::simd is not a POD (by ABI definitions) and is always passed by reference instead of by value

2024-04-22 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114417 --- Comment #11 from Imple Lee --- > What you want to use instead is std::experimental::simd_abi::deduce_t. > That'll give you a not-fixed_size ABI if one exists. And those will likely be > passed via registers (as long as the psABI allows).

[Bug target/114908] New: fails to optimize avx2 in-register permute written with std::experimental::simd

2024-05-01 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114908 Bug ID: 114908 Summary: fails to optimize avx2 in-register permute written with std::experimental::simd Product: gcc Version: 14.0 Status: UNCONFIRMED Severity

[Bug tree-optimization/114966] New: fails to optimize avx2 in-register permute written with std::experimental::simd

2024-05-06 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114966 Bug ID: 114966 Summary: fails to optimize avx2 in-register permute written with std::experimental::simd Product: gcc Version: 14.0 Status: UNCONFIRMED Severity

[Bug tree-optimization/114908] fails to optimize avx2 in-register permute written with std::experimental::simd

2024-05-06 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114908 --- Comment #8 from Imple Lee --- I tried another way to permute the register. Although GCC does generate simd instructions, the generated code is sub-optimal. I opened PR114966 for that.

[Bug tree-optimization/114966] fails to optimize avx2 in-register permute written with std::experimental::simd

2024-05-06 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114966 --- Comment #1 from Imple Lee --- This is probably a regression. GCC 13.2 can generate optimal code. See https://godbolt.org/z/4n8ovr7jr .

[Bug libstdc++/115454] New: std::experimental::find_last_set is buggy on x86-64-v4

2024-06-11 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115454 Bug ID: 115454 Summary: std::experimental::find_last_set is buggy on x86-64-v4 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Comp

[Bug libstdc++/118416] New: std::experimental::simd code detecting all zero is not optimized to simple ptest on x86-64 avx

2025-01-11 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118416 Bug ID: 118416 Summary: std::experimental::simd code detecting all zero is not optimized to simple ptest on x86-64 avx Product: gcc Version: 14.2.1 Status: UNCONFIRMED

[Bug libstdc++/118416] std::experimental::simd code detecting all zero is not optimized to simple ptest on x86-64 avx

2025-01-11 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118416 --- Comment #1 from Imple Lee --- Possibly related: PR90483 .

[Bug libstdc++/118546] New: std::experimental::simd operator== fails to compile with clang++ 19.1.0 on x86-64-v4

2025-01-18 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118546 Bug ID: 118546 Summary: std::experimental::simd operator== fails to compile with clang++ 19.1.0 on x86-64-v4 Product: gcc Version: 14.2.0 Status: UNCONFIRMED S

[Bug libstdc++/118546] std::experimental::simd operator== fails to compile with clang++ 19.1.0 on x86-64-v4

2025-03-23 Thread lee.imple at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118546 Imple Lee changed: What|Removed |Added Resolution|--- |INVALID Status|UNCONFIRMED