Issue 176906
Summary [X86] `is_ascii` optimizes poorly with avx-512
Labels new issue
Assignees
Reporter folkertdev
    https://godbolt.org/z/6EzTa5crM

It looks like a `LoopFullUnrollPass` that is never re-rolled (or should not be unrolled in the first place). The unrolled operations are eventually emitted as

```asm
        kshiftrd        k7, k6, 12
        add     r10b, r9b
 and     dl, 1
        kmovd   r9d, k7
```

but this is probably just a symptom of an earlier missed optimization. The idea of `is_ascii` is to build a mask of which bytes set their highest bit, so I guess some avx-512 pattern for that is missing.

cc https://github.com/rust-lang/rust/pull/151259

_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to