Search Issue Tracker
By Design
By Design in 1.8.X
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
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
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
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.
Resolution Note (1.8.X):
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.