https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107585
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:49de156a6adb50e0624479f22c20141cadef812d commit r13-3874-g49de156a6adb50e0624479f22c20141cadef812d Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Nov 10 11:46:52 2022 +0100 i386: Fix up ix86_expand_int_sse_cmp [PR107585] The following patch fixes ICE on the testcase. I've used GEN_INT incorrectly thinking the code punts on the problematic boundaries. It does, but only for LE and GE, i.e. signed comparisons, for unsigned the boundaries are 0 and unsigned maximum, so when say unsigned char adds one to 127 or subtracts one from 128 we need to canonicalize it. 2022-11-10 Jakub Jelinek <ja...@redhat.com> PR target/107585 PR target/107546 * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): Use gen_int_mode rather than GEN_INT. * gcc.dg/pr107585.c: New test.