Thread overview
[Issue 21490] Optimizer can add SSE integer multiply for machines less than SSE4.1 which do not have it
[Issue 21490] Front end detection logic for SSE4.1 is failing when using -O
Dec 19, 2020
Walter Bright
Dec 20, 2020
Walter Bright
Dec 20, 2020
Walter Bright
Dec 20, 2020
Dlang Bot
Dec 20, 2020
Dlang Bot
December 19, 2020
https://issues.dlang.org/show_bug.cgi?id=21490

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |SIMD

--
December 20, 2020
https://issues.dlang.org/show_bug.cgi?id=21490

--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> ---
Test case clipped from dmd/test/runnable/testxmm.d:

-------
import core.simd;

void test2e()
{
    int4 v1, v2 = 1, v3 = 1;
    v1 = v2 + v3;
    static if (__traits(compiles, { v1 = v2 * v3; })) // SSE4.1
        v1 = v2 * v3;
}

int main() { test2e(); return 0; }
------

This will seg fault on illegal PMULLD instruction if running on a machine without SSE4.1

--
December 20, 2020
https://issues.dlang.org/show_bug.cgi?id=21490

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Front end detection logic   |Optimizer can add SSE
                   |for SSE4.1 is failing when  |integer multiply for
                   |using -O                    |machines less than SSE4.1
                   |                            |which do not have it

--
December 20, 2020
https://issues.dlang.org/show_bug.cgi?id=21490

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@WalterBright created dlang/dmd pull request #12038 "fix Issue 21490 - Optimizer can add SSE integer multiply for machines…" fixing this issue:

- fix Issue 21490 - Optimizer can add SSE integer multiply for machines less than SSE4.1 which do not have it

https://github.com/dlang/dmd/pull/12038

--
December 20, 2020
https://issues.dlang.org/show_bug.cgi?id=21490

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #12038 "fix Issue 21490 - Optimizer can add SSE integer multiply for machines…" was merged into master:

- c3a3456f248784e029af056b4d0a383e9c29974a by Walter Bright:
  fix Issue 21490 - Optimizer can add SSE integer multiply for machines less
than SSE4.1 which do not have it

https://github.com/dlang/dmd/pull/12038

--