Skip to content

SLPVectorizer does not respect isFPVectorizationPotentiallyUnsafe() #106909

Closed
@nikic

Description

@nikic

SLPVectorizer currently incorrectly vectorizes FP instructions using ARM NEON (https://llvm.godbolt.org/z/c9866Yv13), which has non-IEEE compliant denormal flushing (#16648).

There is a isFPVectorizationPotentiallyUnsafe() TTI hook for this, which is checked by LoopVectorize, but not SLPVectorizer.

(Technically at fault here is the ARM backend for using NEON instructions for vector floating point ops, but LLVM currently handles this by preventing their implicit formation.)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions