aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorJennifer Schmitz <jschmitz@nvidia.com>2025-05-15 07:16:15 -0700
committerJennifer Schmitz <jschmitz@nvidia.com>2025-05-19 08:18:56 +0200
commit2ec5082dd24cef5149ba645ee88a9acd8b4c290a (patch)
tree74b945b5f2d36dbbb1b9f8feb6eb228831bf7202 /libstdc++-v3/testsuite
parentc9eb473fb9946f642506d24f4131d7c83855fd78 (diff)
downloadgcc-2ec5082dd24cef5149ba645ee88a9acd8b4c290a.zip
gcc-2ec5082dd24cef5149ba645ee88a9acd8b4c290a.tar.gz
gcc-2ec5082dd24cef5149ba645ee88a9acd8b4c290a.tar.bz2
regcprop: Return from copy_value for unordered modes
The ICE in PR120276 resulted from a comparison of VNx4QI and V8QI using partial_subreg_p in the function copy_value during the RTL pass regcprop, failing the assertion in inline bool partial_subreg_p (machine_mode outermode, machine_mode innermode) { /* Modes involved in a subreg must be ordered. In particular, we must always know at compile time whether the subreg is paradoxical. */ poly_int64 outer_prec = GET_MODE_PRECISION (outermode); poly_int64 inner_prec = GET_MODE_PRECISION (innermode); gcc_checking_assert (ordered_p (outer_prec, inner_prec)); return maybe_lt (outer_prec, inner_prec); } Returning from the function if the modes are not ordered before reaching the call to partial_subreg_p resolves the ICE and passes bootstrap and testing without regression. OK for mainline? Signed-off-by: Jennifer Schmitz <jschmitz@nvidia.com> gcc/ PR middle-end/120276 * regcprop.cc (copy_value): Return in case of unordered modes. gcc/testsuite/ PR middle-end/120276 * gcc.dg/torture/pr120276.c: New test.
Diffstat (limited to 'libstdc++-v3/testsuite')
0 files changed, 0 insertions, 0 deletions