redorav / hlslpp

Math library using HLSL syntax with multiplatform SIMD support
MIT License
591 stars 47 forks source link

Integer vector comparison is working incorrectly on Intel based Macs with MacOS >= 11 #61

Open egorodet opened 2 years ago

egorodet commented 2 years ago

Signed and unsigned integer vectors comparison operators (==, <, >) seem to be working incorrectly in some cases on Intel-based Macs. This is reproducible in CI system of my project which is testing wrapper class Point<T,size> around HLSL++ vector in Azure Pipelines running on Macs with x86_64 architecture. Please see build 20220716.1 (on MacOS 11) and build 20220716.2 (on MacOS 12) test results. I noticed these test failures after switching build agents to MacOS v11, while previously on MacOS 10.15 tests were passing successfully - see build 20220715.1. I don't have Intel based Mac under my hands right now, so I can't check it locally, but I believe that comparison operator tests added in PR #59 will help to reproduce this issue.

redorav commented 2 years ago

Unfortunately I cannot seem to repro this on my Android phone (ARM 64 configuration) so I'm a bit at a loss as to what can be going wrong here. Also the equality operator is pretty simple. Can you give a bit more detail on this?

egorodet commented 2 years ago

This issue is reproducible on Intel x86_64 architecture (not ARM), and only on MacOS >= 11. As I mentioned, it was working fine on MacOS 10.15. It looks very strange because the same SSE-based integer vectors comparison works fine on Windows and Linux. I don't know why it happens, but it is proved with unit testing results in Azure Devops available by the links in previous message.

redorav commented 2 years ago

Ah I see what you mean. I'll have to get hold of a machine like you describe somehow then, or maybe a virtual machine.

redorav commented 1 month ago

@egorodet Does it still make sense to keep this open?

egorodet commented 1 month ago

@egorodet Does it still make sense to keep this open?

Let me check this. Intel-based macOS machines are still available in GitHub hosted runners for GH Actions.