diff options
author | Stefan Mada <smada@nvidia.com> | 2025-10-15 10:10:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-15 19:10:30 +0200 |
commit | e71287177ad00d15c3d5806cd1da508f2f67e1c2 (patch) | |
tree | 9ab9a7721cc3242536eb4e1dd8f29d88188edf75 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 24a4ad89416325aabea8cc1e443a13a893457ec2 (diff) | |
download | llvm-e71287177ad00d15c3d5806cd1da508f2f67e1c2.zip llvm-e71287177ad00d15c3d5806cd1da508f2f67e1c2.tar.gz llvm-e71287177ad00d15c3d5806cd1da508f2f67e1c2.tar.bz2 |
[MLIR][NVVM] Fix assertion failure for insufficient parsing validation of nvvm dialect PureSpecialRangeableRegisterOp (#163434)
The nvvm dialect instruction PureSpecialRangeableRegisterOp will trigger
an assertion failure in LLVM's constant range class when the lower and
upper range bounds are equal, but not equal to the integer minimum or
max (as required by constant ranges). This requirement is at [line 56 of
ConstantRange.cpp](https://llvm.org/doxygen/ConstantRange_8cpp_source.html#l00056):
`assert((Lower != Upper || (Lower.isMaxValue() || Lower.isMinValue()))
&& "Lower == Upper, but they aren't min or max value!");`
However, you can write an NVVM dialect operation such as:
`%0 = nvvm.read.ptx.sreg.warpsize range <i32, 32, 32> : i32`
which triggers this assertion. This change adds a fix to ensure that
this requirement is also enforced by NVVM.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions