https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126676
Bug ID: 126676
Summary: [17 Regression] ICE with XFmode under -mavx10.2 -mapxf
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: haochen.jiang at intel dot com
Target Milestone: ---
Trunk will ICE for this piece of code under '-O2 -mavx10.2 -mapxf':
int g (long double value, bool flag)
{
if (value == 0 && flag)
return 1;
return 0;
}
with
error: unrecognizable insn:
6 | }
| ^
(insn 10 9 11 2 (set (reg:CCFP 17 flags)
(unspec:CCFP [
(unspec:CCFP [
(compare:CCFP (reg/v:XF 101 [ value ])
(reg:XF 104))
] UNSPEC_OPTCOMX)
] UNSPEC_NOTRAP)) "<source>":3:18 -1
(nil))
during RTL pass: vregs
It seems to me like a latent issue but exposed on trunk for comx autogen since
GCC16.1 is ok. However, if it is '-O2 -mavx10.2', it will also not raise ICE.
Ref: https://godbolt.org/z/T9b9ocY9E