This is an automated email from the ASF dual-hosted git repository.
junrushao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 6b4e3d08ea [TEST] Fix division by 0 in llvm codegen test (#14232)
6b4e3d08ea is described below
commit 6b4e3d08ea0155dad5a04272e196b18b3725150b
Author: Luke Hutton <[email protected]>
AuthorDate: Thu Mar 9 05:33:39 2023 +0000
[TEST] Fix division by 0 in llvm codegen test (#14232)
In the test `test_llvm_div`, some cases can lead to a division by 0.
Consider the case when `start=-12, end=-12, dstart=-2 and dend=0`, the
range of values input to clipb() will be: [-12, ..., -1, 1] (with 1
being specially selected to prevent division by 0). For the input 1,
clipb evaluates to: min(/*dend=*/0, max(/*dstart=*/-12, /*i=*/1)) = 0,
thus leading to a division by 0.
LLVM11, which runs in CI, doesn't seem to throw any kind of error, while
using LLVM15 leads to a "floating point exception". Regardless, since
division by 0 is undefined behaviour and the compiler can do anything,
the solution here is to fix the test so division by 0 doesn't occur.
Change-Id: Ib82776e9e0aff443dacc101a579d382059bb9826
---
tests/python/unittest/test_target_codegen_llvm.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/python/unittest/test_target_codegen_llvm.py
b/tests/python/unittest/test_target_codegen_llvm.py
index d8a853ff5d..bef682435e 100644
--- a/tests/python/unittest/test_target_codegen_llvm.py
+++ b/tests/python/unittest/test_target_codegen_llvm.py
@@ -525,7 +525,7 @@ def test_llvm_div():
]:
for dstart, dend in [
(-11, -1),
- (-11, 0),
+ (-11, 1),
(-4, -4),
(-2, -2),
(1, 11),
@@ -534,7 +534,7 @@ def test_llvm_div():
(2, 2),
(-11, 11),
]:
- if end < start or dend < dstart or (dend == 0 and dstart == 0):
+ if end < start or dend < dstart or (dend == 0 and dstart == 0) or
dend == 0:
continue
check(start, end, dstart, dend, "int32", floor_div=False)
check(start, end, dstart, dend, "int32", floor_div=True)