Search Issue Tracker

By Design

Votes

1

Found in [Package]

1.8.4

Issue ID

BUR-2409

Regression

No

Burst does not auto-vectorize a method when the SinCos method is used

Package: Burst

-

Reproduction steps:

1. Open the attached “ASDQWE” project

2. Open the “Asset/Scenes/SampleScene.unity” Scene

3. Open the Burst Inspector (Jobs > Burst > Open Inspector…)

4. Observe the “SinCos128Floats” method

Expected result: The method is automatically vectorized

Actual result: The method is not automatically vectorized and remains unoptimized

Reproducible with: 1.7.4 (2021.3.27f1), 1.8.3(2021.3.27f1), 1.8.4 (2022.3.1f1, 2023.1.0b21, 2023.2.0a18)

Reproducible on: Intel MacOS 13.3.1

  1. Resolution Note:

    This is, unfortunately, by-design. LLVM's loop vectorizer is currently unable to vectorize calls that have pointer-type parameters, such as sincos.

    There's some initial community [effort|https://reviews.llvm.org/D116879] to improve this situation, but that PR is from 2022 and hasn't landed yet. If LLVM gains the ability to vectorize such calls, then we'd be able to make use of it in Burst.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.