• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / luajit / 6624712844
88%
tarantool/master: 93%

Build:
Build:
LAST BUILD BRANCH: ligurio/lj-1459-ub-carith_ptr
DEFAULT BRANCH: tarantool/master
Ran 24 Oct 2023 09:10AM UTC
Jobs 1
Files 89
Run time 3s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Oct 2023 09:01AM UTC coverage: 88.232% (-0.02%) from 88.249%
6624712844

push

github

Buristan
IR_MIN/IR_MAX is non-commutative due to underlying FPU ops.

Thanks to Peter Cawley.

(cherry-picked from commit 7a2b83a0c)

Even after the commit c05d10330 ("Fix
math.min()/math.max() inconsistencies."), some of the corner cases (see
tests in the commit for details) for `math.min()`/`math.max()` still
inconsistent in the JIT and the VM. This happens because `IR_MIN` and
`IR_MAX` are marked as commutative, so their operands were swapped by
`asm_swapops()`. As a result, because `minsd`[1]/`maxsd`[2] instructions
don't change the sign byte of the destination register, its sign is
preserved if we compare 0 with -0. When we compare something with NaN,
the second source operand (either a NaN or a valid floating-point value)
is written to the result. Hence, swapping the operands changed the
resulting value.

This patch removes the commutative flag from the aforementioned IRs to
prevent swapping of their operands.

[1]: https://c9x.me/x86/html/file_module_x86_id_173.html
[2]: https://c9x.me/x86/html/file_module_x86_id_168.html

Sergey Kaplun:
* added the description and the test for the problem

Part of tarantool/tarantool#9145

5337 of 5972 branches covered (0.0%)

Branch coverage included in aggregate %.

20484 of 23293 relevant lines covered (87.94%)

2752038.14 hits per line

Jobs
ID Job ID Ran Files Coverage
1 6624712844.1 24 Oct 2023 09:10AM UTC 0
88.23
GitHub Action Run
Source Files on build 6624712844
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #6624712844
  • 28a86bee on github
  • Prev Build on tarantool/master (#6317466663)
  • Next Build on skaplun/lj-1082-min-max-0-commutative (#6828599309)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc